在编程过程中,整洁的程序虽然不是是编写一个优质程序的必须,不过能用整洁的代码编写优质程序,那也是极好的。不过中培软件专家郭老师指出,他在授课过程中,和自己的学员讨论这一问题是,发现在这一问题上,很多程员本末倒置的现象不少。
郭老师曾经和一些参加中培驾驭培训的程序员就编程问题进行过有趣的讨论。郭老师通常会有这样的印象,感觉一些程序员过于强调代码的整洁。虽然郭老师也很注重代码的整洁,在过去几年来也写过不少强调代码整洁的重要性的文章。但当郭老师认为,代码整洁只是程序员的第二重要目标,它永远不会取代编程过程中的首要目标:让软件先跑起来,让它能跑得顺畅而有效,这是应该是编程首先应该解决的问题。
当谈论起代码整洁时,很多人都能饶有兴趣的说出很多。他们坚持不懈的追求这个目标,有时他们在编程时还会穿上带有Uncle Bob的绿色的宣传图标衣服,代码整洁以此提醒自己什么是最重要的:写出整洁的代码。不幸的是,很多次郭老师都发现,很多人在重视“代码的样子”的同时,却忽略了要把“代码的功能”也放在同等重要的位置。例如,很多人不愿意去学习ORM实现的背后原理,他们更愿意使用一些像Hibernate实体映射工具的东西把数据映射成实体对象,即使当这样做比起直接获取数据是效率低的让人惊讶时也是如此。他们并不考虑多次远程调用的代价或大数据量传输的成本。他们一遍一遍的就是写不出一个好的保龄球游戏,因为他们把数据库的操作放在循环里了。
代码整洁并不是构成好程序的必要条件,好程序也并不必定是代码整洁的。对郭老师来说,好程序是运行良好的代码,容易理解,容易修改。这是它们的先后次序。郭老师说也许大家都非常明白,代码的易于理解、易于安全的修改是非常的重要。但不管代码写的如何清晰易于阅读和修改,如果它没有做它本该做的事情(不能覆盖所有角落场景),或花费了它本不该使用的长时间执行操作,它就不是好代码。当然,它很整洁,可却没有用处,不是吗?
郭老师不是鼓励程序员过早的进行优化,这个程序员有着不可思议的非凡技术,否则你过早的优化的程序里至少有四分之一是不正确的。优化最重要的是找到瓶颈,其它的努力都是浪费。
最后,郭老师总结道:程序员在编程过程中应该写成整洁的代码,但在编程过程中一定要把握本末和主次,不要为了代码整洁,而放弃了编写优质的程序。