某日看代码对代码可读性的思考

缘起

今天去看编译模块的代码,发现实在是看不进去.究其原因,就是设计得有些混乱.这提醒了我,很多时候写代码的时候不会注意到一些设计上的问题.在阅读别人代码的时候会非常清晰地表现出来.其中有一些典型的问题.

命名之设计模式

比如使用了某种设计模式,但是命名却没有符合那个设计模式的规范.导致看了代码许久,才反应过来:"原来这里使用了××设计模式啊".

命名之方法内容

经常有些方法叫:"build××".但是其实里面的内容远多于build一个实体对象.而是包含了很多查询.从宏观上来说可以这么做,比较确实最后是build了一个Obj.但是在看代码的时候就容易忽视这个方法的实现.这么做其实很不好.

风格混搭

一会用Spring注入,一会用init方法,一会用构造方法.总之,一个初始化过程经常在使用不同的方式去构建.当然,这里恐怕不是某一个人的问题,如果项目参与的人数多了一些,就容易发生这种情况.

调用链路过长

这个问题特指由于功能本身的迭代.导致一些调用链路越来越长.而实际上有些类本身没有解决什么问题.

原文地址:https://www.cnblogs.com/dsj2016/p/9195942.html

时间: 2024-10-24 10:28:32

某日看代码对代码可读性的思考的相关文章

不仅学习代码,也要学会思考

这是一个人人都在学习编程的时代: [合肥开源IT教育][开源培训][php培训][开源教育][开源IT教育培训][合肥php培训]Code.org请了比尔·盖茨,马克·扎克伯格和克里斯·波什等这些名人,来告诉你,每个人都可以编程:CoderDojo’s在各个国家悄然兴起:在英国,编程已经是各个年级学生的正式课程.我认为这里有个误区.别误会我——如果每个人都会一些编程知识,这个世界当然会变得更好——但是学会写代码不应该是我们的目标.计算机和程序只是一个工具,是一种达到某种目的的方法.真正的目标应该

[2014.5.18][SuperPixel] 也看Greg.Mori.代码的配置与执行

SuperPixel最初由Xiaofeng Ren提出(ICCV 2003),但我在网络上尚未找到有关这个最初想法的源代码:比较容易获得的倒是Greg Mori(CVPR 2004,ICCV 2005)基于Xiaofeng Ren算法做的代码https://www.cs.sfu.ca/~mori/research/superpixels/.代码包分为32bit版和64bit版. 这个代码用到了C与M混合编程,并非是拿来即可运行的,在代码和matlab的配置上还是有一定需要注意的问题. 搜索了下,

为什么学习C语言这么久,看的懂代码,做不出题没项目

我看得懂别人的程序,可是我自己却写不出来,我应该怎么办啊?你了解这些嘛? 你只是能从别人书写的代码知道每一步都做些什么吧? 你明白别人的解题思路吗? 你知道别人为什么要用那样的算法吗? 如果你看着题目,你能写出实现同一功能的代码吗? 你能知道别人在写这个程序的过程中会遇到什么样的问题吗? 你能在看了别人的程序之后写出比他好的代码吗? 你能用另一种算法写出实现同一程序的代码吗? 你真的能看懂别人的程序吗?创一个小群,供大家学习交流聊天如果有对学C++方面有什么疑惑问题的,或者有什么想说的想聊的大家

个人博客作业-Week2 (代码规范, 代码复审)

代码规范: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 编码规范它包含了代码格式,还包括了编码风格和其他规范,通常涉及:缩进.空格使用.Tab使用 注释.命题习惯.代码行长度和语言特点风格,从而使大家能够很方便得互相阅读对方的代码从而促进 团队中的沟通与交流.不是浪费时间. 2.我是个艺术家,手艺人,我有自己的规范和原则. 艺术家的表现层次如果只是在规范上面,显然不是个优秀的艺术家,通过大家都容易接受的方式可以 让自己的创造力更好得表现出来. 3.规

Java Core 学习笔记——3.char/Unicode/代码点/代码单元

通用字符集(UCS) UCS是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所制定的标准字符集. UCS包括了其他所有的字符集(包含了已知语言的所以字符). ISO/IEC 10646定义了一个31位的字符集(首位恒定为0,占用4字节). Unicode(万国码.国际码.统一码.单一码) 编码方式: Unicode编码空间从“U+0000”到“U+10FFFF”(共1112064个码位),Unicode的编码空间划为17个平面,每个平面包含216(65536)个码位.17

通过限时写代码,优化代码的方式。

1.通过限时写代码,优化代码的方式. 1.containerView ->frame:self.window.bounds containerView.frame = self.window.bounds 初始化窗口跟window一样大 2.命名:View:containerView label:userNameLabel 3.内存管理:1.View ->alloc —>对应着有一个release 4.window的内存管理: 1.把strong改为retain 2.重写dealloc方

tinyMCE插件开发之插入html,php,sql,js代码 并代码高亮显示

作者: 字体:[增加 减小] 类型:转载 前几天,觉得blog的插入代码不够好用.于是,将sina的html编辑器更换为了tinyMCE.并且开发了一个简单的插入代码的功能... 下面就是我开发的过程. 首先,我的 tinyMCE版本是 Version: 3.2.7 (2009-09-22) .下载地址 http://www.jb51.net/codes/17198.htmltinyMCE插入代码,需要调用 tinyMCE的 tinyMCE.execCommand('mceInsertConte

eclipse 代码清理 代码格式化 代码注释

Code Style包括两个方面:代码清理,代码规范化.代码清理可以参考: http://www.ibm.com/developerworks/cn/opensource/os-eclipse-clean/ 代码清理过程: 进入eclipse菜单: Window > Preferences > Java > Code Style > Clean Up,点击界面上方的Import,在弹出框中选择位于eclipse安装 路径下的eclipse/cleanup-profile.xml,点

我的大脑被挖矿代码搞的不能好好思考了

我被攻击了 个人服务器去年底最后两天被攻击了,因为一些事情拖着没来得及处理,今天实在忍不住了,记录一下被攻击后发现以及修复的过程. 2019-12-30 23:39:44 云盾预警访问恶意IP 178.170.189.5 这一次预警中有一个关键字"kdevtmpfsi" 2019-12-31 04:19:19 云盾预警矿池通信行为 178.170.189.5 kdevtmpfsi 如何找到根源 kdevtmpfsi 伪装的挺好,因为它和一个系统进程的名字非常相似 kdevtmpfs ,