ThinkJS 2.0,帶你超越夢想一起飛
提醒:本文最後更新於 1169 天前,文中所描述的資訊可能已發生改變,請謹慎使用。
ThinkJS 是奇舞團開源的一款 Node Web MVC 框架,由 welefen 主導設計和開發,ThinkJS 1.0 於 2014 年 9 月首次公開發布(詳情)。一年後的今天,ThinkJS 帶著眾多新特性,以及完全重新設計的新架構,迎來了 2.0 版。作為 ThinkJS 的早期使用者和忠實粉絲,我希望通過本文能讓更多人認識 ThinkJS 這個優秀的 Web 框架。順便說一句,我這個部落格系統也是完全基於 ThinkJS 開發。
ThinkJS 1.0
ThinkJS 1.0 釋出時的 Slogan 是什麼呢?—— 基於 Promise 的 Node.js MVC 框架 —— 樸實到極致的一句話,甚至都不能稱之為 Slogan,只能算是 ThinkJS 眾多特性中的一個小點罷了。在我眼中,ThinkJS 1.0 是一次從無到有的突破,她在命名和專案結構上大量借鑑了
這一年來,ThinkJS 1.0 建立了自己的社群,培養了一批種子使用者,也有更多的人蔘與進來。開發者在使用框架中遇到的問題,基本上很快都可以得到解決,版本更新也在按既定節奏有條不紊地進行。整個專案發展十分順利,處於非常健康的狀態。
ThinkJS 2.0
這次 ThinkJS 2.0 新官網上的 Slogan 換成了「The web framework beyond your dreams」,這也是本文標題的來源。如果說 ThinkJS 1.0 的 Slogan 樸實而理性,那 2.0 的 Slogan 給我的感覺絕對是性感而充滿力量。就像蘋果的「Think different」和耐克的「Just do it」,好產品的 Slogan 不需要刻意強調自己是什麼,只需傳遞精神層面上的感受即可直擊內心深處。
當然,ThinkJS 2.0 在技術上的改進和創新也是乾貨滿滿:
全面支援 ES6/7 特性:服務端 JS 有個很大的優勢 —— 沒有終端相容性問題。在瀏覽器端,某個新特性只要還有 1% 的瀏覽器不支援,我們就必須考慮引入 polyfill 或者進行降級處理。而在服務端,只要願意隨時都可以使用最新的 Node.js,主動權在我們手中。隨著 Node.js 和 io.js 的合併,相信服務端 JS 演進速度會進一步加快。移動 Web 端對 ES5 支援良好,「使用 ES6/7 特性編寫程式碼,再借助 TypeScript/Babel 等工具編譯出 ES5 環境可以執行的程式碼」這種做法已經十分普遍。ThinkJS 2.0 也順應了時代發展。使用 Babel 編譯工具,你可以在專案中大膽使用 ES6/7 所有特性,無需擔心哪些特性當前版本不支援,例如官方示例程式碼就大量使用了 class
export
、let
等關鍵字。另外,ThinkJS 2.0 還正式支援使用 */yield
或 async/await
來更好地編寫非同步程式碼邏輯,不需要像之前那樣要自己處理(詳情)。
豐富的基礎功能:現在很多框架,真的只是一個框架,骨架之外的東西都需要自己動手豐衣足食。而經過大量實際專案檢驗的 ThinkJS,在內建功能豐富度和實用性上絕對是一大亮點。例如我們的一個性能監控系統,需要週期性的跑一些指令碼任務,ThinkJS 天然支援命令列呼叫模式。通過命令列呼叫具體的 Action,既沒有 HTTP 服務的開銷和超時機制,也容易控制程式碼執行許可權。再例如,WebSocket 是一個很常見的功能,ThinkJS 集成了多種常見的 WebSocket 庫,抹平差異並提供一致的介面,使用非常方便。像常見的資料庫操作、資料校驗、REST 介面生成等功能,框架本身也都內建,只需要寫很少程式碼就能完成需求。ThinkJS 2.0 除了延續和重構了全部 1.0 功能模組外,還增加了很多新模組,等待你去發現。
良好的可擴充套件性:之前我介紹過 ThinkJS 1.0 的 Tag 和 Behavior 機制(詳情),並在最後寫到「據說在 ThinkJS 2.0 裡,Behavior 已經被 middleware
取代」。是的,這個變化如約而至。一個框架功能再強大,也不可能滿足所有場景所有需求,而新的 hook
和 middleware
機制與規範,可以很方便地擴充 ThinkJS 功能,並且具備良好的複用性。如果大家都將平時的定製化功能抽象為中介軟體並開源出來,整個 ThinkJS 生態環境會變得更好。月影大牛已經率先分享了一個微信中介軟體:think-wechat,相信後續會有更多非官方中介軟體誕生。其他方面,例如路由規則、模板引擎、快取等各個環節,ThinkJS 都有相應的機制可以讓你可以充分自定義和擴充套件。
專業測試與持續支援:很多人在選用第三方元件或框架時,國人的作品往往會被不公平對待,常見原因無外乎這兩個:1)坑多;2)爛尾。對於這個現象我不做評論,我想說的是任何事情都需要區別對待,不要以偏概全、一葉障目。ThinkJS 有著良好的專案基礎,在公司內部已經形成了框架 -> 專案 -> 框架的閉環,每個功能都來自於實際需求,並在專案中得到充分檢驗。豐富的單元測試用例和持續整合機制保證了框架的穩定,整體效能、記憶體洩露以及框架安全性等方面也都經過了嚴格測試。ThinkJS 2.0 作為一個完全開源的框架,從背後作者和團隊來看,可靠性和後續支援都是非常有保障的。
篇幅有限,更多關於 ThinkJS 2.0 的介紹,還請移步官網。
超越夢想一起飛
最近有不少人問過我一些職業發展相關的問題,之前的文章過於技術不方便寫出來,今天這裡列出其中兩個:1)今年網際網路普遍遇冷,工作不好找怎麼辦?2)工作了好幾年,感覺自己在前端領域已經到達天花板,成長遇到瓶頸,不知道該怎麼辦?
關於這兩個問題,我不知道各位怎麼看,我的觀點是:1)今年網際網路確實少了一些浮躁與浮誇,但優秀的人從來不愁找工作,反而現在大量優秀公司在抱怨招人難;2)很多抱怨到達天花板的人,真實情況往往是不願意走出自己的技術舒適區,沒有突破自然無法成長。
現在前端早就不是前些年守著頁面那一畝三分地就能做好的職業。隨著 Web 技術的爆炸式發展,在移動 HTML5、微信平臺、智慧硬體、雲服務和遊戲等眾多新方向上,都需要專業前端去耕耘;HTTP(HTTPS、HTTP/2)協議、效能優化、網路安全等等方面,都有大量知識需要我們去學習和掌握。最近有一本網友翻譯的《前端開發者手冊》,其中第二、三部分對現代前端所需要掌握的大部分知識和工具做了詳細的介紹,有興趣的同學可以去看看。
也許有一天,你會發現自己真的觸碰到技術天花板,我相信以你那時的學習能力、知識體系、專案經驗、人生閱歷、財富人脈,根本就不用擔心未來的路該如何走。
我在之前的部落格中多次提到,作為專業 Web 前端,必須掌握一定的服務端知識和網路知識。前端和服務端結合起來,再加上網路協議,才構成一個完整的 Web 系統。而 Node.js,無疑是前端同學實踐服務端的最佳選擇。選擇 ThinkJS 這樣成熟的 Node 框架學習服務端開發,配合全中文文件,任何人都可以輕鬆上手。後續可以通過閱讀 ThinkJS 原始碼,去了解服務端 MVC 的基本原理,去掌握處理 Request 和 Response 的技術細節。接著還可以嘗試給 ThinkJS 發 Pull Request,或者開發 ThinkJS 中介軟體放在 Github 讓更多人用。整個學習過程由簡入難、從淺到深,效果非常好。
很多人接觸服務端都是從搭建自己的部落格開始,我也不例外(詳情)。我也非常推薦大家嘗試基於 ThinkJS 寫一個部落格系統(實在不願意寫選擇 Wordpress、Typecho、Ghost 等等也可以);再購買一個 Linux VPS(如果你是在校大學生,可以選擇騰訊的校園計劃或者阿里的雲翼計劃,成本很低),從最基本的建立帳號、配置 SSH 登入開始,嘗試自己把部落格環境搭起來;接著就可以購買域名甚至 SSL 證書,配置 DNS 解析,讓部落格可以通過域名在公網上訪問;後續還要持續關注伺服器效能與安全等運維資訊,以及進行各種前後端優化實踐(例如編譯最新的 Nginx,玩一下 HTTP/2);最後再把這些折騰經歷都在部落格寫出來。相信我,當你成功完成這一切後,你已經走出自己的技術舒適區,進入到一片更加廣闊的天地。
Update @ 2015.11.01,本部落格系統已經成功遷移到 ThinkJS 2.0。大家在使用或遷移 ThinkJS 的過程中如果遇到問題,歡迎留言,或者給專案提 Issue。
--EOF--
提醒:本文最後更新於 1169 天前,文中所描述的資訊可能已發生改變,請謹慎使用。
相關推薦
ThinkJS 2.0,帶你超越夢想一起飛
提醒:本文最後更新於 1169 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 ThinkJS 是奇舞團開源的一款 Node Web MVC 框架,由 welefen 主導設計和開發,ThinkJS 1.0 於 2014 年 9 月首次公開發布(詳情)。一年後的今天,ThinkJS 帶著眾多
關於TensorFlow 2.0,這裡有你想知道的一切
全文共8094字,預計學習時長30分鐘或更長 圖片來源:pexels.com/@pixabay TensorFlow是谷歌
《帶你裝B,帶你飛》pytest成神之路2- 執行用例規則和pycharm執行的三種姿態
1. 簡介 今天北京下的雪好大好美啊!!!哎呀,忘記拍照片了,自己想象一下吧。言歸真傳,今天還是開始pytest的學習和修煉,上一篇寫完後群裡反響各式各樣的,幾家歡樂幾家愁,有的高興說自己剛好要用到了,正好一起學習,有的不開心說自己介面還沒有學完了,沒關係的學習本來就不是一件一蹴而就的事情,需要日積月累
C#9.0 終於來了,帶你一起解讀Pattern matching 和 nint 兩大新特性玩法
## 一:背景 ### 1. 講故事 上一篇跟大家聊到了`Target-typed new` 和 `Lambda discard parameters`,看部落格園和公號裡的閱讀量都達到了新高,甚是欣慰,不管大家對新特性是多頭還是空頭,起碼還是對它抱有一種極為關注的態度,所以我的這個系列還得跟,那就繼
C#9.0 終於來了,帶你一起解讀 nint 和 Pattern matching 兩大新特性玩法
## 一:背景 ### 1. 講故事 上一篇跟大家聊到了`Target-typed new` 和 `Lambda discard parameters`,看部落格園和公號裡的閱讀量都達到了新高,甚是欣慰,不管大家對新特性是多頭還是空頭,起碼還是對它抱有一種極為關注的態度,所以我的這個系列還得跟,那就繼
搶先學鴻蒙(HarmonyOS)2.0,你就是下一個大咖!
1. 你不知道的鴻蒙(HarmonyOS) 2020年9月10日,華為開發者大會發布了鴻蒙(HarmonyOS)2.0。我在2020-9-11日也釋出了全球首套鴻蒙2.0 App開發視訊課程《鴻蒙(HarmonyOS)2.0入門與實戰》【提前一個月做完了,由於保密協議的原因,只能
保姆級教程,帶你認識大資料,從0到1搭建 Hadoop 叢集
# 大資料簡介,概念部分 概念部分,建議之前沒有任何大資料相關知識的朋友閱讀 ## 大資料概論 ### 什麼是大資料 大資料(Big Data)是指**無法在一定時間範圍**內用常規軟體工具進行捕捉、管理和處理的資料集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的**海量、高增長
【轉】手摸手,帶你用vue擼後臺 系列二(登錄權限篇)
userinfo ogr abort 變化 再次 狀態碼 quest -o 監聽 前言 拖更有點嚴重,過了半個月才寫了第二篇教程。無奈自己是一個業務猿,每天被我司的產品虐的死去活來,之前又病了一下休息了幾天,大家見諒。 進入正題,做後臺項目區別於做其它的項目,權限驗證與
【幹貨篇】步步為營,帶你輕松掌握jQuery!
red submit 所有 onf rec 選中 jquer 分別是 綁定 寫在前面: 經過系統的學習了原生JS之後,會發現其具有以下三個特點: 1、是一種解釋性腳本語言(代碼不進行預編譯)。 2、主要用來向 HTML 頁面添加交互行為。 3、可以直接嵌入 HTML
3分鐘,帶你讀懂大公司的“高效溝通”套路-h5二八杠源碼
緊急 需求評審 無形中 突出 遇到 經理 活動方案 好項目 也會 新人小白初入職場的一段時間內會發現h5二八杠源碼(h5.hxforum.com) 聯系方式170618633533企鵝2952777280 微信Tel17061863533 源碼出售,平臺出租,房卡出售有意者
ECS主動運維2.0,體驗升級,事半功倍
存儲摘要: 阿裏雲致力於提供更好用的運維體驗,讓您使用ECS的過程更透明、高效,並實現更加標準化、自動化的運維方式。基於主動運維2.0,您使用ECS雲服務器的體驗更加流暢,而且利用系統事件,不再依賴於工單聯系客服,可以通過自助處理的方式響應主動運維實例重啟,減少對系統可靠性和業務連續性的影響。 雲服
十篇TED點擊率最高演講,帶你重新認識大數據與人工智能
一次 改善 class 防止 郵件 不知道 一位 -i 結果 我們通常過於專註於機器學習算法的實現,傾向於忽略這種技術本身的一些重要問題:如未來的應用和政治後果。在這篇文章中,我們從非常受歡迎的非營利組織TED上收集了一系列的視頻(並非關註於選擇什麽語言或算法來解決機
大數據:“給我一把98K,帶你吃雞吃到嗨”
大數據想要在大數據行業裏‘吃雞’,首先我們的了解大數據以後的發展趨勢。 2018年大數據技術目前已日趨成熟,日後會在系統研發、大數據應用開發和大數據分析方向上分類更加的精確和細致。總的來說大數據有5個部分。數據采集,數據存儲,數據洗清,據挖掘數,數據可視化。 據采數集有硬件采集,如OBD,有軟件采集,如滴滴,
瞄一眼,帶你走進SparkSQL的世界
算法實現 都是 自己 中一 external 數據可視化分析 什麽 領域 bbc 本文由 網易雲 發布。 作者:範欣欣(本篇文章僅限知乎內部分享,如需轉載,請取得作者同意授權。) 最近想來,大數據相關技術與傳統型數據庫技術很多都是相互融合、互相借鑒的。傳統型數據庫強勢
從AlexNet到MobileNet,帶你入門深度神經網絡
架構 函數 摘要: 在2018年3月13日雲棲社區,來自哈爾濱工業大學的沈俊楠分享了典型模式-深度神經網絡入門。本文詳細介紹了關於深度神經網絡的發展歷程,並詳細介紹了各個階段模型的結構及特點。哈爾濱工業大學的沈俊楠分享了典型模式-深度神經網絡入門。本文詳細介紹了關於深度神經網絡的發展歷程,並詳細介紹了
Linux程序培訓課程,帶你養成良好的Linux使用習慣
雲計算開始Linux的學習之後,請不要用Windows的工作方式來思考問題,因為它們之間確實有很大的不同,比如它們之間的內存管理機制、進程運行機制等都有很大不同,因此拋開Windows的那種思維,用全新的理念嘗試去挖掘Linux身上特有的潛質,對初學者是至關重要的。 1 一定要習慣命令行方式 Linux是由命
50 行 Python 代碼,帶你追到最心愛的人
答疑 bad 程序員 cdn 其中 分享 發送 愛的 圖片 程序員世紀難題 人們一提到程序員第一反應就是:我知道!他們工資很高啊!但大部分都是單身狗,不懂得幽默風趣,只是每天穿格子 polo 衫的宅男一個。甚至程序員自己也這樣形容自己:錢多話少死的早。程序員總是愛這樣黑自
【精選福利】運維自動化技能上線,帶你脫離運維苦海。現在訂閱還有自選圖書相送
日誌 福利 目錄 51cto 新增 開發 容器 學會 book 苦海無邊,回頭是岸。學會運維自動化,帶你脫離無邊的運維苦海 標題: 輕松玩轉ELK海量可視化日誌分析系統評價:數據時代運維心法作者:南非螞蟻試讀:ELK應用架構介紹(附專欄目錄)專欄地址:http://bl
Sentinel 發布0.2.0,異步調用支持、熱點參數限流等成產品新亮點
blog lru 服務架構 切入點 線下 提取 str 名單 dash Sentinel 是阿裏中間件團隊開源的,面向分布式服務架構的輕量級流量控制組件,主要以流量為切入點,從流量控制、熔斷降級、系統負載保護等多個維度來幫助用戶保護服務的穩定性。 近日,Sentinel 0
深入python協程的實現,帶你一層一層揭開協程的神祕面紗!
協程與 子例程一樣,協程(coroutine)也是一種程式元件。相對子例程而言,協程更為一般和靈活,但在實踐中使用沒有子例程那樣廣泛。協程源自 Simula 和 Modula-2 語言,但也有其他語言支援。 看完之後,我的表情是這樣的: 用專業詞彙解釋專業詞彙,相當於沒說