代码与注释价值
有人认为,软件企业为了追求利润,希望编写出的代码能让新加入的员工迅速掌握。我们这些初学者通常从JSP+开始学习,这样才能在同一个领域内交流设计和编程。注释虽有一定帮助,却无法完全取代代码本身所蕴含的解释性。例如,一些优秀的代码,其结构明了,逻辑顺畅,本身就具备了很高的可读性。
强调代码易读性的看法,对提升开发团队的协作效能大有裨益。新手能迅速融入团队,同时也能防止过分依赖注释,不至忽略了代码的内在价值。
设计文档的争议
/**
* 图表模型
*/
class Chart{
/**
* 图表长度
*/
private int length;
/**
* 获取图表长度
* @return 图表长度
*/
public int getLength(){
return this.length;
}
/**
* 设置图表长度
* @param length 图表长度
*/
public void setLength(int length){
this.length = length;
}
}
设计文档,有人觉得“详尽到足以指导编码”尚可接受,然而过于详尽的文档却可能导致纸上谈兵。设计文档只是展示设计的一种方式,懂得设计的人,在编码的同时也会思考,即便是借助草稿纸,也能打造出优秀的软件。像一些小型项目团队,成员们根据大致思路进行编码,并在过程中灵活调整,同样能取得良好的成果。
然而,过分依赖详尽的文档可能会使开发者远离实际情况,从而忽视代码实施过程中的诸多不确定性。
class Chart{
private int length;
public int getLength(){
return this.length;
}
public void setLength(int length){
this.length = length;
}
}
设计与编码的结合
设计理念始终贯穿于编码的全过程,但实现一人设计一人编码的理想状态往往难以实现。即便文档中的思考非常周密,在实际编写代码时,细节上仍可能存在差异。以实际项目为例,原本设计的某些逻辑在编码时可能会发现更佳的实现方法。
这种做法要求开发者要在设计阶段和编码阶段频繁转换思路,即时进行优化,不能将两者分开处理。
对日外包的现状
某些日企外包公司里,程序员会收到详细到方法定义的设计文件。在我国,有才能和抱负的人最好别从事这类外包工作。这种外包工作不鼓励员工思考,简直是人才的浪费。有些程序员进入这类外包公司后,就只能按照已有的文档编写代码,很难发挥自己的主观能动性。
长此以往,程序员创新能力和设计能力会逐渐退化。
文档知识传承之难
声称文档能传递业务和技术信息存在疑点。编写详尽文档起初投入大,后续维护费用更高。程序员在修改代码时,难以确保文档与代码保持一致。以一个项目为例,经过多次更新迭代,文档与代码往往已不再匹配。
因此,仅凭详尽的文件来传承知识并不可行,这可能会引发知识传播的误差。
评审问题与工具滥用
在评审设计文档时,让不涉足代码的测试人员参与讨论设计理念,往往既浪费时间又可能引发争执。程序员在审视其他产品的代码时,由于对业务不熟悉,往往难以发现真正有价值的缺陷,通常只能关注到代码的细节。此外,原本旨在提升设计和代码质量的工具,现在却常被用来针对程序员。
这破坏了团队协作氛围,也无法真正提升项目质量。
在软件开发过程中,大家是否遇到过设计文档与实际编码之间差异极大的情形?欢迎在评论区分享您的经历,同时别忘了点赞并转发这篇文章!