编程规则 - 1 概述 -- 帮助你成长为优秀的程序员 杰出的软件工程师、设计师、分析师和架构师

    编码规范往往只是对具体编程的格式及细节要求进行规定,但对于提高软件人员编程能力而言,编程规则更具有价值,下面将我的一些观点和想法提出来供大家参考,也希望大家批评指正,谢谢!

1 概述

      编程是一个软件工作者的基本能力,怎样能够成为一个优秀的软件工程师,怎样编写出优雅的程序,漂亮、完美地解决问题,实现需求,将是每一个软件人员永远的追求。

      程序员都希望自己将来成为设计师、架构师,但小可比大、大可比小,局部的小程序设计不好,就奢谈架构设计了,相反如果你程序设计的非常清晰、结构优美,你离架构师也就不远了。因此请你胸怀远大目标,从眼下做起吧!

    本文试图指导你实现这样的夙愿,使你在编程的过程中逐步成长、成熟,成为一个优秀的软件工程师。

    本文即不是具体的软件编程规范(具体的软件编程规范亦是基于此文的基本规则制定),也不是软件架构及设计指导书,它介于具体编程与系统架构之间,虽不明确细节,但注重编程的基本原则和规程,不限于语言(尽管示例采用java),可适用于任何面向对象的编程,其中大部分规则亦适用于非OO编程。

    要求所有软件开发人员必须认真、反复阅读此文,深刻体会每一个规则的内涵和外延,并在开发过程中认真贯彻、深入实践,做到:

      知行合一,努力实践,勇于重构,追求完美。 

      代码是程序员的脸面,代码是程序员的作品,代码是程序员的荣誉,代码是程序员的信用,优秀的软件工作者,首先必须是一名优秀的程序员。

      你努力搞懂这些规则,并运用这些规则,他将帮你成就优秀。

      本文只是简略地叙述这些规则,为了切实地弄清楚它们的真实意义,你不仅需要实践,还需要通过其他方式去学习体会,例如学习相关书籍丰富知识面,请教、交流都是辅助手段。

      编程是一门实践科学,你需要实践-学习-总结-提高,再实践-再学习-再总结-再提高,这是一条唯一的成功之路。

      编程是一种创造性工作,能够满足你创造的愿望,让你的灵感放出灿烂的光芒,让你的思想和创意能够落地生花,令你在工作中收获成功和快乐。

      编程是门艺术,它能够展示结构之美、构造之美、表达之美,能够给作者和读者带来喜悦、舒畅、优雅等高层次的精神享受,它有时像优美的诗歌,有时像设计精妙、蕴含人类智慧的精密装置,给人带来深层次的触动和愉悦。

      让我们用轻松、愉快、期盼的心情驰骋在编程的道路上吧,祝愿你一路收获成就、收获喜悦、收获健康;更希望你的作品能够为他人带来快乐。

 

1.1 大处着眼,小处着手

      每件小事都值得我们努力去做,皮尔·卡丹曾经对他的员工说过:“如果你能真正地钉好一枚钮扣,这比你缝出一件粗制的衣服更有价值。”从事不起眼的工作,其实正是大事业的开始,能否有这样的理念,意味着一个人能否有长足的发展。

      一个程序员怎样能够成长为架构师,首先他必须是一个优秀的程序员,他能够写出结构优美、表达简洁清晰的代码,小可比大、大可比小,他才有能力对大系统进行架构的合理设计。

      大处着眼、小处着手,精益求精、追求完美是优秀的软件工作者的成功之路。大处着眼要求你要有整体思想、形象思维、胸怀全局,小处着手要求你认真对待每个细节,深刻掌握和灵活运用规则,执行规范,勇于重构,不断改进,努力写出好代码、优秀的代码、优美的代码。

    树立你宏远的目标,但首先认真踏实地做好你身边的每件事。

1.2 破窗与童子军军规

      破窗和童子军军规的故事你可以其他方式去了解。

      我们要求软件开发过程要避免恶性循环,形成良性循环。在开发过程中要认真贯彻规范,有违犯规则的任何事情发生时必须及时纠正,每个人在创建或维护代码时都有责任使之更加整洁、清晰,包括对不合理的结构进行梳理,对不恰当的命名进行重构,职责不单一(臃肿)的类或方法进行分解,对代码中稀奇古怪的“魔法数字”进行治理。

      为什么提军规呢,因为军队最讲团队精神,代码不仅是程序员个人的脸面,同时它更代表一个组织的品质,每个人都要为这个品质的提高和荣誉努力,在软件系统中短板效应非常明显,一个Bug可以使整个系统坍塌,所以记住童子军军规,记住我们是一个整体。

      破窗是说一件很小坏事儿,如果不加控制的话,也会演变成严重的事件。

      童子军军规中有条规定,当你离开一个地方的时候,要让它比你来的时候更整洁干净。这样的话,童子军扎营的地方会越来越干净。当程序员开发或维护一组代码时,如果他能够使代码更加清楚整洁,那么软件系统就会越来越结构优美了。

你可能感兴趣的:(编程规则 - 1 概述 -- 帮助你成长为优秀的程序员 杰出的软件工程师、设计师、分析师和架构师)