聊聊創業初期的技術選擇

初碼發表於2016-12-17

我公司曾經擴充過一項外包業務,幫助矽谷沒有技術能力的創業團隊,在1個月內以3萬美元不到的價格快速打造Web、移動Web、App以及對應的Web管理平臺,使得他們能夠從較為困難的天使融資階段快速進入Pre-A階段並進一步拿到A輪融資,這項業務的背後其實是小型創業團隊在創業初期面臨的一個重要問題:如何選擇合適的技術來優化、助推創業過程。

那麼今天我想和大家聊一聊這個話題:當小團隊或者個人進行創業的時候,到底應該進行怎樣的技術選擇呢?

首選我有一個觀點,創業成功有了融資以後,引入更為高階的技術專家,可能會對技術架構進行通盤重構,所以創業初期與後期的技術架構會大相徑庭,事實上大部分成功的創業專案都會經歷重大重構,因此,在創業初期選擇技術架構的時候,更多要考慮的事情是簡單便捷、快速開發,而不需要過多的考慮技術長久和技術擴充套件。

目前國內的網際網路創業,以Web為主,完整的技術產出可能包括 App、微信公眾號、支付寶服務窗、微博應用、移動Web(相容移動瀏覽器、微信瀏覽器、支付寶瀏覽器、微博瀏覽器)、官網Web、管理Web,在這樣的產品產出要求,我認為如下的架構比較合適

image

這個架構有以下幾個特點:

1、所有使用者端,包括閘道器服務都以JSON資料格通過HTTP方式和業務處理服務進行互動,這樣的好處是簡化和統一業務邏輯處理流程和資料互動方式。

2、獨立出閘道器服務與微信伺服器等開放平臺進行互動,以應對在創業專案中越來越重要的與各開放平臺的互動場景。

3、加入資料庫ORM層,加快資料庫開發速度,使得後端的程式碼更加業務驅動。

4、使用Hybrid App方式,降低App開發、部署、釋出的成本。

那麼在技術選擇的實操過程中,也有一些具體的方向性建議:

一、合適而敏捷的技術框架的選擇

什麼技術語言、什麼資料庫、什麼開發框架、什麼作業系統?這些選擇,即使在非技術驅動的創業專案裡,也會對創業結果產生重大影響,我建議選擇的技術遵循如下:

1、選擇一個或多個自己熟悉的技術語言和開發框架;

2、選擇的技術要有足夠的成熟案例和社群支援,這樣在遇到問題的時候可以快速的得到幫助和解決;

3、支援快速搭建RESTful的HTTP 服務;

4、有對應的ORM框架支援資料庫快速開發;

5、具備穩定而高效的整合開發環境;

6、儘量少使用響應式技術,移動Web和桌面Web選擇不同的前端框架,達到更好的使用者體驗;

二、充分合理的使用雲服務

現在的雲服務已經非常成熟穩定,種類也越來越多,能夠解決問題的寬度和深度都在增長,因此,使用全雲架構來進行創業初期的技術承載,是值得也很有必要的,其中包括:

1、將伺服器和資料庫都搬到雲端,使用彈性增長的雲基礎服務。

2、熟練使用雲服務的控制皮膚來進行日常運維。

3、使用郵件推送、簡訊推送雲服務來為客戶提供訊息訂閱和通知推送服務

4、使用圖片、視訊處理雲服務進行多媒體資源的處理,例如圖片縮圖,視訊壓縮等。

5、使用CDN服務來提升使用者訪問體驗,提高單Web節點承載能力。

6、使用NoSQL服務解決部分業務資料增長後的瓶頸場景。

7、多鑽研創業專案所在領域在雲服務商處是否已經有成熟的解決方案,例如檔案下載、視訊直播、資料儲存、大資料比對等等,挖掘好雲服務的價值,省下的就是大把的時間和大把的金錢(這也是2015-2017年的網際網路紅利,甚至有創業團隊專門等雲服務商研發好領域解決方案後就快速跟進,低成本推出產品,快速獲得融資)。

三、除此以外,我還想糾正一個現象

很多團隊在會選擇以一些開源的論壇社群、內容管理專案為基礎,進行二次開發和修改,事實上,這樣的做法既不討巧,也會有副作用。

1、開源專案的業務邏輯和功能結構已經成型,更加註重通用性,而創業都是個性化的業務,強行用現有的通用邏輯和流程去套用的個性化的業務,反而適得其反,不能很好的表達業務。一旦業務加速擴張,開源系統無法及時擴充套件的缺點就會顯露無疑。

2、雖說在創業初期不需要過多的考慮穩定和長久,但無法完整的瞭解開源專案的所有程式碼依然是一個巨大的風險點,甚至會導致嚴重的安全問題。

3、即使在創業後期會經歷重大的技術重構,但投資人和投資機構依然會在初期進行技術能力的評估,在網際網路領域利用資訊不對稱的紅利已經消失,拿別人做好的系統去二次開發,和自己開發一個獨立的系統,在直觀上給人的印象還是不太一樣的。

最後再補充兩句

1、雖然PHP是最好的語言(宇宙第一),但是如果創業,在技術選擇上,特別是後端業務邏輯的處理部分,請慎用PHP,語言特性決定其無一成功案例!

2、創業是目標驅動,是艱苦奮鬥,不是裝逼,有的人有好的IDE不用而去Linux下面搗鼓各種命令,有的人看到React、AngularJS、Ionic這些新東西特別好用就恨不得立馬創業,然後覺得自己很有範,其實這些都不是特立獨行,而是無知加無能,事實上相當多成功的創業專案也就是老老實實的搞好J2EE,甚至還有從ASP.NET Webform起步的專案也搞的挺穩,永遠記住,技術選擇是為了達到良好的創業結果,而不是進行創業的原因。

 

親愛的朋友,你如果也在創業,能分享一下是如何進行技術選擇的嗎?

相關文章