转载自 51cto
田皓宇的博客
昨天好友愛飛翔童鞋關心的詢問道:伊凡,今天的工作如何,bug改的還算是順利嗎?我比較模棱連科的答到:還行吧。之後簡單的"抱怨"了幾句。之後我們就開始一起在Cacoo行進行"切肉"了.下圖就是二人用了三分鐘不到的時間,構建了一個所謂“項目代碼維護”,如下圖:
很形象的說明了,當一個人去維護別人的代碼的時候,重構的重要性,以及涉及的主要步驟。今天翻閱了維基百科和一些比較著名的開源社區,技術社區,以及看了大牛的一些博客,才發現能夠將二手代碼重構,在一定程度才能反應出來一個程序員的基本功是否欠缺。重構裏面所涉及的基本上都是最基本的知識點,比如函數,類與對象,封裝,提取方法(函數),方法更名等等。但是完成這些更需要明白整個數據的流向與整個軟件所實現的功能。因為"牽一發而動全身",這是這些天維護項目代碼所得到的最大體會。
因為面對二手代碼,你懂的,首先你要了解別人的思想,你要逐條逐句讀懂每條語句的含義,變量,數據流向等等。或許在很多人看來這樣的工作沒有啥挑戰性,只是簡單的Ctrl+C,Ctrl+V,Ctrl+Z之類就可以,有時候在用BeyondCompare之類的工具就好了,哈哈這些都很有意思。只要你懂基本語法就足夠應付了。正如上面的所述,重構別人的代碼,還是需要點技術含量的。
所以,解不出來bug,不悲;實現了,不喜。因為,我動不動,代碼就在那裡。
其他的就不多講了,找點空閒,找點時間,將小翔推薦的一部有關軟件重構的書籍《重構》讀讀,詳細可以參見鏈接:http://book.douban.com/subject/1229923/
多讀些技術上的好書,少發些牢騷。多沉靜會,多思考。讓自己的內心充實起來,才能夠獲得自己想要的真正的 Free 與 感覺。
記得一個幫的幫主說過這樣一句話:做個吃貨,做個白癡,他成功的給億萬人洗了腦,因為做個吃貨:要去大量的咬一口蘋果;做個白癡,這樣你才好被忽悠,買他的蘋果.......喬幫主不虧是大忽悠,結果他仙逝了,他的傳記還是那麼的瘋狂,生前刷大家的銀行卡,死後刷大家的電腦屏幕。好吧,他成功的改變了世界。現在他在天國啃著蘋果笑呢,對上帝說:親,當年亞當和夏娃吃了蘋果,才讓人類有了罪。再後來,牛頓被蘋果狠狠的砸了頭,他也成功的改變了世界。後來就是....."上帝說:那好吧,你想回家嗎?
分享到:
相关推荐
可能在源代码中,部分功能或者重构部分采用了ASP.NET技术,例如使用C#或VB.NET作为编程语言,或者利用ASP.NET的控件和框架来简化开发。 在压缩包内的"a.txt"文件,可能是系统的设计文档、数据库结构、关键代码片段...
综上所述,"基于SSM的二手商城系统(前后端分离)"项目结合了多种技术,不仅能够锻炼开发者的技术实践能力,也为用户提供了便利的二手商品交易体验。通过深入理解和实践这个项目,可以巩固和提升Java Web开发的相关...
【附加例4.1】利用中介者模式进行重构的实例 【附加例4.2】利用策略模式设计的相同数据的不同图表显示的实例 【附加例4.3】利用状态模式设计的天气状态软件 【附加例4.4】利用状态模式设计的中国个人...
IDEA(IntelliJ IDEA)是一款强大的Java集成开发环境,提供了代码自动补全、调试、重构等一系列强大的功能,极大地提高了开发效率。在这个项目中,IDEA被用来编写和管理整个项目的源代码。 JavaScript作为客户端...
然而,系统的完善是一个持续的过程,目前存在的不足主要是代码冗余,这需要通过重构和优化来进一步提升代码质量,减少资源消耗。此外,随着技术的发展,未来可以考虑引入更先进的前端框架(如React或Angular)和后端...
3. **IDEA开发工具**:IDEA是Java开发的主流集成开发环境,以其丰富的功能如代码自动提示、分析、版本控制工具集成、重构和GUI设计等,极大地提高了开发效率和代码质量。 4. **系统实现功能**: - **用户模块**:...
6. 性能优化:ASP应用需要考虑服务器性能,通过缓存策略、数据库查询优化、代码重构等方式提高系统响应速度和并发处理能力。 7. 论文撰写:附带的论文可能涵盖了系统的需求分析、设计思路、技术选型、实现过程、...
- **Eclipse或IntelliJ IDEA**:集成开发环境,提供代码调试、重构等功能,提高开发效率。 7. **软件工程实践**: - **版本控制**:如Git,用于协同开发和版本管理。 - **代码规范**:遵循一定的编码标准,如...
MVC模式提供了清晰的代码组织结构,便于开发和测试,而Web Forms则为快速开发提供了便利,通过事件驱动的编程模型。 在这个二手汽车交易系统中,我们可能会遇到以下几个核心功能模块: 1. 用户管理:包括用户注册...
综上所述,“基于Springboot的华强北商城二手手机管理系统”是一款集成了最新技术成果的高效二手手机交易平台。通过合理的技术选型和严谨的系统设计,该系统不仅能够满足用户的多样化需求,还能有效提升商家的运营...
4. **IntelliJ IDEA**:开发工具的使用,包括项目构建、调试、代码提示、重构等功能,提高开发效率。 5. **MySQL数据库**:存储用户信息、商品数据、交易记录等,需设计合理的数据库表结构,使用索引优化查询性能。...
IntelliJ IDEA是专为Java开发设计的集成开发环境,以其强大的代码提示、分析、重构等功能受到广泛欢迎。它支持多种版本控制工具,如git、svn,集成了JUnit等测试框架,并扩展了对JavaScript、jQuery等技术的支持,...
【校园二手物品交易平台_jsp.zip】是一个基于Java Servlet技术的项目,主要服务于大学生们在校园内进行二手物品交易的需求。这个平台的实现涉及到多个关键知识点,涵盖了Web开发的基础与进阶,包括但不限于以下内容...
在这个项目中,我们关注的是一个基于SSM框架(Spring、SpringMVC和MyBatis)重构的二手交易平台。SSM是Java Web开发中常用的三大框架组合,它们各自负责不同的职责:Spring作为应用上下文管理和依赖注入容器,...
测试充当实时文档、重构的安全网、编写更清晰代码的指南。 Exercise: Do code kata's (website, sessions, meetups) |basic| Exercise: Game of life |basic| Exercise: TDD as if you meant it |basic| Book: TDD ...
在Flutter_shop-master这个压缩包中,包含了整个项目的源代码,你可以直接下载并进行研究。 首先,你需要了解Flutter的基本概念,如Widgets、Stateful和Stateless Widgets、BuildContext、InheritedWidget等。...
升级过程涉及对现有SSM代码的重构,利用SpringBoot的特性进行优化。 5. RESTful API设计:为了实现前后端分离,后端通常会设计RESTful API供前端调用。RESTful API遵循HTTP协议,通过不同的HTTP方法(GET、POST、...
这涉及到对原有代码的重构,以及对SpringBoot核心概念的理解和应用,如 starter、@SpringBootApplication 注解、@ConfigurationProperties 等。 此外,描述中提到“易于部署运行”,意味着源码应该包含了清晰的部署...
在整个开发过程中,还需要注意代码的可读性、可扩展性和维护性,遵循良好的编程实践,如注释、代码重构和单元测试。这样的项目不仅有助于提升你的编程技能,还能让你深入理解面向对象编程在实际应用中的价值。
3. **FOHO修改和完善**:FOHO可能是个人或团队的名字,他们在原版IJOB二手市场的基础上进行优化,可能包括代码重构、错误修复、功能增强、界面美化等方面的工作。这通常意味着系统的稳定性和功能性得到了提升。 4. ...