我是個大嘴巴的人,喜歡不斷的告訴別人我的感受和想法。
當(dāng)我剛寫完MiniCMS的產(chǎn)品介紹后,發(fā)現(xiàn)吐槽的文字比產(chǎn)品介紹還長很多,使得產(chǎn)品介紹根本不像產(chǎn)品介紹。但是有很多話又不吐不快,所以我把想吐槽的話和產(chǎn)品介紹分開來,各自作為一個獨(dú)立頁面,防止部分潛在用戶因為不耐煩我的吐槽而流失,呵呵。
MiniCMS的功能很簡單,開發(fā)MiniCMS的目的也很簡單。
我用WordPress用得膩煩了,我想要一個功能簡單,并且容易備份和遷移的個人建站程序,所以我自己開發(fā)了一個,并且也為了練練PHP,因為我的PHP一直都是很業(yè)余。
但是開發(fā)MiniCMS的歷程并不像它的功能那么簡單。
幾年前,我很幸運(yùn)的參與并主導(dǎo)開發(fā)一個代號為BlogMax的博客程序。那時的我對產(chǎn)品缺乏理解,單純的以為有好的技術(shù)就可以出好的產(chǎn)品。我對產(chǎn)品的膚淺理解最后導(dǎo)致了這個項目以停止開發(fā)而告終。
隨后的幾年,我都在從事互聯(lián)網(wǎng)相關(guān)的產(chǎn)品技術(shù)研發(fā)工作,雖然不直接參與產(chǎn)品策劃工作,但是與各種產(chǎn)品打交道久了,慢慢的也開始懂得從技術(shù)以外的角度去“鑒別”產(chǎn)品。
慢慢的,我發(fā)覺好產(chǎn)品是有共性的,這種共性是沒有領(lǐng)域區(qū)別的。
一份美食、一張好照片、一段好程序、一首好歌、一部好電影、一個好的互聯(lián)網(wǎng)產(chǎn)品,它們之間都有共同的“味道”,那就是人文。
而喬布斯通過蘋果的產(chǎn)品,更是一再的向世人證明,人文與技術(shù)相結(jié)合的力量是多么巨大。
于是我再次開始策劃開發(fā)一個博客程序。
但是做著做著,我發(fā)現(xiàn)我根本就是在做另外一個WordPress。跟別人做同樣的事情有什么意義呢?如果不跳出別人的思維方式,找到自己的真正方向,那開發(fā)這個產(chǎn)品根本沒有意義。
這樣的過程經(jīng)歷了2 - 3次,每當(dāng)我有一些空閑時間的時候,我就會開始嘗試,然后放棄,再嘗試,再放棄。
為什么不懂任何美工的我,直接在服務(wù)器上的命令行界面用VI手寫HTML和CSS,可以做出一套小清新的界面呢?
因為我已經(jīng)做過很多次嘗試了,以至于我愛人看到我在做MiniCMS的時候就說:“你又在做這個啊。”。
做MiniCMS和上一次嘗試大概隔了一年多。這一年多我都忙于開發(fā)公司的產(chǎn)品,忙結(jié)婚,忙產(chǎn)品上線,忙到處救火,這一年真的非常非常的忙,以至于忘記了很多事情,而有時候能忘記是最難得。
這次,當(dāng)我再次做博客程序的時候,我已經(jīng)忘記我要做一個產(chǎn)品了。這次的動機(jī)變得很單純,我想把自己的博客整得好用一些,讓我可以為我平時做的一些項目創(chuàng)建獨(dú)立頁面,并且又可以寫寫日志和文章,這是發(fā)自內(nèi)心的需要,我沒有太多時間做太復(fù)雜的功能,我只想早點做完早點能用上。
但是,剛開始做MiniCMS我一樣又遇到復(fù)制WordPress的問題。我設(shè)計完第一版的后臺界面的時候,我發(fā)現(xiàn)完全是另一個WordPress嘛,讓我糾結(jié)的是,好像每個功能都是必須的。
我把界面發(fā)給我弟看,把我的苦惱告訴他,他說:“有時候做減法比做加法難。”
我想一想,的確是如此。做加法,只需簡單的借鑒模仿別人的產(chǎn)品,而做減法,必須認(rèn)清自己要做的是什么樣的產(chǎn)品。
我提醒自己,我一開始只是想做一個自己夠用的程序,不是想做一個大而通用的程序。而這個程序順便滿足一些跟我一樣的個人站長的需求,我們這些人需要的不是一個帶三溫暖和三百六十度海景的超豪華辦公室,我們只是需要一個地方能讓人靜下來記錄和整理想法。
于是我開始砍功能。
最先砍掉的是用戶管理功能。因為我的網(wǎng)站只有我一個人在使用,這功能我從來沒用過。
接著砍掉的是主題和插件。我想,如果需要什么特定的功能或界面,直接拿代碼改就是了,而且作為一個小眾的建站程序,不可能有很多人,甚至不可能有別人為它制作主題和插件,做這兩個功能豈不是自作多情。
然后我又砍掉了分類功能。因為用WordPress期間,我經(jīng)常糾結(jié)于如何分類和貼標(biāo)簽,分類的樹狀結(jié)構(gòu)也讓人煞費(fèi)苦心。索性只留下最隨意的標(biāo)簽功能,能按標(biāo)簽索引文章就行了,網(wǎng)站的層級結(jié)構(gòu)就交給頁面系統(tǒng)。
在砍掉功能的過程中我慢慢的找到感覺,最后我總結(jié)出一點:創(chuàng)造內(nèi)容和展現(xiàn)內(nèi)容是個人CMS的核心功能,凡是與核心功能無關(guān)的,或者分散用戶使用核心功能的注意力的,都應(yīng)該砍掉。
最后我還決定不開發(fā)評論功能,因為我自己沒用到,而且也沒什么人寫評論。并且有Disqus這樣的第三方評論系統(tǒng)可以提供評論功能,無需把評論內(nèi)置到MiniCMS中,這樣可以讓MiniCMS更簡潔。
最后得到的MiniCMS后臺很簡單,只有三個標(biāo)簽頁,分別是”文章“、”頁面“、”設(shè)置“。
我用WordPress的時候有一點覺得特別不方便,就是備份網(wǎng)站。
網(wǎng)站的數(shù)據(jù)和文件是相關(guān)的,如果用數(shù)據(jù)庫的話只能導(dǎo)出SQL文件,并不能同文件一起備份。而且還原數(shù)據(jù)庫時還經(jīng)常受到各種限制或遇到編碼問題。
于是,我把MiniCMS設(shè)計成只需要PHP就可以運(yùn)行,不需要數(shù)據(jù)庫的支持。
對程序來說,這是變復(fù)雜了,因為要自己用文件組織數(shù)據(jù)又要保證效率。但是對用戶來說這是變簡單了,易于安裝,易于備份。
我希望用戶把MiniCMS上傳到服務(wù)器就可以開始使用,備份網(wǎng)站只需要備份整個網(wǎng)站的文件夾就行了。
當(dāng)完成MiniCMS的總體功能以后,我做的第一件事就是把自己幾年來的博客文章整理復(fù)制到新的程序中。
沒有任何多余功能的MiniCMS用起來果然高效許多。
我回想使用WordPress的感受,再對比使用MiniCMS的感受。我發(fā)現(xiàn),正是由于WordPress的目標(biāo)是做一個極度通用的建站程序,使得用戶在為了達(dá)到某個目的的適合沒辦法以最佳路徑達(dá)到,而必須走折中路線。
再回想曾經(jīng)參與開發(fā)的產(chǎn)品以及用過的各種產(chǎn)品,我總結(jié)出一點:追求產(chǎn)品的通用化,會使得每個需求都沒辦法以最佳的方式滿足,因為你要在諸多的需求之間妥協(xié)和平衡,最后得到的只能是一個平庸的產(chǎn)品。
其實在程序方面我很早就發(fā)現(xiàn)同樣的規(guī)律,好的程序員總是在最求代碼更通用的過程中不斷進(jìn)步成長,但是追求到了癡迷狀態(tài)就會產(chǎn)生過度設(shè)計的東西,不必要的程序通用性反而帶來很多副作用,所以我經(jīng)常說:“通用往往就是統(tǒng)統(tǒng)不好用”。
簡單的功能讓用戶專注于創(chuàng)造,好產(chǎn)品應(yīng)該像《道德經(jīng)》里說的:“上善若水,水善,利萬物而不爭”
簡單的功能讓開發(fā)者專注于解決核心需求,簡單的產(chǎn)品不是為了簡單而簡單,而是清楚的知道用戶的核心需求,并專注于解決核心需求而簡單。
保持簡單,保持專注,這就是我在開發(fā)MiniCMS的過程中學(xué)到的。
作者:達(dá)達(dá)
文章來源:1234nocom