一個創業公司或者新項目如何作技術選型?我的認爲必定要記住這個根本:新項目最早要解決的就是原型核心業務落地驗證商業模式。
具體實踐中,應當遵循如下原則和避免相似常見錯誤java
創業項目最大的特色就是商業模式未經驗證,存在極高的失敗風險。從技術角度來看,只有選擇最簡單快捷的技術棧,在極短期內實現核心業務原型,讓業務在實踐中驗證商業模式---成功,則更容易在有競爭者的時候走在前列;失敗,所花費的成本更低,有效下降損失。面試
所以,在選擇技術棧的時候,最重要的就是要想明白,技術的選擇是爲了讓業務原型更快速的上線運營驗證商業模式,其餘一切都要讓位於這個原則。spring
在具體實踐上來說,有些業務一開始就有高併發高負載等特色,那就選擇相應的語言或者技術棧,在這個基礎上選擇更容易執行的技術;有些業務初期可能用戶量並很少,更重要的是如何完美實現業務,那就應該選擇開發效率高的技術棧。架構
使用當前業界流行的架構牛逼的技術,對技術人員來說,有利於成長和跳槽時的身價;可是流行的架構不必定適應當前的業務。微服務架構能夠說是如今以致於將來不少項目的主要架構形態,可是對於一個創業項目來講,選擇微服務架構,要處理不少和業務無關的東西,網關,註冊中心,配置中心,鏈路監控,分佈式事務,容器化等等,這些自己就有必定複雜性,可是和業務沒有多大關係,作好了,並不能對初期業務實現運營產生多少幫助,作很差,影響業務實現不說,可能技術人員陷入其中不能自拔,給本身挖了大坑。併發
根據業務選定技術棧以後,儘可能擁抱開源的東西。選擇最新穩定版本。分佈式
有些技術可能比當前團隊擅長的在業界裏面有更好的熱度,可是仍是根據團隊的實際狀況,只要不是特別必要的狀況下,使用團隊更擅長的技術。微服務
技術人員必定要了解產品業務原型,要有冷靜的頭腦,高大上的架構很是好,可是不必定能幫助業務更快實現,也不必定適應咱們組織架構。技術人員本質的工做就是實現執行,技術架構不要脫離業務高併發
這點無需多言,內部實現當然更貼近自己業務,可是不少時候,創業項目初期還不到須要本身實現輪子的地步,選擇開源的東西,實在不行,在開源的基礎上去擴展。性能
舉個例子,當前 PHP 的穩定版本已是7.2了,有些團隊新項目的時候,可能適應了原先的版本,選擇 PHP 5的各個版本,我的認爲這就太保守了接口
技術人員走的路,其實不外乎以下:
1 成爲技術專家,能解決大部分解決不了的技術難題。這個須要天分+堅持,能走下去的人比例比較低
2 熟悉業務,成爲需求實現更好的執行者。知道如何分解業務需求,知道怎麼樣更高效快速的實現需求。其實這個並不簡單,技術人員能幫助公司項目更好的發展,價值並不小。這也是面試的時候,應該很是看重的地方,技術能力並不等於工做能力。
隨着 go ,java 的 spring cloud 的興起,這些靜態類型語言的開發速度效率如今也至關了得了;PHP 所自豪的短平快,優點不在那麼明顯。尤爲如今是移動互聯網時代,服務端輸出的是接口,在選擇語言的時候,效率差距不大的時候,不少人可能會選擇性能高的。對於 PHPER 來講,不幸於幸運並存,幸運的是可能在業務初期,不少公司仍是會選擇 PHP 來快速實現業務;不幸的是,一旦業務壯大,PHP的用武之地就很小了。而如今幸運可能已經不在,PHPER 若是想要有更進一步發展,千萬不能侷限於 PHP了,睜眼看世界。