`
- 浏览:
72068 次
- 性别:
- 来自:
杭州
-
老祖宗告诉我们,要三思而后行。我们写代码也要如下三思:
(1)代码是否可以很好的完成功能?
(2)代码是否可以适应变化?
(3)代码是否可以和其他程序员交互?
1 代码是否可以很好的完成功能?
毋庸置疑,这是对一个合格程序员的最基本要求。相信绝大部分人都能够完成功能。但代码的质量如何评判?这个没有统一的标准,笔者概括以下几点作为参考标准:
稳定性:版本上线后,是否有致命问题出现?出现问题的数量是否在可接受的范围内?
可扩展性:体现在新增一个需求时,是否可以方便的扩展而又不对原有的功能产生影响?
可维护性:体现在对于原有的需求发生变化时,是否可以方便的改动?
版本稳定性是检验代码可扩展性和可维护性的重要指标,可扩展性和可维护性会在版本的稳定性上体现出来。此外,性能也是一项容易被人忽略的重要指标。不要总是等到用户无法忍受的时候才开始重视性能的问题,这个一定要在平时的应用程序设计、数据库结构设计和写SQL语句的时候重视起来。
2 代码是否可以适应变化?
在敏捷开发中,原则上,只要没有提交版本,哪怕是在提交版本的前一天都是容许客户提出需求变化的。若你觉得需求从一开始就应该是一成不变的,那么你得反省一下是否真的理解了什么是敏捷开发。面对客户不断的需求以及需求变更,我们或许会有所抱怨。但冷静下来思考,这就是敏捷,敏捷就是为了快速响应客户需要而生的,所以我们得适应。既然如此,那么我们的代码怎样才能适应变化呢?
敏捷中通常采用迭代增量式开发 ,一个版本通常分为2到3次迭代,每次迭代2到3周,在做第一个迭代时,我们往往不清楚接下来的变化(除非你是一个很有经验的程序员),此时可以不用考虑变化的问题。若后续迭代中出现了变化,那么彼时就不得不考虑让我们的代码健壮起来。
往往这些变化的地方是客户使用率最高的地方,往往也是提需求最多的地方。
让我们所有功能所对应的代码都能适应变化那是不可能的,也是没必要的,因为常用的功能可能只有20%左右,这意味着有80%左右的功能面临被“冷落”的命运。
结论:等到需求变化或者增量需求时,我们再考虑代码适应变化的能力。
当然,你可以说有经验的程序员可以预见这种变化而提前做了预防。但我很遗憾的告诉你:大量数据表明,再有经验的程序员,绝大部分所谓的“预见”都是没有发生或者根本就是错误的。不过,优秀的程序员,通过提升代码的可扩展性和可维护性来适应不断变化的需求。虽然说等到变化时才考虑适应变化的能力,若是需要变化时,你的代码每次都要做大量的修改,是不是说明你写的代码过于脆弱了?
3 代码是否可以和其他程序员交互?
代码是否可以和其他程序员交互简单一点讲就是你的代码可读性如何?
一个人做一个项目的时代已经一去不复返了,往往需要多人协作才能完成。即使细分到各个细小的部件,也会涉及到代码共享的问题。这个时候,代码的可读性就显得尤为重要。
我们往往会抱怨,没有时间考虑代码的可读性问题。这里我们不谈论这些抱怨的原始动机。但本人认为这个不是时间的问题,而是习惯问题。
代码的可读性体现在多个方面,下面列举五点:
(1)注释:包括类注释、方法注释、属性注释、逻辑分支注释等。没用的注释或者错误的注释比没有注释更让人难以忍受,所以我们一定要提高注释的质量;
(2)程序简洁美观,通俗易懂。要争取做到多一行嫌多,少一行嫌少的地步 (有空可以多看看优秀类库或者优秀开源框架的源代码);
(3)命名规范:要注意包命名规范、类命名规范、方法命名规范、属性命名规范等;
(4)代码风格:统一的代码风格;
(5)面向对象而不是面向过程:JAVA是一门面向对象的语言,你写JAVA代码却用面向过程的思维去写,那么对于其他程序员来说无异于是一种折磨。
优秀的代码都是通俗易懂的,若你写的代码只有你自己才能看懂或者很难看懂,那么其他程序员跟你合作就是一种折磨。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
《涂抹Oracle:三思笔记之一步一步学Oracle》语言生动幽默,案例丰富,实践性强,在章节编排和内容组织方面,主要面向初次接触Oracle数据库的技术人员,以及对数据库操作感兴趣的开发人员,对于具有一定技术实力的中...
《涂抹Oracle - 三思笔记之一步步学Oracle》是一本...通过《涂抹Oracle - 三思笔记之一步步学Oracle》的源代码实践,读者可以加深对这些概念的理解,动手操作以提升技能,从而成为更专业的Oracle数据库管理员或开发者。
《涂抹MySQL:跟着三思一步一步学MySQL》是一本旨在帮助初学者和中级用户深入理解MySQL数据库系统的教程。这本书通过清晰的解释和实例,逐步引导读者掌握MySQL的核心概念和技术。MySQL是一种广泛使用的开源关系型...
在《登泰山记》这一课例中,深度学习体现在“三思”课堂的实践中,即“勤思”、“善思”和“多思”,旨在促进学生主动探索、批判性思考和创新。 【“三思”课堂实践】是指通过设计不同的教学环节,引导学生对文本...
《Cocos2d-x 3.x 游戏开发之旅》是针对Cocos2d-x 3.x框架的一本深入实践教程,涵盖了从基础到高级的游戏开发全过程。在本资源包中,你将找到该书前17章的源代码,这为学习和理解Cocos2d-x引擎提供了宝贵的实践材料。...
7. 安全风险:非法获取和使用注册机可能使用户的电脑暴露于病毒、恶意软件的威胁之下,因为这些工具往往被黑客利用传播恶意代码。 综上所述,理解材料测试的重要性,熟悉PowerTest软件的功能,关注软件版本的兼容性...
三思笔记之涂抹ORACLE PDF版 三思笔记之涂抹ORACLE PDF版 三思笔记之涂抹ORACLE PDF版 三思笔记之涂抹ORACLE PDF版 三思笔记之涂抹ORACLE PDF版
《涂抹Oracle—三思笔记之一步一步学Oracle》很好的学习oracle书籍,值得一看
[三思笔记]RMAN高级应用之Duplicate复制数据库.pdf [三思笔记]RMAN管理ORACLE_RAC数据库的备份与恢复.pdf [三思笔记]statspack初步学和用.pdf [三思笔记]动态性能视图.pdf [三思笔记]全面学习MySQL+Proxy特性.pdf ...
3. **敏捷开发**:采用敏捷开发方法,如Scrum或Kanban,提高团队响应速度和灵活性,适应快速变化的业务需求。 综上所述,《代码大全》第二版第四章深入探讨了软件开发中关于构建决策的关键要素,包括编程语言的选择...
通过阅读“三思笔记”中的相关内容,DBA们可以系统地学习Oracle函数的用法,从而更好地应对日常的数据库挑战。无论是处理数据转换、分析大量数据还是解决特定问题,这些函数都能提供强大的工具支持。因此,深入理解...
本书作为一本创作之初就定位于技术应用的实践参考书,虽然前前后后串联了Oracle数据库中十余个常用特性或工具,但在章节的设计上完全遵循这一理念。在涉及特性或工具应用的每一个章节,均有相关实例演示如何应用,...
资料备份:三思笔记之一步一步学Oracle(二部之二)
《涂抹Oracle-三思笔记之一步步学Oracle》-李丙洋-源代码-6961.rar 目录5内文件与书中第5章代码段落一一对应; 目录8内文件为书中第8章备份脚本; 目录10内文件为书中第10章出现的部分脚本,分为两部分:physical...
涂抹Oracle 三思笔记之一步一步学Oracle(第2部分)
资源名称:涂抹Oracle--三思笔记之一步一步学Oracle内容简介:本书作为一本创作之初就定位于技术应用的实践参考书,虽然前前后后串联了Oracle数据库中十余个常用特性或工具,但在章节的设计上完全遵循这一理念。...
涂抹Oracle--三思笔记之一步一步学Oracle 完整版 本资源是一本关于Oracle数据库管理系统的电子书,共16章,涵盖了Oracle的基础知识、数据加载、数据保护、数据传输、基础补充等方面的内容。 知识点: 1. Oracle ...