是公司自己寫,還是使用開源的架構。為什麼做這樣的選擇,是基於什麼考慮?本人看過很多的公司內部架構,說實話,真沒開源的寫的好,無論是文檔還是易用性。好多人的想法是,如果讓人知道公司開發的架構是用的開源架構,會被人鄙視- -。大家是否也有這樣的考慮?
回複內容:
因為要有個性事實是,他們技術總監想寫個架構練練手,所以就忽悠ceo,說怎麼怎麼需要。基本都是這樣的原因。
普通mvc架構完全沒有自己寫的必要,像鳥哥的yaf,phalcon這種才是需求產生的。看過用過一些開源架構,像Yii、CakePHP、CodeIgnitor, 同時也為某個大型公司開發維護過內部的架構,簡單說說我的觀點:
1. 開源架構好是好,但做 PHP 開發的大多圍繞項目需求走,沒有需要也沒有動力去學一個開源的架構,即便要使用,選擇哪個架構也是個很困難的事。通常就算用了開源的架構,也只是用了其中一部分,大多沒有理解架構設計的原則,一旦需要對架構做擴充時就胡亂來了;
2. 開源架構做的都是通用的需求,而企業內部往往有特殊的需求,自己做架構能夠更切合實際的需求,出現 bug 改正也會比較及時。如果使用開源架構,往往要在深入理解內部原理上下不小的功夫,顯然沒有自己寫的代碼熟悉;
3. 效能偏見,某些人認為大部分架構中繞來繞去的方法調用、為解耦引入的多次層架構,對效能有影響,因而認為自己寫的“簡單”代碼有更高的效能。這類人往往鄙視設計模式一類的東西,出來的代碼當然要更混亂。簡單說,因為PHP這門語言太爛了,以至於很難寫出足夠好的架構。這一方面導致許多人認為自己能寫得更好。另一方面,要寫到足夠好的,最終就非常不象PHP。所以或者覺得要麼不如直接用其他語言(寫的架構),或者認為這丫已然不是PHP了。
補充:
關於PHP的爛:架構本身是要提供強約束,比如分層隔離,禁止業務層訪問表現層,但PHP的大量函數都在全域命名空間下,你無法禁止對這些函數的訪問。歸根到底,PHP本來就是設計為對於Web層的抽象。既然要寫架構,則隱含前提是認為PHP自身的抽象不夠好。重造一層抽象之後,整個就和傳統PHP背道而馳了。從某種程度上說,PHP的哲學是反架構的。
- 公司有沒有自己的架構其實要看公司自身的實力,PHP更多的是一些創業型的公司使用,從成本上來說不適合自己獨立開發架構,因為一個良好的架構,業務,安全,效能等等都需要很長時間來考驗。
- 當然有些小公司也會自己寫架構,原因很簡單自己的業務簡單也不需要那麼複雜的架構,借鑒一下MVC開發思想,寫一個簡單的架構也沒有那麼複雜,另外網站的效能也不是PHP這個架構所決定的,linux和websever的最佳化和配置以及對資料庫的最佳化和使用都是很重要的因素。
- 另外關於說PHP不適合大型網站構架純粹胡扯,不是說他不適合,而是早期的PHP不是很成熟(相對於java和c來說),而且早期的web程式員主要也是以java語言為主,後來雖然PHP技術成熟後,但他們(早期java)佔據了公司的領導崗位,對以後的項目會本能的採用自己熟悉的語言和知識。PHP的劣勢是:1:沒有佔據早期開發優勢(人們一般有先入為主的思想),導致現在PHP不能成為大網站的主導語言,2:屬於草根開源語言,在面臨bug問題上面,只能等待或者自己做擴充,不像甲骨文可以付費解決問題
- 就效能而言,PHP適合快速迭代的開發模式,例如新浪微博就是採用PHP,一個良好的LAMP架構支援百萬級的業務量還是相當easy的
用不用開源架構,跟被人鄙不鄙視一點關係也沒有。那是個人的偏見
如果項目時間趕,而且公司又沒有成熟的開發架構,那麼選擇開源架構就可以縮短開發週期。
如果時間允許,Team Dev人員多一些,那麼還是公司獨立開發一套好一些。在安全性上也會比較有保證。php比較簡單且速度快,開源又免費,lamp(linux作業系統+apacheWEB伺服器+mysql資料庫+php)架構成熟穩定,所以很多網站採用。 大多數都是自己寫的或是在開源架構上進行大規模的二次封裝
原因是各公司的業務需求差別很大
嗯嗯,就是這樣 看公司的項目,需要快速反應的,例如給客戶做網站,用開源的會有比較多,如果是自己運營的項目,例如自有網站、或者開發自有的軟體,那還是自己寫比較靠譜,甚至互相結合,交錯著用。。。 每個公司都想有一套屬於自己的系統