「时光不负,创作不停,本文正在参加2022年中总结征文大赛」
2月份过完年不久,在做完了成都的主题换肤工作(很遗憾,给同事留了坑)就转身投入了湖南的企微项目,经过了四个多月的努力,项目终于成功上线,算是完美的解决了客户的一系列需求和任务,在此工作即将结束之时,写下本篇笔记,记录下在此期间的一些个人的收获和心得。
为什么要开始写笔记了
作为一名开发者,且未来的目标是继续深入开发领域,我认为对于技术,应该是以严谨的态度对待,往事不可谏,来者犹可追,把自己的想法和收获使用文字记录下来,既能温故,也可知新,亦是自省。
关于开发中的问题
在开发中遇到了很多问题,关于各个方面的、大大小小的问题,虽然中途是一波三折,但最后都得到了解决,但很多问题的产生是大可以避免的,在此大概记录下面几种类型的问题,在以后遇见类似的情况时,需警醒自身,勿要重蹈覆辙:
需求不明确或前后端理解偏差导致的一系列问题
关于此问题,我觉得问题不应该出在制定需求的人员身上,因为此问题的产生,只能说明开发人员在拿到需求/原型后,并没有 真正意义上的认真的阅读理解了需求/原型,在进行需求讲解时,对于内心不明确的地方并没有及时与需求人员确认,因为那一丝疏忽,或者说是凭借以前类似的经验的自信,导致了问题的产生。我认为,大家作为一个团队中的成员,及时的沟通是降低此类问题产生与推进项目正常进行的非常关键的一个因素。沟通,其实用不了多少时间,但是却可能避免一场理解偏差导致的无效开发,从根源上减少了加班的产生(狗头)。
关于注释
在此之前,我对于注释并不是太重视,仅仅会对于一些自认为比较重要的地方加以注释。在这次项目中经历了大量的需求更新后,我的观点有了转变。正所谓一千个读者有一千个哈姆雷特,不同的开发者在对待页面的布局、变量的命名、逻辑的处理都会有着很大差别。如果不是一个配合、磨合了很久的团队,直接上手修改一篇没有注释的代码,突如其来的阅读顿挫感会大大增加代码的理解难度。添加一行注释,并不难,有翻译工具的存在,大部分的变量名一般都能理解,但是,如果能在每个变量/方法名上留下注释,还是能大量降低后来人的接手压力,毕竟,有时就连需求都能理解错(狗头)。赠人玫瑰,手有余香,留下优雅的代码,令接手的人赏心悦目,我辈义不容辞。注释只是其中的一部分,严格的代码的开发规范,才是真正难的地方,也是每个coder都需要保持的底线,只图一时开发之爽,是对自己的不负责。
关于心态
项目一共进行了四个多月,总体周期较短,期间难免不了通过加班来追进度,在项目最艰苦的阶段,每天除了睡觉的时间以外基本都呆在了电脑面前,身体和心理上的压力都很大。在项目中后期,我曾因此在心态上受到了比较大的影响,好在后面及时调整恢复(在此感谢我的领导和同事)。既然选择了这一行,有压力,及时有效的调整心态缓解压力非常关键,但不是放纵摆烂,也不是全部放在心里独自承受。
关于分歧
在开发阶段中,如何尽量规避掉与同事在工作上的分歧呢。在我看来,分歧的产生,一般情况是出在共同合作的模块中产生了bug,可能是一方认为重要的东西,不被另一方重视,导致了分歧的产生。亦或者,是一方认为理应如此的处理方法,在另外一方实际提供的方法中没有采纳,产生了分歧。我认为规避分歧的方式,和规避双方理解偏差导致的问题处理方式一样,可以通过提前交流、及时沟通来避免,但是也有不同的一种情况是,双方的方法都是正确的,此时我认为,双方应该在合作开发之前,就进行好一系列的开发沟通。作为一名成熟的软件开发者,在开发过程中,开发前的思考时间与开发中编程的时间比应该是7 : 3,谋定而后动,看了一眼原型就什么都不管不顾直接嘎嘎开发的人,只能算是在开发bug,给自己和同事挖坑。在思考结束后,也应该和一起开发的同事进行沟通,叙述自己心里的想法,看看双方是否会有分歧的地方,如果有分歧,也可以在实际开发前提前规避掉。
关于个人计划
在项目中,所有人的工作计划都有列在计划表内,我的观点是,将个人的工作安排单独列出,以时间线的形式排列,让自己可以对自己的工作任务一目了然。在开发之前,将开发模块的需求、原型文档详细过一遍,确定其中没有不确定的地方,或者是否存在可以封装组件复用的地方。任务是死的,人是活的,如何提高个人效率,就存在于平时工作时的细节中。
本次项目期间的个人收获
- 搭建、开发了自己的个人网站,配置了nginx代理与加载优化
- 熟悉了神策sdk的使用、个性化配置方法
- 熟悉了微信api的使用方法、开发流程
- 解决了ios关于flex + overflow情况下滑动失效的兼容问题
- 加强了个人在移动端页面中的开发经验,加强了个人对前端工程的一些优化经验
- 闲余时间学习了Vue3、Ts、Class类,动态规划、回溯算法、函数劫持、函数式组件调用、富文本编辑配置 + 内容图片配置、webpack配置优化等
总结
不积跬步,无以至千里,作为一名前端coder,非常多的知识需要我去学习,仅仅满足于页面的开发是不能提升自己的,还需努力。