前端JSer裝逼手冊
在裝逼成本越來越高的JS圈,是時候充值一下了 ———— 題記
§ 開發
Macbook Pro是標配,美其名曰“提高開發體驗”
什麼?你還在用Spotlight?趕緊給我換Alfred!
編輯器,Sublime / Atom / VS Code 三選一
雖然很想用IDE,但一定要忍住,並且與人解釋道:
“啟動速度慢,消耗資源多,不適合我這種完美主義者
如果不是為了美觀,我寧願使用 Vim / Emacs”
命令列iTerm2 + Oh-my-zsh
二逼青年用bash,普通青年用zsh
我們也只是想做一名普通人罷了
查資料雖然都是百度
但一定要稱都是用Google
且要說英文而不是中文的“谷歌”
使用美式發音,當自己是灣區老司機
儘管四級飄過,六級沒過
在Stack Overflow上點數也低
但也要說每天都與各國程式設計師談笑風生
§ 語言
這年頭如果還不用Babel + ES6
都不好意思說自己是JSer
當然還有 TypeScript / CoffeeScript / Dart ...
沒學過沒關係
對外人說自己“略懂”即可
反正最後都是編譯為ES5,你懂的
為了避免對方深入問
此時你應該繼續發表高見:
“JS是基於原型的函式式弱類語言
引入類與強類真的是不倫不類”
說到此,頓一下,表現出百感交集
隨後繼續徐徐道:
“可大勢所趨,吾等小輩惟隨波逐流”
說罷,即可揮揮衣袖轉身離去
在這裡不得不提一下,雖然使用Bable轉碼可以盡情裝逼
但其對某些新特性的轉換相當二逼(詳情請看這篇文章)
一句話:Babel雖好,但別貪杯哦(推薦Babel線上實時編譯)
§ 程式碼風格
摒棄JSLint / JSHint / JSCS,擁抱ESLint
儘管平時只是個搬磚的
但時刻以世界頂級企業的規範約束自己
於是eslint-config-airbnb成了我們的標配
一般新手是這樣寫的:
/* Low */ if (a) { return b; } else { return c; }
逼格稍微高一點的這樣寫:
/* Bigger */ if (a) return b; // 提前結束,免用大括號與else return c;
實際上還能更進一步:
/* Bigger than bigger */ ① return a ? b : c // 不要寫分號,留白予人想象的空間 ② return a && b || c
總而言之,程式碼越短,可讀性越差,逼格越高
不能讓人隨便看懂,就像人不能輕易讓人看透
§ 奇技淫巧
罄竹難書
§ 常用庫
DOM庫
標配是jQuery,手機端有Zepto作為替代品
想要裝逼且不怕坑,那就上Mootools
Prototype?嗯,復古的逼格都是很高的
一定要說自己純粹為了優雅簡潔,不得不用jQuery
(如何做到jQuery-free,請看這篇文章)
當然,就算是寫jQuery
也能體現出逼格
我們來看看新手一般是怎麼寫的:
/* Low */ var value = $(".container .myInput1").val(); $(".container .myInput2").val(value); $(".container .myInput3").attr("disabled", "disabled");
用雙引號,以及對選擇器效能認知不足,是新手的特徵
一般直接使用類選擇器的,都是對使用者體驗很有自信的
/* Bigger */ // 把div.container命名為myDiv var $myDiv = $('#myDiv'), // 快取DOM v = $myDiv.find('.myInput1').val(); $myDiv .find('.myInput2').val(v) .end() // 堅持鏈式呼叫 .find('.myInput3').attr('disabled', 'disabled');
(有關jQuery選擇器的效能以及最佳實踐,請看這篇文章)
UI
BootStrap爛大街
不是我們的菜
我們選擇的標準是門檻要高
於是
Foundation6 / Ant Design
映入眼簾
請謹慎使用
Semantic UI / UIkit / Amaze UI ...
避免不能自拔
工具庫
後浪lodash把前浪underscore拍死在沙灘上
於是它成了唯一的選擇
不過為了保持逼格
我們要儘量使用原汁原味的ES6
就算要用也一定要注意素質:
/* Low */ import _ from 'lodash' // 把整個lodash打包進去了
/* Bigger */ import isEmpty from 'lodash/isEmpty' // 僅把個別函式打包
模板引擎
逼格最高顯然是Jade
但改名為Pug(哈巴狗)後
就像是小龍女被尹志平不可描述後
再也無愛了
從此以後
留了鬍子(Mustache)
扶著把手(Handlebars)
默默耕耘
非同步程式設計
這裡不談 Q / Bluebird / Async / co / then 等庫
皆因Babel已經支援所有的非同步程式設計解決方案
當前最常用的還是Promise
有些新手會寫出這種程式碼:
/* Low */ // 找出與使用者1同市的所有使用者 User.findById(1).then((user) => { User.find({ city: user.city }).then((users) => { res.json(users.toJSON()) }) })
這屬於Promise反模式,與回撥函式無異
/* Bigger */ User.findById(1).then((user) => { return User.find({ city: user.city }) // 返回Promise }).then((users) => { res.json(users.toJSON()) }).catch(next)
§ 包管理工具
如果你被
Bower / spm / Component / Duo ...
坑過
請回到npm的懷抱
什麼?jspm?有完沒完...
§ 構建工具
想當年我不懂什麼是自動構建工具
他們說:生命苦短,我們用Grunt
好不容易用上Grunt的時候
他們又說:Gulp基於流,符合Unix哲學
之後我虔誠地換上了Gulp
他們雙說:Webpack最好用
最後終於用上了Webpack
他們叒說:FIS3約不約?。。。
§ 模組化方案
無論是
-
RequireJS (AMD)
-
SeaJS (CMD)
-
KMD.js (KMD)
-
Browserify (CommonJS)
-
...
最後都慶幸迴歸到npm + Webpack
什麼?SystemJS?有完沒完...
§ MV*框架 / 技術棧 / 大型框架
Backbone
每個人都有一段不堪回首的經歷
就像當年在QQ空間發“你若安好便是晴天”的說說
Backbone就是這樣子的存在
Angular
一定要邊吐槽邊用,不然就一點都不ng了
“學習曲線陡峭”不應從你口中說出
“學習過程趣味盎然”才是你的菜
Vue
一定要用“優雅”來形容
就像用ES6一定要“大膽”
React技術棧
React已經是前端高逼格的代名詞
所以無論懂不懂都要喊:
“React大法好”
因為這是一種信仰
稱讚JSX的標新立異
談談 Flux / Redux
扯扯 Elm / RxJS
每到深入則戛然而止:
“太深入的太抽象,你們未必能理解”
由此,聽者只會更加崇拜你
其他
還有國內相對小眾的 Ember / Knockout / Avalon
(請別再把 YUI / Dojo / Ext / KISSY 扯進來了好伐)
§ 混合 / 原生開發
自從PhoneGap出來後
貌似我們也能搶安卓/iOS的飯碗了
Ionic更是將Hybrid APP推向高潮
不過混合始終比不上原生
於是React Native應運而生
最近多了一個新的選擇:Weex
別忘了還有桌面的nw.js以及Electron
JSer從一入門開始,就掌握了改變世界的能力
也比其他程式設計師更容易走向人生的巔峰
§ 後端框架
我們一直標榜自己是全棧
不玩幾下後端框架怎麼行
快遞員用Express
風溼患者用Koa
哲學家用ThinkJS
水手用Sails
還有全棧的Meteor
上述都用一遍
相信也快轉行了
§ 伺服器程式管理
既然都玩上了後端框架
不懂部署伺服器怎麼行
二逼青年用supervisor / nodemon
文藝青年用forever
普通青年用pm2
裝逼青年用Tmux + node
§ 結語
import you, { isGoodPost, star } from 'you' import me, { thank } from 'me' const url = 'https://github.com/kenberkeley/bigger-jser' isGoodPost(url) && star(me) thank(you)
相關文章
- 前端手冊前端
- 程式設計師裝逼速成手冊:你們感受一下程式設計師
- Hbase安裝手冊
- Hive安裝手冊Hive
- RAC安裝手冊
- 前端裝逼技巧 108 式(一)—— 打工人前端
- Web前端開發規範手冊Web前端
- Erlang安裝手冊-windowsWindows
- GP完整安裝手冊
- Discoverer Desktop安裝手冊
- Oracle VM Server安裝手冊OracleServer
- 求petstore的安裝手冊?
- 完美安裝mplayer手冊(轉)
- FVWM安裝完全手冊(轉)
- ORACLE FOR SUN SOLARIS 安裝手冊Oracle
- Rational ClearCase Windows安裝手冊Windows
- PHPNuke完全安裝手冊(轉)PHP
- 2017前端開發手冊三-前端職位描述前端
- JavaScript 裝逼指南JavaScript
- 前端攻城獅HTML5自查手冊前端HTML
- 前端面試基礎手冊(HTML+CSS)前端面試HTMLCSS
- 前端學習實用工具及手冊自取前端
- Go語言快速安裝手冊Go
- gitlab服務安裝手冊Gitlab
- 程式設計師裝B手冊程式設計師
- MySql安裝及整合Hive手冊MySqlHive
- GOLDENGATE安裝和配置手冊Go
- RH9安裝手冊,很好!
- mysql5全新安裝手冊MySql
- 面向 Web 前端的原生語言總結手冊Web前端
- 【前端工程師手冊】前端應該知道的各種寬高前端工程師
- wxpython - 快速開發封裝手冊Python封裝
- Frida官方手冊 - 安裝Frida
- freebsd7.0安裝cacti手冊
- AIX平臺Oracle ODBC安裝手冊AIOracle
- EBS R12 安裝完全手冊
- Spring淺入淺出——不吹牛逼不裝逼Spring
- 裝逼的寫法 jsJS