忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 120 | 回复: 0

《PHP之重构》到底是个什么鸟? [复制链接]

论坛徽章:
0
发表于 2017-03-20 17:15 |显示全部楼层
PHP之重构》到底是个什么鸟?
在兄弟连(www,itxdl,cn)中重构是一个非常重要的知识点,今天就根据兄弟连的课程内容和大家一起分享一下重构的一些细节内容。
重构这个概念经过了十几年的发展和应用,可以说它是极限编程中程序员最爱的实践之一了,纷纷争相在项目里应用,帮助程序员们去追求优秀的代码和设计。
根本就不理解重构,只是为了重构而重构
做事情得有一个目标,拿吃饭举例:“妈妈,我要吃红烧肉”。妈妈就会很清楚我们的想吃什么。然如果我们说,“妈妈,我饿了,你随便吃点”,就是再会做饭的妈妈也没办法把给你做好你喜欢的饭菜。重构也是一样,它需要能够解决一定的问题,要有一个目标的引领,否则黑咕隆咚做了半天也不知道自己做了啥,最后不得不全部backspace,白费工夫。
所谓重构是对软件内部代码及其结构的调整,期望改善代码质量,促使程序设计架构更趋合理。说白了,重构就是解决代码和代码结构的问题,目标就是消除那些“不合我意”的因素,让代码的意图更清晰。
不明确方法,暴力硬性重构
很多人都会认同这个观点。对遗留的应用软件、构筑过半的项目却容不得推倒重来。以我观察,在开始重构时仅凭自己对代码的理解就进行剪切、复制、删除、添加等大刀阔斧修改的人不在少数,尤其还没有完全掌握重构手法的新人们。结果当然错误百出,BUG直接炸窝。修复这些错误代码少则几个小时,多则几天,这不是重构的方法,这是悲惨的重写。
不知道结果对不对却坚持这样做
一般情况下,对于简单的代码级别重构如果做得好是可以不用验证结果的,然对于模块级别或架构级别的重构,是必要的。在我遇到的多次重构架构失败的例子中,很多是因为越做越发现很难验证结果的正确性,越做越不知道改的对不对,最后发现很难回答老板和客户的问题不得不失败。
只注重武功招式,不设计修炼心法
《重构》是MartinKent对他们多年以来整理代码的实践的总结,然这背后体现的是他们对软件技术的深层次思考和经验。很多新人执着于学习重构手法而疏于学习背后的心法,有些可惜。加入修炼心法可以让你更深层的了解代码,更高层面看待系统,锻炼你的嗅觉,提升你的代码能力。
不了解上下文,不与团队沟通
我们不得不承认对代码的重构是有风险的,尤其是模块或架构级别。这段代码的业务是什么,为什么当时这么设计,测试覆盖率是多少,如果这样改会不会影响到其他模块?对其他角色有什么影响?这些问题都要逐一回答。在风险相对较大的改动更要如此,需要和团队成员,各个角色,包括项目经理和客户进行沟通,谈论这次重构的好处和风险,获得足够的评估,从而能够做出合适的重构决策,将风险降到最低。
今天就聊这些吧。不过小菜啊,你不要担心,重构和做其他事情一样,要有目标有方法有策略有结果。我们在进行的时候需要以终为始,不忘本心。最重要的是要提升技术能力,学习安全重构手法,小步前进,渐进式的重构,不断验证重构的收益,才能迎接一个一个的重构任务,真正的成为清理代码的高手。如果想系统的学习一下这些重点难点的知识,其实选择兄弟连学习是一个非常不错的选择,你可以直接联系兄弟连的老师177<1011<6169.希望你学习进步。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP