zoukankan      html  css  js  c++  java
  • phper談談最近重構代碼的感受(1)

    作爲一個工作時間並不算長的phper,卻參與了兩家公司的代碼重構.下面談談我的一些感受.

    在mjm公司,當時我負責日常的需求開發和2.0的重構.當初的重構更多的是clean codes和一些代碼規範上的.用了phpcs去規範代碼,封裝了一些重複的代碼.並使用了單元測試,對重構的部分run了一遍.從做事習慣上來看,算是比較嚴謹.但重構效果也只是修修枝葉罷了.甚至可以說並沒有做到真正意義上的重構,當然這也和我當時的能力有限有關.

    重構不是重生,但是卻能讓整個項目煥然新生.我上個月開始了一個新的項目,我第一次獨自架構一個項目,從底層慢慢搭架子.我開始發現並不是說mvc框架就能解決所有或者說規避設計模式的使用.我開始發現了設計模式和面向對象原則在很多地方可以使用開來,下面我一一道來.

    第一個要說的肯定是類的單一職責性.在<<設計模式之禪>>裏面開篇就在講這個,這個概念也是飽受爭議.不是說這個原則有錯,而是我們因爲個人能力見解以及實際情況的不同,對一個類的職責劃分可能出現很多分歧.

    一個類最好只做它本職工作的東西,不要太"牛",什麼都去實現。其實這和人做事的道理是一樣的,全面發展往往都是全面平庸,點帶動面自然是例外。

    我後面所舉例都是基於cakephp框架下的實踐,對cakephp並不熟悉的人,可以自己google.

    比如我在處理一次對數據的再加工的func的時候,我並沒有往之前處理批量的那個helper類裏面去增加一個新的func,而是重新創建了個對應的SingRow類,把新的處理func給了它。讓批量處理的去找專門批量處理的類,各司其職。就算以後有了新的處理要求,我也能很輕鬆地進行add.如果長期扔給老的類,最後會導致類的過於臃腫。

    讓類專一一點。清爽的代碼和結構,會讓你後面run better.

    越簡單的道理,我們越會忽略,但是這是真正寫出better codes的first step!

  • 相关阅读:
    Codeforces 741D 【Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths】
    Codeforces 235C 【Cyclical Quest】
    UOJ #62.【UR #5】怎样跑得更快
    luoguP3648 [APIO2014]序列分割
    luoguP4782 [模板]2-SAT问题
    原博客已废弃
    个数可变的参数收藏
    新的一年开始。
    文件上传下载总结
    模板模式学习(转)
  • 原文地址:https://www.cnblogs.com/freephp/p/4657268.html
Copyright © 2011-2022 走看看