轉自:http://www.cnblogs.com/printhelloworld/p/6169271.htmlhtml
我公司曾經拓展過一項外包業務,幫助硅谷沒有技術能力的創業團隊,在1個月內以3萬美圓不到的價格快速打造Web、移動Web、App以及對應的Web管理平臺,使得他們可以從較爲困難的天使融資階段快速的進入PreA運維並進一步拿到A輪融資,這項業務的背後實際上是小型創業團隊在創業初期面臨的一個重要問題:如何選擇合適的技術來優化、助推創業過程。前端
那麼今天我想和你們聊一聊這個話題:當小團隊或者我的進行創業的時候,到底應該進行怎樣的技術選擇呢?數據庫
首選我有一個觀點,創業成功有了融資之後,引入更爲高級的技術專家,可能會對技術架構進行通盤重構,因此創業初期與後期的技術架構會截然不同,事實上大部分紅功的創業項目都會經歷重大重構,所以,在創業初期選擇技術架構的時候,更多要考慮的事情是簡單便捷、快速開發,而不須要過多的考慮技術長久和技術擴展。後端
目前國內的互聯網創業,以Web爲主,完整的技術產出可能包括 App、微信公衆號、支付寶服務窗、微博應用、移動Web(兼容移動瀏覽器、微信瀏覽器、支付寶瀏覽器、微博瀏覽器)、官網Web、管理Web,在這樣的產品產出要求,我認爲以下的架構比較合適瀏覽器
這個架構有如下幾個特色:安全
一、全部用戶端,包括網關服務都以JSON數據格經過HTTP方式和業務處理服務進行交互,這樣的好處是簡化和統一業務邏輯處理流程和數據交互方式。前端框架
二、獨立出網關服務與微信服務器等開放平臺進行交互,以應對在創業項目中愈來愈重要的與各開放平臺的交互場景。服務器
三、加入數據庫ORM層,加快數據庫開發速度,使得後端的代碼更加業務驅動。微信
四、使用Hybrid App方式,下降App開發、部署、發佈的成本。架構
那麼在技術選擇的實操過程當中,也有一些具體的方向性建議
1、合適而敏捷的技術框架的選擇
什麼技術語言、什麼數據庫、什麼開發框架、什麼操做系統?這些選擇,即便在非技術驅動的創業項目裏,也會對創業結果產生重大影響,我建議選擇的技術遵循以下:
一、選擇一個或多個本身熟悉的技術語言和開發框架。
二、選擇的技術要有足夠的成熟案例和社區支持,這樣在遇到問題的時候能夠快速的獲得幫助和解決。
三、支持快速搭建RESTful的HTTP 服務。
四、有對應的ORM框架支持數據庫快速開發
五、具有穩定而高效的集成開發環境
六、儘可能少使用響應式技術,移動Web和桌面Web選擇不一樣的前端框架,達到更好的用戶體驗
2、充分合理的使用雲服務
如今的雲服務已經很是成熟穩定,種類也愈來愈多,可以解決問題的寬度和深度都在增加,所以,使用全雲架構來進行創業初期的技術承載,是值得也頗有必要的,其中包括:
一、將服務器和數據庫都搬到雲端,使用彈性增加的雲基礎服務。
二、熟練使用雲服務的控制面板來進行平常運維。
三、使用郵件推送、短信推送雲服務來爲客戶提供消息訂閱和通知推送服務
四、使用圖片、視頻處理雲服務進行多媒體資源的處理,例如圖片縮略圖,視頻壓縮等。
五、使用CDN服務來提高用戶訪問體驗,提升單Web節點承載能力。
六、使用NoSQL服務解決部分業務數據增加後的瓶頸場景。
七、多鑽研創業項目所在領域在雲服務商處是否已經有成熟的解決方案,例如文件下載、視頻直播、數據存儲、大數據比對等等,挖掘好雲服務的價值,省下的就是大把的時間和大把的金錢(這也是2015-2017年的互聯網紅利,甚至有創業團隊專門等雲服務商研發好領域解決方案後就快速跟進,低成本推出產品,快速得到融資)。
3、除此之外,我還想糾正一個現象
不少團隊在會選擇以一些開源的論壇社區、內容管理項目爲基礎,進行二次開發和修改,事實上,這樣的作法既不討巧,也會有反作用。
一、開源項目的業務邏輯和功能結構已經成型,更加註重通用性,而創業都是個性化的業務,強行用現有的通用邏輯和流程去套用的個性化的業務,反而拔苗助長,不能很好的表達業務。一旦業務加速擴張,開源系統沒法及時擴展的缺點就會顯露無疑。
二、雖然說在創業初期不須要過多的考慮穩定和長久,但沒法完整的瞭解開源項目的全部代碼依然是一個巨大的風險點,甚至會致使嚴重的安全問題。
三、即便在創業後期會經歷重大的技術重構,但投資人和投資機構依然會在初期進行技術能力的評估,在互聯網領域利用信息不對稱的紅利已經消失,拿別人作好的系統去二次開發,和本身開發一個獨立的系統,在直觀上給人的印象仍是不太同樣的。
最後再補充兩句
一、雖然PHP是最好的語言(宇宙第一),可是若是創業,在技術選擇上,特別是後端業務邏輯的處理部分,請慎用PHP,語言特性決定其無一成功案例!
二、創業是目標驅動,是艱苦奮鬥,不是裝逼,有的人有好的IDE不用而去Linux下面搗鼓各類命令,有的人看到React、AngularJS、Ionic這些新東西特別好用就巴不得立馬創業,而後以爲本身頗有範,其實這些都不是特立獨行,而是無知加無能,事實上至關多成功的創業項目也就是老老實實的搞好J2EE,甚至還有從ASP.NET Webform起步的項目也搞的挺穩,永遠記住,技術選擇是爲了達到良好的創業結果,而不是進行創業的緣由。
親愛的朋友,你若是也在創業,能分享一下是如何進行技術選擇的嗎?