引言

底层实现有时候不必循规蹈矩,能解放业务层才是关键。如果底层为了守规矩反而破坏了业务层的规矩才是得不偿失的添乱行为,行话叫过度设计。
其实这也是所谓封装的原则之一,从函数到模块到组件到页面再到工程的设计都应当秉持着为更上一层服务的原则,尽可能地把下一层的脏话累活揽到自己的作用域下,屏蔽到角落里。
说到这,突然想到一个词:金玉其外 败絮其中……

最近在搞一个基于 AntPro 的管理端。除了把诸如多语言、动态主题配置、各种无用的依赖、文件、页面、配置等等都干掉了之后,我不禁盯着项目里的 dva 又陷入了沉思…

3 秒后,我决定也把它送到非洲去…

于是又是一顿猛如虎的操作(删配置,删依赖,删 models,删 connect,删 props 引用)后,看着清清爽爽的工程结构,我笑了。

就拿 axios 请求后台 api 来说吧 很多人喜欢把 api 专门写到一个文件里 然后每个页面里面请求的时候 import 导入。
这样确实可以统一管理 api 接口。但是用多了反而感觉很麻烦。一个 import 导入的时候麻烦。第二个是后期维护修改的时候并没有感觉到便利。 反而这个文件跳那个文件 那个再跳另一个。总感觉切换查看不同文件是一个很浪费时间的过程。当然坏处就是不能复用,真的用的很多的接口也提出来 - 知乎提问

先回答问题本身:当然有必要。

EditorConfig

基本上目前所有编辑器都支持地很完善,拿 vscode 来说,prettier 的配置文件是需要装插件 + 做一定的编辑器设置的。而 editorconfig,装完 EditorConfig for VS Code 就可以了(WebStorm 默认支持),能够很方便地覆盖编辑器的默认格式化。所以它的主要好处其实就在这里,编辑器的默认格式化不同于通过快捷键调用类似 prettier 的三方格式化工具,它能够在比如新建文件,回车换行的阶段就保持正确的代码格式。

这是一个 Web 需求,内容是让用户在列表里「更容易地访问」自己想要访问的资源,类似让网页收藏夹更方便地找到自己收藏的网页这种需求。

首先很容易想到的一个方案是提供一个模糊搜索功能,该方案在列表条目比较多的时候,无疑能带来很高的收益,遂保留之。不过如果用户经常访问的某个页面恰好不在可视区域内,那意味着该用户每次都要滚动视图,或者执行搜索才能访问到它,所以只靠该方案是没办法很好地解决这类用户「更容易地访问」需求的。

那么再思考一下需求本身,对于这类列表数据,什么是「更容易地访问」?