Flarum 的故事:我為什么開發(fā)Flarum
我叫TobyZerner,是一個(gè)22歲的澳大利亞人。去年我完成了第三年的醫(yī)學(xué)院本科學(xué)業(yè)。今年,我有了學(xué)業(yè)以外的休息時(shí)間,來從事我的一個(gè)愛好:構(gòu)建簡(jiǎn)潔的論壇軟件。這個(gè)故事...
我叫 Toby Zerner,是一個(gè) 22 歲的澳大利亞人。去年我完成了第三年的醫(yī)學(xué)院本科學(xué)業(yè)。
今年,我有了學(xué)業(yè)以外的休息時(shí)間,來從事我的一個(gè)愛好:構(gòu)建簡(jiǎn)潔的論壇軟件。
這個(gè)故事是關(guān)于我為什么要做這些,以及 Flarum 的未來。
論壇軟件爛透了
在我的成長(zhǎng)過程中,我的哥哥 Simon 教會(huì)了我編程(從某種意義上來說)。
Simon 非常聰明開朗。即使不談技術(shù)層面,雖然當(dāng)時(shí)我們都知道 PHP4 面條式代碼,然而 Simon 卻能領(lǐng)悟到別人領(lǐng)悟不到的事:簡(jiǎn)潔 Simplicity。
論壇軟件在當(dāng)時(shí)非常的不簡(jiǎn)潔。即便是使用“設(shè)計(jì)”這個(gè)詞形容這些論壇,都是奢侈的。他們真的算是很粗心的迭代的產(chǎn)物:為了滿足一些需求,就要添加一個(gè)功能,但卻帶來了額外的復(fù)雜性。然而這個(gè)過程會(huì)重復(fù)上百次,軟件就會(huì)復(fù)雜上百倍。你無法做一個(gè)簡(jiǎn)潔的論壇用戶——你必須是一個(gè)超能用戶,花費(fèi)你寶貴的時(shí)間去適應(yīng)——這簡(jiǎn)直就是場(chǎng)戰(zhàn)斗——和這些凌亂的功能戰(zhàn)斗,和這些不違和的界面戰(zhàn)斗。
Simon 想退一步,以使論壇保持簡(jiǎn)潔?;貧w到最基本的對(duì)話。為什么我們就不能在網(wǎng)上與人簡(jiǎn)簡(jiǎn)單單的交談嗎? 所以我們就構(gòu)建了 esoTalk。
我們研究了所有論壇中關(guān)于討論列表的層次結(jié)構(gòu),并交換了各自的意見。我們擺脫了識(shí)別標(biāo)志,而是實(shí)現(xiàn)了一個(gè)強(qiáng)大的 gambit 搜索系統(tǒng)(一個(gè)簡(jiǎn)化版的 GitHub's search tokens)。我們使用短輪詢,因此在論壇中所以人可以幾乎實(shí)時(shí)對(duì)話。esoTalk 是有別于其他論壇的,人們對(duì)此很感興趣。
esoTalk 視頻:esoTalk: a simple fast free web-forum
不幸的是,Simon 在 2009 年去世。世界失去了一位杰出的人。
這是一個(gè)悲傷的時(shí)刻,帶著對(duì)他的回憶,我竭力地繼續(xù)為完善 esoTalk 而工作。然而,我畢竟是一個(gè)年輕的開發(fā)人員,編寫的代碼不知不覺地重新發(fā)明了輪子。當(dāng)我開始關(guān)注生活中的其他領(lǐng)域時(shí),發(fā)現(xiàn) esoTalk 已經(jīng)逐漸變得陳舊。
但我沒有停止思考。
構(gòu)建更好的東西
盡管 esoTalk 已經(jīng)停滯,可人們?nèi)匀幌矚g使用它。甚至有些人愿意贊助它,希望它進(jìn)一步發(fā)展。通過所有的錯(cuò)誤、教訓(xùn)、迭代、和反饋……我開始堅(jiān)信:人們期待好的論壇軟件,也許我有能力設(shè)計(jì)出來。
為了鍛煉我的想象力,我開始嘲笑“esoTalk 2.0”。一些審美的想法最終隨著 esoTalk 的新版本發(fā)布了。但這些設(shè)計(jì)也僅僅是頭腦風(fēng)暴的一部分——而這些想法,最終導(dǎo)致了 Flarum 的概念版。
2013 年,在朋友 Stephen 的幫助下,我?guī)е?Flarum 的想法參加了我們學(xué)校的創(chuàng)業(yè)者競(jìng)賽。首先我們開始構(gòu)建一個(gè)原型,并設(shè)想一個(gè)商業(yè)模式。其次,一些現(xiàn)金,還有很多鼓勵(lì)性的問題:我們可以做這個(gè)嗎?
也許不是。原來,在現(xiàn)實(shí)世界中新的論壇軟件是很難的。我們?cè)?Kickstarter 的競(jìng)選活動(dòng) generated interest, but not traction。投資或孵化也許已經(jīng)成為了一種選擇,但是我既不想放棄學(xué)醫(yī),也不想放棄這個(gè)社區(qū)型項(xiàng)目的想法。
看來最好的辦法是啟動(dòng)它。我還有一年的時(shí)間才能離開學(xué)校,并把它的構(gòu)建過程開放。然后我可以市場(chǎng)化,構(gòu)建一個(gè)小型的基于服務(wù)的業(yè)務(wù)。 開源第一,賺錢第二。
事實(shí)證明,你需要達(dá)到一定階段后開源協(xié)作才變得可行。這比我希望的時(shí)間要長(zhǎng)一點(diǎn)。但 8 個(gè)月后我們做到了: Flarum beta 發(fā)布了。我相信它實(shí)現(xiàn)了一個(gè)很強(qiáng)的愿景,而這個(gè)愿景,是從 Simon 和我一起發(fā)布 esoTalk 第一版時(shí)就一直夢(mèng)想的,如今它實(shí)現(xiàn)了。
Flarum 的目標(biāo)是:
快速、簡(jiǎn)單 沒有混亂,沒有膨脹,沒有復(fù)雜的依賴關(guān)系。Flarum 使用 PHP 構(gòu)建,因此它很容易部署。界面使用 Mithril,它是一個(gè)高性能 JavaScript 框架。
漂亮、響應(yīng)式 Flarum 由我們的設(shè)計(jì)師精心設(shè)計(jì),它是跨平臺(tái)的、開箱即用的。界面布局使用了 LESS,所以主題風(fēng)格只是小事一樁。
強(qiáng)大、可擴(kuò)展 為了滿足您的社區(qū)需求,您可以定制、擴(kuò)展和集成 Flarum。Flarum 的架構(gòu)非常靈活,它擁有非常全面的 API 和文檔。
自由、開放 Flarum 基于 MIT license 發(fā)布。
讓 Flarum 更穩(wěn)定
沒有任何慶功會(huì),因?yàn)檫€有很多工作要做!
我從 esoTalk 學(xué)到了一件事:如果一個(gè)軟件沒有建立良好的基于擴(kuò)展的生態(tài)系統(tǒng),那么這個(gè)軟件必將失敗。我不打算 Flarum 犯同樣的錯(cuò)誤。我的計(jì)劃是擴(kuò)展市場(chǎng),任何人都可以購(gòu)買和出售擴(kuò)展——配有簡(jiǎn)單的安裝和更新。然而,只有 Flarum 發(fā)布了穩(wěn)定版,這一切才會(huì)有可能。
與此同時(shí),我真的不知道自己該做什么了,而 Flarum 無疑是這一事實(shí)的化身。我做了大量的開發(fā),從 Franz Liedke 獲得了一些幫助。getting it done的精神,導(dǎo)致我迄今為止都忽視了編寫測(cè)試和審計(jì)性能。 沒有團(tuán)隊(duì)的反饋,我創(chuàng)造了一些低質(zhì)量的代碼和 API,而這些都需要修訂。
如今我的重點(diǎn)變成了:Flarum 需要你們的幫助!
beta 版的目標(biāo)是讓開發(fā)人員可以從代碼庫(kù)中得到完整代碼?,F(xiàn)在,已經(jīng)激發(fā)了很多潛在的貢獻(xiàn)者,我們寫了許多 GitHub issues 的詳細(xì)描述。它們包含一些忠告,需要做什么和在哪里查看??纯从心男┦悄阆胍龅?
特別是,我們想要一個(gè)關(guān)于擴(kuò)展 API 的深入討論。你可以閱讀初版文檔來學(xué)習(xí)擴(kuò)展是如何工作的。這里有一個(gè)在 GitHub 的問題反饋。
如果你不是一名開發(fā)人員,可以考慮捐贈(zèng)。所有捐款將用于支付服務(wù)器費(fèi)用和支付專用的開發(fā)時(shí)間。(如果你有興趣為開源項(xiàng)目做一些有償工作:告訴我們你能做什么貢獻(xiàn)!)
在接下來的幾個(gè)月里,讓我們慢慢地工作,以便 Flarum 順利走向穩(wěn)定版。
鳴謝
在此次敘述中我談到了很多關(guān)于自己的事。但是到目前為止我們?nèi)〉玫乃谐删?,不可能沒有別人的幫助。
Franz Liedke 是 FluxBB 的開發(fā)者,在今年早些時(shí)候加入了我的團(tuán)隊(duì)。他分享我的激情,超過我的才華,并一直工作至今。謝謝你!
感謝那些熱情地跟隨我一起開發(fā)的人,特別是 Berlo、Dominion 和 Stephen。你們讓我有動(dòng)力,通過你們的測(cè)試和反饋,F(xiàn)larum 有了明顯的改善。
Matthew McKinlay 是我在創(chuàng)業(yè)競(jìng)賽的導(dǎo)師,也已經(jīng)成為了我的好朋友。他讓我有了寶貴的建議并驗(yàn)證這些想法(Just Do It™)。 謝謝 Matt。
我的父母和兄弟姐妹 支持我追求我的夢(mèng)想。為此我非常感激。我有一個(gè)相當(dāng) cool 的家庭。
最后,我的哥哥,Simon,他把種子種了下去,直到他生命的最后一天。Flarum 是獻(xiàn)給你的,我希望我已經(jīng)讓你感到驕傲。
最后一段,我保留一下原文:
Finally, my brother, Simon, who planted the seed and watered it right up until his last day. Flarum is dedicated to you; I hope I have made you proud.
Flarum 是一款優(yōu)雅、簡(jiǎn)潔、強(qiáng)大的輕論壇軟件。地址:https://github.com/flarum/core