2019年Web開發(fā)與全站工程師技術指南和趨勢

這是一個2019年你成為前端,后端或全棧開發(fā)者的進階指南:
- 你不需要學習所有的技術成為一個web開發(fā)者
- 這個指南只是通過簡單分類列出了技術選項
- 我將從我的經(jīng)驗和參考中給出建議
- 首選我們會介紹通用的知識, 最后介紹2019年的Web的一些趨勢
1. 基礎前端開發(fā)者
1.1 HTML & CSS
最基礎的知識:
- 語義化的HTML元素
- 基礎的CSS語法
- Flexbox & Grid
- CSS變量
- 瀏覽器開發(fā)者工具
1.2 響應式布局
響應式設計將不再是網(wǎng)頁的加分項, 而是必須的
- 設置viewport
- 非固定寬度
- 媒體查詢
- 使用
rem
替代px
- 移動優(yōu)先,柱狀顯示
1.3 基礎的部署工作
學會如何部署一個靜態(tài)網(wǎng)站到服務器
- 注冊一個域名(NameCheap, Google Domains)
- 管理共享主機或虛擬機(Inmotion, Hostgator, Bluehost)
- FTP, SFTP 文件上傳(Filezilla, Cyberduck)
- 靜態(tài)頁面托管(Netlify, Github Pages)
1.4 SASS預處理器
雖然不是必須的, 但是推薦去學, 基礎知識的掌握很簡單
- 結構化CSS
- 變量
- 嵌套樣式表
- Minxins & 函數(shù)
- 繼承
1.5 原生JavaScript語法
不使用任何框架和庫區(qū)學習原生的JS語法
- 數(shù)據(jù)類型, 函數(shù), 條件判斷, 循環(huán), 湊總府
- DOM操作和事件
- JSON
- Fetch
- ES6+(箭頭函數(shù), Promise, async/await, 解構)
1.6 滿足了基本的前端開發(fā)者的條件
- 構建靜態(tài)站點
- 構建UI布局(拿到設計圖能夠使用HTML/CSS還原)
- 添加一些交互功能
- 部署和維護網(wǎng)站
現(xiàn)在能找到最低水平的Web開發(fā)工作, 但是這是遠遠不夠的....
2. 一個成熟的前端開發(fā)者
2.1 HTML & CSS框架
HTML/CSS框架目前沒有以前那么有意義, 但是我還是介意你選擇一個學習(這里作者想隱射的應該是, 在jquery時代, HTML/CSS框架的學習是必須的).
- BootStrap
- Materialize
- Bulma
2.2 Git和其他工作流工具
Git絕對是每一個Web開發(fā)者必須掌握的工具, 這里也有一些其他的工作流工具的建議.,
- 基礎的命令行(
touch
,cd
,mkdir
什么的總得會, 命令行在下面的工具中都會用到) - Git(版本控制)
- NPM 或 Yarn(包管理)
- Webpack 或者 Parcel(打包工具)
- Gulp 或者 Grunt(任務管理和構建工具)
- 編輯器插件(ESLint, Prettier, Live Server等)
2.3 前端框架
學習一個前端框架在目前前端開發(fā)中是必須的.
- 在大公司開發(fā)中非常流行
- 更多的交互 & 有趣的UI組件
- 組件化 & 模塊化前端代碼
- 對團隊有利
2.4 狀態(tài)管理
對于使用框架的大型前端項目, 你也許需要使用狀態(tài)管理工具去管理你的應用級的狀態(tài)
- Redux(Context API)
- Apollo(GraphQL Client)
- Vuex
- NgRx
2.5 滿足一個成熟的前端開發(fā)者條件
- 構建一個優(yōu)秀的前端應用
- 流暢和穩(wěn)定的前端工作流
- 多人開發(fā) & 熟練使用Git
- 請求后端API & 前端數(shù)據(jù)響應
滿足以上條件, 你能夠順利的找到一個前端的工作并干得很出色~
3 全棧開發(fā)工程師
3.1 學習一門后端語言
成為一個全棧工程師或軟件工程師, 你將需要學習一個服務端語言和相關技術
- Node.js
- Python
- PHP
- C#
- Go
學習的順序:
- 基礎的后端語言語法
- 數(shù)據(jù)結構和工作流
- 包管理
- HTTP/路由
3.2 服務端框架
不要重復造輪子, 學習一門框架去構建更好和更快的應用
- Node.js(Express, Koa, Adonis)
- Python(Django, Flask)
- PHP(Laravel, Symfony)
- C# (ASP.NET)
3.3 數(shù)據(jù)庫
絕大多數(shù)覺得應用都會使用到數(shù)據(jù)庫, 這里有一些選擇:
- 關系型數(shù)據(jù)庫(MySQL, PostgreSQL, MS SQL)
- 非關系型數(shù)據(jù)庫 (MongoDB, Counchbase)
- 云服務 (Firebase, AWS, Azure, DocumentDB)
- 輕量級(SQLite, NeDB, Redis)
3.4 服務端渲染
像React, Vue 和 Angular等端架都可以進行服務端渲染
- Next.js(React)
- Nuxt(Vue)
- Angular Universal(Angular)
3.5 內(nèi)容管理系統(tǒng)
內(nèi)容管理系統(tǒng)允許快速開發(fā)并為您的客戶提供更新內(nèi)容的能力. 在你需要快速開發(fā)網(wǎng)站的時候, 它們是很適合的. 特別是對于自由開發(fā)者.
- 基于PHP的 (Wordpress, Drupal)
- 基于JS的 (Ghost, Keystone)
- 基于Python的 (Mezzazine)
- 基于.Net的 (Piranha, Orchard CMS)
3.6 DevOps 和部署
學習語言和框架是一回事, 但是安裝環(huán)境, 測試和部署有事另外一回事
- 部署 (Linux, SSH, Git, Nginx, Apache)
- 平臺 (Digital Ocean, AWS, Heroku, Azure)
- 可視化(Docker, Vagrant)
- 測試 (單元測試, 集成測試, 函數(shù)式測試, 系統(tǒng)測試)
3.7 滿足全棧工程師的條件
- 設置全棧的開發(fā)環(huán)境和工作流
- 構建后端服務API和微服務
- 數(shù)據(jù)庫操作
- 能夠獨立開發(fā)應用(前端和服務端)
- 部署到云端(SSH, Git, Servers等等)
4. 2019技術趨勢和其他
4.1原生應用開發(fā)
- React Native(使用React構建原生應用)
- NativeScirpt(Angular, Typescript, JavaScript)
- Ionic (HTML/CSS/JS 實現(xiàn)混合應用)
- Flutter (使用Dart語言開發(fā)原生應用的移動端SDK)
- Xamarin (使用C#開發(fā)的移動端應用)
4.2 使用Electron開發(fā)桌面應用
Electron是一個使用JavaScript構建跨平臺的桌面應用工具.
- 使用到了 Chromium內(nèi)核和Node.js
- 兼容Windows, Mac & Linux
- 崩潰報告, 調(diào)試和性能分析
4.3 GraphQL & Apollo
GraphQl是對于API的一種革命性新方法,查詢語言比標準RESET嚴格得多
- 只查詢你想要的東西
- 前端和后端可以合作得更為順利
- 查詢語句非常簡單且很像JSON語句
- Apollo是一個發(fā)送請求到GraphQL的客戶端
- 使用的是Gatsby靜態(tài)站點生成器
4.4 TypeScript
TypeScript是一個JavaScript的超集, 它添加了靜態(tài)類型等很多特性.
- 變量, 函數(shù)等類型
- 類
- 其他ES6的特性
- 在Angular中被使用到, 同時也可以在React和Vue中被使用
4.5 無服務架構
無需創(chuàng)建和管理自己的服務器
- 使用第三服務執(zhí)行“無服務器功能”
- 例如 AWS, Netify & Firebase
- 在Gatsby靜態(tài)站點生成器很流行
- 無服務框架
4.6 AI和機器學習
AI和機器學習已經(jīng)被廣泛應用在所有的程序和技術中, 甚至包括web開發(fā)中.
- 機器學習可以允許Web應用程序隨時間進行調(diào)整
- 雖然AI還有很長的路要走, 但是我們會看到它會更多的用在web中
- 雖然目前絕大多數(shù)都是Python寫的, 但也有Tensorflow.js和Brain.js這些JS的庫
4.7 區(qū)塊鏈技術
現(xiàn)在許多公司使用區(qū)塊鏈技術進行數(shù)字交易, 因為它們更安全和有效率.
- Solidity(一門智能合約的編程語言)
- Mist(以太坊開發(fā)的瀏覽器, 用于發(fā)送交易和合約)
- 比特幣API(可以構建app和整和比特幣的區(qū)塊鏈開發(fā))
4.8 PWA
Progressive Web Apps是一個web app但是在功能和樣式上給用戶帶來原生應用使用體驗的一項技術.
- 響應式
- 在離線環(huán)境下也能夠提供服務
- 類似App的交互
- HTTPS
- 可靠, 迅速, 更好
4.9 Web Assembly
類似匯編的二進制格式的代碼可以被瀏覽器執(zhí)行. 可以使用類似C/c++和Rust等高級語言進行編寫.
- 比JavaScript執(zhí)行效率快
- 更安全 - 強制的瀏覽器同源和安全協(xié)議
- 開放 & 可調(diào)試
相關文章
- 這篇文章主要介紹了Python可以從事的工作/就業(yè)崗位,結合目前市場行情總結分析了學習Python可以從事的各種常見工作與相應的薪資待遇,需要的朋友可以參考下2019-07-01
- 這篇文章主要介紹了2019年IT行業(yè)就業(yè)形勢報告,通過大量數(shù)據(jù)形式分析了2019年IT熱門職位的相關技能需求與就業(yè)前景,需要的朋友可以參考下2019-06-28
- 很多同學在學Java前,常常問,學Java前景好么?能不能找到工作啊?學Java的人那么多,Java的就業(yè)形勢怎樣啊?下面小編就一起跟大家來探討一下2019-06-26
- Python作為人工智能和數(shù)據(jù)分析第一語言,使得Python程序員成了當前人才市場的“搶手貨”,工資待遇也水漲船高。下面就來為大家介紹一下Python的前景怎么樣?就業(yè)薪資高嗎2019-06-26
還在苦惱學python不知道方向,你還不看嗎?未來python就業(yè)的幾種方向
隨著人工智能的出現(xiàn),Python語言的熱度越來越高,因為Python語言簡單,沒有學計算機語言的0基礎的,學起來快,本文就來介紹一下未來python就業(yè)的幾種方向,感興趣的就跟隨2019-04-23Python的就業(yè)薪資具體多少?發(fā)展前景到底如何?
Python是一門面向?qū)ο蟮木幊陶Z言,編譯速度超快,從誕生到現(xiàn)在已經(jīng)20來個年頭了。Python的排名從去年開始就借助人工智能持續(xù)上升,那么Python的就業(yè)薪資具體多少?發(fā)展前景2019-04-10- 在本篇文章中我們給大家整理了關于Python程序員就業(yè)行情以及前景分析的相關內(nèi)容,如果你是一個python程序員可以看一下,對你的就業(yè)有好處。2019-04-09
2019年Python趨勢解析!(程序員轉(zhuǎn)型需知)
這篇文章主要為大家介紹了近幾年Python的發(fā)展趨勢,結合大量數(shù)據(jù)分析了2019年Python的發(fā)展情況與未來前景,并給程序員轉(zhuǎn)型提供了若干意見,需要的朋友可以參考下2019-06-26