頭條資訊 - 為您提供最新最全的新聞資訊,每日實時更新

我是如何在 72 小時內復刻 ClubHouse的|Linux 中國

科技數碼 Linux中國

我是如何在 72 小時內復刻 ClubHouse的|Linux 中國

導讀:大家好,我是白宦成(@bestony),前幾天在 B 站直播寫 ClubHouse 復刻版的開發者。

本文字數:2217,閱讀時長大約:3分鐘

作者:Bestony

大家好,我是白宦成(@bestony),前幾天在 B 站直播寫ClubHouse 復刻版的開發者。當然,除了這個身份,在真實生活中,我還是 Linux 中國開源社區的技術負責人,負責開發我們自己的自用工具和平臺。

作為一個 indiehacker(自詡的),我想和大家一起來複盤一下,這一次的直播活動和意料之外的爆火。

為什麼要做 NESHouse

我是如何在 72 小時內復刻 ClubHouse的|Linux 中國

我其實想到復刻 ClubHouse 的時間是非常早的,我是在 2 月 1 日拿到了 ClubHouse 的邀請碼,在試玩了一段時間以後,就覺得這個軟件還不錯,理念很有意思,但並沒有太在意,放在了一邊。可到了晚上,因為知道 Elon Musk 要來做分享,作為一個比較欣賞他的人,我自然不能錯過,但遺憾的是,當我打開 ClubHouse 的時候,已經有太多的人涌入這個 App,幾乎無法使用,總是不停的卡頓。

這時讓我產生了懷疑:這個東西到底有多少的工作量?為什麼這麼容易性能卡頓?

結合實際的使用發現,有些時候,我可以正常聊天,但是卻會報錯,可以發現問題不在語音服務,而是在 ClubHouse 自身的業務能力不足以支撐超過預期的訪問量。

我上一份工作是在一家雲計算企業工作,所以相對來說,對雲計算產品有一定的瞭解。在我看來,這樣的一個產品的增量,很難把現有的雲計算產品的服務容量打穿,你能想象 ClubHouse 把 AWS、GCP、Azure 等雲服務廠商打穿麼?

我覺得,要麼是開發者的大規模服務的架構經驗不足,雖然用了雲,但是沒設計好,無法充分適應彈性;要麼是開發者沒有對超過預判的訪問量做的預案不足。

這就讓我思考,我能否復刻一個 ClubHouse?用一些更加具有彈性的服務?給大家打個樣? 雲計算是好,但用起來也要姿勢對,才能不出問題。

72 小時復刻一個 ClubHouse,是一個什麼概念?

既然要復刻項目,自然要做的不能和碰瓷的一樣(這裡鄙視幾家碰瓷的 App,拿很久之前寫的具備了語音聊天的 App,來碰瓷 ClubHouse)。

但我又不希望在這個事情上花費太多的事情,我還有很多更重要的事情要做,所以我選擇了 72 小時。48 小時或 24 小時是一般的黑客鬆的時間長度,但我確實又不熟悉這個項目,所以用 72 小時比較穩妥。

於是便立了一個 Flag ,說我要在 72 小時內,復刻一個 ClubHouse。立了個 Flag,說幹就幹。關於這 72 小時,我希望可以強調兩點,也希望這兩點能夠幫助到你。

我是如何在 72 小時內復刻 ClubHouse的|Linux 中國

1. 明確自己要做的和不要做的

我的時間和精力以及資源都有限,所以並不是什麼東西我都能要的。比如在做復刻的時候,考慮到我如果開發原生的 App 或者小程序,就需要提交審核。那我就不能選擇做 App,不然 72 小時到了,審核還沒過,就食言了。也是出於審核的考慮,我最終選擇了使用 Web 的方式來開發 NESHouse。

而到了具體的功能特性層面,受限於 Web 和 App 的機制不同,我很難要求用戶必須做什麼樣的操作,也很難確保 App 響應什麼樣的功能,因此,我對於 ClubHouse 的功能進行了一些刪減,邀請上臺之類的功能,我就選擇性的先不做,將重點放在更加重要的功能中。

在開發黑客鬆項目的時候,一定要先想清楚自己要什麼,不要什麼,這樣才能確保自己在給定的時間內完成自己的工作。不然大概率會發現時間馬上要截止,但核心功能還沒有研發完成。

2. 選擇一些新的、以後可能會用到的技術

在這次項目開發的時候,我選擇的前端技術棧並非我過去慣用的 React、Vue ,而是一個相對小眾 JS 框架的 Alpine.js。

選擇 Alpine.js 的原因很簡單,我後續需要在其它的項目上使用這個框架,但我此刻確實也不熟悉。如果我在這 72 小時裡把這個工具用了一遍,如果評估覺得不錯,我就可以在後續的項目中使用,如果這次我用的不太好,那我損失的也只有 72 小時,比在正式項目中使用的損失成本要低很多。

而在另外的兩個服務,選擇起來就簡單多了:

◈ LeanCloud 的雲服務我使用了很多年,使用體驗也很不錯,而且他們這種 Serverless 雲服務,可以讓我在開發NESHouse的時候,免於去寫很重的部署和基礎邏輯,更加專注在業務邏輯上。

◈ 音頻服務我則選擇了國內用戶比較多,開發起來也比較方面的聲網,聲網的 API 比較簡單, NESHouse 中的聲網音頻接入只用 4 行代碼就實現了。

除此之外,便是使用了 NES.css 這樣的 CSS 框架,來讓這個項目更加的有趣,更加的 Funny。

對於開發黑客鬆項目的時候,可以想想自己能否接受這一次的失敗,如果可以接受自己的失敗,不妨將這次黑客鬆看做是一次玩的機會,玩一玩新的技術,就算失敗了,也不過是損失給定的時間。但如果你在工作項目中出現了問題,損失可就大了。

總結

72 個小時的復刻對於我來說不算難,實際上我也只花了 55 個小時就復刻成功了。但更難的,是如何讓一個開源項目持續的成長下去,持續的獲得用戶、獲得關注。

轉載請超鏈接註明:頭條資訊 » 我是如何在 72 小時內復刻 ClubHouse的|Linux 中國
免責聲明
    :非本網註明原創的信息,皆為程序自動獲取互聯網,目的在於傳遞更多信息,並不代表本網贊同其觀點和對其真實性負責;如此頁面有侵犯到您的權益,請給站長發送郵件,並提供相關證明(版權證明、身份證正反面、侵權鏈接),站長將在收到郵件24小時內刪除。
加載中...