今天的主要任务是给小窝后端增加一个日记时间轴的接口,此前在前台部份实现这个功能是复用了分页的 Model,而这个 Model 是按照返回完整数据的形式设计的,其实是有性能问题的。
例如它会完整的处理一次全文内容,从 Markdown 转换成 HTML。如果直接拿 365 条数据,则会直接执行 365 次,而时间轴其实只需要几个简单的参数(例如知道有没有图片,是不是推荐阅读)这设计就很明显不合理了。
按照我现在的程序设计,修改思路基本上就只有两个。一个是修改分页 Model 及其格式化程序(类型转换,JSON 字符串转数组等),或者原地增加一个新的 Model 给时间戳。最终我选择了后者,这是一个性能兼顾的方案,缺点就是一些和分页接口相同的数据,格式化的步骤需要重写一次,存在未复用的代码,这种写法长期迭代有可能会产生缺漏,但能确保返回的数据格式是符合实际需求的。
关于 MVC 的 M 和 C 我一直都觉得非常矛盾,完全不清楚它们的职责。由此可见,我并不是一个合格的后端,现在我小窝的后端真的只是仅限能用而已。