跳到主要内容

项目开发思考

做好项目开发的加减法

减法

  • 开发过程中使用了多次的方法,组件,及时的做抽取和总结,归纳成为公共的方法和组件,方便后续开发的使用
    • 举例从 url 中获取参数的功能,第一次实现的时候,你可以在业务代码中实现一次。但是当你再次需要使用这个方法的时候,你就需要思考一下,这个方法的使用场景会不会很多?是不是需要抽取一下?怎么样封装会更好?开发的时候多思考一下
/**
* 获取url中search中的数据,比如从 ?id=123&value=345 中,传入 id,获取到 123
* @param str 想要获取的key
* @returns 对应的value
*/
export const getSearchParamsValue = (str: string) => {
const queryString = window.location.search;
const params = new URLSearchParams(queryString);
return params.get(str) || "";
};
  • 随着你开发经验逐渐丰富,很多方法和组件,你在看到它的第一眼,就回明白,它是非常适合作为公共的方法和组件,抽取出来使用的。

加法

  • 公共组件和方法的抽取,组件的复用,在很多时候可以方便我们后续的开发和迭代,提高我们开发的效率。但是我在开发过程汇总发现,很多时候抽取的太多了,在后续的功能迭代的过程中,反而会增加了功能维护的复杂度。
    • 比如一个Modal弹窗组件,你想通过传入参数的变化,控制弹窗中显示的内容,但是很多时候,有的弹窗只是单纯的显示一个提示文案,有的还会有请求接口,筛选,加载列表,单选,多选等复杂的操作。如果这个时候你一股脑的将这部分封装到一个Modal弹窗组件中,定义一个类型type来区分不同的弹窗功能,在后续的维护过程中,可能会遇到type越来越多,你就不得不为一些特殊的流程添加条件判断,这就会将维护变得更加困难。
    • 针对这样的情况,我的建议是可以做一些加法,添加一些不同的Modal,不同的需求,直接去调用这不同的Modal就可以了,维护一个最简单的一对一关系,这样维护起来也会更加方便一些。同时也可以适当的做一些减法,将更小的,没有业务逻辑的一些业务单元进行抽取,做成公共的组件,这样去进行复用。