Re: [請益] 如何重構消失
※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: ※ 引述《poopoo888888 (阿川)》之銘言:
: : 大家好
: : 小弟目前跟三個朋友在用PHP寫一個網站
: : 我們都是大學生 沒有太多團隊開發網站的經驗
: : 小弟初學PHP 甚至對PHP的sense都不是很強
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: : 因為不想花時間摸framework的關係 所以沒有使用任何framework
: : 將來也不想使用
: : 我們利用require()函式將網站重複出現的header.php、footer.php獨立了出來
: : 還用connect_mysql.php將連接資料庫的設定相關程式碼獨立了出來
: : 接著就想到什麼功能就寫什麼功能地東拼西湊寫網站到現在
: : 目前網站初版功能大致成形了 但整個網站的PHP架構也亂得很可怕
: : 我們覺得再這樣下去維護上會出現問題 打算花時間進行程式碼重構
: : 但我們沒有經驗 只能憑直覺做一些簡單地程式碼整理
: : 該怎麼辦呢?
: : 請教各位前輩大大 替我們指點迷津
: : 謝謝!
: 原文當中 b 兄的推文,我只贊成一半
: 以你的現況來說,你自己都說 PHP 不是很強
: 那講的難聽一點,你要 refactory 什麼?
: (謎之聲:就是不知道所以上來問啊...)
+1 贊成, 重構不是只有把程式碼重寫而已,它還有包含更深層的意義
已經懂的使用require將程式拆開,那就是代表著你的"經驗"正在一步步
的促使你進步,寫程式就跟練功一樣,"躁進"往往會使人只學到皮毛,甚至
走火入魔
: 反過來說,為甚麼會有「讓你不想學」的 framework?
framework 以下簡稱 FW
FW的使用與否"討論"到現在也沒有一個總結
有擁護者,也有反對者,各自持有看法,沒有絕對的錯也沒有絕對的對
還有一點,學FW與學用FW這完全是二碼子事
學FW是把FW解開去學它的HOW(它如何去解決什麼樣的問題),
去學它的WHY(它為什麼要用這樣的方式去解決這樣的問題)
而學用FW則是去學WHAT(我有什麼方法來解決什麼問題)
當然,對於初心者而言,"學用"是第一步...
但如果有心要當個"程式設計師",請不要害怕或吝嗇的跨出下一步
: 就是因為這些 framework 處理過你打算處理、或是你不知道該處理的問題
: 然後公式化 or 模組化之後結果
: 至少以我這種低落的技術程度來說
: 我常常是透過 IDE(Java)、framework(GWT、CI)來知道
: 「原來可以 or 需要這麼作」
: 如果挑 open source 的東西,那甚至可以知道「怎麼作」
: 這是一種交叉 feedback 的行為,應該學習過程有很大的好處
: 當然,以 Java developer 的角度來看,PHP... [默]
學用FW後,當然會在短時間內有顯著的"功力"提升,
但就長期來看這不是一件好事,明明前方就是有著無限的可能,
卻要拿一個籠子把自己套住...
身為開發者就是要去尋找無限的可能,而不是去了解籠子的每一吋構造
: 不過,以當初碰 Code Igniter(CI)的心得
: CI 並沒有很侵入式的要你全面重新改寫你的 code
: (Java 裡頭什麼 Spring 之類的碗糕就... [淚目])
: 你可以把純 PHP 的 code
: 一個部份、一個部份的導入 CI,沒改到的部份也基本上不影響
: 加上他是 open source,程式碼也沒有很龐大
: 可能很適合你現在的需求
: (註:這是三年前的印象 [毆飛])
: 如果你能順利撐過這個階段,熟悉某個 framework 的裡裡外外
: (這個前提一定要先成立,後頭才有意義)
: 那其實趁著在學的時候自己有樣學要照抄也好、閉門造車硬幹惡搞也好
: 自己嘗試去弄個 framework、library 也是很好的事情
: 「重新再造輪」在工程 or 職場上能免則免
能免則免的下場就是永遠在原地踏步,重新造輪是有很多手段和方法的
但絕不是叫你"立刻"把輪子拆了送到回收場
: 但是在學生階段... 那就去浪費時間啊! [握拳]
: 你不自己磨個輪子,你就很難知道磨輪子的樂趣與痛苦、還有要花的時間
: 至少,你會對那些做出輪子的前輩抱多一點的尊敬
當磨出輪子時,你也會變成"前輩"
: 而不會有無憑無據「喵的,給我一個月我也能弄出一個 CI」的自以為
: 想當初,我只知道 servlet 的時候
: 還打算發展一套 library 來簡化網頁開發咧...
: 結果人家都已經在上太空(JSTL、EL)我還在得意洋洋的殺豬公
: 在求學階段不作這些事情,難道出社會進職場才作嗎?
: 又,你有那個膽子 & 心神作嗎?
: anyway... 無論你選哪條路
: 動手作吧! 動手寫(含心得感想)吧!
: 趁著青春,去試試看各種選擇,即使那可能是錯的(應該寫 Java 啊! [被毆飛])
: 青春不浪費在這裡,難道要浪費在打卡按讚嗎?
: 去吧去吧!
: ====
: 錢快燒完了,有感而發......
想要進步就是要不斷的做,做,做
從累積的經驗中去粹取出"精華",哪怕一天只進步那麼一點,
最令人害怕的就是"原地踏步"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.33.148.137
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章