代码质量 重构 代码鸡汤
我们可以从大处着眼,参考代码质量评判标准,只要有 这段代码是否可读,可扩展性,可维护性,是否灵活,是否简洁,是否可复用,可测试。落实到具体细节。我们可以从以下几个方面来审视代码。
- 目录设置是否合理。模块划分是否清晰,代码结构是否满足 高内聚, 松耦合
- 是否遵循经典的设计原则和设计思想 例如 solid dry kiss yagni lod
- 设计模式是否应用得当?是否有过度设计?
- 代码是否容易扩展?如果要添加新的功能,是否容易实现?
- 代码是否可以复用?是否可以复用已有项目的代码或者类库?是否有重复造轮子
- 代码是否容易测试?单元测试是否全面覆盖了各种正常或者异常的情况
- 代码是否容易阅读?是否符合编码规范(比如命名和注释是否恰当,代码风格是否一致等)
重构的步骤:
第一轮重构:提高代码的可读性。
第二轮重构:提高代码的可测试性。
第三轮重构:编写足够用的单元测试。
第4伦重构:合理恰当的注释。
代码鸡汤
即便是非常简单的需求,不用水平的人写出来的代码,差别可能会很大。我们要对代码质量有所追求,不能只说凑活能用就好。花点心思写一段高质量的代码,比写100段凑活能用的代码,对你的代码能力提高更加有帮助
知其然知其所以然,了解代码优秀设计的演变过程。比学习优秀设计本身更加有价值。知道为什么这么做。比单纯地知道怎么做更加重要,这样可以避免你过度使用设计模式,思想和原则
设计思想,原则模式本身并没有太多“”“高大上”的东西。都是一些简单的道理,而且知识点也不是很多,关键还是锻炼具体问题具体分析的能力,吧知识点恰当用在项目中
高手之间的竞争都是在细节。大的架构设计,分层,分模块思路实际上都是差不多的。没有项目是靠一些不为人知的设计来取胜的。即便有,很快也能被学习过去。所以,关键还是看代码细节处理得够不够好。这些细节的差别累积起来,会让代码质量有质的差别。所以,我们想要提高代码质量,还是要在细节处下功夫。
1
当程序员时,我是属于那种勤勤恳恳型的员工,工作态度用认真来形容不为过,几乎是部门里最早到公司,又最晚下班的一个。而组员李工恰好相反,准时上下班。项目进度紧时,他也很少加班,偶尔也就加那么一两次,有时有问题要和他商量一下,都见不着人影了
2
从李工提交的代码看,他的代码写得很规范和优雅,大的不说,当从对一些控件进行封装处理,抽取出来作为公用,还做了拓展,方便给其他组员调用,要是模块中需要用到类似的,都不用自己开发,调用他的控件传递不同样式即可。就已经很让羡慕了。
而我所谓的工作时间长,其实大多时间是在重复地造轮子,代码冗余多,一个相同的功能,重复做,没有封装优化,把自己累得够呛,现在想想,真的活该啊,把本该出门享受阳光的滋润的时光,我却在代码里虚度过。
职场上,不得不说勤奋是一种非常好的品质,通往努力争取升职加薪的路上,蜿蜒于勤奋劳动的沼泽之中,是一段需要勤奋与艰辛的历程。俗话说:笨鸟先飞。意思是要不落后,就要比别人勤奋,比别人多努力一些。对于刚刚踏入职场的职场新人,别让伪勤奋害了你,要学会适当的让自己偷懒。
前不久,表妹突然跟我说她也想学编程,吓了我一跳,一个女孩子,好好的会计工作你不干,你来折腾这个。原来是她的工作最近有许多数据报表要处理,和她一起的还有有林工和张工,她和林工每天忙得上洗手间都得小跑,每天都加班到晚上10点多,而张工却表现得轻松自如,工作量相当,她8点多就走人了。后来一问才知,原来张工大学时学过VB编程语言,有一定的编程基础,在excel中用宏实现单一功能或复杂功能的VBA代码的集合,减少很多工作量。表妹和林工,把一切的精力都消耗在许多的重复性工作中,没有精力去接受更多的工作量。张工看起来相对没那么勤奋,但擅于思考,同样把工作完成了。很多人认为自己分明付出了比他人更多的努力,却与升职加薪无缘,不说其他原因,其中有一点,我想大概就是这个原因。不少人的勤勉仅仅流于形式,很容易造成一种假象,认为自己很努力,很积极,很勤奋,“埋头苦干”而疏忽了去做那些能自我提高的工作。
完成一件事,方法有多种,要学会适当偷懒,别让伪勤奋害了你。别人在KTV欢唱明天会更好,而你在办公室里埋头苦干,却没有什么成就。
时常看到有些人动不动就炫耀自己一个月多了多少本书,但你和他们真正接触时会发现,虽然他们读了这么多书,想法却没有什么深度。本末倒置,甚至停滞不前。
这里列几条小建议,希望对你有帮助:
1—给自己指定一个工作计划,做一个工作列表,把每日需要做的具体工作按照轻重缓急排列,指定工作计划每日的工作才有方向,才不走冤枉路,马装车好不如方向对,没有方向瞎忙活,多勤奋也是枉然。
2----注意力要集中,避免分心,要学会善于集中精力做一件事,而且是做好这件事。工作切忌不能三心二意,那样只会捡了芝麻掉了西瓜,甚至哪件事都做不好,让别人怀疑你的能力。
3----不要硬头皮干,学会把工作简化,面前的大山被你简化成小山丘,是不是豁然开朗,起到了事半功倍的效果。
4—适当让自己多充电,尤其是专业知识,只有不断更新知识,不断学习,才能更有效的应对日新月异的职场问题,处理高难度的工作难题,才能提高工作的应对能力,比别人更有效率。
5—要有紧迫感,不断的督促自己,要有危机感。工作时禁忌怠慢心理,优哉游哉的心境适合逛商场,别人一小时就能做完的工作,要是没有紧迫感优哉游哉地,怕是下班都墨迹不完,久而久之,就养成了一种习惯,这并明智。
6—再忙也要注意劳逸结合,一味的埋头工作,就像老牛拉犁一样,人的体能是有限的,大脑也是需要休息的,超负荷的工作只能降低工作效率,产生事半功倍的结果。适当的放松下,工作间站起来多活动几分钟,喝杯水,让身心放松下来。
别让伪勤奋耽误了你的前程,要学会“偷懒”,记得低头认真做事的同时,要时常抬头看路。别兜兜转转兜了一圈后,最后才发现会到了原地。
代码质量 重构 代码鸡汤相关推荐
- 如何提高代码质量:代码复查
如何提高代码质量:代码复查 软件项目普遍存在的问题 1)新手 任何项目组成员都不可避免地出现新手,他们往往是刚刚从大学毕业的学生.这些新手由于软件开发时间太短,往往技术不成熟,没有形成良好的开发习惯, ...
- 说说代码质量、代码安全和软件测试那些事
作者 | 灰狐 来源 | 灰狐 最近工作需要,把代码质量.代码安全和软件测试做了一下梳理,并思考将它们更好的融入日常研发和 DevOps 流水线. 今天,就和大家简单聊聊代码质量.代码安全和软件测试的 ...
- idea,配置checkstyle 【提高代码质量,检查代码规范的工具 】Checkstyle,FindBugs,PMD,Jtest
idea,配置checkstyle [提高代码质量,检查代码规范的工具 ]Checkstyle,FindBugs,PMD,Jtest 2016年12月15日 14:19:02 common_util ...
- idea 配置checkstyle【提高代码质量,检查代码规范的工具】
下面主要介绍IDEA,如何配置,使用checkstyle 1.CheckStyle插件安装和使用 一,打开settings的plugins,点击查找CheckStyle-IDEA安装,如果查找不到,B ...
- jenkins插件findbugs+pmd+checkstyle结合sonar与maven(java环境代码质量和代码规范管理)...
一.下载jdk并安装(最好jdk官网下载解压安装的) 二.下载maven并安装maven 三.安装jenkins及插件 安装checkstyle.pmd.findbugs.maven.sonar等相关 ...
- 前端代码质量-圈复杂度原理和实践
写程序时时刻记着,这个将来要维护你写的程序的人是一个有严重暴力倾向,并且知道你住在哪里的精神变态者. 1. 导读 你们是否也有过下面的想法? 重构一个项目还不如新开发一个项目... 这代码是谁写的,我 ...
- 代码质量与规范,那些年你欠下的技术债
提到"质量"二字时,我们的第一反应往往是"有多少BUG?""性能好不好?"这样的问题.我们对软件产品或服务的质量定义看其能不能满足用户的需求 ...
- 怎么提高代码质量?-来自Google的研发经验总结
你的团队有没有过这样的经历:开发效率低,招了很多人,天天加班,出活却不多,线上bug频发,领导发飙,中层束手无策,工程师抱怨不断,查找bug困难.其实这些都是代码质量差惹的祸.代码质量是研发质量管理的 ...
- ReSharper智能插件,ReSharper分析代码质量
ReSharper智能插件,ReSharper分析代码质量 ReSharper 是 Visual Studio 的智能插件.它配备了一组丰富的功能,包括智能编码辅助.即时错误突出显示和快速纠错.ReS ...
最新文章
- java用关键字 指明继承关系_【填空题】java中用关键字 指明继承关系、用关键字 指明接口实现。...
- 【Linux】时间同步设置+防火墙设置+SELinux设置
- Socket笔记【转】
- 大小端判断和网络字节序
- Android应用清单文件:AndroidManifest.xml
- Mybatis的xml配置实例
- .net IntPtr ==interoperable pointer
- 移动开发—媒体查询(Media Query)
- 如何给一家公司做定性研究?
- 什么是引发?Java运行时系统引发的异常如何处理?
- 最短路经典 昂贵的聘礼(1062)
- web的demo制造_简单的C++图像算法web端Demo制作
- MPM模型及ab压力测试
- linux服务器硬盘检测,在Linux服务器中检查硬盘坏道的命令
- RedisDesktopManager(Redis可视化工具)
- 手把手教你如何制作iPhone卡贴(多图)
- 计算机网络——网络层路由协议、IP组播、移动 IP、路由器
- 数据在网络层的传输过程
- 深入浅出matplotlib(49):Pyplot使用指南的笔记
- 线程池shutdown和shutdownNow原理和区别
热门文章
- Zookeeper集群安装Version3.5.1
- android手机连接windows,将Android手机投影到Windows 10 PC [夏昆冈]
- DOM(三)——创建删除元素及优化(文档片段)
- Vue之动态组件(二)
- AOP五大通知注解详解
- php打印预览jquery,php 实现打印预览的功能
- react前端显示图片_如何在react项目中引用图片?
- (四)java版spring cloud+spring boot 社交电子商务平台-断路器(Hystrix)
- 企业局域网内如何跨网安全传输数据
- 【转】poj 1823 hotel 线段树【Good】