漫谈重构 班主任工作漫谈

因为工作内容的原因,我在前后两家公司中的工作中主持和经历了十余次代码和架构的重构,下面随便说说我对重构的一些经验和想法。

关于重构

首先重构面临的背景都是相似的,程序员们为了快速完成需求和上线而写出了最基本的代码,而在功能的不断扩充过程中,以打补丁的方式对代码进行扩充,中间还会面临着开发人员的变更和离职。逐渐的,代码就会越来越臃肿,渐渐的变得难以维护。

  糟糕的架构会有什么样的影响?首先是开发效率的降低,在糟糕架构下加进新功能,会受之前代码的影响,可能存在意想不到的改动点和问题点,开发和调试时间都会大大增加;其次是故障率的提升,在质量低下的代码中,总是容易藏着很多不易发现的坑,这些都会成为故障的隐患;同时,架构也会使得需求的完成大打折扣,使得设计好的目标,因为架构限制或者性能等原因,只能完成80%甚至更低。

重构要解决的问题

重构不能凭空重构,一定是要解决一个问题,一般情况下重构要解决的问题大致有以下几种。

重构经验感受

  重构时,第一道难关是如何过领导这道关。很多领导都要背着产品指标 和任务,大多人也更关心其能够在多长时间做出什么,重构这种事情,在很多时候,有可能是“费力不讨好”的代名词,因为在大多情况,无法帮助领导完成指标。这种情况下,如何获得领导的支持就极其重要了。

  对于重构,一种方法是,让重构与某些技术或产品指标挂钩,例如完成新产品、改进效果、提高性能等,相当于是重构伴随着其他改进搭帮上线,那么这种情况可以比较顺利的完成重构。

  而如果单纯的为了架构的合理性而去重构的话,就需要去说服领导,为什么原来的架构会降低开发效率,新做的架构能带来哪方面的提升。一定要让领导明白,这个能带来实实在在的长期收益,不管性能、效率、安全等都可以,而并非只是“看着不爽”而进行的重构。

  如果团队规模有一定的人的话,也可以分出一部分进行新型架构的开发,而另一部分人在现有架构上进行改进,使得短期目标和长期目标两不耽误。这时候,值得注意的就是,不管从代码还是设计角度上来看,都要让现有做的事情能够复用,而不是新架构上线之后就会被废掉。

  如何进行渐进式重构,也是很多架构师需要去思考的问题。就是不搞一下子半年一年的重构,而是以月为单位,快速的迭代,能够很快的看到效果,并且小规模投入使用。

  不管怎样,重构,一定不能是为了重构而重构,或者对前人的代码看着不爽,或者抱有技术完美主义而进行重构,最重要是找准其要解决的实际问题,这时候的重构,能带来的是开发效率上的提升。

  而在重构的过程中,也需要做好新架构的设计,并且拥有一定的前瞻性,否则很容易出现新架构、新新架构、新新新架构这样子的事情。另外,也要尽可能的增强代码的复用性,让其中的模块,在任何一个架构中都能够很好的被应用,当然这个要根据具体情况具体分析。

  对于重构,也尽量不要拥有技术完美主义。很多时候,使用最成熟的方案及最简单的架构模型实现所需要的功能一般来说更加“简单可依赖”,有的时候架构过于复杂反而喧宾夺主,因为所有架构都是为了功能服务的。同时,也尽量不要使用很多未经广泛使用的前沿技术,因为这些在开发和部署过程中,很多都可能会遇到意想不到的问题,延缓开发速度并影响线上效果。

  此外,作为重构时的负责人,一定要紧跟代码开发的过程,并随时进行指导,一般情况下,不要相信写出糟糕代码的人,经过略加指导就能写出漂亮代码了。我曾经有过这样的经历,要将一个超大的类按照功能进行模块化拆分,设计好了架构及每个子模块就让组员进行开发。开发完了我看代码时登时就抓狂了,模块是拆分了,每个功能也都建立好了子类,并通过主类调用子类,但是每个子类又都将主类作为友元,又去调用主类里面的成员变量和函数。这种代码,再次重构也是难免的,这个给我的经验教训就是,重构的工作一定要做细,迭代中的代码检查也是必不可少的。

良好的习惯,从最初做起

  当然,重构再怎么样,也是一种推翻重做,耽误时间的做法。从我的经验来看,其实大多数的重构都是可以避免的,这需要从以下几个方面去提高。

  良好的编码风格,好的习惯往往很难是天然形成的,更多是在工作中不断的老带新中耳濡目染练出来的。很多领导希望员工全部时间都用来做项目,不断地去压更多的活,实际上是在用跑短跑的方式跑长跑,很容易出现后劲不足的情况。而我在微软的经历,也让自己感受到了从潮手到逐渐成熟的过程,后来在搜狗时即使再忙没法搞teamreview,我也会去尽量给每个组员检查他们的代码,帮助别人去提高。

  初期的架构设计,这个也是非常重要的。架构设计能不能一次到位,这个不太好说。但是相信好的架构,一定比粗糙的设计能够坚持更长得多的时间。并且好架构可以考虑到未来可能扩充的规模和功能,为未来的发展留好接口。同时在其中所有的模块都非常有序,即使大的框架要修改的话,也只是搭一个架子,原有的子功能和子模块都能够被很好的复用,

其实很多时候,代码并非要开发一阵就重构一次,而写出好的架构,也并非是那么难。更重要的是,需要的是不断的提高程序员的自我修养,不仅仅是能力上的,还有态度上的。不要只想最初开发时省事,而不考虑若干时间后的事情。好的架构,对未来的开发以及发展,可以说是真真实实的“事半功倍”。


漫谈重构 班主任工作漫谈

最后,我们看一个关于扁鹊的故事:

魏文王曾求教于名医扁鹊:“你们家兄弟三人,都精于医术,谁是医术最好的呢?”扁鹊:“大哥最好,二哥差些,我是三人中最差的一个。”  魏王不解地说:“请你介绍的详细些。”

扁鹊解释说:“大哥治病,是在病情发作之前,那时候病人自己还不觉得有病,但大哥就下药铲除了病根,使他的医术难以被人认可,所以没有名气,只是在我们家中被推崇备至。我的二哥治病,是在病初起之时,症状尚不十分明显,病人也没有觉得痛苦,二哥就能药到病除,使乡里人都认为二哥只是治小病很灵。我治病,都是在病情十分严重之时,病人痛苦万分,病人家属心急如焚。此时,他们看到我在经脉上穿刺,用针放血,或在患处敷以毒药以毒攻毒,或动大手术直指病灶,使重病人病情得到缓解或很快治愈,所以我名闻天下。”

扁鹊实际上就是一个很好的重构高手,但是扁鹊的大哥,就是因为能够将问题看在前面,处理在前面,所以能够永葆健康,这更是高手中的高手!

=========================================

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/271760.html

更多阅读

魏书生班级管理细则 魏书生班主任工作漫谈

(一)、学习纪律1.课间即做好下堂课准备,桌面放好有关教材及学习用品;上课音乐一响即保持绝对安静,回忆上节课内容,预习新课。除负责纪律的干部外,任何同学不得以任何理由下方位,找同学说话和讨论问题,也不能问问题。违者扣2分。此项由纪律

2014.3.4工作随笔 装点乎?妆点乎? 班主任工作随笔

下午放学时去梦颖老师的班级里拍了些绿植的照片配合荆老师的文字稿件使用,梦颖老师教室里干干净净、植物清清爽爽让人心旷神怡。晚上往区教育局网站传稿件时,想起荆老师嘱咐的给稿件改个名字(原题目《学院附小:班级绿色文化》),我想了下,

小学教师个人五年规划 班主任工作计划小学

没有教师的素质的提升,就很难有高的教育质量;没有教师精神的解放,就很难有学生精神的解放;没有教师的主动发展,就很难有学生的主动发展;没有教师的教育创造,就很难有能创新的学生。没有计划的生活是盲目的;停滞的知识迟早会被淘汰,现今社会的

浅谈朦胧诗的艺术特点 浅谈班主任工作艺术

内容摘要:20世纪末,人们对五四以来的新文学的反思愈加深入了,对80年代的“朦胧诗”冲击波的反思是百年文学反思的重要部分。本文主要从朦胧诗的艺术特点、朦胧诗的崛起、三位著名朦胧诗人的诗歌的特点、新诗潮和朦胧诗的关系、以及人们

声明:《漫谈重构 班主任工作漫谈》为网友抹黑寥寂分享!如侵犯到您的合法权益请联系我们删除