PHP開源框架Drupal怎么樣?
首先我想說在中國請不要使用drupal,也不要學(xué)習(xí)drupal,真的,最近剛剛用drupal做了一個商業(yè)網(wǎng)站,drupal不適合中國絕對不是危言聳聽。
好,現(xiàn)在開始正文,我會從不僅僅是開發(fā)角度,而是從項(xiàng)目管理,流程,開發(fā),測試,上傳同步。等各個角度drupal的噩夢般的缺點(diǎn)。也許文字較多,希望有人能耐心看一下。我會把開發(fā)中的問題留到最后講,因?yàn)閷?shí)在是太多問題了。我們程序的經(jīng)理一句話總結(jié)drupal只適合1個人開發(fā)。
1、流程問題:我是產(chǎn)品經(jīng)理, 作為普通的web項(xiàng)目流程 一般為, 需求確立->做出設(shè)計(jì)(psd)->完成前端(html)->編程階段(php)。 而drupal的流程為 需求確立->做出設(shè)計(jì)(psd)->drupal編程階段(php)->完成前端html。 這樣的流程直接導(dǎo)致了很多問題:
問題1:psd到html有一個切圖的流程,大家都知道現(xiàn)在psd做出來的設(shè)計(jì)搞到html總會有一些差異。字體大小,圖片大小,和一些效果。例如每行放多少個字,圖片的尺寸比例都是需要等到html做完后微調(diào)確立的。而用drupal的流程沒有切圖這個步驟,所有的html都是drupal的view生成出來的,結(jié)果導(dǎo)致這個psd和html差異的問題被放大,需要更多時間去調(diào)整。
問題2:由于html是view生成出來的,垃圾代碼非常多,是普通手工寫的代碼3倍以上。可讀性非常差,是做html人的惡夢。而且一些效果很難做出來(圓角就不要想了,直接用一個大背景算了)
問題3:由于流程 做出設(shè)計(jì)(psd)->drupal編程階段(php)->完成前端html。 每次改動view生成的html的ID都會變化,然后html的css就要重做。舉個例子:例如傳統(tǒng)的方式html做好后,原來是一行顯示的是城市改成顯示省,城市,區(qū)后 html和css不需要該任何東西。因?yàn)閏ss控制的一行的文字。 而drupal用view改了之后每個node都會生成span,需要重新調(diào)整樣式給新建的樣式,而且如果是更改了某個塊, 塊ID變了,css就沒了,還要重新調(diào)整css里面的id, 做html的人不知道要做多少次重復(fù)的勞動。而且由于html是view生成的,從html里面的n多垃圾代碼找到一個可以用于寫css的ID真比自殺還難受。
總結(jié),流程的不同直接導(dǎo)致了drupal是做html人的惡夢
2、成本問題:在中國找到一個會html的不難,找一個會php的也不難,而且成本也不高。 即使找一個會做html css 并且會php也不是很難。 那么如果用drupal開發(fā)會變成什么樣呢?你必須找一個需要精通html+CSS+JS+php的人,而且缺一個不可(注意是要精通)。而且還要同時找精通drupal的人,這樣的人在中國能找到嗎?
為什么呢? 首先drupal的view絕對不是僅僅懂html就能掌握的,view是給精通sql的程序員用的,所以不懂程序的人,或者不精通程序不精通sql的人請不要學(xué)習(xí)drupal了, drupal看似一個cms系統(tǒng),但實(shí)際drupal是一種語言,一個操作系統(tǒng)。 沒有3年以上的大型開發(fā)經(jīng)驗(yàn)的人根本無法掌握。 (就連開發(fā)drupal的都無法掌握drupal)
我們開發(fā)這個項(xiàng)目時,從德國總部請來了drupal專家,而且還聘請了中國drupal社區(qū)的二號人物(一個法國人),而且我們前端都是可以自己寫js的人,這些的人成本有多高。關(guān)鍵是即使是這樣我們還是無法降服drupal。
總結(jié) drupal是老板的惡夢。
3、從現(xiàn)在開始談開發(fā)問題。
drupal 的view 說白了就是一個簡單的sql查詢工具。 一個程序員可以輕松手寫sql達(dá)到目的,而用view可能怎么寫也達(dá)不到目的,做同一個邏輯增加很多時間成本,而且關(guān)鍵很多都達(dá)不到。 還有就是定位的pannel只能往頂部或底部插入,不能往中間插,如果當(dāng)初需求沒定好想改,那就改整個頁面的布局吧。而且html的樣式還要重做。 一個開發(fā)同事原來會html,會js,會sql,現(xiàn)在做了drupal后被強(qiáng)制變成了viewer,只會寫view了,html,css代碼也不會了,sql不會了, 整個人的職業(yè)發(fā)展終結(jié)了。
1、傳值問題,例如js 與 flash之間傳值, 現(xiàn)在變成了 view,js, flash, 之間傳值 本來就不是很容易的問題現(xiàn)在又多了一成, 很多東西時間需要3倍以上時間用了很多辦法才能做到。
2、多人開發(fā)問題, 普通流程都是用svn控制,而用drupal開發(fā)很多邏輯都是直接儲存在drupal的數(shù)據(jù)庫,出了問題根本不知道是哪出了問題,是誰出了問題。
3、性能問題,不多說了,垃圾的html代碼,加垃圾的view的邏輯, 加上復(fù)雜的傳值過程,性能要好就真是見鬼了。
4、中文問題, 很多內(nèi)置對英文的處理,例如截取,斷句,等等都是很好功能,但是對于中文都成了bug。(那個法國人正在開發(fā)drupal7的適合中文的模塊)
5、文章分頁功能,都需要自己開發(fā),很多bug。再加上多人開發(fā)問題,出了問題不知道問題在哪,如何解決。
6、點(diǎn)擊鏈接新開窗口打開,view中沒有這個功能,真的,真的沒有,目前我們用js實(shí)現(xiàn)的。
7、js瀏覽器IE下兼容性問題,drupal會把js都整合到一起,無解,好了ie壞了firefox。
8、cck問題, cck也是drupal重要部分,但是就連2級聯(lián)動這種功能都沒有,現(xiàn)在國內(nèi)哪個cms和論壇沒有類似cck建字段的功能。 最基本的功能都要自己開發(fā),而且關(guān)鍵是自己開發(fā)很危險。說不定改了什么drupal核心的東西系統(tǒng)就崩潰了。
9、批量上傳圖片問題,很多插件看似沒有問題,但是不支持中文文件名,而且我們圖片的數(shù)量級是15000張,數(shù)量級一多,一大堆問題。
4、最最重要的問題:drupal非常不穩(wěn)定,或者drupal沒有人能控制得了,現(xiàn)在drupal給我的感覺越來越像終結(jié)者里的天網(wǎng)。我們有開發(fā)drupal的專家,都控制不了。 舉例說明幾個問題:
1、內(nèi)存泄露問題,在開發(fā)的時候我們曾經(jīng)每5分鐘重啟一次服務(wù)器,不重啟過一段時間服務(wù)器遠(yuǎn)程都連不上了,只能手動去按服務(wù)器上的按鈕重啟。
2、有時候只改css的文件的時候樣式都改不過來,即使已經(jīng)清楚了所有服務(wù)器的緩存,drupal的緩存,和瀏覽器的緩存,
3、drupal自己把數(shù)據(jù)庫回檔了2次,本來我們都已經(jīng)改好了功能,但卻回檔到某個版本,因?yàn)槎际羌冊谠赿rupal的數(shù)據(jù)庫里,根本無法找到問題所在,只好重做一遍。 而另一次是在切換域名的時候,也是數(shù)據(jù)丟失。 (drupal有自我修復(fù)功能?)
4、drupal 在我們切換域名的時候,強(qiáng)制把mysql服務(wù)器關(guān)閉了,不知道為什么,我們查看了mysql的日志,也不知道什么問題,很靈異。
5、雖然有比較好的緩存系統(tǒng),但只對訪客有效,對于注冊用戶來說居然毫無作用,其中還有很多很多問題, 我只能想起什么寫什么了, 總之 drupal是程序員的惡夢, 是項(xiàng)目管理的惡夢,我們無法控制項(xiàng)目,是drupal在控制我們。不知道什么時候出問題,不知道問題出在哪,不知道如何解決,都是走一步看一步。及時備份數(shù)據(jù)庫吧。
6、我非常同意我們開發(fā)經(jīng)理的說的一句話,drupal只適合一個人開發(fā),(我們那個德國專家說的是一個viewer對應(yīng)一個htmler,2個人開發(fā))
那么我在想,drupal的定位是什么,如果是定位于類似supersite,織夢,這種不懂編程也能快速建站用的人,drupal顯然不適合, 那么給程序員的用的,把程序員強(qiáng)制了變成了一個viewer,終結(jié)了程序員發(fā)展,也不適合,開發(fā)大型的商業(yè)網(wǎng)站,不穩(wěn)定,不適合多人協(xié)作,也不適合,那么drupal到底適合做什么呢? 所以我的結(jié)論就是drupal不適合中國。真的不適合。
分類·技術(shù)相關(guān) 評論(9) 瀏覽(3820) 2011-12-28
最新評論:
no.3318 ishareu 113.106.103.130 2013-02-15 17:15
drupal能承受100萬級的node,多用用feature或許有幫助
no.2927 xwuxin 124.193.126.162 2012-09-12 02:16
它是個CMS框架,相對于純的mvc框架來說本身就復(fù)雜,如果它相對于輕量的mvc框架(比如CI)并不能減輕工作量,而且也不夠靈活,那么為什么要用它呢,我個人一直覺得drupal只適合學(xué)習(xí),至少我目前接觸的大用戶項(xiàng)目都沒用drupal,當(dāng)用戶量暴增時,這個框架是否能快速適應(yīng)和演進(jìn)還是個大問題。
fangzi 2012-09-12 06:54
在理,絕對專家。
no.2851 07258467 222.90.141.47 2012-07-25 10:32
最近也在用drupal做一個房產(chǎn)中介服務(wù)的網(wǎng)站,感覺用drupal太難了實(shí)現(xiàn)自己的想要的功能 了,現(xiàn)在感覺最大的麻煩就是在后期的頁面程現(xiàn)上,有很多地方的css根本實(shí)現(xiàn)不了。而且用cck開的話要產(chǎn)生很數(shù)據(jù)庫表。。。views生成的查詢語句很復(fù)雜而且效率不是很高。
no.2477 icac119 222.66.163.194 2012-02-09 10:03
哈哈,本身很簡單的站還不如自己寫來得實(shí)在。
no.2450 35984040 111.172.188.244 2012-01-14 21:21
國外的CMS的流程和國內(nèi)的是有點(diǎn)不一樣,最近做一個網(wǎng)站,用的joomla,也是做的頭疼
no.2445 rogical 222.126.165.114 2012-01-12 13:48
至于開發(fā)成本,其他一些難點(diǎn),都能解決,為何付出要多一點(diǎn),緣于drupal這個開源免費(fèi)cms的定位在非初級開發(fā)者,做簡單站沒優(yōu)勢,做復(fù)雜站才有力。 各種技術(shù),實(shí)時應(yīng)用,移動互聯(lián)網(wǎng),微博等等技術(shù),都能找到在drupal中的實(shí)現(xiàn),是的,它是一個操作系統(tǒng)。
fangzi 2012-01-12 22:40
那你見過哪個移動互聯(lián)網(wǎng)應(yīng)用和微博是用drupal開發(fā)的?為什么要把簡單的事情搞得如此復(fù)雜?一套微博應(yīng)用是可以用一個PHP框架可以解決的?我想牽涉到的層面恐怕不僅限于PHP?
no.2444 rogical 222.126.165.114 2012-01-12 13:46
大部分問題 對中級drupal開發(fā)者來說不是問題, 其中協(xié)作開發(fā),項(xiàng)目管理,版本迭代是drupal目前最尖銳的問題,這在D8中已經(jīng)重點(diǎn)提出了;
no.2443 rogical 222.126.165.114 2012-01-12 13:35
6、點(diǎn)擊鏈接新開窗口打開,view中沒有這個功能,真的,真的沒有, -- 這個真的有, rewrite
fangzi 2012-01-12 22:42
只能說drupal太過于理論和教條化,作為PHP框架就應(yīng)該做好框架該干的事情!
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報。