好的软件是怎么写出来的?

简介:
参加industriallogic的软件培训,有很多感触。

正像敏捷一样,一位创始人也说敏捷其实并不神秘,一个爱动脑筋的程序员做几年软件之后,自然会采用这些方法来改进工作效果/提高效率。确实也是这样。

软件培训内容也是这样,虽然很多问题,之前也思考过,也改进过,但在真正的工作环境中,看到很多code smell,也无能为力,只能麻木了。

参加一下这样的培训很有好处,对各种code smell/重构方法等进行了分门别类的系统介绍,还有精心设计的实战演练,和一些方法的演示,都非常有裨益。

概括一些我认为比较重要的经验:
1 代码是反复修改出来的。(我之前也有此体会,我觉得好的代码就是修改修改再修改才出来的,跟写文章是一样的。不过,事实上,软件公司可能并不这样认为,它可能觉得写完代码提交之后就不应该修改,如果修改说明质量不好,有些甚至采用强制措施锁库等,不允许修改。)

2 小粒度重构。(把重构分为若干小步,一次只走一小步,修改一点点之后立即运行测试用例,通过之后继续走。也成为baby step。不这样做,很可能无法做到随时运行用例,检查修改是否会破坏已有功能。)

3 用工具进行重构。(用工具效率会高很多,也不容易出错,熟练掌握这种套路之后,甚至可以放心的去对一些看不到懂代码做重构。难怪TW不懂业务,也能大刀阔斧的指导重构啊。由此看来,现在更多的倾向于补充系统用例,而不是重构,也有点保守了啊,当然安全非常重要,讲重构的也都强调有自动测试保障再重构。)

4 注释是smell。(最好的代码是非常简洁,本身代码就是自注释,无须额外注释的。)

5 长函数是smell。(长不是绝对长度,一个做软件的人,如果看一眼该函数,不懂它要干什么,那么就是长函数。)

6 注意写代码的层次。(写上层的东西,也就是接近用户的[比如类的使用者],那么它里面每句话都应该是面对用户的,用户无须弄懂内部原理也要能很容易看懂。真正的实现可能被封装在一个私有方法里面。这种思想在敏捷的story中也有体现,它要求story的描述要是用户都能懂的。这一点,我觉得也可以总结为“写代码要像写文章一样的写”,估计写文章,没有人会把文章写得别人看不懂吧?)











本文转sinojelly51CTO博客,原文链接:http://blog.51cto.com/sinojelly/225444 ,如需转载请自行联系原作者
相关文章
|
8月前
|
缓存 小程序 前端开发
赢麻了!smardaten闷声干大事,竟然用无代码开发了复杂小程序!
赢麻了!smardaten闷声干大事,竟然用无代码开发了复杂小程序!
|
4月前
|
文字识别 NoSQL 物联网
分享55个C源码源代码总有一个是你想要的
分享55个C源码源代码总有一个是你想要的
31 1
|
4月前
|
设计模式 算法 Java
|
10月前
|
SQL Java C#
解读C#编程中最容易忽略7种编写习惯!
解读C#编程中最容易忽略7种编写习惯!
|
JavaScript Java 开发工具
【鸿蒙开发】不是吧~不用敲代码就能编程?
文章目录 前言 1.创建JS工程 2.创建 JS Visual文件 3.效果展示
【鸿蒙开发】不是吧~不用敲代码就能编程?
|
开发框架 缓存 监控
测试是否有必要看开发代码?如何能看懂?
测试是否有必要看开发代码?如何能看懂?
|
SQL 存储 监控
聊聊那些年遇到过的奇葩代码
无论是开发新需求还是维护旧平台,在工作的过程中我们都会接触到各种样式的代码,有时候会碰到一些优秀的代码心中不免肃然起敬,但是更多的时候我们会遇到很多奇葩代码,有的时候骂骂咧咧的吐槽一段奇葩代码后定睛一看作者,居然是几个月以前自己的写的,心中难免浮现曹操的那句名言:不可能,绝对不可能。
聊聊那些年遇到过的奇葩代码
|
JSON JavaScript 前端开发
编写项目之前需要做点啥呢?
编写项目之前需要做点啥呢?
|
前端开发 小程序 IDE
「趣学前端」给不懂技术的朋友简单演示,代码是怎么被编写出来的
我身边不乏非程序员的朋友,对我的工作多多少少带点好奇心。突发奇想,准备了一个小功能,简单演示前端日常开发中的代码是怎么被编写出来的。
125 1
|
前端开发 计算机视觉 Python
代码报错还好说,源码报错才难搞!分享自己源码报错的解决过程!
代码报错还好说,源码报错才难搞!分享自己源码报错的解决过程!
90 0
代码报错还好说,源码报错才难搞!分享自己源码报错的解决过程!