谈谈代码质量问题
我们编写代码, 假如代码有语法错误,那么编译器将会拒绝通过编译, 假如代码语法正确, 那么编译器会通过编译, 因此, 判断代码是否编写正确, 可以拿代码是否能通过编译器编译作为衡量的标准。 我们编写的网站,也可以用访问的承受量来判断性能的好坏, 类似于每秒能承受一千次, 还是一万次, 或者是十万次, 都可以作为网站的性能指标。 另外,比如说一个算法的最坏时间复杂度, 是常数的, 还是线性的, 或是对数的, 都是算法性能好坏的衡量指标。 然而,代码写的是好是坏的定义,虽然不是凭喜好完全主观判断的结果,但也没有一个量化的衡量标准。你吐槽别人程序性能有问题或者代码逻辑有漏洞会出错都没什么问题。 但是, 如果去吐槽别人代码写的不好, 质量不行, 估计十有八九会遭到对方反唇相讥, 你凭什么说不好? 谁定的标准?这个就有点像厨师做菜, 只要这个厨师的水平不那么差, 那做出来的菜肯定有人夸赞, 但是也会有口味比较刁的顾客不喜欢,毕竟一样米养百样人, 每个人的口味都是不同的。 然而,对于厨师自己来说,他肯定也有一套进阶指导方针, 如何超越从前, 做出更美味的佳肴来符合更多人的味口。其实代码质量的好差和菜做的是否好吃从某种角度来说有些相似, 评价它们好坏与否肯定会带上一些主观色彩, 但是也有衡量的指标, 只是这种指标比较模糊, 比较难以琢磨罢了。
此外, 对于不明真相的领导来说, 代码质量好差是最无关紧要的事情了。 如果是网站访问速度慢, 影响到用户正常使用,明显是不能忍的,大棒子砸下来,程序员只能加班加点去优化。但是如果是代码质量有问题呢! 优化? 开什么玩笑, 大家都这么忙,需求都做不完, 哪有闲工夫去整这种没有成果产出的事情, 再说了, 现在代码跑的好好的,要是优化出事情锅谁来背?所以说,从技术实现本身以外的角度来看, 代码写的好坏与否的确是最无关紧要的事。
然而,在程序员的眼里, 代码质量又显得无比重要了, 烂代码总是让人深痛欲绝。 我们生活中有很多一交性的设备, 一次性筷子, 一次性杯子, 一次性套子, 但是却没有写完用过就扔的一次性代码, 写出来的代码需要长时间维护那是常态, 对于程序员来说维护旧代码所花的时候可能要多于生产新代码的时间, 因此, 代码质量对于程序员来说是无比重要的, 直接影响工作效率的因素。 但是正因为代码质量的界定是比较模糊和难以琢磨的, 所以掌握到其中的要决也是比较困难的, 怎么入门?如何精通?从来没有标准化的学习方案可以参照, 不同的人有不同的做法。 而且,关于代码质量的书籍,市面上数之不尽, 哪本好?哪本差?先看哪一本?再看哪一本? 都是没有确定性答案的。 学校里有教C++的, 有教Java的, 有教算法的, 有教数据库, 但是从来就没有教如何写的一手好代码的,为什么? 因为根本没有一套标准的方案可供参考使用。
想知道我最终想表达什么标新立异的观点吗? 哈哈,其实我什么观点也没有, 只是让你们看了一堆废话。 不过接下来,我想在这个公众号只写提高代码质量的文章, 并且把这个公众号的名字给改了, 改成「教你撸一手好代码」这个名字怎么样?不知道会不会太长了。
最后, 感谢你能耐心看到结尾,如果能顺便点下赞, 留个言, 或者分享到朋友圈, 那再下真的感激不尽。另外,如果你是单身女程序缓,那么可以留下你的微信号,有机会本人必当倾囊相授手把手教写代码。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android图片采样缩放功能实例代码
- Android开发中使用Intent打开第三方应用及验证可用性的方法详解
- Android 7.0开发获取存储设备信息的方法
- Android中默认系统的声音/大小修改和配置详解
- Android开发中计算器的sin、cos及tan值计算问题分析
- Android开发实现绘制淘宝收益图折线效果示例
- Android自定义View实现搜索框(SearchView)功能
- android 监听SD卡文件变化的实现代码
- Android监听手机短信的示例代码
- Android开发之图片压缩工具类完整实例
- Android6.0开发中屏幕旋转原理与流程分析
- Android中WebView的基本配置与填坑记录大全
- Android开发实现ListView异步加载数据的方法详解
- Android开发实现AlertDialog中View的控件设置监听功能分析
- 详解Android 语音播报实现方案(无SDK)