些公司在使用同構 javascript, Yahoo、 Facebook、Netfix 和 Airbnb 這些都接受了同構 javascript。不過同構成本還是很高的,存在一定復雜度。如果對性能要求不高,也無需支持 SEO 需求,可以選擇使用 SPA 。同構 javascript 帶來的麻煩似乎要大于收益。
同構的本質就是代碼復用。
整個項目管理使用 gulp 工具進行管理,由于在服務端使用 nodejs 對模塊管理使用 CommonJS。而在瀏覽器端不是天生支持 CommonJS 模塊管理在 es6 中引入更優雅的模塊管理。但是在 nodejs 我知道階段可能還不支持 ES6 的模塊管理,所以使用 babel 這個編譯工具對我們服務端的 javascript 代碼進行轉換為 commonJS 模塊管理。
這里有時候不會關于詳細演示如何使用某個具體的庫或框架,例如如何使用 gulp 來構建 javascript 的項目。更多的是關注整體框架是如何搭建的。
var gulp=require('gulp');
gulp.task('default',function(){
console.log('default task sucess');
})
引入 babel 和 gulp-babel 的,并且需要 npm 對所需的庫進行已安裝,除此而外還需要全局安裝 gulp 和 babel-cli。編寫編譯任務來對服務端 js 使用 babel 編譯工具進行編譯。
const gulp=require('gulp');
const babel=require('gulp-babel');
gulp.task('compile',function(){
return gulp.src('src/**/*.js')
.pipe(babel())
.pipe(gulp.dest('dist'));
});
gulp.task('watch',()=>{
gulp.watch('src/**/*.js',['watch'])
})
gulp.task('default',['watch','compile']);
const nodemon=require('gulp-nodemon');
const sequence=require('run-sequence');
我們需要監控編譯好的 index.js ,當這個文件內容發生了變化就需要自動重啟服務。
gulp.task('start',()=>{
nodemon({
watch:'dist',
script:'dist/index.js',
ext:'js',
env:{'NODE_ENV':'development'}
});
});
觀察的文件是編譯好的文件所以我們需要按一定執行順序來執行一系列的任務。
gulp.task('default',(cb)=>{
sequence(['watch','compile'],'start',cb);
});
好就是我們應用構建已經完成
同構 javascript 應用開發的最佳實踐(1)
參考 《同構 Javascript 應用開發》
注于Java領域優質技術,歡迎關注
作 者:Cherry300
來 源:jianshu.com/p/c86cee16b418
前后端分離已成為互聯網項目開發的業界標準使用方式,通過nginx+tomcat的方式(也可以中間加一個nodejs)有效的進行解耦,并且前后端分離會為以后的大型分布式架構、彈性計算架構、微服務架構、多端化服務(多種客戶端,例如:瀏覽器,車載終端,安卓,IOS等等)打下堅實的基礎。這個步驟是系統架構從猿進化成人的必經之路。
核心思想是前端html頁面通過ajax調用后端的restuful api接口并使用json數據進行交互。
在互聯網架構中,名詞解釋:
Web服務器:一般指像nginx,apache這類的服務器,他們一般只能解析靜態資源。
應用服務器:一般指像tomcat,jetty,resin這類的服務器可以解析動態資源也可以解析靜態資源,但解析靜態資源的能力沒有web服務器好。
一般都是只有web服務器才能被外網訪問,應用服務器只能內網訪問。
以前的JavaWeb項目大多數都是java程序員又當爹又當媽,又搞前端,又搞后端。
隨著時代的發展,漸漸的許多大中小公司開始把前后端的界限分的越來越明確,前端工程師只管前端的事情,后端工程師只管后端的事情。正所謂術業有專攻,一個人如果什么都會,那么他畢竟什么都不精。
大中型公司需要專業人才,小公司需要全才,但是對于個人職業發展來說,我建議是分開。
1、對于后端java工程師:
把精力放在java基礎,設計模式,jvm原理,spring+springmvc原理及源碼,linux,mysql事務隔離與鎖機制,mongodb,http/tcp,多線程,分布式架構,彈性計算架構,微服務架構,java性能優化,以及相關的項目管理等等。
后端追求的是:三高(高并發,高可用,高性能),安全,存儲,業務等等。
2、對于前端工程師:
把精力放在html5,css3,jquery,angularjs,bootstrap,reactjs,vuejs,webpack,less/sass,gulp,nodejs,Google V8引擎,javascript多線程,模塊化,面向切面編程,設計模式,瀏覽器兼容性,性能優化等等。
前端追求的是:頁面表現,速度流暢,兼容性,用戶體驗等等。
術業有專攻,這樣你的核心競爭力才會越來越高,正所謂你往生活中投入什么,生活就會反饋給你什么。并且兩端的發展都越來越高深,你想什么都會,那你畢竟什么都不精。
通過將team分成前后端team,讓兩邊的工程師更加專注各自的領域,獨立治理,然后構建出一個全棧式的精益求精的team。
幾曾何時,我們的JavaWeb項目都是使用了若干后臺框架,springmvc/struts + spring + spring jdbc/hibernate/mybatis 等等。
大多數項目在java后端都是分了三層,控制層,業務層,持久層。控制層負責接收參數,調用相關業務層,封裝數據,以及路由&渲染到jsp頁面。然后jsp頁面上使用各種標簽或者手寫java表達式將后臺的數據展現出來,玩的是MVC那套思路。
我們先看這種情況:需求定完了,代碼寫完了,測試測完了,然后呢?要發布了吧?你需要用maven或者eclipse等工具把你的代碼打成一個war包,然后把這個war包發布到你的生產環境下的web容器里,對吧?
發布完了之后,你要啟動你的web容器,開始提供服務,這時候你通過配置域名,dns等等相關,你的網站就可以訪問了(假設你是個網站)。那我們來看,你的前后端代碼是不是全都在那個war包里?包括你的js,css,圖片,各種第三方的庫,對吧?
好,下面在瀏覽器中輸入你的網站域名(www.xxx.com),之后發生了什么?(這個問題也是很多公司的面試題)我撿干的說了啊,基礎不好的童鞋請自己去搜。
瀏覽器在通過域名通過dns服務器找到你的服務器外網ip,將http請求發送到你的服務器,在tcp3次握手之后(http下面是tcp/ip),通過tcp協議開始傳輸數據,你的服務器得到請求后,開始提供服務,接收參數,之后返回你的應答給瀏覽器,瀏覽器再通過content-type來解析你返回的內容,呈現給用戶。
那么我們來看,我們先假設你的首頁中有100張圖片,此時,用戶的看似一次http請求,其實并不是一次,用戶在第一次訪問的時候,瀏覽器中不會有緩存,你的100張圖片,瀏覽器要連著請求100次http請求(有人會跟我說http長連短連的問題,不在這里討論),你的服務器接收這些請求,都需要耗費內存去創建socket來玩tcp傳輸(消耗你服務器上的計四、JSP的痛點
以前的javaWeb項目大多數使用jsp作為頁面層展示數據給用戶,因為流量不高,因此也沒有那么苛刻的性能要求,但現在是大數據時代,對于互聯網項目的性能要求是越來越高,因此原始的前后端耦合在一起的架構模式已經逐漸不能滿足我們,因此我們需要需找一種解耦的方式,來大幅度提升我們的負載能力。
1、動態資源和靜態資源全部耦合在一起,服務器壓力大,因為服務器會收到各種http請求,例如css的http請求,js的,圖片的等等。一旦服務器出現狀況,前后臺一起玩完,用戶體驗極差。
2、UI出好設計圖后,前端工程師只負責將設計圖切成html,需要由java工程師來將html套成jsp頁面,出錯率較高(因為頁面中經常會出現大量的js代碼),修改問題時需要雙方協同開發,效率低下。
3、jsp必須要在支持java的web服務器里運行(例如tomcat,jetty,resin等),無法使用nginx等(nginx據說單實例http并發高達5w,這個優勢要用上),性能提不上來。
4、第一次請求jsp,必須要在web服務器中編譯成servlet,第一次運行會較慢。
5、每次請求jsp都是訪問servlet再用輸出流輸出的html頁面,效率沒有直接使用html高(是每次喲,親~)。
6、jsp內有較多標簽和表達式,前端工程師在修改頁面時會捉襟見肘,遇到很多痛點。
7、如果jsp中的內容很多,頁面響應會很慢,因為是同步加載。
8、需要前端工程師使用java的ide(例如eclipse),以及需要配置各種后端的開發環境,你們有考慮過前端工程師的感受嗎。
基于上述的一些痛點,我們應該把整個項目的開發權重往前移,實現前后端真正的解耦!
以前老的方式是:
1、產品經歷/領導/客戶提出需求
2、UI做出設計圖
3、前端工程師做html頁面
4、后端工程師將html頁面套成jsp頁面(前后端強依賴,后端必須要等前端的html做好才能套jsp。如果html發生變更,就更痛了,開發效率低)
5、集成出現問題
6、前端返工
7、后端返工
8、二次集成
9、集成成功
10、交付
新的方式是:
1、產品經歷/領導/客戶提出需求
2、UI做出設計圖
3、前后端約定接口&數據&參數
4、前后端并行開發(無強依賴,可前后端并行開發,如果需求變求變更,只要接口&參數不變,就不用兩邊都修改代碼,開發效率高)
5、前后端集成
6、前端頁面調整
7、集成成功
8、交付
以前老的方式是:
1、客戶端請求
2、服務端的servlet或controller接收請求(后端控制路由與渲染頁面,整個項目開發的權重大部分在后端)
3、調用service,dao代碼完成業務邏輯
4、返回jsp
5、jsp展現一些動態的代碼
新的方式是:
1、瀏覽器發送請求
2、直接到達html頁面(前端控制路由與渲染頁面,整個項目開發的權重前移)
3、html頁面負責調用服務端接口產生數據(通過ajax等等,后臺返回json格式數據,json數據格式因為簡潔高效而取代xml)
4、填充html,展現動態效果,在頁面上進行解析并操作DOM。
總結一下新的方式的請求步驟:
大量并發瀏覽器請求--->web服務器集群(nginx)--->應用服務器集群(tomcat)--->文件/數據庫/緩存/消息隊列服務器集群
同時又可以玩分模塊,還可以按業務拆成一個個的小集群,為后面的架構升級做準備。
1、可以實現真正的前后端解耦,前端服務器使用nginx。前端/WEB服務器放的是css,js,圖片等等一系列靜態資源(甚至你還可以css,js,圖片等資源放到特定的文件服務器,例如阿里云的oss,并使用cdn加速),前端服務器負責控制頁面引用&跳轉&路由,前端頁面異步調用后端的接口,后端/應用服務器使用tomcat(把tomcat想象成一個數據提供者),加快整體響應速度。(這里需要使用一些前端工程化的框架比如nodejs,react,router,react,redux,webpack)
2、發現bug,可以快速定位是誰的問題,不會出現互相踢皮球的現象。頁面邏輯,跳轉錯誤,瀏覽器兼容性問題,腳本錯誤,頁面樣式等問題,全部由前端工程師來負責。接口數據出錯,數據沒有提交成功,應答超時等問題,全部由后端工程師來解決。雙方互不干擾,前端與后端是相親相愛的一家人。
3、在大并發情況下,我可以同時水平擴展前后端服務器,比如淘寶的一個首頁就需要2000+臺前端服務器做集群來抗住日均多少億+的日均pv。(去參加阿里的技術峰會,聽他們說他們的web容器都是自己寫的,就算他單實例抗10萬http并發,2000臺是2億http并發,并且他們還可以根據預知洪峰來無限拓展,很恐怖,就一個首頁。。。)
4、減少后端服務器的并發/負載壓力。除了接口以外的其他所有http請求全部轉移到前端nginx上,接口的請求調用tomcat,參考nginx反向代理tomcat。且除了第一次頁面請求外,瀏覽器會大量調用本地緩存。
5、即使后端服務暫時超時或者宕機了,前端頁面也會正常訪問,只不過數據刷不出來而已。
6、也許你也需要有微信相關的輕應用,那樣你的接口完全可以共用,如果也有app相關的服務,那么只要通過一些代碼重構,也可以大量復用接口,提升效率。(多端應用)
7、頁面顯示的東西再多也不怕,因為是異步加載。
8、nginx支持頁面熱部署,不用重啟服務器,前端升級更無縫。
9、增加代碼的維護性&易讀性(前后端耦在一起的代碼讀起來相當費勁)。
10、提升開發效率,因為可以前后端并行開發,而不是像以前的強依賴。
11、在nginx中部署證書,外網使用https訪問,并且只開放443和80端口,其他端口一律關閉(防止黑客端口掃描),內網使用http,性能和安全都有保障。
12、前端大量的組件代碼得以復用,組件化,提升開發效率,抽出來!
1、在開需求會議的時候,前后端工程師必須全部參加,并且需要制定好接口文檔,后端工程師要寫好測試用例(2個維度),不要讓前端工程師充當你的專職測試,推薦使用chrome的插件postman或soapui或jmeter,service層的測試用例拿junit寫。ps:前端也可以玩單元測試嗎?
2、上述的接口并不是java里的interface,說白了調用接口就是調用你controler里的方法。
3、加重了前端團隊的工作量,減輕了后端團隊的工作量,提高了性能和可擴展性。
4、我們需要一些前端的框架來解決類似于頁面嵌套,分頁,頁面跳轉控制等功能。(上面提到的那些前端框架)。
5、如果你的項目很小,或者是一個單純的內網項目,那你大可放心,不用任何架構而言,但是如果你的項目是外網項目,呵呵噠。
6、 以前還有人在使用類似于velocity/freemarker等模板框架來生成靜態頁面,仁者見仁智者見智。
7、這篇文章主要的目的是說jsp在大型外網java web項目中被淘汰掉,可沒說jsp可以完全不學,對于一些學生朋友來說,jsp/servlet等相關的java web基礎還是要掌握牢的,不然你以為springmvc這種框架是基于什么來寫的?
8、如果頁面上有一些權限等等相關的校驗,那么這些相關的數據也可以通過ajax從接口里拿。
9、對于既可以前端做也可以后端做的邏輯,我建議是放到前端,為什么?因為你的邏輯需要計算資源進行計算,如果放到后端去run邏輯,則會消耗帶寬&內存&cpu等等計算資源,你要記住一點就是服務端的計算資源是有限的,而如果放到前端,使用的是客戶端的計算資源,這樣你的服務端負載就會下降(高并發場景)。類似于數據校驗這種,前后端都需要做!
10、前端需要有機制應對后端請求超時以及后端服務宕機的情況,友好的展示給用戶。
1、其實對于js,css,圖片這類的靜態資源可以考慮放到類似于阿里云的oss這類文件服務器上(如果是普通的服務器&操作系統,存儲在到達pb級的文件后,或者單個文件夾內的文件數量達到3-5萬,io會有很嚴重的性能問題),再在oss上配cdn(全國子節點加速),這樣你頁面打開的速度像飛一樣, 無論你在全國的哪個地方,并且你的nginx的負載會進一步降低。
2、如果你要玩輕量級微服務架構,要使用nodejs做網關,用nodejs的好處還有利于seo優化,因為nginx只是向瀏覽器返回頁面靜態資源,而國內的搜索引擎爬蟲只會抓取靜態數據,不會解析頁面中的js,這使得應用得不到良好的搜索引擎支持。同時因為nginx不會進行頁面的組裝渲染,需要把靜態頁面返回到瀏覽器,然后完成渲染工作,這加重了瀏覽器的渲染負擔。瀏覽器發起的請求經過nginx進行分發,URL請求統一分發到nodejs,在nodejs中進行頁面組裝渲染;API請求則直接發送到后端服務器,完成響應。
3、如果遇到跨域問題,spring4的CORS可以完美解決,但一般使用nginx反向代理都不會有跨域問題,除非你把前端服務和后端服務分成兩個域名。JSONP的方式也被淘汰掉了。
4、如果想玩多端應用,注意要去掉tomcat原生的session機制,要使用token機制,使用緩存(因為是分布式系統),做單點,對于token機制的安全性問題,可以搜一下jwt。
5、前端項目中可以加入mock測試(構造虛擬測試對象來模擬后端,可以獨立開發和測試),后端需要有詳細的測試用例,保證服務的可用性與穩定性。
前后端分離并非僅僅只是一種開發模式,而是一種架構模式(前后端分離架構)。千萬不要以為只有在擼代碼的時候把前端和后端分開就是前后端分離了,需要區分前后端項目。前端項目與后端項目是兩個項目,放在兩個不同的服務器,需要獨立部署,兩個不同的工程,兩個不同的代碼庫,不同的開發人員。
前后端工程師需要約定交互接口,實現并行開發,開發結束后需要進行獨立部署,前端通過ajax來調用http請求調用后端的restful api。前端只需要關注頁面的樣式與動態數據的解析&渲染,而后端專注于具體業務邏輯。
4、如果想玩多端應用,注意要去掉tomcat原生的session機制,要使用token機制,使用緩存(因為是分布式系統),做單點,對于token機制的安全性問題,可以搜一下jwt。
最近無意中發現了一個巨牛的人工智能教程,忍不住分享一下給大家。教程不僅是零基礎,通俗易懂,而且非常風趣幽默,像看小說一樣!覺得太牛了,所以分享給大家。點下面鏈接可以跳轉到教程。
https://www.captainbed.net/suga
者 | 六小登登
責編 | 屠敏
從 2013 年專科畢業開始,一路跌跌撞撞走了很多彎路,做過餐廳服務員,進過工廠干過流水線,做過客服,干過電話銷售可以說經歷相當的“豐富”。
最后的機緣巧合下,走上了前端開發之路,作為一個非計算機專業且低學歷的人來說,自學編程其實不是件容易的事情,不過慶幸的是自己堅持下來了。
目前工作還算不錯,收入在目前所在的城市不算高,不算低,生活也還過得去,繼續加油努力,也希望自己在今后更上一層。
從 2016 年下半年開始,我真正接觸前端,到現在 2 年多的時間。開始之初,我沒有任何的語言基礎,完全從零的小白開始,就連「對象」我都弄不明白,更別說那些高深莫測的什么封裝、繼承、多態等。
當時自己也不知從何入手,怎么辦呢?于是每當自己遇到困難時,就厚著臉皮去請教前輩大牛,然后就是去查閱資料,很多時候自己也很覺得不好意思,現在才發現人很多時候都恥于相別人請教,怕自己丟面子。
但作為一個過來人,我要告訴你請教前輩大牛真的很重要,可以讓你少走很多的彎路,不要怕丟人,沒面子,面子值幾個錢?學到真本事才最重要。沒有技能才叫真的沒有面子。當然了我們在請教別人時,一定要掌握「度」,不要打擾到了別人的工作。
我現在非常感謝前輩們的賜教,也感謝那些在網上寫博客、文章分享的大牛們,給了我們這些自學的小白很多的資料,經驗,心得。從中受益很多。
向優秀的前輩們學習,我開始寫博客,希望也能幫到和我一樣,學渣、從零開始、喜歡技術的一群志同道合的人。
我深知自己的技術并不高,還處在繼續學習的路上,離大牛還差的很遠,我本身也非常敬畏技術,也知道自己的渺小,只希望這篇文章的「學習之路」對于那些「從零開始」學習前端的同學有一些指引作用,不像自己一開始那樣的那么盲目,哪怕對你有一點點的幫助,就足夠了。
說了這么多,下面我們直接進入正題,都是我平時學習和收集的一些資料希望能夠幫到你。
前言
工具篇
工欲善其事,必先利其器,所以在開始之前選擇一個合適好用的編輯器是很重要的,工具不再多,在于好用就行,除了編輯器,我們也要掌握其他的一些工具,才能夠讓我們在學習的道路上更加的順暢。
1. WebStorm
不必多說,前端最強大的編輯器,特別是那無敵的智能提示,但是它的缺點在于如果項目多于大時,出現的卡頓讓很多人苦惱。
2. Visual Studio Code
微軟開源免費產品,受到非常多技術人員的喜愛,基本上成為前端開發者的必備編輯器,強大的插件擴展,可以靈活的打造自己喜歡的風格。給你們送上常用插件列表拿走不謝。
3. atom
也是一款免費開源的編輯器,受到很多人的喜愛,但是我本人用的較少,所以插件方面就不推薦了,大家可以按照自己的愛好去尋找。
4. 科學上網
每個程序員都應該具備的工具和能力,否則很多事情都無法辦到,至于怎么做,你可以自己查閱資料,這里不就不在多說了。而且下面推薦的很多資源都是需要科學上網之后才能訪問,所以一定要學會。
5. Google
在使用「Google」之前必須學會科學上網,不然無法訪問,學會使用搜索可以幫助我們解決很多問題,一個人的知識是有限的,掌握了搜索的技巧才能以不變應萬變,很多時候百度出來的東西重復性很大,最重要的是垃圾信息很多,在百度找不到的答案,在這里很容易找到,Google 是我的必備搜索。
6. Github
全球最大的「同性」開源交流社區,沒有賬號的趕緊注冊,在這有很多優秀的資源項目,各種大神。觀摩優秀代碼是我們學習的很好路徑。另外在開發過程中,很多時候任務重、時間緊,應該避免重復造輪子,這里能夠找到你需要的工具或代碼。
7. Stack Overflow
國外著名的技術問答交流社區,開發時碰到的很多問題在這里都能找到答案。
8. SegmentFault
對應的國內版的技術問答交流社區,如果你英文不好,也可以在這里找找答案。
9. Markdown
Markdown 輕量級標記語言,簡潔的語法,讓作者專注內容而非復雜的格式要求,我認為人人都應該掌握,特別是經常寫博客的人。想想你在用 world 時的場景,每次寫完文章之后,不得不話費很多時間進行格式的排版,使用它你就可以避免這些煩惱。
HTML 篇
一些準備就緒之后,開始我們的學習之旅,首先我們先從 HTML 開始。
HTML名為「超文本標記語言」,是整個頁面的結構基礎,它承載了我們的頁面內容。
1. 基礎
2. 進階
CSS 篇
HTML 承載了頁面的內容,但是有時候會略顯單調與「丑陋」,CSS 的作用就是為這些內容加上樣式,就像一個美女也要有漂亮的外衣去修飾才會更加漂亮,「人靠衣裝馬靠鞍」,網頁的內容也是需要穿上一件漂亮的外衣去吸引用戶。而 CSS 則完成了這個裝飾。
1. 基礎
2. 進階
書籍:
《CSS揭秘》(https://book.douban.com/subject/26745943/):非常推薦的一本 CSS 書籍,可以學到很多鮮為人知的技巧。
在線系列:
知識點:
JavaScript 篇
有了 HTML 與 CSS,網頁也就有了內容和樣式,但是會缺少與用戶的互動,所有的內容都靜靜的躺在那里死氣沉沉。就好比一個美女穿著漂亮的衣服在你面前一動不動好像也沒有什么吸引力,但如果又唱歌,又跳舞,還向你拋媚眼,那可真就把持不住了。JavaScript 就是給網頁添加這樣的「行為」。
Javascript 簡史(https://blog.csdn.net/qq_32135281/article/details/81667714):可以簡單了解下,JavaScript 發展由來。
1. 基礎
書籍
在線系列
除了書籍之外,也有很多優秀的在線教程,可以幫助我們更好的學習。
2. 進階
TypeScript篇
ES6 的超集擴展,嚴格的數據類型,帶來更好的維護,適合大型項目的開發工作,有人說它是未來的發展趨勢,你說要不要了解?
Jquery篇
雖說現在已經是單頁面應用時代,有React,Vue 這種強大的框架可以使用,但也不缺乏一些老的項目需要維護,而且在學習之初,可以用它做兩個簡單的應用還是不錯的,可以相對了解下基本用法,它可以讓你更好,更方便的操作DOM。但不建議再深度學習。
Ajax篇
掌握了的HTML、CSS、JavaScript時,這時候可以嘗試自己做一些項目了,而項目中肯定會有數據的交互,這時候就是 Ajax 的用武之地了。
NodeJS與模塊化
NodeJs 的出現讓前端發展進入了一個新的領域,并且滋生出專業的 Node 工程師,不僅如此 Node 在前端模塊化,工程化起到很重要的作用,所以了解是必須的,如果感興趣的可以深入學習,可以向全棧工程師發展。
框架篇
隨著日益復雜的用戶需求,與系統的復雜度上升,傳統的開發模式日漸的很難滿足,此時的三大框架孕育而生,讓開發者更加高效,可復用,把關注點都放在數據層的操作,免去那些繁瑣而又重復的視圖操作。
現在框架的能力已經是前端開發人員必備的技能之一也是趨勢,三大框架的「最終目的」都是一致的,我認為開發者不必糾結于到底應該選擇哪一個學習,可以選擇其中的兩個是最好的。對于剛入門的人來說,建議選擇 Vue 入手,比較簡單,靈活。
1. Angular
2. Vue
3. React
React我了解不多,所以就沒什么好推薦的了,大家可自行學習。
圖形可視化
隨著日益增長的數據,如何利用高效的利用數據,是每個企業都考慮的問題,而人的眼睛看到的東西要勝過閱讀的問題,俗話說「一圖勝千言」就是這個道理,所以數據的可視化就會格外的重要,以下都是我常看的一些技術,書籍,和關注的可視化開源庫。
工程化與版本控制篇
1. Git
版本控制工具,很多新手往往把 git 與 github 傻傻分不清楚,二者是不同的東西,一定要去區分清楚。
2. Gulp
自動化構建工具,項目打包部署前的壓縮合并,節省時間,提高開發效率。
3. Webpack
Webpack 是當下最熱門的前端資源模塊化管理和打包工具。它可以將許多松散的模塊按照依賴和規則打包成符合生產環境部署的前端資源。
4. Babel
JavaScript代碼編譯器,可以讓ES6及以上語法轉換成瀏覽器支持的語法,一般會在框架的腳手架中自行配置。
5. 代碼質量
瀏覽器與HTTP
性能優化
SEO
博客系列
1. 個人
現在是一個信息爆炸的時代,網上有很多優秀的博客文章,每個人的精力都是有限的,不可能關注到所有的博客,每個人關注點可能不太一樣,所以關注的個人博客也會不同,這些推薦幾個我比較常看的幾個高質量博客。而且是持續更新的。
2. 團隊
項目資源
常用工具
最后
以上是我這兩年多一路走來收藏的一些資料,整理這份資料也花了我好幾天的時間,希望能夠在自學的道路上幫到你。
再次聲明,我并不是什么大神,我自認為技術也沒有到達這個層級,但是我會一直堅持學下去,另外一定不要誤會這里面的知識我全部都會,這些都是我學習的一些資料想整理出來,免去小白的一些不知道如何查閱資料。
這里的資源可能并不適合每一個人,你也不一定全部都需要,只需要挑選自己想要的部分就行,任何事情并不是越多越好。
作者:六小登登,個人公眾號:六小登登(ID:liuxiaodengdeng)。目前在某創業公司任職前端開發工作,近 3 年前端開發經驗,愛技術、愛寫作、愛分享。
聲明:本文為作者投稿,版權歸其個人所有。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。