摘要:在裝逼成本越來越高的圈,是時(shí)候充值一下了題記開發(fā)是標(biāo)配,美其名曰提高開發(fā)體驗(yàn)什么你還在用趕緊給我換編輯器,三選一雖然很想用,但一定要忍住,并且與人解釋道啟動(dòng)速度慢,消耗資源多,不適合我這種完美主義者如果不是為了美觀,我寧愿使用命令行二逼
在裝逼成本越來越高的 JS 圈,是時(shí)候充值一下了 ———— 題記
§ 開發(fā)
Macbook Pro 是標(biāo)配,美其名曰“提高開發(fā)體驗(yàn)” 什么?你還在用 Spotlight?趕緊給我換 Alfred!
編輯器,Sublime / Atom / VS Code 三選一 雖然很想用IDE,但一定要忍住,并且與人解釋道:
“啟動(dòng)速度慢,消耗資源多,不適合我這種完美主義者 如果不是為了美觀,我寧愿使用 Vim / Emacs”命令行 iTerm2 + Oh-my-zsh 二逼青年用 bash,普通青年用 zsh 我們也只是想做一名普通人罷了
查資料雖然都是百度 但一定要稱都是用 Google 且要說英文而不是中文的“谷歌” 使用美式發(fā)音,當(dāng)自己是灣區(qū)老司機(jī)
盡管四級(jí)飄過,六級(jí)沒過 在 Stack Overflow 上點(diǎn)數(shù)也低 但也要說每天都與各國程序員談笑風(fēng)生
§ 語言
這年頭如果還不用 Babel + ES6 都不好意思說自己是 JSer 當(dāng)然還有 TypeScript / CoffeeScript /
Dart ... 沒學(xué)過沒關(guān)系 對(duì)外人說自己“略懂”即可 反正最后都是編譯為 ES5,你懂的為了避免對(duì)方深入問 此時(shí)你應(yīng)該繼續(xù)發(fā)表高見: “JS 是基于原型的函數(shù)式弱類語言 引入類與強(qiáng)類真的是不倫不類”
說到此,頓一下,表現(xiàn)出百感交集 隨后繼續(xù)徐徐道: “可大勢(shì)所趨,吾等小輩惟隨波逐流” 說罷,即可揮揮衣袖轉(zhuǎn)身離去在這里不得不提一下,雖然使用 Babel 轉(zhuǎn)碼可以盡情裝逼 但其對(duì)某些新特性的轉(zhuǎn)換相當(dāng)二逼(詳情請(qǐng)看這篇文章) 一句話:Babel
雖好,但別貪杯哦(推薦Babel 在線實(shí)時(shí)編譯)
§ 代碼風(fēng)格
摒棄 JSLint / JSHint / JSCS,擁抱 ESLint 盡管平時(shí)只是個(gè)搬磚的 但時(shí)刻以世界頂級(jí)企業(yè)的規(guī)范約束自己 于是
eslint-config-airbnb 成了我們的標(biāo)配
一般新手是這樣寫的:
/* Low */ if (a) { return b; } else { return c; }
逼格稍微高一點(diǎn)的這樣寫:
/* Bigger */ if (a) return b; // 提前結(jié)束,免用大括號(hào)與else return c;
實(shí)際上還能更進(jìn)一步:
/* Bigger than bigger */ return a ? b : c // 不要寫分號(hào),留白予人想象的空間 總而言之,代碼越短,可讀性越差,逼格越高 不能讓人隨便看懂,就像人不能輕易讓人看透
§ 奇技淫巧
罄竹難書
§ 常用庫
DOM庫
標(biāo)配是 jQuery,手機(jī)端有 Zepto 作為替代品 想要裝逼且不怕坑,那就上 Mootools
Prototype?嗯,復(fù)古的逼格都是很高的一定要說自己純粹為了優(yōu)雅簡(jiǎn)潔,不得不用 jQuery (如何做到 jQuery-free,請(qǐng)看這篇文章)
當(dāng)然,就算是寫 jQuery 也能體現(xiàn)出逼格 我們來看看新手一般是怎么寫的:
/* Low */ var value = $(".container .myInput1").val(); $(".container .myInput2").val(value); $(".container .myInput3").attr("disabled", "disabled"); 用雙引號(hào),以及對(duì)選擇器性能認(rèn)知不足,是新手的特征 一般直接使用類選擇器的,都是對(duì)用戶體驗(yàn)很有自信的 /* Bigger */ // 把div.container命名為myDiv var $myDiv = $("#myDiv"), // 緩存DOM v = $myDiv.find(".myInput1").val(); $myDiv .find(".myInput2").val(v) .end() // 堅(jiān)持鏈?zhǔn)秸{(diào)用 .find(".myInput3").attr("disabled", "disabled"); (有關(guān) jQuery 選擇器的性能以及最佳實(shí)踐,請(qǐng)看這篇文章)
UI
BootStrap 爛大街 不是我們的菜 我們選擇的標(biāo)準(zhǔn)是門檻要高 于是 Foundation6 / Ant Design 映入眼簾
請(qǐng)謹(jǐn)慎使用 Semantic UI / UIkit / Amaze UI ... 避免不能自拔
工具庫
后浪 lodash 把前浪 underscore 拍死在沙灘上 于是它成了唯一的選擇 不過為了保持逼格 我們要盡量使用原汁原味的 ES6
就算要用也一定要注意素質(zhì):
/* Low */ import _ from "lodash" // 把整個(gè)lodash打包進(jìn)去了 /* Bigger */ import isEmpty from "lodash/isEmpty" // 僅把個(gè)別函數(shù)打包
模板引擎
逼格最高顯然是 Jade 但改名為 Pug(哈巴狗)后 就像是小龍女被尹志平不可描述后 再也無愛了 從此以后 留了胡子(Mustache)
扶著把手(Handlebars) 默默耕耘
異步編程
這里不談 Q / Bluebird / Async / co / then 等庫 皆因Babel已經(jīng)支持所有的異步編程解決方案
當(dāng)前最常用的還是Promise
有些新手會(huì)寫出這種代碼:
/* Low */ // 找出與用戶1同市的所有用戶 User.findById(1).then((user) => { User.find({ city: user.city }).then((users) => { res.json(users.toJSON()) }) }) 這屬于 Promise反模式,與回調(diào)函數(shù)無異 /* 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 ... 坑過 請(qǐng)回到 npm 的懷抱 什么?jspm?有完沒完...
§ 構(gòu)建工具
想當(dāng)年我不懂什么是自動(dòng)構(gòu)建工具 他們說:生命苦短,我們用 Grunt
好不容易用上 Grunt 的時(shí)候 他們又說:Gulp 基于流,符合 Unix 哲學(xué)
之后我虔誠地?fù)Q上了 Gulp 他們雙說:Webpack 最好用
最后終于用上了 Webpack 他們叒說:FIS3 約不約?。。。
§ 模塊化方案
無論是
RequireJS (AMD) SeaJS (CMD) KMD.js (KMD) Browserify (CommonJS) ...
最后都慶幸回歸到 npm + Webpack 什么?SystemJS?有完沒完...
§ MV*框架 / 技術(shù)棧 / 大型框架
Backbone
每個(gè)人都有一段不堪回首的經(jīng)歷 就像當(dāng)年在 QQ 空間發(fā)“你若安好便是晴天”的說說 Backbone就是這樣子的存在
Angular
一定要邊吐槽邊用,不然就一點(diǎn)都不 ng 了 “學(xué)習(xí)曲線陡峭”不應(yīng)從你口中說出 “學(xué)習(xí)過程趣味盎然”才是你的菜
Vue
一定要用“優(yōu)雅”來形容 就像用 ES6 一定要“大膽”
React技術(shù)棧
React 已經(jīng)是前端高逼格的代名詞 所以無論懂不懂都要喊: “React 大法好” 因?yàn)檫@是一種信仰 稱贊 JSX 的標(biāo)新立異 談?wù)?br>Flux / Redux 扯扯 Elm / RxJS 每到深入則戛然而止: “太深入的太抽象,你們未必能理解” 由此,聽者只會(huì)更加崇拜你
其他
還有國內(nèi)相對(duì)小眾的 Ember / Knockout / Avalon (請(qǐng)別再把 YUI / Dojo / Ext / KISSY
扯進(jìn)來了好伐)
§ 混合 / 原生開發(fā)
自從 PhoneGap 出來后 貌似我們也能搶 安卓/iOS 的飯碗了 Ionic 更是將 Hybrid APP 推向高潮
不過混合始終比不上原生 于是 React Native 應(yīng)運(yùn)而生 最近多了一個(gè)新的選擇:Weex
別忘了還有桌面的 nw.js 以及 Electron
JSer從一入門開始,就掌握了改變世界的能力 也比其他程序員更容易走向人生的巔峰
§ 后端框架
我們一直標(biāo)榜自己是全棧 不玩幾下后端框架怎么行
快遞員用 Express 風(fēng)濕患者用 Koa 哲學(xué)家用 ThinkJS 水手用 Sails
還有全棧的 Meteor 上述都用一遍 相信也快轉(zhuǎn)行了
§ 服務(wù)器進(jìn)程管理
既然都玩上了后端框架 不懂部署服務(wù)器怎么行
二逼青年用 supervisor / nodemon 文藝青年用 forever 普通青年用 pm2 裝逼青年用 Tmux + node
§ 結(jié)語
import you, { isGoodPost, star } from "you" import me, { thank } from
"me"const url = "https://github.com/kenberkele..."
isGoodPost(url) && star(me) thank(you)
原文
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/87838.html
摘要:在裝逼成本越來越高的圈,是時(shí)候充值一下了題記開發(fā)是標(biāo)配,美其名曰提高開發(fā)體驗(yàn)什么你還在用趕緊給我換編輯器,三選一雖然很想用,但一定要忍住,并且與人解釋道啟動(dòng)速度慢,消耗資源多,不適合我這種完美主義者如果不是為了美觀,我寧愿使用命令行二逼 在裝逼成本越來越高的JS圈,是時(shí)候充值一下了 ——題記 § 開發(fā) Macbook Pro是標(biāo)配,美其名曰提高開發(fā)體驗(yàn) 什么?你還在用Spotligh...
摘要:前端技術(shù)知識(shí)基礎(chǔ)當(dāng)你輸入一個(gè)網(wǎng)址的時(shí)候,實(shí)際會(huì)發(fā)生什么徹底理解同步異步和事件循環(huán)你真的會(huì)使用嗎知識(shí)結(jié)構(gòu)寫給自己,梳理一下我現(xiàn)在對(duì)前端知識(shí)結(jié)構(gòu)的理解寫得相當(dāng)完整對(duì)于初涉前端開發(fā)的同學(xué)或者想在新項(xiàng)目中選擇一個(gè)前端技術(shù)棧的情況非常有指導(dǎo)價(jià)值而且里 前端技術(shù) 知識(shí)基礎(chǔ) 當(dāng)你輸入一個(gè)網(wǎng)址的時(shí)候,實(shí)際會(huì)發(fā)生什么 JavaScript:徹底理解同步、異步和事件循環(huán) 你真的會(huì)使用XMLHttpReq...
摘要:隨著以服務(wù)器端的桌面端的和原生移動(dòng)端為代表的全棧迅猛發(fā)展,真正生產(chǎn)環(huán)境中的前端技術(shù)全棧化已經(jīng)逐漸變?yōu)榭赡堋2贿^在一段時(shí)間之內(nèi),還是會(huì)繼續(xù)向前沖。在剛剛結(jié)束的大會(huì)上,的作者宣布成為的技術(shù)顧問。 隨著以服務(wù)器端的NodeJS、桌面端的Electron和原生移動(dòng)端React Native為代表的全棧JS迅猛發(fā)展,真正生產(chǎn)環(huán)境中的JS/前端技術(shù)全棧化已經(jīng)逐漸變?yōu)榭赡堋1M管在前端以外的領(lǐng)域里,J...
摘要:隨著以服務(wù)器端的桌面端的和原生移動(dòng)端為代表的全棧迅猛發(fā)展,真正生產(chǎn)環(huán)境中的前端技術(shù)全棧化已經(jīng)逐漸變?yōu)榭赡堋2贿^在一段時(shí)間之內(nèi),還是會(huì)繼續(xù)向前沖。在剛剛結(jié)束的大會(huì)上,的作者宣布成為的技術(shù)顧問。 隨著以服務(wù)器端的NodeJS、桌面端的Electron和原生移動(dòng)端React Native為代表的全棧JS迅猛發(fā)展,真正生產(chǎn)環(huán)境中的JS/前端技術(shù)全棧化已經(jīng)逐漸變?yōu)榭赡堋1M管在前端以外的領(lǐng)域里,J...
閱讀 1864·2021-11-25 09:43
閱讀 2146·2021-11-19 09:40
閱讀 3422·2021-11-18 13:12
閱讀 1739·2021-09-29 09:35
閱讀 661·2021-08-24 10:00
閱讀 2505·2019-08-30 15:55
閱讀 1709·2019-08-30 12:56
閱讀 1815·2019-08-28 17:59