拒絕「技術棧」選擇恐懼症

所謂最小化可行產品(Minimum Viable Product,MVP),就是將產品快速推向客戶,從客戶反饋中不斷進行迭代。更重要的是,MVP 也是研發團隊進一步完善產品的基礎。php

拒絕「技術棧」選擇恐懼症

可是,在正式代碼以前,你須要選擇從此支撐產品的 技術棧,也就是要選擇好整個產品每一層所要應用的技術語言、架構等。html

技術棧的選擇每每是創始人面臨的艱難問題。不管是技術人員仍是非技術人員,若是不具體瞭解每一個語言和架構的特色,面對如今如此多元化的IT技術,簡直能逼死糾結症患者。並且,若是選錯了語言或者框架,極可能會致使較爲嚴重的後果。前端

實際上,在選擇時須要考慮的因素並很少。其實經過簡單的分類,就能夠將選擇範圍縮小到可控制的幾個技術組合內,進而將每種技術與正確的應用範圍相對應。git

首先,你得了解「技術棧(tech stack)」的定義。github

一.什麼是技術棧?

技術棧是用於建立 Web 或移動應用的軟件產品與編程語言的組合。應用一般包含兩個軟件組件:客戶端與服務端,也稱爲前端與後端。web

拒絕「技術棧」選擇恐懼症

應用的每一層都創建在其下一層的功能基礎上,總體構成了一個棧。上圖顯示了典型技術棧的主要區塊,可是也能夠包含其餘支持組件。編程

二.後端技術棧

後端包含驅動應用運轉的業務邏輯。用戶永遠都不會與後端直接交互,全部的信息都經過前端來傳遞。後端

最著名的後端技術棧要屬 「LAMP 棧」(Linux, Apache, MySQL, PHP)。最近,該棧也出現一些變形:使用 Ruby 或 Python 取代 PHP 編程語言。瀏覽器

選擇編程語言時得選定對應的 Web 框架。框架用處極大,能爲開發者提供多種通過審查的常見 Web 功能,包括用戶驗證、數據存取等,是的開發無需從零開始。性能優化

常見的 Web 框架有:

框架 語言
Ruby on Rails Ruby
Django Python
Node.js Javascript
Laravel PHP
.NET C#
三.前端技術棧

前端是應用與用戶交互的圖形化實現部分,而且是用戶最直接的體驗。交互可經過 Web 瀏覽器或移動 app 進行。在建立 Web 應用時,前端棧包含:

  • HTML (標記語言)

  • CSS(樣式表語言)

  • JavaScript(腳本語言)

前端框架的選擇不少,咱們的建議是:

  • JS 框架需包含用於建立豐富且良好的交互 Web 體驗的工具。
    推薦使用: AngularJS, Backbone.js, ReactJS

  • 展現框架需提供標準化的格式,用於建立簡潔又不失美感的響應頁面。
    推薦使用:Bootstrap

對於移動應用,iOS app 均用 Objective-C/SWIFT 建立,Android app 則使用 Java 建立。

四.我應該如何選擇技術棧?

若是你是不懂技術的創始人,諮詢開發者並遵從他們的建議選擇技術棧彷佛是不錯的選擇。然而,開發者可能會對本身擅長的技術工具備所偏心,或僅僅根據技術優缺點而非業務需求評價技術工具。

換個角度講,聽從下面的三個步驟評價不一樣的技術選擇可能更爲客觀。

拒絕「技術棧」選擇恐懼症

1. 移動仍是 Web?根據目標用戶羣進行設計!

現現在,超過 60% 的網站流量來自於移動設備,25% 的美國人只經過移動設備上網,這個趨勢還將不斷擴大;2015年是全面『無線化』的一年,在BAT(財報)幾家公司都已經超過 50% 的流量來自移動端,此次 雙11 更是佔到了68.67% 無線交易。所以,推出移動版應用只是時間的問題,而不是要不要的問題。

然而,不要只依賴整體的統計數據,而應該想一想你在設計 MVP 時必須的關鍵因素,以及這些因素在產品中的價值定位。用戶是更可能在移動中經過手機使用你的產品?仍是端坐在辦公桌前使用它?

一般,你的 MVP 應該先快速發佈於一種平臺——移動或網頁端,當產品得到承認以後,再根據反饋投資搭建新的平臺並進行良好的維護纔是理智的。

肯定總體規劃以後,用戶的使用模式會指導你進入移動優先,僅保留移動端,或移動稍後的設計方案。

1)移動優先設計

「移動優先設計」意味着搭建一個 Web 響應應用,能適應全部尺寸的屏幕,但首先保證移動端屏幕的 UI 最爲宜人。

Web 響應應用可經過谷歌搜索或共享連接快速發現,無需下載任何安裝包便可使用。相比於本地應用,他們的開發成本更低,更易迭代,能快速驗證產品的價值。

從 Web 響應應用入手,若是你的產品:

  • 服務於桌面與移動端的普遍用戶

  • 包含可用於 SEO 的豐富材料

  • 具備易於在手機瀏覽器使用的簡潔 UI

例如:天貓, 愛奇藝, github

2)只開發移動端

在僅開發移動端的設計方法中,MVP 只是一個在應用商店下載的本地移動應用。移動端用戶期待看到美觀流暢的界面,固然良好的用戶體驗也是必不可少的。

一般的建議是先開發基於 iOS 的 MVP,以後再開發 Android 版本。儘管 Android 在美國的市場份額爲52%,在全球更是高達80%,但支持數百種不一樣的設備須要投入更多的開發成本。若是試試爲了驗證產品價值的話,iOS 用戶其實綽綽有餘,並且他們相比於 Android 用戶更爲投入,花在手機上的時間是後者的四倍。而且同時發佈兩個版本的應用須要更多的營銷時間,並且每次產品迭代都要投入雙倍的工做。

從本地app入手,若是你的產品:

  • 主要使用在移動端

  • 須要使用相機、GPS 或加速度器等設備特徵

  • 會受益於消息推送、零星購買等實時交互

例如:Instagram, WhatsApp, Uber, Waze

3)移動端後設計

在某些狀況下,MVP 應該是傳統的 Web 應用,暫時無需考慮移動設計。好比,許多 SaaS 產品的目標客戶是企業用戶,這些用戶主要經過臺式機或我的電腦的瀏覽器與產品進行交互。附帶的移動應用主要提供互補功能,能夠稍後再開發。

從傳統 Web 應用入手,若是你的產品:

  • 主要經過臺式機或我的電腦進行交互

  • 須要複雜的用戶界面

  • 會接收電子表格或大圖片文件的上傳

例如: MailChimp, ZenDesk, Xero

拒絕「技術棧」選擇恐懼症

2. 考慮業內的現有工具

打形成功的 MVP 的關鍵是減小市場推廣的時間。利用現有的工具能夠有效縮小工做範圍,使產品推廣更加簡單。

在選擇編程語言與其餘後端技術時,首先考慮業內最好的開源工具,並以其技術棧爲參考。

例如:若是你只想發佈一個簡單的本地移動應用,則應該使用 Parse 或 StackMob 之類的後端服務,而不是本身開發。

不要只關注市場份額,還應瞭解 Github 中的貢獻者數量與 StackOverflow 中的問題數量,從而瞭解其近期發展狀況。最好的工具背後應該有一個生機勃勃的開發者社區。

好比,在電子商務市場,Magento 的市場份額最大,達 25%,擁有 25 萬安裝基數。Spree 則是後起之秀,僅有 5 千安裝基數。然而,後者擁有超過 500 個貢獻者,是全球 50 大開源項目之一。若是你準備開始一個新的電子商務項目,Spree 或許是一個更好的選擇,同事 Spree 是以 Ruby 語言寫就的,這也會影響你的後端語言選擇。

拒絕「技術棧」選擇恐懼症

3.誰是項目的builder?

缺乏開發能力是許多初創企業早期的一大挑戰。所以,是否擁有高效的開發團隊也是決定技術棧選擇的一大因素。

不一樣的技術棧會吸引不一樣的研發人員,進而影響公司文化。許多有才的開發者熱衷於使用最新的工具,而極力避免他們認爲缺乏創新的工具。好比,PHP 一直是開發 Web 應用最多見的語言,但其名聲並很差,以至於一些公司會由於使用它而道歉這是真的,並非玩笑哦)。

在選擇技術棧時,要確保業務領域內有足夠的有才能的工程師。像 NodeJS 這樣的新興技術可能會引來你中意的文化契合,但也意味着招聘時面對的人才庫相對有限。

開發人才的數量也與行業有關。好比,因爲監管與合規性問題,金融技術平臺一直以來都使用 Java 或 .NET 開發。即使這些語言經常被初創社區所看不起,若是你準備開發金融行業產品,選擇它們仍是有許多好處,可選的開發人員也會不少。

4.個人技術棧容易擴展麼?

選定技術棧就好像作出承諾同樣,沒法輕易改變,所以關於將來形勢,諸如擴展性、性能變化的考慮也很常見。然而,在 MVP 階段就考慮這些問題顯得有點操之過急了。

許多性能問題實際上是應用設計缺陷,而非技術選擇致使的,而且這些問題經過性能調優就能夠解決。並且,隨着產品的發展,驚醒性能優化的預算也會逐漸增長。

5.是否有必要選擇強大的前端性能優化工具?

固然有必要!

且不說後端,先從前端頁面來看,如今國內的主流前端包括:pc端、移動微信端、移動瀏覽器、移動應用的webview等多種場景,普通的性能優化工具根本沒法同事支持兼容諸多使用場景,同時,不少工具只是簡單的打個分數,根本沒法定位問題!

那麼,問題來了。。。

難道你能忍受只能針對一種使用場景的工具?

難道你能忍受像 yslow 這樣的沒法進行綜合比對的一次性工具?

難道你能忍受只能評分卻沒法定位問題的工具?

從國內來看,Browser Insight 這個工具提供了統一的視圖,全面涵蓋 pc端、移動微信端、移動瀏覽器、移動應用的webview多個場景。針對不一樣的前端場景,均可以進行相應的監控與分析,甚至能夠精確到代碼級,讓前端性能監控再也不糾結。

簡單的給你們看幾個 Browser Insight 的功能界面。
拒絕「技術棧」選擇恐懼症
拒絕「技術棧」選擇恐懼症
拒絕「技術棧」選擇恐懼症

目前,OneAPM 針對前端性能的優化產品,Browser Insight 已經免費提供給你們使用了。同時包括針對應用服務器性能優化 Application Insight 產品以及針對存儲服務器性能優化 Cloud Insight產品也都提供了免費版產品,但願可以幫助用戶不斷優化,真正意義上作出 MVP 的產品!!!

原文連接:http://svsg.co/how-to-choose-your-tech-stack/ 做者:Gil Edelman,本文系 OneAPM 工程師編譯整理。

相關文章
相關標籤/搜索