很多同学戏谑“把代码写烂点,你在公司就不可代替了”。其实大家都知道不太可能。曾经胖哥和同事花了一周时间只为重构了一个极其复杂简直是混淆代码的方法,所以不要低估公司重构代码的决心。那么如何在项目中避免一些质量比较低的代码。

Pull Request

其实我们可以借鉴开源项目的代码管理。开源项目除了通过声明一些规约来约束贡献者之外,还使用Pull Request的方式来协作。

Pull Request

代码贡献者需要发起合并的请求,项目的管理人员会指定审查人员来对合并请求的代码进行Review

如果发现不合理的地方会标记出来反馈给贡献者;同时测试人员也会对代码进行测试。如果代码有质量问题就会被打回去完善,直到合规才能被合并,所以治疗“烂”代码也是有办法的。

质量检查工具

除了通过协作方式以外,我们还可以借助于一些工具来检测代码的质量。人和动物最大的区别就是会使用工具,逐行去Review是很费力费神的,因此一些静态代码检测工具就诞生了,比如findbugscheckstyle等工具,来纠正我们的坏习惯,后来又出现了代码质量管理平台来保证大型项目的代码质量,例如熟知的SonarQube,甚至代码质量检查已经嵌入了持续集成流程中,当开发者发起提交时会对代码中的缺陷进行跟踪报告。

SonarQube 仪表盘

有各种指标来跟踪你的代码质量,你还想提交“烂”代码?

如何提高代码质量

经常有人问我这个问题,提升的方法只有一个就是多写。很多同学喜欢去看视频、看教程,但是就是不肯动手去写一个 DEMO。一定要多写多分析,写完用工具扫缺陷,反复提炼你的代码,努力提高自己代码的层次感和可读性,写出高质量的代码只是时间问题。

IntelliJ IDEA的这个功能真是好用

2021-03-30

忙里偷闲又把自己的JWT实现改进了一下

2021-03-29

牛批!全自动发布jar到Maven中央仓库

2021-03-25

把代码写烂点,你在公司就不可代替了?相关推荐

  1. 遗留代码写的烂,我能怎么办?

    作者 | 王晔倞,责编 | 郭芮 头图 | CSDN 下载自视觉中国 上周四,我团队里的某技术经理在一次代码评审会上跟一位开发同学发生了争吵,而事情的起因是某段看似合理,却存在明显性能问题的代码片段. ...

  2. 当写烂代码的人离职之后....

    半个月没有写blog了,正好是春节假期. 静下来,想想自己写的代码,真是有些汗颜,更有些惶恐. 加油吧~ 偶尔看到拉勾网上的一篇文章,记录下来,鞭策自己: 作者:蛋疼的AXB 来源:程序人生 休息一直 ...

  3. 写烂代码才是面向人民币编程的精髓

    俗话说得好:代码撸得好,搬砖搬到老.如果你不是程序员里的top 5%精英,高质量的代码与升职加薪,迎娶白富美的相关系数几乎为0,除了给你带来一种虚幻的优越感与满足感. 难道我们这么多年接受的教育是错误 ...

  4. 哈哈哈,这个教人写烂代码的项目在 GitHub 上火了...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 如果说到什么是好代码,我们肯定都能说出一堆规则,例如使用一致的格式 ...

  5. 《转》十种更好的表达“你的代码写的很烂”的方法

    如果你有一个同事,他写的程序与其说是代码,不如说更像希腊神话中女妖美杜莎的头发,你当然不能熟视无睹,你应该做出一些反应,但你可选的合适的反应方式并没有多少:自己默默的帮他整理清楚.向上级抱怨.向其他同 ...

  6. 反其道而行:教人写烂代码的开源项目

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 如果说到什么是好代码,我们肯定都能说出一堆规则,例如使用 ...

  7. 直击面试现场:神级程序员仅100秒,60行代码写出俄罗斯方块,成为全公司焦点!...

    小编我今天逛论坛看到一位HR帖子直播公司面试情况,该公司是做棋牌APP的,现在正在招聘前端工程师和运营人员,HR直播的是前端这块的,有写游戏的也有做网站项目的,写特效的都有很多,但是这位HR却看上了一 ...

  8. 当程序员说“这代码写的可真烂”,他们的意思是“这烂代码不是我写的”。而当他们说这段代码有些“小问题”时,很可能这代码是他们自己写的...

    英文原文:What Programmers Say vs. What They Mean 你是否听到过同事说"这段代码不言自明"?你的同事的这句话的实际意思是这段代码不需要写注释. ...

  9. 优雅!用了这两款插件,我成了整个公司代码写得最规范的码农

    同事:你的代码写的不行啊,不够规范啊. 我:我写的代码怎么可能不规范,不要胡说. 于是同事打开我的 IDEA ,安装了一个插件,然后执行了一下,规范不规范,看报告吧. 这可怎么是好,这玩意竟然给我挑出 ...

  10. 灵魂的拷问 怎么将代码写得让人无法维护?

    -这文章蛮有意思的,果断选择分享+散播+推广 三连- 程序命名 容易输入的名字.比如:Fred,asdf 单字母的变量名.比如:a,b,c, x,y,z(如果不够用,可以考虑a1,a2,a3,a4,- ...

最新文章

  1. 《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 五 NSDicionary + NSMutableDictionary...
  2. Beta冲刺随笔集合
  3. jquery zoom jquery放大镜特效
  4. 【c++】27.事件驱动、IO复用、sellect、poll、epoll三者的区别
  5. 导入Excel表里的数据时产生【定义了过多字段】,但有时又是成功的
  6. 几行代码,网盘链接提头来见!
  7. Oracle 每个session的限制,限制oracle普通用户能且只能kill自己的会话
  8. adb shell 书籍_开发必备---你应该知道的一些 ADB 命令
  9. Ribbon的权重负载均衡策略
  10. 负边距在布局中的使用
  11. 分布式系统理论(二):一致性协议Paxos
  12. 单片机之步进电机速度控制篇(三)
  13. 【不读唐诗,不足以知盛世】盛唐诗坛的璀璨明星们
  14. 配置管理系统和整体变更系统有什么区别与联系
  15. 计算机原理视频罗克露优酷,5IO系统-2中断-罗克露计算机组成原理课件(绝对与网上视频教程同步)...
  16. java随机点名_javascript实现的一个随机点名功能
  17. 绕过IceSword文件检测的Trojan.Win32.Mnless.zpc/ojj6erv.sys
  18. css层叠排版,请收下这72个炫酷的CSS技巧
  19. uniapp网易严选项目
  20. 精确查找top k和非精确查找top k

热门文章

  1. linux中如何查看设备的设备号,查看 linux 设备号信息
  2. 游戏引擎设计 - 物理(Crapell Game Engine Design - physic)
  3. PHP微信公众号开发之:获得和缓存access_token,原理及代码
  4. 嵌入式技术可以做哪些产品
  5. shap 模型_使用shap loss值调试监控模型
  6. app开发入门篇-近期uniapp ; 封装request
  7. vue + Electron 制作桌面应用
  8. iNode 校园网登录一直处于“获取 IP 地址”状态
  9. 一个屌丝程序猿的人生(二十七)
  10. bootstrap table合并单元格