当前位置: 首页 > news >正文

关于代码重构的一些思考

1.代码重构是亏损的,没有任何经济效益。
代码重构,完全是程序员个人的自我修养,一个程序员的编程水平高低,决定了他对代码的重构力度,听说最高的重构地步是一个方法只有7行。然而,现实中,我们如何有时间去重构到7行的代码。也许你会说,代码重构后,更易维护,更易后续开发呀?但是,你是否想过以下问题:
a>你的程序真的能活那么久吗?
b>上一个程序员(也许是你,也许位前辈),他是故意要写成这样差的代码吗?
c>即使让你重构,你能重构到什么地步,有什么具体指标?

2.代码重构这一问题的根源
其根源,我觉得是每一个参与到这个项目中的程序员的技术水平、对项目的认识理解呈度、项目的开发周期,甚至PM的协调能力(较差的PM会产生更多的易重构项目,信不信就由,反正我是信了)。说白了,作为程序员,我们能做的,就是提高自已的编程水平,加强编程规范,其它的不是你所能掌握的。

3.代码已经很差了,我看着都想吐了,不重构,我就无法开发了!
真有那么差的代码吗?其实无非就是编程风格与大众的差太远;框架的使用错误;模块的某一策略无法满足后续的项目需求。(你还能想到其它的吗?)
所以,我们可以做的就是做一只小蚂蚁,一点点的把不正确的编程规范给一一纠正(但切记不要大片的重构,不然就犯了最后一条错误)。

4.最后,不要一个人默默的重构
a>一个人默默的重构,会很孤单
b>一个人默默的重构,会承担额外的压力,以至原计划工作delay
c>一个人默默的重构,久而久之,你会发现除你之外的人,写的代码都看不顺眼,然后试图去纠正他们。
d>一个人默默的重构,最后发现自己的力量眇小,于是要么放弃回到原点;要么走极端,把自己搞得更加累,天天加班,最后累趴下了,看骂别的人代码写得垃圾。

from:http://lichsword.net/blog/archives/512

相关文章:

  • Android使用VideoView播放网络视频
  • [Android 数据通信] android cmwap接入点
  • 转: 新浪微博布局学习——妙用TabHost
  • 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spinner, Chrono
  • android webview拦截超链接
  • android应用中插入flash
  • Android开发_WebView组件使用详解_LoadUrl直接显示网页内容
  • android开发我的新浪微博客户端-用户授权页面功能篇(3.2)
  • Android 调用平台功能 - 启动浏览器 支持file://
  • Android学习笔记之mainfest文件中android属性
  • android有效的内存使用
  • Android使用AsyncTask下载图片,最好使用WeakReference
  • Android笔记 SQLite总结 ,字带数据库,附记事本,字典小程序
  • android 自带的主题theme
  • android带输入框的Dialog
  • AWS实战 - 利用IAM对S3做访问控制
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • Codepen 每日精选(2018-3-25)
  • Create React App 使用
  • Hibernate【inverse和cascade属性】知识要点
  • Java|序列化异常StreamCorruptedException的解决方法
  • Js基础知识(一) - 变量
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Python打包系统简单入门
  • Redis 懒删除(lazy free)简史
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 闭包--闭包作用之保存(一)
  • 读懂package.json -- 依赖管理
  • 前端_面试
  • 前端面试之CSS3新特性
  • 前端自动化解决方案
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 事件委托的小应用
  • 学习笔记TF060:图像语音结合,看图说话
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 正则表达式小结
  • 正则与JS中的正则
  • Java性能优化之JVM GC(垃圾回收机制)
  • 阿里云服务器购买完整流程
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #在 README.md 中生成项目目录结构
  • (8)STL算法之替换
  • (C++17) optional的使用
  • (floyd+补集) poj 3275
  • (ibm)Java 语言的 XPath API
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (备忘)Java Map 遍历
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (十八)SpringBoot之发送QQ邮件
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (一)WLAN定义和基本架构转
  • (一)基于IDEA的JAVA基础1
  • .net core 6 redis操作类