提交代码前问自己七个问题!
为什么写出好的代码是如此之难? 为什么经过了这么多年的努力,有这么多的最佳实践/工具/方法学 (例如:瀑布式开发,迭代开发,Scrum , XP, 单元测试,TDD,持续集成,UML,Code Review ,IDEA, Eclipse...... 这个名单可以非常长),我们还是无法创造高质量的软件?
有市场的原因,需求的原因,工期的原因,也有程序员的原因。
Bozhidar Bozhanov 在他的文章《7 QUESTIONS TO ASK YOURSELF ABOUT YOUR CODE》 (点击阅读原文可查看)提出了7个问题,我觉得很有价值, 我把他翻译了一下,分享给大家:
1. 代码是正确的吗?
是不是实现了规格说明书中的需求?如果没有规格说明书,你自己是不是付出了足够的努力来找出软件期待的行为, 并且把它测试了一遍? --- 最好是自动的,至少也得有手工的测试。
2. 代码是完整的吗?
不管你的需求文档中写没写,你的代码是不是仔细考虑了边界条件? 很多边界条件都是技术相关的:连接断开,内存不足,硬盘已满等等。
3. 代码是安全的吗?
它是不是遵循了安全的最佳实践,是否验证了输入数据,防止了数据注入? 它是否经过了对已知攻击的安全测试? 安全当然不仅仅是代码, 但是代码的确可以引入不少安全漏洞。
4. 代码是可读、可维护的吗?
其他人是不是可以轻松地理解你写的代码? 有没有适当的注释来描述一小部分代码在一个大场景中的位置?有没有把代码拆分成小的,可以读的单元。
5. 代码是可以扩展的吗?
代码是否允许添加新的功能而不破坏老的代码? 是不是参数化的,或者可以配置的? 有没有使用恰当的设计模式来支持扩展?
6. 代码是不是高效的?
在高负荷下能否工作正常? 是否避免了一次性读入大量数据到内存中,是否适当地使用了异步的处理?
7. 有没有一些让你可以自豪的地方?
你觉得你的代码会让你很自豪,还是说你想把它藏起来不让别人看到?
大部分的代码都是平凡的,不是光芒四射的,但是你的代码是不是展示了一些比较好的实践?你是否愿意把他放到GitHub上去?
其实这些问题不仅仅要在提交代码之前思考,在Code Review的时候也完全可以借鉴。
高质量的软件依赖很多因素,程序员可以说是最重要的一环。我觉得经常问问自己这些问题并且采取行动,你最终会变得与众不同。
提交代码前问自己七个问题!相关推荐
- 你提交代码前没有校验?巧用gitHooks解决
大家好,我是若川.最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.已进行四个月了,很多小伙伴表示收获颇丰. 想学源码,极力推荐订 ...
- 提交代码前没有用svn st命令(只用了svn diff), 差点踩坑!
我还是建议大家在Windows上通过对比工具来提交程序, Windows上一切可见, 一目了然啊. 文件状态用颜色区分得一清二楚. 当然, 有的时候, 我们也可以在linux下提交程序. 最近我直接在 ...
- git提交代码会报 vue-cli-service lint found some errors. Please fix them and try committing again
转载:https://blog.csdn.net/j15533415886/article/details/92003047 转载:https://blog.csdn.net/qq_42180156/ ...
- git提交代码报 vue-cli-service lint found some errors. Please fix them and try committing again
原因: 问过度娘在提交代码的时候,它会在提交代码前运行做代码风格检查,如果代码不符合相应规则,则报错. 解决: 直接把pre-commit文件删除,进入项目.git文件夹-hooks-删除 .如何你的 ...
- 用Prettier和ESlint来统一提交代码
2019独角兽企业重金招聘Python工程师标准>>> 为什么使用 很遗憾,JavaScript没有官方的代码风格.业界有一些流行的代码风格,比如Airbnb和Standard.使用 ...
- git clone 某次提交前代码_git提交代码常用命令
1.在网页上fork中心仓到自己私有仓 2.本地clone自己的私有仓:git clone 自己的私有仓地址 3.本地添加中心仓分支地址: git remote add upstream ssh:// ...
- 25,000,000行的代码就问你敢不敢动?!
你经历过绝望吗? 近日,Hacker News 上发起了一个名为"你见过最糟糕的代码是什么?"(https://news.ycombinator.com/item?id=18442 ...
- GIT 这么好用,为什么还是有人不知道怎么用它提交代码?
客户端代码管理工具的变迁: 从 SVN 到 GIT 截止目前,新版的 APICloud Studio 2 仍然处于公测期.APICloud Studio 2 的代码管理客户端,由 SVN 改为了 GI ...
- 25,000,000 行的代码就问你敢不敢动?!
导读:你经历过绝望吗? 前一段时间,Hacker News 上发起了一个名为"你见过最糟糕的代码是什么?"的话题,引发了无数网友回忆讨论,甚至还再次让软件巨头 Oracle 登上头 ...
最新文章
- Hyperledger Fabric SDK Go构建第一个应用
- Spring JDBC整合
- .NET Core中使用结果过滤器ResultFilter统一结果返回封装
- 计算机检测维修与数据恢复课件,2017年全国职业院校技能大赛中职组“计算机检测维修与数据恢复”赛项说明会ppt课件.ppt...
- mysql脚本解读_一篇很好的关于mysqld_safe脚本源码解读的文章,收藏了!!
- java keytool nginx_java 自签名证书转 nginx 所需证书
- Word2019 mac 16.46beta更新(兼容big sur,适配M1)
- 多线程导出excel高并发_怎么理解分布式、高并发、多线程
- 51单片机入门教程(5)——定时器中断
- NGINX 笔记 - GeoIP 限制策略配置
- 【明解C语言】之函数详解《上篇》
- 读《因果的真相》第八、九章摘抄笔记
- Juniper防火墙之ICMP-Ping
- 关于对游戏帧率的学习
- Antd Vue 表单生成快速开发指南,内附强大的表单设计器
- 程序猿生存指南-22 分手快乐
- Java WEB开发须知知识点---基础篇
- python是开源的跨平台编程语言_Python是一种跨平台、开源、免费的动态编程语言。...
- DELL EqualLogic PS4000服务器硬盘坏道修复过程
- 【经历】苹果企业账号申请记录,比想象中要简单