前端開發(fā)乞巧,從草根到英雄(第一部分)

By @jonathanzwhite

版權申明:
此文章首發(fā)于公眾號程序員在深圳,搜索 studycode 即可關注
本文無需授權即可轉(zhuǎn)載姚炕,轉(zhuǎn)載時請務必注明作者

我還記得當我剛開始學習前端開發(fā)時摊欠,我被大量的技術文章淹沒,當時讓我非常困惑的是:我究竟需要學多少知識才算足夠柱宦,我甚至不知道從哪里開始些椒。

這篇指南會告訴你學習前端開發(fā)的方向,它會提供一些過去我在學習中遇到的非常有效的學習資源掸刊,并伴隨著我的一些注解免糕。

為了讓這篇指南更容易消化,我將它分成了兩部分,第一部分主要講HTML和CSS的開發(fā)接口石窑,第二部分主要講Javascript牌芋,框架,以及設計模式松逊,如果你對HTML和CSS很熟悉躺屁,你可以直接跳到第二部分,那里全都是Javascript经宏。

HTML和CSS基礎

在前端開發(fā)中犀暑,所有事物都以HTMLCSS開始,HTML和CSS控制了你在網(wǎng)頁上看到的內(nèi)容烁兰,HTML負責網(wǎng)頁內(nèi)容耐亏,而CSS負責樣式和布局。

From code to interface

開始前沪斟,讀一讀Mozilla開發(fā)網(wǎng)(MDN)上的HTMLCSS入門广辰,MDN將會講解HTML和CSS中重要的概念,另外主之,每章節(jié)僅僅只有一張紙那么長择吊,另外它還提供交互頁面的鏈接(CodePen和JSFiddle)幫助你學習。

完成這些入門教程后杀餐,可以學下CodeAcademy的課程Make a Website干发。完成這篇教程只需要幾個小時,它是使用HTML和CSS構建網(wǎng)站很好的入門教程史翘,如果你停不下來枉长,CodeAcademy還提供了另一個入門教程Building web forms,可以幫助你創(chuàng)建一個帶有樣式的表單琼讽。

如果想要做一些CSS的練習必峰,試試CSS Diner,它是一個有趣的CSS挑戰(zhàn)游戲钻蹬,另外一個重要的HTML和CSS概念是布局吼蚁,LearnLayout是一個教你如何使用HTML和CSS創(chuàng)建布局的交互式教程。

同樣的,要學會利用Google字體API使用Google字體的CSS技巧,Typography是一個排版組織(block of interfaces)坛悉,如果你有時間,我強烈建議你讀一讀這本免費的在線書籍Professional Web Typography旗国,作者是Donny Truong,你將學到作為前端工程師所需要了解的所有排版知識注整。

通過這些資源后能曾,不要擔心自己記不住度硝,而是將你的注意力集中在HTML和CSS在一起是如何工作的。

HTML和CSS基礎練習

目前你對HTML和CSS有了基本的認識寿冕,接下來我們玩點更有趣的蕊程。這一章節(jié)里,會有兩個實驗驼唱,它們會教你如何創(chuàng)建網(wǎng)站和界面藻茂。我用“實驗”這個詞的目的是:在實驗中,你從失敗中學到的東西將會和你從成功中學到的一樣多

實驗1

第一個試驗中玫恳,我們將學習使用CodePen捌治。CodePen是一個前端編輯網(wǎng)站,在那里纽窟,你無需本地保存文件,就可以寫HTML和CSS代碼兼吓。當你保存代碼的同時臂港,你便可以進行在線預覽。

CodePen是一個一石二鳥的工具视搏,一方面审孽,他可以幫助你練習HTML和CSS編程,另一方面浑娜,你創(chuàng)建了一個可以跟蹤你進步的文件夾佑力。我們還將使用Dribbble,這個網(wǎng)站充滿了設計靈感筋遭。

進入Dribbble網(wǎng)站打颤,選擇一些在幾個小時就可以完成的設計,我替你選了幾個幫助你開始:1漓滔,2编饺,345响驴,首先從移動頁面設計開始透且,因為我覺得它們比pc端頁面簡單,當然豁鲤,也不用擔心pc端頁面設計會很難秽誊。

當你開始動手時,嘗試在CodePen中寫代碼琳骡,如果你卡住了锅论,記住StackOverflow是你的朋友,另一種非常有價值的練習則是登錄像Medium日熬,AirBnBDropbox這樣的網(wǎng)站棍厌,使用Chome中的檢查工具查看這些頁面是如何實現(xiàn)不同的布局和樣式的肾胯。然后,仔細研究CodePen中的部分畫筆耘纱,同樣敬肚,我也挑選了幾個不錯的鏈接:

如果你的“復制品”看起來和“參照物”不太一樣,你也不必灰心束析,繼續(xù)做不同的設計練習艳馒,你會發(fā)現(xiàn)每次你都會進步。

如果你沒有任何設計背景员寇,說明你的設計之眼沒有被開發(fā)出來弄慰,一個擁有設計之眼的前端開發(fā)工程師能夠很容易分辨好的設計并有能力將其完美復制出來。前不久我寫了一篇關于如何開發(fā)設計之眼的文章蝶锋。

實驗2

希望第一個實驗能給你帶來一些HTML和CSS的信心陆爽。在第2個實驗中,我們將看一些網(wǎng)站扳缕,然后試圖實現(xiàn)它們的組件慌闭。

一些網(wǎng)站會使用CSS框架,或重命名它們的CSS類名躯舔,這樣的代碼讀起來非常困難驴剔,所以我挑選了一些源代碼很好讀的網(wǎng)站,這些網(wǎng)站擁有良好的設計粥庄。

同樣的丧失,第2個實驗的重點也不是重建整個頁面。選擇一些像導航條或hero段落這樣的關鍵組件去編碼惜互,對于做什么組件布讹,我已經(jīng)在網(wǎng)站列表右邊給出了建議。

你可以在CodePen中做這些實驗或者在本地操作载佳,如果你選擇將其存放在本地炒事,你可以選擇把這個例子工程作為模板下載下來,或者手動抓取這些文件蔫慧。我建議你使用AtomSublime編輯器

同時挠乳,請記住在任何頁面,你都可以看見它的HTML和CSS代碼姑躲,僅僅只需要右鍵頁面或頁面中的一個組件睡扬,點擊檢查,一個HTML在左黍析、CSS在右的面板便會彈出卖怜,一旦你完成了或卡住了,也可以使用檢查器對你的HTML和CSS進行對照阐枣。

HTML马靠、CSS最佳練習

到目前為止奄抽,我們學到了基本的HTML和CSS,下面我們將要進入最佳練習甩鳄,最佳練習指的是一些能幫助你提升代碼質(zhì)量的非常規(guī)規(guī)則逞度。

語義標記

如何寫語義標簽是HTML和CSS的最佳實踐之一,好的語義意味著使用合適的HTML標簽以及有意義的CSS類名妙啃,它們可以傳達結構的含義档泽。

例如,h1標簽標記的文字代表它們是很重要的標題揖赴,再如footer標簽馆匿,同樣告訴我們這部分元素屬于頁面的底部。更進一步燥滑,建議你讀一下A Look Into Proper HTML5 Semantics以及關于CSS技巧的文章:What Makes For a Semantic Class Name

CSS命名約定

另一個重要的最佳實踐則是CSS命名約定渐北,像語義標簽一樣,好的命名約定铭拧,會傳達出有意義的內(nèi)容腔稀、使我們的代碼具有可預見性、可讀以及可維護羽历。你可以讀一讀這篇文章,講的是不同的命名約定: OOCSS, ACSS, BEM, SMACSS: What are they? What should I use?

我還建議你嘗試使用簡單的命名約定以培養(yǎng)你對它們的直覺感受淡喜,因為隨著時間推移秕磷,你將探索出那些最適合你的工作方式。想知道Medium這類公司是如何利用BEM這一命名約定的炼团,可以讀下Medium's CSS is actually pretty f***ing good澎嚣。在那篇文章中,你將了解到創(chuàng)建一組高效的CSS語法是一個逐步迭代的過程瘟芝。

CSS重置

從邊緣到邊框易桃,瀏覽器具有較小的樣式不一致性。因此锌俱,請務必重置CSS晤郑。MeyerWeb是一個流行的重置工具。 如果你想更深入贸宏,你可以閱讀Create Your Own Simple Reset.css File

跨瀏覽器支持

跨瀏覽器支持意味著您的代碼需要支持最新的瀏覽器造寝。 某些CSS屬性(如轉(zhuǎn)換)需要供應商前綴才能在不同的瀏覽器中正常工作。 您可以在這篇本章中了解有關供應商前綴的更多信息吭练,CSS供應商前綴诫龙。 主要的代價是,您需要在多個瀏覽器(包括Chrome鲫咽,F(xiàn)irefox和Safari)上測試您的網(wǎng)站签赃。

CSS預處理器和后處理器

自從90年代引入CSS以來谷异,CSS已經(jīng)走了很長的路。 由于UI系統(tǒng)變得越來越復雜锦聊,人們想出了被稱為預處理器和后處理器的工具來管理復雜性歹嘹。

CSS預處理器是CSS語言擴展,增加了諸如變量括丁,多態(tài)和繼承的特性(bells和whistles)荞下。 兩個主要的CSS預處理器是SassLess。 在2016年史飞,Sass開始被更廣泛地使用尖昏。 Bootstrap,流行的響應式CSS框架构资,也從Less切換到Sass抽诉。 此外,當大多數(shù)人談論Sass時吐绵,他們實際上在談論SCSS迹淌。

CSS后處理器支持在CSS被預處理器手寫或編譯后仍可更改。 例如己单,一些后處理器(如PostCSS)具有自動添加瀏覽器供應商前綴的插件唉窃。

當你第一次發(fā)現(xiàn)CSS預處理器和后處理器,它是會引誘你無處不在的使用它們纹笼。 但是纹份,建議你從簡單開始,只有在必要時才添加擴展廷痘,例如變量和多態(tài)蔓涧。 我之前提到的文章——Medium’s CSS is actually pretty f***ing good——涵蓋了在涉及到預處理器時,使用多少才是合適的相關內(nèi)容笋额。

網(wǎng)格系統(tǒng)和響應式

網(wǎng)格系統(tǒng)幫助把CSS結構豎直的和水平的排列起來元暴。

像Bootstrap,Skeleton和Foundation這樣的網(wǎng)格框架提供了用于管理布局中的行和列的樣式表兄猩。 雖然網(wǎng)格框架很有用茉盏,但了解網(wǎng)格如何工作也很重要。 了解CSS網(wǎng)格系統(tǒng)不要對網(wǎng)絡想多了是重要的概述枢冤。

網(wǎng)格系統(tǒng)的主要目的之一是為您的網(wǎng)站增加響應能力援岩。 響應性意味著您的網(wǎng)站可以基于窗口寬度調(diào)整大小。多次響應是由CSS媒體查詢實現(xiàn)的掏导,CSS規(guī)則僅僅適應于特定的屏幕寬度享怀。

您可以在媒體查詢簡介中了解有關媒體查詢的詳情。 另外趟咆,因為我們已經(jīng)進入了移動互聯(lián)網(wǎng)時代添瓷,請查看Mobile-First Media Queries簡介梅屉。

練習HTML和CSS最佳實踐

現(xiàn)在你已經(jīng)武裝了最佳實踐的武器,我們可以用它來做一些"軍式演習"鳞贷,下兩個實驗的目標是練習寫干凈整潔的代碼坯汤,以及長期觀察最佳實踐對可維護性和可讀性的影響。

實驗3

第三個實驗是搀愧,挑選一個之前的實驗惰聂,并使用學到的最佳實踐方法來重構它,重構的意思是編輯你的代碼咱筛,讓它變得更容易讀和減少它的復雜性搓幌。

最為一個前端開發(fā)者,能夠有效的重構代碼是一項重要的能力迅箩。寫出高質(zhì)量代碼是一個不斷迭代的過程溉愁。這篇CSS架構:重構你的CSS很好的講述了如何開始重構你的代碼。

It’s not at all important to get it right the first time. It’s vitally important to get it right the last time.

當你在重構代碼時饲趋,你需要問自己幾個問題:

  • 你的類名是否模糊不清拐揭?在六個月后嗎,你還會記得這些類名的意思嗎奕塑?
  • 你的HTML和CSS具有語義嗎堂污?當你在此審視你的代碼時,你還能快速辨別結構和關系的意義嗎龄砰?
  • 你還在一遍遍的使用十六進制顏色編碼嗎敷鸦?難道使用Sass變量重構它們不會更能表達它們的意思嗎?
  • 你的代碼在Safari上是否和在Chrome上一樣好呢寝贡?
  • 你可以把你的布局代碼換成想Skeleton這樣的網(wǎng)格系統(tǒng)嗎?
  • 你經(jīng)常用!important標簽嗎值依?你如何解決這個問題圃泡?

實驗4

最后一個實驗將告訴你如何使用你學到的最佳實踐。 然而愿险,最佳實踐的效果往往不明顯颇蜡,直到您將它們應用到一個更大的項目。

對于最后一個實驗辆亏,建立自己的文件夾網(wǎng)站风秤。 作為前端,您的文件夾網(wǎng)站是您最重要的數(shù)字資產(chǎn)之一扮叨。文件夾是展示您的工作的網(wǎng)站缤弦。 更重要的是,這是一個持續(xù)的記錄彻磁,可以幫助你跟蹤你的進步和發(fā)展碍沐。所以即使你只有1或2件事可以展示狸捅,你也應該把它們放上去。

ShiftBrain Studio

在開始之前累提,先學習一下Adham Dannaway的文章尘喝,我的(簡單)工作流:設計開發(fā)一個文件夾網(wǎng)站

如果你的文件夾剛開始并不完美斋陪,也沒關系朽褪,隨著時間推移,文件夾會迭代无虚,最重要的是缔赠,你將使用你自己的技能來創(chuàng)造它。

保持更新

雖然HTML和CSS不會馬上過時骑科,但保持最新的技術視野是一件很重要的事情橡淑。

下面的網(wǎng)站,博客以及論壇列表很有意思咆爽,也很有價值:

The front-end landscape is constantly changing

從例子中學習

最后梁棠,最好的學習方式是從例子中學習, 這里有一套styleguides和代碼約定斗埂,將教你如何成為一個更有效的前端符糊。

Styleguides

Typography styleguide

Web Styleguides是可以在網(wǎng)站上重復使用的CSS組件和模式的集合。從這些Styleguides中要注意的關鍵是呛凶,基于HTML和CSS組件的復用, 如何讓你保持DRY原則男娄。

代碼約定

代碼約定被設計用來提高代碼的可讀性和可維護性。很多像CSS指南這樣的頁面是為了幫助你寫出更好的HTML和CSS代碼漾稀。另一些像Github內(nèi)部CSS工具和指南這樣的頁面提供了高質(zhì)量代碼的示例

圓滿

希望在本文結束時模闲,你已經(jīng)非常熟悉HTML和CSS了,并有一些項目在折騰了崭捍。 學習前端的最好方法是建立項目和實驗尸折。 記住,每個前端開發(fā)人員都必須從某處開始殷蛇。 從今天開始比明天更好实夹。

本文是兩部分系列的第一部分。第二篇文章介紹了使用Javascript和JavaScript庫/框架添加交互性粒梦。此外亮航,如果你想要我詳細說明任何事情或有任何問題,隨時留言或Tweet給我匀们。

原文:zero to front-end hero
作者:Jonathan Z. White 翻譯:jieniu

歡迎您掃一掃上面的微信公眾號缴淋,訂閱我的博客!
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市宴猾,隨后出現(xiàn)的幾起案子圆存,更是在濱河造成了極大的恐慌,老刑警劉巖仇哆,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沦辙,死亡現(xiàn)場離奇詭異,居然都是意外死亡讹剔,警方通過查閱死者的電腦和手機油讯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來延欠,“玉大人陌兑,你說我怎么就攤上這事∮缮樱” “怎么了兔综?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長狞玛。 經(jīng)常有香客問我软驰,道長,這世上最難降的妖魔是什么心肪? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任锭亏,我火速辦了婚禮,結果婚禮上硬鞍,老公的妹妹穿的比我還像新娘慧瘤。我一直安慰自己,他們只是感情好固该,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布锅减。 她就那樣靜靜地躺著,像睡著了一般伐坏。 火紅的嫁衣襯著肌膚如雪怔匣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天著淆,我揣著相機與錄音,去河邊找鬼拴疤。 笑死永部,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的呐矾。 我是一名探鬼主播苔埋,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜒犯!你這毒婦竟也來了组橄?” 一聲冷哼從身側(cè)響起荞膘,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎玉工,沒想到半個月后羽资,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡遵班,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年屠升,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狭郑。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡腹暖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出翰萨,到底是詐尸還是另有隱情脏答,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布亩鬼,位于F島的核電站殖告,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏辛孵。R本人自食惡果不足惜丛肮,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望魄缚。 院中可真熱鬧宝与,春花似錦、人聲如沸冶匹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嚼隘。三九已至诽里,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間飞蛹,已是汗流浹背谤狡。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留卧檐,地道東北人墓懂。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像霉囚,于是被迫代替她去往敵國和親捕仔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容