Appearance
本以为做了这么久的前端,还是有一些些长进的。但是这次需求加上李颖姐的评审,感觉我的编程水平还是差许多。
应当避免逻辑耦合,仅限于数据耦合
首先是一个技术方案的实现方式。如果想把它抽成组件,或者是公共页面,应该把他尽量与业务逻辑剥离开来, 不要让你的公共页面或方法处理其他页面带来的数据。虽然很多人都知道应该这么做,包括我,但是在一些时候,往往开发进度比较紧张的情况下,往往是怎么方便怎么来,功能虽然实现了,但是由于与业务数据的耦合,很难理解你这样编程的方式,更详细一点来说 你做了不该做的事情。感谢颖姐的当面指出来,真的是我佩服的第二个人,我的前端leader,帮我指出了这些问题
要有处理问题的敏感性
前端最主要的是和JS 打交道,js的工作流除了同步就是异步,很多问题出就出在这上面,同步是从上往下顺序执行,异步是队列机制,在将来的某一时刻 插入在队列中执行。经常出现的情况是代码不生效,在考虑代码的逻辑有没有问题的时候,另一个需要考虑的问题是,是否异步的结果没有来的及响应就执行下面的逻辑了。这一点很关键。一些偶发性 bug 尤其会出现这种情况。补充下秋桂大大说的情况:
- 对于一些代码,正常运行的时候有问题,断点一打就ok的情况
- 上面说的一些偶发性bug,问题时而出现时而正常的情况,这个时候排查是不是异步的问题。
- 对于一些弹窗或者是别的需要不停设置状态的,弹窗的关闭 弹出 等等,有一个场景是需要连续提示两次弹窗,这个时候第二次弹窗往往不会出来,这个时候就把第一个弹窗加个
setTimeout
加到队列中去。 其实总的来说,前端的成长是,以踩过的坑的数量为基础的,遇到的bug 越多,解决的问题越多,才能慢慢的掌握一整套分析方法,快速的对症下药。
如果不是需要完全重构,尽量不要动原来代码的逻辑。
这条在很多编程思想里面就提到了,这里再提示一遍是为了提醒自己,刚开始来的时候看见别人的代码总是觉得不规范,老是想改。后来时间长了,别人的代码虽然你看起来很烂,但是最起码经过了生产验证的,不会出什么大的问题。而如果自己重写一遍,需要大量的时间和精力,所有的场景都需要重新测,而且并不代表你写的代码一定要比别人好,没有bug。显然是不一定的。所以,如果需要在原先的代码上修改,尽量不要动原先的代码。
编写代码之前整理逻辑。
曾今有很久的一段时间,我写代码经常就是打开编辑器就开始写,写着写着就变得很乱,往往给人一种拼凑的感觉,这样的代码只是为了完成需求而已,没有考虑后面的维护性。变量的名字起的不明就里,逻辑重复没有基本的条理,更别提规范了。这是近期一直在思考,并且想要改变的问题。程序员的水平可以通过大量练习来获得增长,但是代码风格,一旦养成就很难改变了。所以,以后在编写代码之前,先把逻辑想清楚,实现方式,逻辑的处理,抽离公共方法等等。可能后期随着自己的理解加深代码逻辑会有改动,但是基本方向不会偏。
代码是一份匠心的工作,希望自己能像个手艺人一样,把它做好,并且为自己的作品骄傲