重构是每个程序员的洗髓经 - 异步社区



重构是每个程序员的洗髓经 - 异步社区

软件开发也有一部内功绝学�C《重构》,它来自一位长相酷似达摩祖师的软件大师,Martin Fowler,关于这位大师的传奇经历此处不表,本文所要说的是他创立的软件开发内功心法�C重构。

正如前文所说软件开发的内功心法其实讲的是软件开发者使用的方法,习惯和思想,与武功中的内功一样,长期的修炼能够让修炼者参悟到软件开发的不同境界。说到这里,有人会说真有这么神奇吗?回答是肯定,因为这样的修炼改变的是开发者的习惯,包括思考的习惯、设计的习惯和开发的习惯。这正是江湖流传的不二箴言:习惯决定成败。

重构改变了开发者的什么习惯?首先来看下重构是什么,重构是指不改变软件功能的前提下,通过代码调整来改善代码质量,提高代码的可维护性,使代码的架构更加趋于合理。一言以概之�C改代码,有人会提出疑问,改代码我们也会啊,这有什么习惯可以改变的,重构并不是改一次代码,而是在开发的过程中频繁地进行代码调整,只要在开发中发现可以重构的点,就可以记录下来,然后进行重构,不只对现在正在开发,也可以是对之前完成的代码,这不是件容易的事,需要付出恒心和毅力。

可能有人担心重构会破坏代码原先的功能,OK,那就引入TDD和版本控制,TDD保证重构不破坏原有功能,而版本控制则保证出现了破坏原有功能的错误后能迅速回到原先正确的状态。

重构+TDD+版本控制,开发者一下就拥有了三件法宝来改善代码质量。恭喜你,你现在变成XP(极限编程)了,你的开发习惯一下就从瀑布迁移到了敏捷上,再加上经年累月的磨砺,OK,你自然而然地成了高质量代码的贡献者,是不是想想有点小激动呢?


Read full article from 重构是每个程序员的洗髓经 - 异步社区


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts