几乎所有的软件开发公司,都有相应的代码规范,有些大公司,特别是大的外包公司(尤其是对日外包公司),其代码规范已经到了事无巨细的地步。但相信很多开发人员(包括我刚开始软件开发时),都会产生一些疑问:功能,性能无疑是最重要的,设计也很重要,为什么却要把这么多的精力放在代码规范上呢,仅仅是为了方便别人阅读代码,便于维护吗?这样一套套的代码规范真的可以加快开发速度吗?
在回答这些问题以前,先来看一下Wicket,Tapestry两个功能相类似的基类其中的代码节选。
来自Wicket1.3.3中org.apache.wicket.component的代码
/**
* Called on very component after the page is rendered. It will call onAfterRender for it self
* and its children.
*/
public final void afterRender()
{
// if the component has been previously attached via attach()
// detach it now
try
{
setFlag(FLAG_AFTER_RENDERING, true);
onAfterRender();
getApplication().notifyComponentOnAfterRenderListeners(this);
if (getFlag(FLAG_AFTER_RENDERING))
{
throw new IllegalStateException(Component.class.getName() +
" has not been properly detached. Something in the hierarchy of " +
getClass().getName() +
" has not called super.onAfterRender() in the override of onAfterRender() method");
}
// always detach children because components can be attached
// independently of their parents
onAfterRenderChildren();
}
finally
{
// this flag must always be set to false.
setFlag(FLAG_RENDERING, false);
}
}
|
来自Tapestry3.04基类org.apache.tapestry.AbstractComponent的代码
/**
*
* Returns a {@link Map} of all bindings for this component. This implementation
* is expensive, since it has to merge the disassociated bindings (informal parameters,
* and parameters without a JavaBeans property) with the associated bindings (formal
* parameters with a JavaBeans property).
*
* @since 1.0.5
*
**/
public Map getBindings()
{
Map result = new HashMap();
// Add any informal parameters.
if (_bindings != null)
result.putAll(_bindings);
// Now work on the formal parameters
Iterator i = _specification.getParameterNames().iterator();
while (i.hasNext())
{
String name = (String) i.next();
if (result.containsKey(name))
continue;
IBinding binding = getBinding(name);
if (binding != null)
result.put(name, binding);
}
return result;
}
|
很容易看出,以上的这几段代码,与公司的开发规范相比,也有很高的吻合度,事实上,Wicket和Tapestry的作者都是长期编写架构的开发和设计人员,是非常顶尖的开发人员,远非一般的高级工程师可比,但看这些代码,却没有多少技巧在其中,可以算的上代码规范很好的遵守者。很多国内很程序员经常会觉得,这些高手写的代码应该很难,很复杂。但事实告诉我们,大道至简,这么多的资深程序员甚至是架构师经过多年的编写代码,却都达到了同样的规范,可谓殊途同归。为什么呢?这说明,只有这些来自经验的规范才真正的体现了水平,才是多代程序员的精华所在。当开发人员很好的遵守代码规范来编写代码时,才可以慢慢的体会到规则,才会体会到设计。可以想像一下,如果遵守代码规范,一个方法不得超出50行代码,那么大量的if else就不可能出现,而要代之以各种设计(如工厂,策略等设计模式)来解决问题。
大家如果有兴趣看一下他们的源代码,可以去Apache网站下载,他们的代码中只有很少的一部分,估计不足5%的代码才会超出50行/每方法,违反常规的代码规范的内容也会非常的少。
开发规范不仅不是一种可有可无的东西,反而是历代程序员经过多年的开发所磨炼出来的经验总结。对于程序员来讲,想写好代码,从遵守规范开始。
最后以小说里的一句话来结束本文:技巧的本质就是规则,而规则使人成长。
<!--EndFragment-->
分享到:
相关推荐
JAVA代码规范及快捷键优化 在软件开发过程中,代码规范和快捷键优化是非常重要的两个方面。以下是关于JAVA代码规范和快捷键...遵守统一的JAVA代码规范和快捷键优化是非常重要的,这可以大大提高开发效率和代码质量。
代码规范的遵守能够有效提升软件系统稳定性,确保代码质量和效率。 为了推动手册的实施和应用,阿里巴巴团队还推出了Java开发规约的IDE插件,并在2017年杭州云栖大会上对外发布。该插件的下载量达到162万人次。同时...
Java代码规范文档中涉及的知识点涵盖了Java编程实践中的命名风格和代码组织方式,旨在为Java开发人员提供一份行业内部开发的准则,确保代码的可读性、一致性和维护性。以下是从提供的文档内容中提炼出的相关知识点:...
Java代码规范是编程实践中至关重要的一个方面,它旨在确保代码的质量、可读性和维护性。以下是一些核心的Java代码规范要点: 1. **命名规范**: - 类名使用大驼峰命名法,所有单词首字母大写,例如`ClassName`。 ...
在实际的开发过程中,代码规范需要团队成员共同遵守和维护。一般情况下,团队会根据项目需求、开发语言特性以及个人或团队的编程习惯来制定或选择一套适合的代码规范。这包括在使用版本控制系统时如何格式化代码、...
最近参加了一次关于C++代码规范的培训,我的心得体会颇多,以下我将结合培训内容和个人认识,从代码习惯的重要性、命名规范、代码排版布局、效率优化等方面,详细阐述我在C++代码规范培训中的所学所思。 首先,培训...
大型IT企业的代码规范 作为一个大型IT企业,代码规范是不可或缺的。代码规范不仅可以提高代码的可读性和可...通过遵守这些代码规范,我们可以提高代码的可读性和可维护性,减少错误和bugs的出现,提高开发效率和质量。
在软件开发过程中,代码规范是确保代码质量、可读性和可维护性的重要工具。这篇文档主要介绍了基于JBuilder的Java代码规范模板,旨在提供一套统一的编程风格,从而提高团队协作效率。以下是对各个部分的详细说明: ...
VB代码规范是确保代码质量和可读性的重要指南,它涵盖了变量命名、注释、格式化、错误处理等多个方面。以下是一些关键的VB代码规范要点: 1. **变量命名**:变量名应清晰、简洁且有意义,避免使用单字母或模糊的...
《阿里代码规范13213.pdf》是一个重要的资源,主要针对Java开发人员,旨在提供一套标准和指导原则,以确保代码的质量、可读性和可维护性。在Java开发过程中,遵循良好的编码规范至关重要,因为它有助于团队协作,...
阿里Java代码规范插件是专为IntelliJ IDEA(简称Idea)开发的一款工具,旨在帮助开发者遵循阿里巴巴的Java编程规范,从而提升代码质量和可维护性。这款插件的运用,能够有效地在编码过程中实时检查代码,确保代码...
Java代码规范是编程实践中至关重要的一个方面,它不仅关乎代码的可读性和可维护性,还直接影响团队协作的效率和软件...以上是对Java代码规范的概述,遵守这些规范可以提高代码质量,减少bug,增强团队间的协作效率。
为了确保代码的可读性、可维护性和团队协作效率,遵循一套统一的代码规范显得至关重要。以下是对Java编写代码规范的详细解读: 1. **命名规范** - 类名:采用大驼峰命名法(每个单词首字母大写),如`ClassName`。...
Java代码规范针对Android开发的规定相当细致,涉及到代码排版、注释、标识符命名以及代码的可读性等方面,旨在确保代码的整洁性、一致性和可维护性。以下是根据给定文件信息,详细解读的Java代码规范知识点。 首先...
### 郝斌的代码规范详解 #### 一、引言 郝斌老师的《代码规范》是一篇关于如何编写高质量、可维护的C语言程序的文章。文章不仅提供了实用的编程建议,还强调了代码规范的重要性。本文将根据郝斌老师的原作进行深入...
在软件开发中,代码规范是非常重要的,因为它可以提高代码的可读性、可维护性和可重用性。...遵守代码规范可以提高代码的可读性、可维护性和可重用性。本文介绍了Android和PHP代码规范,帮助开发者编写高质量的代码。
《华为代码规范》是华为公司为提升代码质量、提高团队协作效率而制定的一套编码标准。这份规范旨在确保代码的可读性、可维护性和一致性,对于任何开发人员来说,遵循这样的规范都是非常重要的。 1. **概述** - **...