作者PsMonkey (痞子軍團團長)
看板PHP
標題Re: [請益] 如何重構
時間Wed Feb 1 14:57:39 2012
※ 引述《poopoo888888 (阿川)》之銘言:
: 大家好
: 小弟目前跟三個朋友在用PHP寫一個網站
: 我們都是大學生 沒有太多團隊開發網站的經驗
: 小弟初學PHP 甚至對PHP的sense都不是很強
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: 因為不想花時間摸framework的關係 所以沒有使用任何framework
: 將來也不想使用
: 我們利用require()函式將網站重複出現的header.php、footer.php獨立了出來
: 還用connect_mysql.php將連接資料庫的設定相關程式碼獨立了出來
: 接著就想到什麼功能就寫什麼功能地東拼西湊寫網站到現在
: 目前網站初版功能大致成形了 但整個網站的PHP架構也亂得很可怕
: 我們覺得再這樣下去維護上會出現問題 打算花時間進行程式碼重構
: 但我們沒有經驗 只能憑直覺做一些簡單地程式碼整理
: 該怎麼辦呢?
: 請教各位前輩大大 替我們指點迷津
: 謝謝!
原文當中 b 兄的推文,我只贊成一半
以你的現況來說,你自己都說 PHP 不是很強
那講的難聽一點,你要 refactory 什麼?
(謎之聲:就是不知道所以上來問啊...)
反過來說,為甚麼會有「讓你不想學」的 framework?
就是因為這些 framework 處理過你打算處理、或是你不知道該處理的問題
然後公式化 or 模組化之後結果
至少以我這種低落的技術程度來說
我常常是透過 IDE(Java)、framework(GWT、CI)來知道
「原來可以 or 需要這麼作」
如果挑 open source 的東西,那甚至可以知道「怎麼作」
這是一種交叉 feedback 的行為,應該學習過程有很大的好處
當然,以 Java developer 的角度來看,PHP... [默]
不過,以當初碰 Code Igniter(CI)的心得
CI 並沒有很侵入式的要你全面重新改寫你的 code
(Java 裡頭什麼 Spring 之類的碗糕就... [淚目])
你可以把純 PHP 的 code
一個部份、一個部份的導入 CI,沒改到的部份也基本上不影響
加上他是 open source,程式碼也沒有很龐大
可能很適合你現在的需求
(註:這是三年前的印象 [毆飛])
如果你能順利撐過這個階段,熟悉某個 framework 的裡裡外外
(這個前提一定要先成立,後頭才有意義)
那其實趁著在學的時候自己有樣學要照抄也好、閉門造車硬幹惡搞也好
自己嘗試去弄個 framework、library 也是很好的事情
「重新再造輪」在工程 or 職場上能免則免
但是在學生階段... 那就去浪費時間啊! [握拳]
你不自己磨個輪子,你就很難知道磨輪子的樂趣與痛苦、還有要花的時間
至少,你會對那些做出輪子的前輩抱多一點的尊敬
而不會有無憑無據「喵的,給我一個月我也能弄出一個 CI」的自以為
想當初,我只知道 servlet 的時候
還打算發展一套 library 來簡化網頁開發咧...
結果人家都已經在上太空(JSTL、EL)我還在得意洋洋的殺豬公
在求學階段不作這些事情,難道出社會進職場才作嗎?
又,你有那個膽子 & 心神作嗎?
anyway... 無論你選哪條路
動手作吧! 動手寫(含心得感想)吧!
趁著青春,去試試看各種選擇,即使那可能是錯的(應該寫 Java 啊! [被毆飛])
青春不浪費在這裡,難道要浪費在打卡按讚嗎?
去吧去吧!
====
錢快燒完了,有感而發......
--
錢鍾書:
說出來的話
http://www.psmonkey.org
比不上不說出來的話
Java 版 cookcomic 版
只影射著說不出來的話
and more......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.6.173
推 baliman:^^給推 02/01 17:57
推 mirae:推~嘗試後的結果才是自己的,就算錯誤也知道問題在那裡 02/01 18:10
推 LaPass:什麼事ci? 02/01 19:27
推 kusoayan:Codeigniter 02/01 19:40
推 mrbigmouth:大推 02/01 20:18
→ mrbigmouth:真的 我覺得至少要動過一個framework或大型網站套件 02/01 20:18
→ mrbigmouth:才可以開始說是一個"職業的"程式設計師 02/01 20:19
→ mrbigmouth:因為有很多東西是在書上學不到、自己也會想漏的 02/01 20:20
→ mrbigmouth:而且沒有碰過這些東西的經驗 就沒有日後與人合作開發 02/01 20:20
→ mrbigmouth:的基礎 02/01 20:20
推 mrbigmouth:並不是非得用某個framework不可 但你一定要瞭解"別人都 02/01 20:23
→ mrbigmouth:怎麼做"與"為什麼要這樣做" 02/01 20:23
推 tkdmaf:CodeIgniter 02/02 07:35
推 Elohim123:try and error~ good 02/02 21:29
推 aaroms:挑一個fw去trace整個架構的寫法,也會有很大的進步 02/03 15:30