PHP舊系統基於命名空間複建經驗

來源:互聯網
上載者:User
PHP舊系統基於命名空間重構經驗

命名空間其實只是一個形式,最終目的是重構代碼,但這個過程想要一蹴而就是不可能的。

一開始給了一個偽命題:基於ThinkPHP的重構(不要為什麼)。經過一段的實踐,發現這是一個大錯特錯的思維方式,其中遇到的坑在此略過不表。

首先,不要想著全盤基於命名空間重寫,而應該是基於局部的。

最終思考後的結果,是以Model層基於命名空間改造為目標,這樣可以在新的架構下重用系統中Model層資源。因為理論上Model層只與資料打交道,耦合度最低。

但改造過程也發現一些問題,Model層耦合了商務邏輯,甚至與session、cache等系統內容掛鈎,不是純粹的Db操作,而是含有很多業務代碼,這意味著這一部分的代碼在初步改造完成後,是無法在新架構中重用的。

這些存在問題的地方,也間接證明了一些基礎編程思想的正確性:OOP的本質是代碼重用;PSR系列規範對於提高代碼重用度的直接作用;代碼分層合理性對於代碼維護性的影響等;全域變數對代碼重用性的極度負面影響。

什麼是逐步重構?

逐步重構的基本原則是相容,不是推翻重來,只要事情變成了推到重來,就不是重構,簡直就是重寫了。在創業小團隊,推到重寫,are u kidding me?

相容是重構的起點和過程,重用是結果;新的功能可以基於新的架構開發,但同時可以重用已有功能代碼,所以這是一個過程。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.