十届MVP大牛教你如何成为技术牛人,不,软件工匠!

中生代技术走进冰鉴科技,10届微软MVP朱永光老师带来了一场《如何成为技术牛人软件工匠》的精彩分享 。


朱老师作为一个写了20年程序的前辈,为我们分享了如何成为一名软件工匠师。在我们技术人的心目中,朱老师就是我们的偶像。


如何让一个技术人永葆年轻,不至于因为技术的进步而落伍,朱老师给出了一个肯定的答案。


那就是:我们应该稳打稳打,以提高成就感为目标,而非为了单纯的工作而工作。


同时老朱老师给我们着重推荐了一本书: 《软件工艺师:专业、务实、自豪》。


以下是朱老师在沙龙中的精彩分享视频实录


十届MVP大牛教你如何成为技术牛人,不,软件工匠!


十届MVP大牛教你如何成为技术牛人,不,软件工匠!

十届MVP大牛教你如何成为技术牛人,不,软件工匠!

十届MVP大牛教你如何成为技术牛人,不,软件工匠!


软件工匠宣言(Manifesto for Software Craftsmanship)

作为有理想的软件工匠,我们一直在身体力行,提升专业软件开发的标准,并帮助他人学习此工艺。

通过这些工作,我们建立了如下价值观:


不仅要让软件工作,

更要精益求精


不仅要响应变化,

更要稳步增加价值


不仅要有个体与交付,

更要形成专业人员的社区


不仅要与客户合作,

更要建立卓有成效的伙伴关系


也就是说,左项固然重要,右项同样不可或缺。


十届MVP大牛教你如何成为技术牛人,不,软件工匠!

所谓精益求精,就是你写出来的代码,3个月后、乃至3年后,自己和其他人也看得懂,也敢碰。


就是说,无论应用程序有多旧,开发者都能轻易理解其原理;程序的副所用都在明确掌控之中;测试用例的覆盖度很高,测试代码也写得比较可靠,程序的设计清晰而简洁,业务逻辑也都很好地表述在代码之中。


代码必须可维护,其行为也必须可预知。开发者必须知道修改某部分代码所产生的后果,这样一来,他们就不用再担心会把什么地方改错了。


为了完善程序,开发者必须敢于修改代码。以测试驱动的方式来开发程序,令设计保持简洁,并把业务语言表述在代码之中,可以最好地保持代码的整洁与精良。


十届MVP大牛教你如何成为技术牛人,不,软件工匠!

软件开发项目,大部分目的还是为了获取回报。


要持续提升软件的价值,就需要对软件不断进行优化,持续改善代码结构,令代码整洁、易于扩展、易于测试,并易于维护。


软件工匠应该保证:软件做得越久、做得越大,公司从中获得的收益就越多。在项目中添加新功能或修改现有功能的速度,应该和项目创设之初一样迅捷。


Bob大叔最先把这条纪律套用到软件开发上面,那就是:修改完代码时,应该把它整理得比修改前更干净。


要想编写能够持久运行的程序,必须首先关注软件质量。大型程序在开发出来几年之后,又重写一遍,这是相当不划算的。许多时候,决定重写程序的原因在于,继续维护下去的代价实在太高了。


反复做同一件事,却盼着能有不同的结果,这是精神错乱的表现。

——阿尔伯特·爱因斯坦

十届MVP大牛教你如何成为技术牛人,不,软件工匠!

既然类似于手艺人,那么最主要的工作之一就是带徒弟。三人行必有我师,师徒关系不是固定的,是相互学习的过程。


相互学习是提升开发者水平的最佳方式。撰写博客文章、为开源项目做贡献、公开发布代码、参与本地社团、与其他开发者结对编程——这些都是促进软件行业发展的好办法。

十届MVP大牛教你如何成为技术牛人,不,软件工匠!

不管作为雇员还是乙方,和雇主客户的关系不应该是单纯的雇佣关系。专业的开发者不应该是那种每天只顾按时上班、埋头工作,并按指令办事的人。


会积极参与项目并帮助其成功,会对需求提出质疑、理解业务、提出改进方案,也会与客户或雇主更有效率地合作。


软件工匠需要也想要以成功的项目来提升自己的名望,希望因自己的成就而自豪。交付高质量的软件并令客户满意,这对软件工艺师的职业生涯来说尤为重要。


把代码写好是特别关键的技能,然而它只是项目得以成功的因素之一。此外,还要帮助客户改进流程,为他们提供多种可行的方案,帮助他们删减毫无必要的规定,理解他们的业务领域,考虑他们所提出的需求是否真能提升软件产品的价值,给他们提供准确的信息和知识,帮助他们规划各项任务,帮助他们设定各任务的优先级,并参与那些虽与编码无关,但却对项目很重要的事务。所谓“建立高效的伙伴关系”,意思就是要给客户提供全方位的增值服务。


有些开发者认为,凡是与代码无关的事就不用操心,这样的开发者不是真正的软件工匠。

十届MVP大牛教你如何成为技术牛人,不,软件工匠!

十届MVP大牛教你如何成为技术牛人,不,软件工匠!

反例:

Ex1:程序员小张遇到了一个开发问题,很着急,想到了有几个群,于是到群里发了他的问题,坐等回答,发现没有人回答,就直接对话群主的QQ,群主也不回答,于是小张就搜索,突然搜到博客园有个帖子讲解了相关话题,他看完就给博主留言,我的邮箱是:XXXXX@qq.com,麻烦博主把源码发给我一下,谢谢。


Ex2:程序员小张学.NET已经工作3年了,工资还是10000,和公司提涨工资也没答应,想跳槽又犹豫,这时某个前辈对他说,你去看书吧,多看一些书,例如 《Visual C# 从入门到精通》,《CLR via C#》《Javascript权威指南》等等,于是小张买回来了, 随手翻了翻发现有些东西是他已经会的,有些看不懂的好像又用不到,而且书这么厚,要不要浪费时间去看呢?小张就这样反复纠结了半年,依然每天上班工作,下班LOL,偶尔还抱怨一下工资低。

十届MVP大牛教你如何成为技术牛人,不,软件工匠!

十届MVP大牛教你如何成为技术牛人,不,软件工匠!

小编建议

多写作练习,多给中生代投稿

十届MVP大牛教你如何成为技术牛人,不,软件工匠!

(全文完)


来源:中生代技术

原文链接

上一篇:对于大型公司项目平台选择j2ee的几层认识(二)


下一篇:DevOps:软件架构师行动指南3.3 服务运维功能