[心得] PHP的Framework與CMS

看板Soft_Job作者 (一堆last thing)時間11年前 (2013/02/19 07:41), 編輯推噓3(3048)
留言51則, 8人參與, 最新討論串1/1
最近看到TonyQ的在GitHub上的facebook社團偵測程式 以及看到同事在工作上使用的CMS 有了一些心得 感謝TonyQ的程式讓我知道facebook的資安問題 對其機制很感興趣 就去GitHub上參考他的原始碼 因為他是採用CodeIgniter 所以看到了很完整的結構 不過就需要修改後才能移植到其他現有的系統 雖然不是Framework 但是看到同事在用的CMS也是類似的情形 CMS的原始碼寫法跟Java很像 雖然採取了獨立的class 但是外加的元件也是需要需要繼承核心class 所以要移植也是需要蠻大程度的修改才能移植 重複使用原本是對物件化的期待之一 (感謝網友指正) 但是物件化本身有時反而阻礙了可重複使用性 而且有時後為了避免修改model class造成其他controller無法運用 則只能疊床架屋去增加新的model跟controller 另外只熟悉某一個特定的CMS或者是Framework 基本上要改用新的環境 則其學習曲線會很大 不過採用Framework似乎已經是主流了 自己去面試的時候 因為自己不會Framework而被認為不會PHP 之後因為一個工作的機會 才接觸到不同的Framework 自己的心得是 不管寫了多久的程式 還是要持續接觸不同的寫法 不然最終或許會找不到工作 自己本身的開發經驗如下 PHP: 13年 使用過的Framework: CodeIgniter 使用過的CMS或套件: Joomla, XOOP, OCS 開發過的專案類型: 1. PHP & MySQL 2. PHP & MySQL + Android App 3. Node.js+ Express + Redis +Android App 4. ASP.Net + MSSQL 5. iOS App 維護過的專案: ASP/ASP.Net + MSSQL, JSP, Perl, RoR -- 陶晶瑩‧太委屈 當她橫刀奪愛的時候 你忘了所有的誓言 她揚起愛情勝利的旗幟 你要我繼續選擇愛你的方式 你曾經說要保護我 ★★ ☆★★ ☆☆ 只給我溫柔沒挫折 可是現在你總是對我迴避 陶 ★★★★★★★☆☆☆ 不再為我有心事而著急 人說戀愛就像放風箏 子 ★★★★★★☆☆☆ 如果太計較就有悔恨 只是你們都忘了告訴我 ‧ ★★★★★☆☆☆ 放縱的愛也會讓天空劃滿傷痕 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.68.125.194

02/19 07:56, , 1F
你說物件化本身反而阻礙了可重複使用性
02/19 07:56, 1F

02/19 07:56, , 2F
那你認為可重複使用性怎麼做比較好?
02/19 07:56, 2F

02/19 08:04, , 3F
不是物件化本身的問題,而是物件化不一定是能重複使用
02/19 08:04, 3F

02/19 08:04, , 4F
我修一下內文,不好意思
02/19 08:04, 4F
※ 編輯: damashige 來自: 219.68.125.194 (02/19 08:06)

02/19 08:15, , 5F
這或許是開發 framework 的人永遠的課題..
02/19 08:15, 5F

02/19 08:16, , 6F
我只是很好奇你是怎麼想的 畢竟你的工作經驗也滿豐富的@@"
02/19 08:16, 6F

02/19 08:18, , 7F
我基本上是手工打造,對framework真的很不熟
02/19 08:18, 7F

02/19 09:14, , 8F
物件化不一定能重複使用~也許可以重新想想原來的設計和現
02/19 09:14, 8F

02/19 09:16, , 9F
在的應用是否已背離?不會framework就算不會php~那我最近遇
02/19 09:16, 9F

02/19 09:17, , 10F
到的廠商該算是幼稚園了>.< 怪的是~有些地方會用物件~有的
02/19 09:17, 10F

02/19 09:18, , 11F
會重覆使用的方法居然直接寫死在各網頁裡~真讓我大開眼界
02/19 09:18, 11F

02/19 09:37, , 12F
不同人或不同結案壓力下的 code 的表現會有很大的差距的(笑
02/19 09:37, 12F

02/19 11:09, , 13F
你說的似乎不是物件化本身的問題..而是外卦元件的包裝吧?
02/19 11:09, 13F

02/19 11:10, , 14F
大多人直接呼叫套件的方法不會再予以抽象化 因為沒那麼閒
02/19 11:10, 14F

02/19 16:50, , 15F
不太一樣吧,以 CI 來講你要切到 Java Struts 跟 Rails 都
02/19 16:50, 15F

02/19 16:50, , 16F
很快,他採用 controller-model-view 的概念,只要有跟隨
02/19 16:50, 16F

02/19 16:50, , 17F
這套概念的相關 framework 自由轉換是很容易的
02/19 16:50, 17F

02/19 16:50, , 18F
但是 Joomla 跟 Drupal 則不一樣,這是已經現成的套件,他們
02/19 16:50, 18F

02/19 16:51, , 19F
不是 framework ,他們是 product ,頂多是比較容易客製的
02/19 16:51, 19F

02/19 16:51, , 20F
product。
02/19 16:51, 20F

02/19 16:51, , 21F
另外有經驗的人要上手 framework 應該很快,我學 CI 只用了
02/19 16:51, 21F

02/19 16:51, , 22F
3-5 天就上手了(有參考 Struts 跟 rails 經驗)。
02/19 16:51, 22F

02/19 16:52, , 23F
重點在這個 framework 的概念,不是他的 code 怎麼寫、設定
02/19 16:52, 23F

02/19 16:52, , 24F
檔怎麼設定,很多人寫 framework 都在專注這些東西。
02/19 16:52, 24F

02/19 16:52, , 25F
寫這麼久還對這些 framework 不熟,或許你該想的是你是不是
02/19 16:52, 25F

02/19 16:52, , 26F
都用同一套作法在做一樣的事,而沒有試著去思考可以用多少
02/19 16:52, 26F

02/19 16:53, , 27F
種作法作同一件事。
02/19 16:53, 27F

02/19 16:53, , 28F
我在 node JS 時即使他沒明確的 MVC 結構我還是會不自覺使
02/19 16:53, 28F

02/19 16:54, , 29F
用 mvc 結構開發,是因為我 follow 這個思維,不是 follow
02/19 16:54, 29F

02/19 16:54, , 30F
這個工具。
02/19 16:54, 30F

02/19 18:02, , 31F
使用過 CI,覺得它的 model 這一環有點薄弱
02/19 18:02, 31F

02/19 18:04, , 32F
一些比較進階的 SQL 比如 join 裡頭有一堆 bug
02/19 18:04, 32F

02/19 18:05, , 33F
後來被搞毛了很多複雜的 SQL 都自己來不透過 DB driver
02/19 18:05, 33F

02/19 18:08, , 34F
做大一點的系統,如果覺得 CI 的 model 不敷使用時
02/19 18:08, 34F

02/19 18:09, , 35F
可以考慮改用 CakePHP
02/19 18:09, 35F

02/19 18:21, , 36F
說到 framework,我認為該會的還是要會
02/19 18:21, 36F

02/19 18:22, , 37F
畢竟 framework 所關注的問題是一般 PG 開發過程的共通問題
02/19 18:22, 37F

02/19 18:23, , 38F
有些問題交給 framework 處理就好 (比如 SQL injection)
02/19 18:23, 38F

02/19 18:24, , 39F
不用什麼東西都自己從頭 ab initio 重造輪子
02/19 18:24, 39F

02/19 18:25, , 40F
不僅耗上一堆無謂的力氣,而且又 buggy
02/19 18:25, 40F

02/19 18:26, , 41F
但使用 framework 時,要去了解它的長處與短處
02/19 18:26, 41F

02/19 18:27, , 42F
多接觸不同的 framework,也可更加理解各別的理念與邏輯
02/19 18:27, 42F

02/19 18:27, , 43F
這些概念對於堆大積木時,都很有幫助
02/19 18:27, 43F

02/19 20:14, , 44F
感謝大家的回覆,當初CI是看了十五分鐘範例後就開始架站
02/19 20:14, 44F

02/19 20:15, , 45F
網站有雛型大概是一周,當開始運作之後,有使用者發現
02/19 20:15, 45F

02/19 20:16, , 46F
上傳的檔案消失了,查看之後,才發現我漏加允許上傳的格式
02/19 20:16, 46F

02/19 20:16, , 47F
其實大致運作上都OK,只是偶爾會出現一些要改設定
02/19 20:16, 47F

02/19 20:16, , 48F
這部份真的很不熟,需要多加學習
02/19 20:16, 48F

02/19 20:19, , 49F
CakePHP之前有幫忙修改效能,不過那個後來發現是第三方
02/19 20:19, 49F

02/19 20:19, , 50F
的問題,之後就沒甚麼碰了
02/19 20:19, 50F

02/20 22:44, , 51F
simple is hard
02/20 22:44, 51F
文章代碼(AID): #1H8hmjG4 (Soft_Job)