不要爭了!技術選擇沒那麼重要

摘要: 技術沒有高下之分,作好產品纔是王道。前端

不少開發者很是熱衷於比較不一樣技術,好比:Angular 是否比 Vue.js 更好?Node.js 可否取代 Java?究竟應該選擇 MySQL 仍是 MongoDB 呢?git

認真對比不一樣技術之間的優劣是很是有價值的事,能夠加深咱們對技術的理解,根據業務場景選擇更合適的技術github

可是,對技術選擇過於較真,爭得面紅耳赤,對於產品或者我的來說,都是沒有必要的。由於,技術選擇真的沒有那麼重要算法

技術只是產品的實現手段

對於一個產品,技術僅僅只是實現手段。或者說,條條大路通羅馬,這個產品能夠用 Angular + Java + MySQL 實現,那它用 Vue.js + Node.js + MongoDB 來實現也徹底沒問題。不一樣技術在細節上確實有很多區別,可是它們在本質上它們是同樣的,Angular 和 Vue.js 是前端框架,Java 和 Node.js 是編程語言,MySQL 和 MongoDB 是數據庫。docker

產品面向的是用戶,而不是開發者本身,在開發者開來,選擇某個技術棧也許很重要,可是對於用戶來講,很抱歉,他們徹底不關心!用戶關心的是:是否有我想要的功能?UI 設計是否合理?BUG 有沒有及時修復?生活中,咱們都是用戶,咱們天天聊微信、刷抖音、逛京東、打王者榮耀,你會關心它們的後臺是用 Java 仍是用 Node.js 嗎?數據庫

若是產品的技術棧尚未肯定,選擇一個目前使用者足夠多而且保持更新的技術就行了,用的人多的技術不會太差,還在更新則不用擔憂 BUG 沒人修復。若是產品的技術棧已經肯定了,那就更簡單了,直接擼代碼啊;即便技術選擇有一些問題,抱怨是沒有用的,也沒人願意爲了你的我的偏好去換技術棧,除非是產品須要。編程

做爲開發者,應該利用本身已經掌握和須要學習的技術去實現一個好用的產品,知足用戶的需求。若是產品沒有成功,有多是產品的需求有問題,沒有市場;有可能市場很大,可是推廣得不夠成功;有可能推廣得不錯,可是商業模式有問題,賺不到錢...固然,也有多是技術問題,是技術不夠好,而不太多是技術選擇錯了。小程序

Fundebug 的技術棧

當咱們決定作Fundebug的時候,如今所使用的技術並不熟悉,而對於它們的同類型技術,咱們更是一無所知。因此,這裏也不存在所謂的選擇的問題,咱們使用了本身會用的技術:Angular + Node.js + MongoDB。它們使用者足夠多而且保持更新,符合我所說的標準。對於這樣的彷佛有些輕率技術選擇,基本上沒有對咱們產品開發形成什麼困惱,用戶須要的功能咱們可以儘可能知足。或者說,正真困惱咱們的歷來都不是技術選擇所形成的問題,而是產品設計、市場推廣、用戶溝通等問題。後端

我會負責一些後端開發,對於咱們的技術棧,我熱愛 Node.js,由於它語法簡潔,文檔清晰、有着簡單的異步編程模式和豐富的 NPM 生態系統;我也很喜歡 MongoDB, 由於它的數據模型足夠靈活,而後文檔很是詳細,運維起來輕鬆不少。這裏沒有絲毫冒犯 Java 和 MySQL 的意思,由於我幾乎徹底沒有接觸過它們,因此沒法進行比較。我也相信,Java 和 MySQL 也很是優秀,若是咱們當初選擇它們應該也沒有什麼問題。微信小程序

對於 Fundebug 的技術棧,我常常喜歡和人炫(chui)耀(niu)的一點是咱們的全部應用包括 MongoDB 都是運行在 Docker 容器裏面,這極大的簡化了咱們的運維工做。把應用打包到 Docker 鏡像裏面以後,咱們只須要在集羣上安裝 Docker,而不須要安裝任何應用,就能夠在任意節點運行任意應用。咱們能夠根據須要(從新分配 CPU 和內存資源或者進行多副本擴容)隨時在任意節點之間移動應用。在集羣須要增長新的節點時,也只須要安裝 Docker,這個新節點能夠用來運行任何應用。我一直在思考 Docker 的價值,發現它確實頗有用。所謂「若是你手裏有一把錘子,全部東西看上去都像釘子」,我用了將近 4 年 Docker,很是熟悉也很是喜歡,那我固然以爲 Docker 是個好東西。若是咱們不使用 Docker 會怎樣?運維固然會比較痛苦,可是咱們應該也沒有什麼大問題。大量公司尚未 Docker 化,它們都活着好好的。

我對技術的迷思

和不少開發者,我也曾經迷信過一些技術,誰沒年輕過呢?

大三暑假學了一門叫作《大規模數據處理/雲計算》的課,聽着很炫酷,其實主要是學習 Hadoop,用 Hadoop 去實現 PageRank 等算法。PageRank 是 Google 創始人提出的網頁排序算法,是 Google 搜索引擎的基礎。Hadoop 如此厲害,竟然能夠造 Google,當時年少無知,以爲學會了 Hadoop 就夠了。事實上,知乎上也有相似的問題:Hadoop 就業前景如何?可是,如今呢?Hadoop 的光環早已褪去,它只不過是對大規模數據進行批處理的常規工具,並無太大門檻。而 Hadoop 生態系統還有不少其餘工具好比 Spark, HBase 等,僅僅使用 Hadoop 徹底不足以應對各類複雜業務場景。

讀研的時候第一次接觸 Docker,被深深吸引,由於 Docker 能夠完美解決軟件安裝和配置的問題。大學畢業設計我曾花了至少 1 個星期時間配置一個 4 個實體機器組成的 Hadoop 集羣(當時不熟悉 Linux),而使用 Docker 的話,無需安裝,能夠直接運行。個人開源項目hadoop-cluster-docker就是將 Hadoop 集羣運行到多個 Docker 容器中,這個項目已經累積了近千個 Star,可見你們對於使用 Docker 簡化 Hadoop 安裝仍是很是承認的。我接觸 Docker 的時間算是很早了,Docker 最熱門的時候還收到過大公司的相關工做邀請,所以以爲熟悉 Docker 很是好,此次算是站在風口了。而如今呢?Docker 已經逐漸普及化!由於 Docker 並無什麼高深之處,上手很是快。國內不少大公司,例如騰訊, 京東等早已 Docker 化。

不管是 Hadoop 和 Docker,多少都算是改變世界的技術,也曾經大紅大紫,如今依然在發光發熱,可是早已再也不自帶光環效應。這也是技術發展的客觀規律,新的技術不斷出現,它們解決了某些問題,受到熱捧,而後逐漸普及,被更新的技術所超越甚至取代。

事實上,我歷來也沒有依靠 Hadoop 或者 Docker 去工做,它們也是靠不住的。技術發展如此之快,怎麼可能一招鮮吃遍天,如今熱門的技術早晚會冷卻,甚至會被淘汰。再說,技術是爲工做服務的,而不是圍繞技術棧去圈定本身的工做內容;工做的時候,須要什麼技術就學習什麼技術,永遠呆在溫馨區是一件很危險的事情。

參考

關於Fundebug

Fundebug專一於JavaScript、微信小程序、微信小遊戲、支付寶小程序、React Native、Node.js和Java線上應用實時BUG監控。 自從2016年雙十一正式上線,Fundebug累計處理了10億+錯誤事件,付費客戶有Google、360、金山軟件、百姓網等衆多品牌企業。歡迎你們免費試用

版權聲明

轉載時請註明做者Fundebug以及本文地址:
https://blog.fundebug.com/2018/07/19/technology-selection-is-not-critical/

相關文章
相關標籤/搜索