助你成长为优秀的程序员 杰出的软件工程师、设计师、分析师和架构师
编码规范往往只是对具体编程的格式及细节要求进行规定,但对于提高软件人员编程能力而言,编程规则更具有价值,下面将我的一些观点和想法提出来供大家参考,也希望大家批评指正,谢谢!
1 概述
编程是一个软件工作者的基本能力,怎样能够成为一个优秀的软件工程师,怎样编写出优雅的程序,漂亮、完美地解决问题,实现需求,将是每一个软件人员永远的追求。
程序员都希望自己将来成为设计师、架构师,但小可比大、大可比小,局部的小程序设计不好,就奢谈架构设计了,相反如果你程序设计的非常清晰、结构优美,你离架构师也就不远了。因此请你胸怀远大目标,从眼下做起吧!
本文试图指导你实现这样的夙愿,使你在编程的过程中逐步成长、成熟,成为一个优秀的软件工程师。
本文即不是具体的软件编程规范(具体的软件编程规范亦是基于此文的基本规则制定),也不是软件架构及设计指导书,它介于具体编程与系统架构之间,虽不明确细节,但注重编程的基本原则和规程,不限于语言(尽管示例采用java),可适用于任何面向对象的编程,其中大部分规则亦适用于非OO编程。
要求所有软件开发人员必须认真、反复阅读此文,深刻体会每一个规则的内涵和外延,并在开发过程中认真贯彻、深入实践,做到:
知行合一,努力实践,勇于重构,追求完美。
代码是程序员的脸面,代码是程序员的作品,代码是程序员的荣誉,代码是程序员的信用,优秀的软件工作者,首先必须是一名优秀的程序员。
你努力搞懂这些规则,并运用这些规则,他将帮你成就优秀。
本文只是简略地叙述这些规则,为了切实地弄清楚它们的真实意义,你不仅需要实践,还需要通过其他方式去学习体会,例如学习相关书籍丰富知识面,请教、交流都是辅助手段。
编程是一门实践科学,你需要实践-学习-总结-提高,再实践-再学习-再总结-再提高,这是一条唯一的成功之路。
编程是一种创造性工作,能够满足你创造的愿望,让你的灵感放出灿烂的光芒,让你的思想和创意能够落地生花,令你在工作中收获成功和快乐。
编程是门艺术,它能够展示结构之美、构造之美、表达之美,能够给作者和读者带来喜悦、舒畅、优雅等高层次的精神享受,它有时像优美的诗歌,有时像设计精妙、蕴含人类智慧的精密装置,给人带来深层次的触动和愉悦。
让我们用轻松、愉快、期盼的心情驰骋在编程的道路上吧,祝愿你一路收获成就、收获喜悦、收获健康;更希望你的作品能够为他人带来快乐。
1.1 大处着眼,小处着手
每件小事都值得我们努力去做,皮尔·卡丹曾经对他的员工说过:“如果你能真正地钉好一枚钮扣,这比你缝出一件粗制的衣服更有价值。”从事不起眼的工作,其实正是大事业的开始,能否有这样的理念,意味着一个人能否有长足的发展。
一个程序员怎样能够成长为架构师,首先他必须是一个优秀的程序员,他能够写出结构优美、表达简洁清晰的代码,小可比大、大可比小,他才有能力对大系统进行架构的合理设计。
大处着眼、小处着手,精益求精、追求完美是优秀的软件工作者的成功之路。大处着眼要求你要有整体思想、形象思维、胸怀全局,小处着手要求你认真对待每个细节,深刻掌握和灵活运用规则,执行规范,勇于重构,不断改进,努力写出好代码、优秀的代码、优美的代码。
树立你宏远的目标,但首先认真踏实地做好你身边的每件事。
1.2 破窗与童子军军规
破窗和童子军军规的故事你可以其他方式去了解。
我们要求软件开发过程要避免恶性循环,形成良性循环。在开发过程中要认真贯彻规范,有违犯规则的任何事情发生时必须及时纠正,每个人在创建或维护代码时都有责任使之更加整洁、清晰,包括对不合理的结构进行梳理,对不恰当的命名进行重构,职责不单一(臃肿)的类或方法进行分解,对代码中稀奇古怪的“魔法数字”进行治理。
为什么提军规呢,因为军队最讲团队精神,代码不仅是程序员个人的脸面,同时它更代表一个组织的品质,每个人都要为这个品质的提高和荣誉努力,在软件系统中短板效应非常明显,一个Bug可以使整个系统坍塌,所以记住童子军军规,记住我们是一个整体。
破窗是说一件很小坏事儿,如果不加控制的话,也会演变成严重的事件。
童子军军规中有条规定,当你离开一个地方的时候,要让它比你来的时候更整洁干净。这样的话,童子军扎营的地方会越来越干净。当程序员开发或维护一组代码时,如果他能够使代码更加清楚整洁,那么软件系统就会越来越结构优美了。
助你成长为优秀的程序员 杰出的软件工程师、设计师、分析师和架构师相关推荐
- 编程规则 - 1 概述 -- 帮助你成长为优秀的程序员 杰出的软件工程师、设计师、分析师和架构师
作者:Jon Ji 2011/8/20 编码规范往往只是对具体编程的格式及细节要求进行规定,但对于提高软件人员编程能力而言,编程规则更具有价值,下面将我的一些观点和想法提出来供大家参考,也希望大家批评 ...
- 作为程序员的他凭什么成就年薪100W架构师?
08年毕业,工作10年,作为程序员的他凭什么成就年薪100W架构师? 享学课堂online 2019-05-30 13:56:31 华为能发展如此壮大,能直面一个超级大国动用国力来对其打压仍屹立不倒, ...
- 《演讲之禅》助你成长为一名合格程序员
"程序员"这一职业在大部分人心中就是坐在电脑前,一言不发,低头敲击键盘的码工.实则不然,今日只会低头做事.不善言辞的程序员已经不能适应行业发展的需求. 程序员也需要表达,并且要清晰 ...
- 适合程序员的画图技法,不再是“PPT”架构师
程序员不是写代码的么,为什么需要画图?很多程序员会认为写好代码就好,画好图有什么用?程序员成为架构师后是不是就天天画架构图,成为了所谓的 PPT 架构师?如上这些疑问,好几年前也曾让我困惑过. 在一篇 ...
- 面试加分项!程序员工作2年月薪12K,附架构师必备技术详解
最近看到群里看到一个女生,讲述了她从开始选择Android,经过非常努力的学习和挣扎,然而最后面对当前的环境却不得不放弃.看完以后真的非常替她感觉惋惜,如果早几年入行可能结果会比现在好很多,但可惜,这 ...
- 软件工程师 级别 职称 评定 从见习程序员 到 主任软件工程师
转载了一篇职称评定的参考,粗略评估了一下本人 Level 4 软件工程师,继续努力升级~ 一.见习程序员(AP:assistant programmer) 1.计算机相关专业毕业:英语通过国家四级. ...
- 程序员怎么在短时间内从菜鸟到高级架构师
(向贴吧大神致敬,个人觉得里面我看过的书籍挺好的,献给新手) 面试一般涉及类容: 说道面试及笔试题,一般不外乎Java语言基础.Java语言高级.UML和OO和模式.数据库.测试.数据结构和算法.管理 ...
- 不认识java代码_程序员进阶:优雅的代码对于一个架构师的重要性
lison:复旦大学工程硕士,专注技术十年,产品控.代码控,拥有丰富的项目经验,主持研发了多个成功上线的大型互联网项目.热爱互联网,热衷于各种web技术,精通JAVA.J2EE和前端开发,擅长互联网高 ...
- 成为一名优秀的程序员基本要素
职业要求 一般的程序员都有四年的在专业领域的学习,需要一个在程序领域的学士学位获得者,不论是数学方面的还是工程方面的都是可以的. 程序员 大约有20%的人在这一领域的计算机科学和工程学拥有更高的学位. ...
最新文章
- 基于tcp和udp的socket实现
- 关于form标题提交的应用技巧(-)
- 2021年春季学期-信号与系统-第四次作业参考答案-第一小题
- od 追踪_裁判员行为规范【基本功】——追踪裁判违例宣判练习 /五秒违例
- 农业谋定投资-农业大健康·万祥军:解读胡春华补三农短板
- Asp.Net数据库编程-10条最优方法[翻译]
- 【Unity】第8章 GUI开发
- 国际主流云厂商生存画像:三大赛道愈发清晰
- python imshow彩色_python中plt.imshow与cv2.imshow显示颜色问题
- mysql sys 数据库_mysql sys 数据库
- Matlab标准语音库 Timit Database
- 智能手表开发API接口
- c++ 传智课件_沪科版初中物理九年级全册第二节 科学探究:物质的比热容公开课优质课课件教案视频...
- 转 CSS 打印:http://eblog.nenu.edu.cn/user1/easter/archives/2008/1864.html
- Android集成腾讯X5WebView
- vc植物大战僵尸修改器简单源代码
- 岩土工程专业书籍推荐
- 炫酷的ViewPager翻页动画
- spider_study 1
- 电子邮件服务的配置和使用