猛增 110K Star!年增加數最多的 10 大頂級前端學習資源項目!

你們好,我是大家的 貓哥,那個不喜歡吃魚、又不喜歡喵 的超級貓 ~javascript

關於貓哥,你們能夠看看個人年終總結 前端工程師的 2020 年終總結 - 乾坤未定,你我皆黑馬前端

今天給你們推薦 2020 年增加數最多的 10 大頂級前端學習資源項目!java

看完這 10 大頂級項目,你會發現原來 GitHub 上也有這麼多的 JavaScript 學習資源!node

1. javascript-algorithms

  • 2020 年增加 31.9K

該倉庫包含了多種基於 JavaScript 的算法與數據結構。git

每種算法和數據結構都有本身的 README,包含相關說明和連接,以便進一步閱讀 (還有 YouTube 視頻) 。程序員

數據結構包含了 鏈表、雙向鏈表、隊列、棧、哈希表(散列)、堆、優先隊列、字典樹、樹、優先隊列、二叉查找樹、AVL 樹、紅黑樹、線段樹、樹狀數組、圖、並查集、布隆過濾器github

算法包含了 算法主題 和 算法範式。web

其中算法主題又包含了:數學、集合、字符串、搜索、排序、鏈表、樹、圖、加密、機器學習。面試

算法範式:算法範式是一種通用方法,基於一類算法的設計。這是比算法更高的抽象,就像算法是比計算機程序更高的抽象。算法

算法範式包含了:BF 算法、貪心法、分治法、動態編程、回溯法、Branch & Bound 等等。

這項目還出了對應的教學視頻,總共 81 個視頻講解,每一個視頻大概 5 - 10分鐘左右,還能學習英語哦 😉

youtube 的教學視頻: https://www.youtube.com/playl...

貓哥以前學習算法的時候,也在這個項目中收益良多呢!

並且這個項目還一直有維護和更新內容哦!真的很是不錯的一個項目!

https://github.com/trekhleb/j...

更多算法相關的項目推薦能夠看看這篇文章:7 個 GitHub 上超火的前端學習的數據結構與算法項目

2. nodebestpractices

  • 2020 年增加 20.2K

Node.js 最佳實踐。

這個項目是對 Node.js 最佳實踐中排名最高的內容的總結和分享。

這裏是最大的聚集,且每週都在增加 - 當前,超過 50 個最佳實現,樣式指南,架構建議已經呈現。

目錄

  • 項目結構實踐 (5)
  • 異常處理實踐 (11)
  • 編碼規範實踐 (12)
  • 測試和整體質量實踐 (8)
  • 進入生產實踐 (16)
  • 新: 安全實踐(23)
  • Performance Practices (coming soon)

好比 錯誤處理最佳實踐 中 使用 Async-Await 和 promises 用於異步錯誤處理

TL;DR: 使用回調的方式處理異步錯誤多是致使災難的最快的方式(a.k.a the pyramid of doom)。對您的代碼來講,最好的禮物就是使用規範的 promise 庫或 async-await 來替代,這會使其像 try-catch 同樣更加簡潔,具備熟悉的代碼結構。

不然: Node.js 回調特性, function(err, response), 是致使不可維護代碼的一個必然的方式。究其緣由,是因爲混合了隨意的錯誤處理代碼,臃腫的內嵌,蹩腳的代碼模式。

https://github.com/goldbergyo...

3. You-Dont-Know-JS

  • 2020 年增加 18K

該項目爲 YDNJS(You Don’t Know JS) 圖書系列,包含一系列深刻探討 JavaScript 語言核心機制的書籍。

內容大綱

  • 入門與進階
  • 做用域與閉包
  • this 與對象原型
  • 類型與文法
  • 異步與性能
  • ES6 與將來
https://github.com/getify/You...

4. clean-code-javascript

  • 2020 年增加 15.1K

優秀的 JS 代碼規範。

好比:對相同類型的變量使用相同的關鍵字

Bad:

getUserInfo(); 
getClientData(); 
getCustomerRecord();

Good:

getUser();

再好比:使用可搜索的命名

在開發過程當中,咱們閱讀代碼的時間會遠遠超過編寫代碼的時間,所以保證代碼的可讀性與可搜索會很是重要。

切記,沒事不要坑本身。

Bad:

//525600到底啥意思?
for (var i = 0; i < 525600; i++) {
  runCronJob();
}

Good:

// 聲明爲全局變量
var MINUTES_IN_A_YEAR = 525600;
for (var i = 0; i < MINUTES_IN_A_YEAR; i++) {
  runCronJob();
}
https://github.com/ryanmcdermott/clean-code-javascript

5. 30-seconds-of-code

  • 2020 年增加 13.3K

該項目講的是知足你全部開發需求的簡短代碼段,裏面都是些常常會用到並且是很是經典的代碼,很是值得學習!

好比 JavaScript 模塊就分爲了 All、Array、Browser、Date、Function、Math、Node、Object、String 方便學習的。

好比:你必須知道的 4 種 JavaScript 數組方法

Array.prototype.map()

const arr = [1, 2, 3];
const double = x => x * 2;
arr.map(double); // [2, 4, 6]

Array.prototype.filter()

const arr = [1, 2, 3];
const isOdd = x => x % 2 === 1;
arr.filter(isOdd); // [1, 3]

Array.prototype.reduce()

const arr = [1, 2, 3];

const sum = (x, y) => x + y;
arr.reduce(sum, 0); // 6

const increment = (x, y) => [...x, x[x.length - 1] + y];
arr.reduce(increment, [0]); // [0, 1, 3, 6]

Array.prototype.find()

const arr = [1, 2, 3];
const isOdd = x => x % 2 === 1;
arr.find(isOdd); // 1

又好比:如何在 JavaScript 中實現睡眠功能?

同步版本

const sleepSync = (ms) => {
  const end = new Date().getTime() + ms;
  while (new Date().getTime() < end) { /* do nothing */ }
}

const printNums = () => {
  console.log(1);
  sleepSync(500);
  console.log(2);
  console.log(3);
};

printNums(); // Logs: 1, 2, 3 (2 and 3 log after 500ms)

異步版本

const sleep = (ms) =>
  new Promise(resolve => setTimeout(resolve, ms));

const printNums = async() => {
  console.log(1);
  await sleep(500);
  console.log(2);
  console.log(3);
};

printNums(); // Logs: 1, 2, 3 (2 and 3 log after 500ms)

其實上面講到的事例裏面還提供 api 和方法的講解的,方便讀者能看懂的,這裏就不寫出來了。

還想學更多的 經典 js 代碼片斷,請看下面的倉庫

https://github.com/30-seconds...

6. javascript

  • 2020 年增加 11.8K

這個項目是 JavaScript 編程風格指南。

包含了:類型、對象、數組、字符串、函數、屬性、變量、提高、比較運算符 & 等號、塊、註釋、空白、逗號、分號、類型轉化、命名規則、存取器、構造函數、事件、模塊、jQuery、ECMAScript 5 兼容性、測試、性能、資源、JavaScript 風格指南說明

https://github.com/airbnb/javascript

7. tech-interview-handbook

  • 2020 年增加 10.6K

技術人員求職面試,單刷leetcode上的大廠題庫可能還不夠。

簡歷怎麼寫才能吸引HR的眼光,可能會被技術老大問到哪些常見問題,拿到Offer以後怎樣才能讓本身的優點最大化而後優中選優?

面對這些赤果果的問題,目前就任於Facebook的新加坡小哥Yangshun Tay就整理了一份乾貨。

面試全流程須要注意的事項都在裏面了,包含從簡歷準備、面經和談判全過程,教你如何避雷不踩坑。

精心策劃的內容可幫助您得到下一次技術面試的機會,重點是算法。

除了常見的算法問題外,其餘出色的功能還包括:

  • 如何準備編碼面試
  • 面試備忘單-直截了當的注意事項
  • 按主題分類的算法技巧和最佳實踐問題
  • 「前端面試問題」答案
  • 頂尖科技公司的面試形式
  • 頂尖科技公司提出的行爲問題
  • 在面試結束時問您的面試官的好問題
  • 有用的簡歷提示,以使您的簡歷受到關注以及注意事項
https://github.com/yangshun/t...

8. freeCodeCamp

  • 2020 年增加 10.4K

FreeCodeCamp 是一個自由開源的學習編程的社區,致力於幫助人們利用零散時間學習編程。

它的使命是 Learn to code and help nonprofits(學習編程,去幫助那些非盈利組織)。

FCC 涵蓋 HTML五、CSS、React、JavaScript、Database 等課程,遊戲化程度很是高,學員能夠經過線上聊天室和線下社區活動(Coffee and Code)相互幫助。

目前覆蓋全球 160+ 個國家、1000+ 個城市,40W+ 開發者在平臺學習。

https://github.com/freeCodeCa...

9. Front-End-Checklist

  • 2020 年增加 9.2K

該項目是詳盡的關於前端開發的清單,它列出了將 HTML 頁面投入生產以前須要進行測試的全部元素。

它基於衆多前端開發人員的多年經驗,其中一部分整合自其餘的開源清單。

內容包含:

  • Head
  • HTML
  • Webfonts
  • CSS
  • Images
  • JavaScript
  • Security
  • Performance
  • Accessibility
  • SEO
https://github.com/thedaviddi...

10. vanillawebprojects

  • 2020 年增加 8.2K

新手上路最開始用的就是基礎的 HTML+CSS+JS 三件套,而在框架和庫愈來愈多的如今,更多的時候使用它們來提升效率是常見的選擇。

這個項目則是反過來,是使用老三件套實現的一些小項目合集,不論是爲了更好理解框架,仍是爲了驗證一下本身的知識水平,從新操刀老三件套都不失爲一個好選擇,要知道不論是什麼框架和庫,基礎都是由這三板斧搭建起來的。

https://github.com/bradtraver...

最後

不知不覺,原創文章已經寫到第 33 期了呢,幾乎每一篇都是貓哥精心挑選的優質開源項目,推送的每一篇文章裏面的項目幾乎都是對前端開發頗有幫助的。

原創不易,一篇優質的文章都是要肝幾個晚上才能肝出來的,花費不少時間、精力去篩選和寫推薦理由,大佬們看完文章後順手點個贊或者轉發吧,給貓哥一點鼓勵吧。

往期精文請看下方寶藏倉庫,請慎入!

https://github.com/FrontEndGitHub/FrontEndGitHub

平時如何發現好的開源項目,能夠看看這篇文章:GitHub 上能挖礦的神仙技巧 - 如何發現優秀開源項目

公衆號: 前端GitHub,專一於挖掘優秀的前端開源項目,抹平你的前端信息不對稱,致力於打造最優質的前端開源項目資源庫。

微信搜 「前端GitHub」,回覆 「電子書」 便可以得到上面 160 本前端精華書籍哦,貓哥 WX:CB834301747

往期精文

原創不易,給點鼓勵吧

相關文章
相關標籤/搜索