做一名有修养的程序员
Posted J-A
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了做一名有修养的程序员相关的知识,希望对你有一定的参考价值。
曾有人调侃:程序员的日常工作不就是 Ctrl+C/Ctrl+V 吗?
一语成谶,在当今网络信息大发展的时代,大量信息唾手可得,再加上我们提倡代码复用,还真应了那句:自己写代码是不可能的,重新造轮子这辈子都不会去干的。
所以很多时候,代码写完了, debug 一下,诶,那里怎么有问题?哎呀删了重新复制一段试试…如此循环,效率低下的同时,代码质量不忍直视。
因此,程序员真正的日常应该是这样的:
- 大量时间和精力耗费在无休止的 Bug 处理过程中;
- 为了改 Bug 或扩展新功能,痛苦的学习和理解别人的代码;
- 明知道代码这样写不合理,但当前情况下好像没什么更好的办法;
- 代码提测后,提心吊胆,像极了当年考完试老师当着你面批改试卷时候的样子;
- …
那么如何摆脱这种困境,写出一手漂亮且正确的代码呢?
软件质量过程无外乎需求、设计、开发、测试和维护,这五个环节紧密相连,缺一不可。
1、需求阶段,明确2点:
1)软件需求分析是对原始的业务需求进行分析、整理、辨别和归纳,最终形成有效的、系统的、明确的软件需求过程;
2)软件需求分析的产出是软件需求描述,可行的形式是用户故事。
2、设计阶段,重视2个过程:
1)设计文档以需求为导向,以 solid 为设计准则;一份好的设计文档通常包含系统架构、模块设计、数据设计、界面设计、异常处理以及影响和约束;
2)专家评审有助于集思广益、达成共识,以实现早发现早治疗,共同进步成长的目的。
3、开发阶段,有条不紊地进行:
1)计划制定,依照设计文档做任务划分和工作计划;
2)模块开发
- 先基础再上层: 先开发基础模块,再开发上层模块;
- 先接口再实现: 站在调用者角度,先定义好模块/类所有接口和参数,再实现内部逻辑;
- 基于设计但不限于设计:开发时固然要基于设计文档来进行代码实现,但绝不能只盯着自己的代码实现,要拓宽视野,不断思考和审视设计,反向验证和完善设计;
- 即时沟通协作: 开发过程中有疑问及时沟通讨论。
4、测试阶段,注重测试和代码评审:
1)单元测试:完成一个接口或类及时进行单元测试;不预设调用场景和前提,疯狂虐待自己写的代码;在单元测试过程中来完善模块的接口定义,代码逻辑以及代码结构;保证覆盖到自己写的每一行代码;
2)局部集成测试(核心模块):开发一些测试代码或模块来触发集成测试,这样可以促使自己在使用者角度验证组合功能的易用性,接口的合理性等;
3)CodeReview:可以不定期组织CodeReview会议。
5、维护阶段,文档的不断完善优化
在前面几个阶段,每个阶段都会有输出,比如需求阶段的需求文档、设计阶段的设计文档、开发阶段的演示demo程序以及测试阶段的测试方案等等。
转测交付给用户使用后,会有缺陷需要更新、功能需要升级优化,我们在维护的时候,同步更新这些输出,可以保证代码的不断高质量运行。
作为新时代的程序员,我们需要不断打磨自己的编程技巧,不断提高自己的编程能力,写出有灵魂的代码~
【注】文中若有任何疑问或不当之处,欢迎指出。
-EOF-
以上是关于做一名有修养的程序员的主要内容,如果未能解决你的问题,请参考以下文章