前端工程師是怎麼練成的

来源:http://www.cnblogs.com/cqhaibin/archive/2016/12/26/6221159.html
-Advertisement-
Play Games

本人Sam。啟蒙微軟派,遁入前端教。已修煉後端技能、領域驅動設計、前端技能等近八餘載。擅長C#,領域驅動設計,必殺技為Javascript、Css。為領域驅動設計在前端教的應用而奮鬥。現將自我領悟的前端教技能秘笈總結如下: 上圖咯: 內功心法 前端教的三大內功秘笈:Html、Css、Javascri ...


     本人Sam。啟蒙微軟派,遁入前端教。已修煉後端技能、領域驅動設計、前端技能等近八餘載。擅長C#,領域驅動設計,必殺技為Javascript、Css。為領域驅動設計在前端教的應用而奮鬥。現將自我領悟的前端教技能秘笈總結如下:

上圖咯:

內功心法

前端教的三大內功秘笈:Html、Css、Javascript。你必須要掌握的程度

  • html:他是Css和Javascript秘笈的根本,沒有他Css和Javascript就無法施展其魅力。他包含了標簽語義、BFC和IFC標簽、h5新功能(如:cnavas、video、websocket、localstorage等)等。
  • css:他有靜態裝飾html元素能力,css3的出現也讓他做了一Javascript的事件。你需要區分css2.1與css3的差異。

     在css2.1的領域中display(改變元素的BFC和IFC的能力)、float(讓元素浮動)、position(定位)、z-index(層級)、vertical-algin(垂直對齊)、Margin和Padding等很重要。而在css3的領域更加完善了background、transition(過渡)、animation(動畫)、linear-gradient(漸變)、shadow(陰影)、flex佈局、媒體查詢的支持、多設備適配的單位等,這些你都需要掌握。

  • javascript:他是三大秘笈中最難,也是最致命的技能,什麼怪都能打。

     es5存在了很多年,es6火得很快,es7又來了。es5雖然很古老,他也是一切罪惡的根源,es6與es7都是為es5解決一些複雜場景應用的問題。在es5領域中的閉包、this指向、自執行函數、執行上下文、Js與Dom的關係等很重要,在es6的領域中,Class、let、Promise、Generator等太多東西,這些你都需要深入理解和掌握。

下山

完成上述內功心法的修煉,我們就可以進入下一個階段,下山打怪。

       在這裡我們需要解決掉一個css框架、一個javascript框架,css框架推薦選擇當下流行的bootstrap,他是集合了所有怪物的特點於一身。javascript框架推薦選擇框架老祖JQuery,雖然現在都MV*了,但是JQuery的江湖地位還是首屈一指的。對於這兩個框架我們需要深入理解他的源碼,並對每一個值得學習的細節做好筆記。

  • boostratp要學習他對css應用場景的分類,如:字體、按鈕、表單等,更要掌握他利用樣式疊加實現各種效果的組合技能。
  • JQuery要學習他的Promise(Es6會原生實現)、Extend方法,鏈式調用、callback、css相關Hack的處理手段等

製造怪物

     在製造怪物之前,我們還需要瞭解當下流行的MV*框架,他是未來處理前端項目的首先,在這裡我們思想要有所改變,要時刻記住只有viewModel才能驅動view的改變,以及Flux概念的理解和應用。

  • 選擇一個MV*框架深入學習,如:Vue,React,AnglerJs等。
  • 學習Nodejs做為前端開發工具的應用
  • 學習一門戶後端語言,推薦nodejs。可以做到一份代碼多端運行,也就是同構方案
  • 前端自動化工具的使用,如karma,eslint,webpack,phantomJs,selenim webdirver等 完成上述技能後,就可以選擇一個業務領域進行自己框架的開發了。

修煉成仙

  完成前三步已經是江湖高手了,在這裡主要是把我們渡為神,如下就是神所需要具體的能力

  • 對瀏覽器解析原理的深入理解,瞭解各瀏覽器內核,如:webkit,Gecko等,折騰源碼建議選擇webkit相關的。
  • Javascript解析原理的深入理解,首先V8引擎
  • 建議選擇chrome開源版本的chromium學習和應用

     此文為本人轉型前端兩年來的自我實踐總結,如有偏頗歡迎指正。也許我們會在某個階段停留很久,但不要氣餒,相信自己一定會突破難關。為自己,更為同樣身在泥潭中的戰友,共勉


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在HTML中,表單是由<form>元素來組成的。在js中,表單對應的則是HTMLFormElement類型。它和其他HTML元素一樣具有相同的預設屬性。下麵是HTMLFormElement獨有的屬性和方法: acceptCharset:伺服器能夠處理的字元集,等價於HTML的accept-chars ...
  • 首先要明白什麼是模糊查詢(廢話又來了),就是根據關鍵字把列表中符合關鍵字的一項或某項羅列出來,也就是要檢查列表的每一項中是否含有關鍵字,因此抽象一下就是一個字元串中是否含有某個字元或者字元串。 以下例子沒有接觸到後臺數據的知識,只是查詢當前表格中每一行所包含的關鍵字。 用到的方法為:string.i ...
  • 通常情況下,在Node.js中我們可以通過underscore的extend或者lodash的merge來合併兩個對象,但是對於像下麵這種複雜的對象,要如何來應對呢? 例如我有以下兩個object: 希望合併之後的結果輸出成下麵這樣: 通過underscore或者lodash現有的方法我們無法實現上 ...
  • 原文鏈接: https://github.com/AlloyTeam/AlloyTouch/wiki/Powerful transformjs 寫在前面 上星期在React微信群里,有小伙伴覺得transformjs直接給DOM添加屬性太激進,不可取(由於不在那個微信群,不明白為什麼React會談到 ...
  • 五、目錄篇 一、HTML部分1、瀏覽器頁面有哪三層構成,分別是什麼,作用是什麼?2、HTML5的優點與缺點?3、Doctype作用? 嚴格模式與混雜模式如何區分?它們有何意義?4、HTML5有哪些新特性、移除了哪些元素?5、你做的網頁在哪些流覽器測試過,這些瀏覽器的內核分別是什麼?6、每個HTML文... ...
  • soChange一款多很經典的幻燈片的jQuery插件。 實例預覽 引入文件 <link rel="stylesheet" type="text/css" media="all" href="style.css" /> <script type="text/javascript" src="jque ...
  • 一、this 在JavaScript中this表示:誰調用它,this就是誰。 JavaScript是由對象組成的,一切皆為對象,萬物皆為對象。this是一個動態的對象,根據調用的對象不同而發生變化,當然也可以使用call、apply修改this指向的對象。它代表函數運行時,自動生成的一個內部對象, ...
  • 一、游標 新增加not-allowed游標,不允許訪問 隱藏游標,在觸模應用上很有用,css2.1需要一個透明的圖片來實現,而css3直接用cursor:none即可。 完整代碼: 二、擴大熱區 應用在小按鈕的情況下,不好被滑鼠點擊到 代碼如下: 三、自定義覆選框 系統自帶覆選框美化 利用css3提 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...