如何写出高质量代码——站在巨人的肩膀上

  • 高质量代码的三要素:可读性,可维护性,可变更性
    • 可读性强
    • 可维护性:适应软件在部署和使用中的各种情况
    • 1.3 可变更性:因需求变化而对代码进行修改

牛顿曾经说过:如果说我看得比别人更远,那是因为我站在巨人的肩膀上。这句话虽然是调侃别人的话,但是牛顿的成就也的确来源于对之前科学巨人的继承,这个巨人就是伽利略。如何写出高质量代码,异曲同工,需要多多学习先贤的优质代码,多运用内置函数/模块等,多读多写多学习。

高质量代码的三要素:可读性,可维护性,可变更性

可读性强

  • 不要编写大段代码
  • 将段落封装成一个又一个函数
  • 在编写代码的工程中养成不断重构的习惯
  • 当一个函数的代码行数达到15-20行,开始考虑是否需要重构代码。
  • 一个类不应当有太多的函数,函数过多要考虑分为多个类,一个包也不应该有太多的类
  • 参数方法名等规范:new/add , edit/mod , del , find/query
  • 释义名称:get开头的函数仅仅用于获取类属性
  • 必要的注释很重要!!!

可维护性:适应软件在部署和使用中的各种情况

  • 代码不能写死(路径为相对路径 or 通过属性文件修改 )
  • 预测可能发生的变化
  • 将某些条件设置为可配置的,需要必要的注释

1.3 可变更性:因需求变化而对代码进行修改

  • 提高代码的可复用性
  • 利用设计模式提高可变更性:经典的32个模式
  • 父类,common类,反射等;

代码质量评价:低耦合高内聚

结合高质量代码的评价标准去反推着写出高质量代码,以及多研读前辈的高质量代码,适当的运用内置模块,函数等提升代码简洁性及效率。

如何写出高质量代码——站在巨人的肩膀上相关推荐

  1. 小白程序员怎么由量变到质变写出高质量代码

    小白程序员怎么由量变到质变写出高质量代码?很多老程序员从事开发多年,有这样一种感觉,查看一些开源项目,如Spring.Apache Common等源码是一件赏心悦目的事情,究其原因,无外两点: 1.代 ...

  2. 如何才能写出高质量代码

    提醒:在发布作品前,请把不需要的内容删掉. 你是否曾经为自己写的代码而感到懊恼?你是否想过如何才能写出高质量代码?那就不要错过这个话题!在这里,我们可以讨论什么是高质量代码,如何写出高质量代码等问题. ...

  3. 从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力?

    文章目录 如何评价代码质量的高低? 最常用的评价标准有哪几个? 1. 可维护性(maintainability) 2. 可读性(readability) 3. 可扩展性(extensibility) ...

  4. 写出高质量代码的10个Tips

    7 条写作原则如下: 让段落成为写作的基本单位,每个段落只说 1 件事情: 省略不必要的词语: 使用主动式: 避免连串的松散句子: 把相关内容放在一起: 多用肯定语句: 善用平行结构: 对应的,在编码 ...

  5. Java基础知识(一),打好基础才能写出高质量代码

    前沿:不管工作多久,基础永远是最重要的,好多大厂看的就是基础好不好,所以写代码的同时,基础知识还是要去理解和记忆的,坚持每天来看一点 Java基础.语法: java面向对象的特征有哪些方面? 1.抽象 ...

  6. 由量变到质变 写出高质量代码

    本文由于总结<阿里Java开发手册>.<用友技术review手册>及个人Java开发工作经验,并结合这半年来的源码阅读经验进行编写.回顾那些写过的 读过的代码,回顾自己. 第一 ...

  7. deletefile失败 代码5怎么办_Go语言高级窍门与技巧,看完你也能写出高质量代码...

    在阅读这篇之前,我希望你已经知道如何做表格驱动的测试以及使用 interface 进行 模拟 (mock)/ 桩 (stub) 注入.这里是一些窍门: 窍门 1. 不使用框架 来自 Ben Johns ...

  8. 如何在面试时写出高质量的代码

    摘要:有些程序员由于平时没有养成良好的编程习惯,在面试时写出的代码质量不高,最终遗憾地与心仪的公司和职位失之交臂.如何在面试时能写出高质量的代码,是很多程序员关心的问题. 程序员在职业生涯中难免要接受 ...

  9. 如何才能写出“高质量”的代码?

    作为一个已经写了十几年代码的程序员,做好软件不是全部围绕代码而展开,换句话讲一个程序员的程序员优秀不仅仅体现在代码上,更要有内在的编程思想说的层次再高深点就是框架思想.很多初学者都会存在很多疑问,觉得 ...

最新文章

  1. python如何将视频流实时传输到手机?(有问题,一次只能被一台访问)
  2. asp.net 4.0 新特性(翻译)
  3. Oracle .事物,提交,回滚
  4. 基于ProtocolBuffer和ysocket的Swift即时通讯服务器搭建
  5. SSH框架整合截图总结(三)
  6. Spark Architecture
  7. 2000-2019全国各省分品种能源消费量
  8. 《Java从入门到放弃》JavaSE入门篇:异常
  9. linux下启动tlq命令,tlq tonglink/q 常用管理方法
  10. CF633H Fibonacci-ish II(莫队+线段树)
  11. 吉首大学2019年程序设计竞赛(重现赛)A:SARS病毒(找规律 or 推公式+欧拉降幂+快速幂)
  12. 那些年,Linus torvalds大神喷过的技术
  13. C++11(及现代C++风格)和快速迭代式开发 -- 刘未鹏
  14. 打印机无法双面打印处理办法
  15. 【CSDN下载】下载热门资源一周精选
  16. linux定时任务每两天,linux定时任务
  17. MySQL 判断是否周末
  18. 【线性代数】矩阵的基本概念和运算性质
  19. CANoe.DiVa 操作指南 -TP层测试
  20. linux lvm 8e下继续划分分区,linux下LVM学习_逻辑卷管理

热门文章

  1. MySQL Binlog 介绍
  2. 英语单词学习 - 记忆版(English Vocabulary):Clothes Vocabulary:List of Clothes and Accessories in English
  3. java虚拟机类文件结构!
  4. 千锋教育——技术纯享丨威哥聊高并发场景下反向代理技术:Nginx
  5. Adobe推出离谱收费!将对上万种颜色收费、每年599元,不掏钱特定颜色直接变黑
  6. Flutter 自绘制 Widget
  7. 小数换分数计算机在线,小数换算分数(分数转换小数必背表)
  8. 【基于机器学习的垃圾分类监控系统】
  9. 07-C++学习笔记-函数
  10. tpc-ds 性能测试