簡述:我的2017技術流水賬
***次使用 AngularJS 是在 2014 年,那時候正在做一個回合制的手游項目,編寫后端的同時,也順手編寫了 GM 工具和 Web 頁戰斗模擬工具,為了方便,整個工具全部寫在一個頁面中。頁面交互全部使用 jQuery 完成,寫到中后期,已經被獲取表單數據、綁定事件、修改 DOM 元素折騰得不行。于是嘗試了 AngularJS ,整個人都感覺不一樣了,完全是像寫后端代碼一樣寫前端代碼。尤其是雙向數據綁定,實在是解決了 GM 工具等管理平臺中的痛點——大量數量的處理。AngularJS 結合 Bootstrap,簡直是編寫管理后臺的大殺器。
可是隨著單頁應用的規模越來越大, AngularJS 的劣勢也日益明顯,雖然服務可以實現 JavaScript 代碼的復用,但這還不夠。指令雖然實現了 JavaScript 和 HTML 的復用,使用又太過繁瑣。雙向綁定雖然方便,但這種隨意到處修改值的結果就是值變化了你也不知道是哪里改的。代碼文件的組織,也只能按照 JavaScript / HTML / CSS 分別組織。文件打包最多用用 Browserify + Gulp。無論從本身的技術,還是從社區的環境來看, AngularJS 的確已經是過去的技術了。
你好,Vue
去年的時候,已經開始陸續試用 React 和 Vue 1.x ,React 的熱更新、徹底的組件化、完整的 ES6 支持,實在是讓人興奮。不過我始終沒有習慣 JSX ,而 Vue 1.x 的革命性又稍顯不足。但 Vue 2.0 的面世,徹底征服了我,博取眾家之長,新的生態工具的支持,在簡單的嘗試之后,很快便投入了 Vue 2 的懷抱。現在的管理后臺,基本都是 Vue + Element-ui 的組合。
干凈利落,ES6
轉移到 Vue 2 便可以在整個項目中使用 ES6 了。最喜歡的還是簡潔的箭頭函數和放心使用的局部變量,再加上 eslint 的強制語法檢查,讓所有人都編寫格式一致的代碼。唯一不爽的就是我喜歡的 'sid' === name 的寫法要放棄了。
快快快,Elasticsearch
Elasticsearch 的確是所有的后端開發人員都該試一試的技術,讓人震驚的速度,與生俱來的備份機制,幾乎完全零配置開箱即用, DSL 可能相對 SQL 要復雜一些,但入門也還好。
有了 Elasticsearch ,與數據存儲和統計相關的事情,幾乎都不再是問題。在 MySQL 中有了幾百萬數據,想要流暢的查詢統計,就得開始規劃字段建立索引了,在 Elasticsearch 中完全不用考慮,更何況它的統計功能經甩 MySQL 無數條街。還不提 Elasticsearch ***大的檢索功能。
Elasticsearch 是今年讓我最有幸福感的技術。
淺嘗轍止,Python / Go
前不久一個項目,需要獲取圖片 hash,查了一下 Python 這方面的庫比較豐富,于是看了一下 Python 的語法就上手了,花了半天工夫折騰出來。后來看到還有 Go 的版本,便也試了一下。運行結果有點震驚,Go 比 Python 快了至少 5 倍,果然 CPU 密集的事情,還是編譯語言比較拿手。Go 的 defer 和強制代碼格式 gofmt,給我留下了深刻的印象。感覺是時候開始一個新的后端語言了。
半途而廢,Docker
原計劃是準備放棄 VirtualBox,不過 Docker 并不能方便的執行各種 linux 命令,它更偏重于代碼的運行環境,而我現在又基本不再掌控后端,所以對我的意義已經不大。Docker 最終便沒有用到工作之中。
Github Desktop
SourceTree 現在是越來越慢了,而且經常需要打開關閉項目 Tab 之后才能發現文件修改,啟動也很慢。終于我開始了新的 Git GUI 工具的選擇,最沒有抱希望的 Github Desktop 卻是我最終的選擇。超出想像的快,簡潔的界面,雖然不支持 ssh key 登陸,功能也比較簡陋,但只要速度快,小問題是可以忍受的。
Coding.NET
已經用了兩三年 Coding.NET 了,以前碼幣容易掙的時候,還換了件 T 恤,開始是個人使用,后來推廣到團隊使用,出了企業版后,還動員公司也付了費。但現在免費用戶取消了 Coding Pages 自定義域名功能,后來還限制五個私有項目,這讓 Coding.NET 成為了另一個被放棄的服務。
2017 的***一天,用 Gogs 搭建了自己的 Git 服務,花 6 塊錢把 n 年前的花生殼賬號做了個認證,開始了自建之路。