網(wǎng)站項(xiàng)目開發(fā)學(xué)習(xí)手冊

前言

這里筑夢師,是一名正在努力學(xué)習(xí)的iOS開發(fā)工程師,目前致力于全棧方向的學(xué)習(xí),希望可以和大家一起交流技術(shù),共同進(jìn)步,用簡書記錄下自己的學(xué)習(xí)歷程.

全棧開發(fā)自學(xué)筆記 已開源

本文閱讀建議
1.一定要辯證的看待本文.
2.本文僅代表個(gè)人片面觀點(diǎn),如有不同觀點(diǎn),還往及時(shí)指出.
3.本文主要是經(jīng)過網(wǎng)站項(xiàng)目的第一輪全方位學(xué)習(xí)以后,對網(wǎng)站項(xiàng)目的整體看法,并對個(gè)人的看法進(jìn)行總結(jié).
4.本文所表達(dá)觀點(diǎn)并不是最終觀點(diǎn),還會更新,因?yàn)楸救诉€在學(xué)習(xí)過程中,有什么遺漏或錯(cuò)誤還望各位指出.
5.本文當(dāng)中的網(wǎng)絡(luò)項(xiàng)目進(jìn)化史,會詳細(xì)的為你闡述當(dāng)前網(wǎng)站和之前的網(wǎng)站趨勢.讓你在進(jìn)行網(wǎng)站項(xiàng)目學(xué)習(xí)之前,擁有整體的概念去進(jìn)行學(xué)習(xí).
6.覺得哪里不妥請?jiān)谠u論留下建議~
7.覺得還行的話就點(diǎn)個(gè)小心心鼓勵(lì)下我吧~

目錄
1.網(wǎng)站項(xiàng)目概述
2.前端前景
3.網(wǎng)站項(xiàng)目進(jìn)化史
4.網(wǎng)站項(xiàng)目學(xué)習(xí)體系

網(wǎng)站項(xiàng)目概述

網(wǎng)站項(xiàng)目大致分為前端+后端開發(fā),學(xué)習(xí)網(wǎng)站項(xiàng)目的開發(fā)與建設(shè),不等同于任何一種單一語言的學(xué)習(xí),例如蘋果App開發(fā)其重心是圍繞著Objective-C語言進(jìn)行開發(fā),只有使用到了其他語言的框架或者第三方庫才會進(jìn)行學(xué)習(xí).

而網(wǎng)站項(xiàng)目開發(fā),需要進(jìn)行前端頁面代碼的編寫,后端服務(wù)器的架設(shè),服務(wù)器腳本語言的編寫等.

隨著互聯(lián)網(wǎng)時(shí)代的發(fā)展,目前的趨勢已經(jīng)是前后端分明,所以各位可以根據(jù)自己的想法選擇性學(xué)習(xí),不一定全都要精通,但一定要都了解,不然出了問題很難解決.

前端前景

  • 什么是前端?前端的發(fā)展流程
    • 前端的HTML到HTML5 等一些基礎(chǔ)知識,在這里推薦閱讀圖解HTTP和HeadFirst HTML & CSS書籍進(jìn)行了解.我將著重闡述重點(diǎn).
    • 14年因?yàn)榕嘤?xùn)機(jī)構(gòu)的興起,大量培訓(xùn)了iOS開發(fā)和安卓開發(fā).導(dǎo)致iOS開發(fā)這個(gè)行業(yè) 在短短兩年時(shí)間,從底部竄到頂部,再摔下來,17年4月,各大培訓(xùn)機(jī)構(gòu)決定停止對iOS和安卓開發(fā)的培訓(xùn),才使得18年的iOS和安卓行業(yè)漸漸回暖,暫居平穩(wěn).
    • 15年后半年,因?yàn)閕OS和安卓開發(fā)的集中培訓(xùn),大部分培訓(xùn)機(jī)構(gòu)轉(zhuǎn)戰(zhàn)HTML5前端開發(fā)的培訓(xùn).因?yàn)榧信嘤?xùn)導(dǎo)致H5也行情不穩(wěn).
    • 16年后半年,大數(shù)據(jù)行業(yè)的興起.
    • 17年的人工智能,機(jī)器學(xué)習(xí),增強(qiáng)現(xiàn)實(shí).
    • 那么為什么H5能在培訓(xùn)浪潮中依然堅(jiān)挺?
    • 這就要說說H5發(fā)展歷程上的重大事件
      • 剛開始火的原因便是因?yàn)楦锩缘腍TML5發(fā)布.
      • 初次出現(xiàn)在大眾面前便是Flash被HTML5和CSS3代替.
      • HTML5小游戲,見縫插針等.
      • 淘寶頁面的混合開發(fā)
      • 微信小程序 & 微信公眾號.
      • Node.js
      • 前端工程化 & 組件化 & 插件化
      • 其中兩次爆炸性的發(fā)展 無異于是 小程序的出現(xiàn),和Node.js的出現(xiàn).
    • 前端工程師 就由原來 最早的切圖工程師->網(wǎng)頁工程師->大前端工程師
    • 而大前端工程師的誕生 還是和移動端脫離不了關(guān)系.
    • 大前端工程師一般都要會 網(wǎng)頁開發(fā)+混合開發(fā)+移動端開發(fā)+小程序開發(fā)
    • Nodejs開發(fā)目前是一個(gè)拓展技能,但它絕對是大前端發(fā)展的趨勢.

網(wǎng)站項(xiàng)目進(jìn)化史

靜態(tài)網(wǎng)頁

剛開始學(xué)習(xí)網(wǎng)站項(xiàng)目時(shí),都會先從最基礎(chǔ)的HTML+CSS靜態(tài)網(wǎng)頁學(xué)起.

其針對方向?yàn)榱私馐裁词荋TML作為網(wǎng)頁結(jié)構(gòu)標(biāo)簽,CSS負(fù)責(zé)渲染網(wǎng)頁.


交互網(wǎng)頁

靜態(tài)網(wǎng)頁并不能滿足用戶需求,于是交互網(wǎng)頁因此誕生,為了減少服務(wù)器請求次數(shù),以及服務(wù)器負(fù)擔(dān),JavaScript誕生.

JavaScript根據(jù)用戶需求,執(zhí)行不同操作,其中不乏修改網(wǎng)頁結(jié)構(gòu)和渲染樣式的操作.

例如:注冊登錄時(shí),將不合理的請求通過JavaScript攔下來.


發(fā)布網(wǎng)頁

寫好了交互網(wǎng)頁,想讓別人訪問,便需要服務(wù)器進(jìn)行發(fā)布,服務(wù)器是屬于后端開發(fā)工程師掌握的,在大型公司里還會有運(yùn)維工程師,專門負(fù)責(zé)線上服務(wù)器的維護(hù).

通過服務(wù)器配置,將網(wǎng)頁發(fā)布到指定站點(diǎn),用戶訪問指定URL便可請求到你發(fā)布的網(wǎng)頁.


數(shù)據(jù)網(wǎng)頁

別人訪問了你的網(wǎng)頁,可你的網(wǎng)頁并沒有數(shù)據(jù).網(wǎng)頁數(shù)據(jù)不會憑空產(chǎn)生,沒有數(shù)據(jù)的網(wǎng)頁也就沒有靈魂,即便擁有了交互,也是沒有生命的.

數(shù)據(jù)庫是用來存放數(shù)據(jù)的,也是屬于后端開發(fā)工程師掌握的,通過服務(wù)器腳本語言,根據(jù)業(yè)務(wù)需求存儲或讀取數(shù)據(jù)庫中的數(shù)據(jù),分發(fā)給各個(gè)發(fā)送到服務(wù)器請求的客戶端.

客戶端、服務(wù)器惊豺、數(shù)據(jù)傳遞請閱讀圖解HTTP一書.

到這里大致就是一個(gè)基本的網(wǎng)站項(xiàng)目基本要擁有:靜態(tài)網(wǎng)頁/交互網(wǎng)頁、數(shù)據(jù)庫&數(shù)據(jù)、服務(wù)器、服務(wù)器腳本語言文件.


異步請求網(wǎng)頁

在異步請求網(wǎng)頁出現(xiàn)之前,每次每個(gè)發(fā)送的請求,都要返回整個(gè)網(wǎng)頁給客戶端,使得服務(wù)器壓力,以及數(shù)據(jù)傳遞量劇增.

為了解決這個(gè)問題Ajax誕生,Ajax是前端工程師需要掌握的必備技能.根據(jù)業(yè)務(wù)需求刷新部分網(wǎng)頁,例如:登錄注冊時(shí),輸入的用戶名已被注冊,可以直接提示出來,而不是跳轉(zhuǎn)到新的頁面彈出提示.


美觀的網(wǎng)頁

網(wǎng)站僅僅有了功能性是不行的還得有美觀性,不能所有的網(wǎng)站的風(fēng)格都一個(gè)樣子,所以jQuery眼俊、EasyUI等各種第三方封裝好的框架誕生.

jQuery、EasyUI有著大量的成熟的框架,可以直接使用,打造出美觀的網(wǎng)頁.是前端工程師必備的技能.


移動端網(wǎng)頁/響應(yīng)式布局

隨著安卓手機(jī)和蘋果手機(jī)的普及,僅僅開發(fā)電腦端網(wǎng)頁已經(jīng)不能滿足互聯(lián)網(wǎng)公司的需求,還需要開發(fā)移動端的網(wǎng)頁.

為了不讓移動端的網(wǎng)頁再寫一個(gè)項(xiàng)目的代碼,Bootstrap誕生,它是由推特公司開源出來的框架,用來開發(fā)既能在網(wǎng)頁端展示的網(wǎng)頁,也能在移動端完美顯示的網(wǎng)頁.

目前移動端網(wǎng)頁比較多的使用Vue.js進(jìn)行開發(fā),因?yàn)槠渥詭У拇蟛糠侄际翘O果端的控件效果.


小程序/公眾號開發(fā)

隨著微信的用戶量激增,以及其平臺的絕對地位,小程序的免安裝特性,小程序也隨之崛起.

很多中小型公司是不會專門開設(shè)"小程序開發(fā)工程師"的職位的,一般小程序開發(fā)都是由公司里的前端工程師來干.所以也是前端工程師需要掌握的.

目前還沒有接觸到這里,好像是要學(xué)習(xí)wxml和wxss的.


前后端分離網(wǎng)站項(xiàng)目

目前的網(wǎng)站項(xiàng)目趨勢,就是有后端開發(fā)工程師,開發(fā)網(wǎng)站API文檔,通過JSON進(jìn)行數(shù)據(jù)傳遞,前端工程師訪問指定接口,拿到數(shù)據(jù),刷新頁面.

其中前后端分離的項(xiàng)目,并不需要前端工程師會后端技能,但要求雙方都能良好的解決數(shù)據(jù)傳遞等問題.


工程化開發(fā)/Node.js

隨著前端行業(yè)的發(fā)展,JavaScript的發(fā)展,Nodejs誕生,JavaScript不再是只能寫客戶端的腳本語言,而是可以用來寫服務(wù)端語言,也是一個(gè)往全棧發(fā)展的趨勢.

目前沒有接觸工程化開發(fā),個(gè)人了解是有一些基于Nodejs開發(fā)的工程化工具,可以大幅度提升工作效率.更好的體現(xiàn)前后端分離.

其因?yàn)镹odejs的特性和優(yōu)點(diǎn),大大減少了前后端交流成本,用Nodejs直接開發(fā)一整個(gè)網(wǎng)站項(xiàng)目.

在學(xué)習(xí)Nodejs之前還要先學(xué)會ES2015、ES6褐澎、ES7,其都是JavaScript的標(biāo)準(zhǔn),不用頭疼,只是每個(gè)版本更新了更好更容易的寫法.


總結(jié)

就目前個(gè)人看法:目前前端的趨勢就是通過對一些基礎(chǔ)知識的學(xué)習(xí),漸漸向Nodejs靠攏,并圍繞Nodejs進(jìn)行優(yōu)雅的前端開發(fā).


網(wǎng)站項(xiàng)目學(xué)習(xí)體系

下面簡單闡述一下,自己對各個(gè)技能棧的理解.

HTML

  • HTML文檔
  • 結(jié)構(gòu)標(biāo)簽語言,用來描述整個(gè)網(wǎng)站的結(jié)構(gòu)
  • 其由各種不同 各種樣式的HTML標(biāo)簽

CSS

  • CSS負(fù)責(zé) 標(biāo)簽選擇器 和樣式渲染
  • 負(fù)責(zé)網(wǎng)頁的渲染.
  • 通過標(biāo)簽選擇器 選擇HTML標(biāo)簽 進(jìn)行樣式渲染.

JavaScript

  • 瀏覽器腳本語言,在瀏覽器運(yùn)行的腳本語言
  • 其負(fù)責(zé) 瀏覽器對象BOM和HTML文檔對象DOM 的修改
  • 以及 網(wǎng)頁的事件處理, 例如數(shù)據(jù)校驗(yàn), 登錄注冊,刷新,跳轉(zhuǎn)等.
  • BOM (瀏覽器對象)
    • 通過JS獲取瀏覽器對象,進(jìn)行一些內(nèi)定函數(shù)(方法)的執(zhí)行,例如 添加書簽,
  • DOM
    • 通過JS獲取HTML文檔對象 ,對網(wǎng)頁中一些不需要再顯示的模塊進(jìn)行刪除,或者增加 刷新 數(shù)據(jù).

HTTP協(xié)議

  • HTTP協(xié)議,讓你懂得一個(gè)網(wǎng)站項(xiàng)目的 數(shù)據(jù)是如何使用服務(wù)器進(jìn)行發(fā)布,傳遞,到每個(gè)客戶端進(jìn)行展示.
  • 其遵循的規(guī)則以及協(xié)議.
  • 一個(gè)網(wǎng)站的主要角色的職能:服務(wù)器 + 服務(wù)器腳本語言 + 數(shù)據(jù)庫 + 網(wǎng)頁/文件等.
  • 請求和響應(yīng)
  • 服務(wù)端和客戶端

Ajax

  • 異步請求
  • 其存在的意義是革命性的,可以使網(wǎng)頁局部刷新,而不用頻繁的傳遞整個(gè)頁面,可以根據(jù)網(wǎng)頁功能 業(yè)務(wù)需求,在任何位置 發(fā)送請求

jQuery

  • 高效的JavaScript
  • 基于JavaScript的框架.可以快速高效的執(zhí)行JavaScript所能執(zhí)行的DOM和BOM操作
  • 其還封裝了Ajax,可以更加方便的使用Ajax進(jìn)行異步請求

JSON

  • 目前流行的數(shù)據(jù)格式,可以描述復(fù)雜的對象類型,大型數(shù)據(jù)傳遞

JSONP

  • 常用于解決跨域獲取數(shù)據(jù)的問題,因?yàn)榉?wù)器不受同源策略的影響,故使用請求js的方式,進(jìn)行跨域請求.

Apache

  • 服務(wù)器
  • 其主要負(fù)責(zé) 站點(diǎn)配置,文件分發(fā),響應(yīng)請求.

PHP

  • 服務(wù)器腳本語言
  • 其主要負(fù)責(zé),處理請求, 返回指定的數(shù)據(jù),
  • 需要數(shù)據(jù)的進(jìn)行數(shù)據(jù)庫操作,從數(shù)據(jù)庫拿數(shù)據(jù),然后返回?cái)?shù)據(jù)

MySQL

  • 數(shù)據(jù)存儲
  • 開源免費(fèi)
  • 其可以滿足中小型公司,網(wǎng)絡(luò)項(xiàng)目的開發(fā).

API

  • 網(wǎng)站API文檔
  • 該文檔由后端開發(fā)工程師放出,上面羅列了你請求什么接口,他返回什么數(shù)據(jù).

RESTful API

  • 一種設(shè)計(jì)模式
  • 將數(shù)據(jù)的操作體現(xiàn)在API上,更能實(shí)現(xiàn)前后端分離,常用于移動端App的API設(shè)計(jì)上,和部分的網(wǎng)頁端API設(shè)計(jì).

路由

  • 目前沒有進(jìn)行系統(tǒng)學(xué)習(xí),后期更新這里.

ECMAScript 6

  • 其是下一代JavaScript的標(biāo)準(zhǔn)
  • 其實(shí)并不用恐懼,我一開始以為學(xué)習(xí)完JavaScript還要學(xué)ES6,好難受,其實(shí)是一個(gè)東西了.
  • 在會JavaScript(這里指ES5標(biāo)準(zhǔn))的基礎(chǔ)上,ES6增加了一些功能函數(shù)和簡寫形式函數(shù).可以使你的JavaScript更加高效.

JavaScript高級

  • 目前沒有進(jìn)行系統(tǒng)學(xué)習(xí),后期更新這里.

Node.js

  • 革命性的存在,其事件處理 I/O的性能等.
  • Nodejs使得JavaScript不再是一門只存在于瀏覽器的腳本語言,在Nodejs這兩年社區(qū)和開源插件的開發(fā),已經(jīng)可以成熟的擔(dān)任 前端工程化開發(fā),前端組件化開發(fā),進(jìn)行后臺服務(wù)器開發(fā).
  • 也可以將Node.js看成一個(gè)整體,其集成了各種框架插件以后,可以做很多事情
  • Express
    • 其依賴于Node.js環(huán)境

Vue.js

國內(nèi)開發(fā)的框架,非常流行的移動端網(wǎng)絡(luò)框架.

目前沒有進(jìn)行系統(tǒng)學(xué)習(xí),后期更新這里.

Angular.js

我知道它封裝了jQuery和Ajax.

目前沒有進(jìn)行系統(tǒng)學(xué)習(xí),后期更新這里.

React.js

Facebook開源的框架.

目前沒有進(jìn)行系統(tǒng)學(xué)習(xí),后期更新這里.


總結(jié)

目前還在根據(jù)自己學(xué)習(xí)的東西做一個(gè)小Demo,等到我學(xué)習(xí)到上面沒有提及的知識點(diǎn)以后,我會再更新的.

前端學(xué)習(xí)路漫漫,加油


結(jié)束語

如果您對這篇文章有什么意見或者建議,請?jiān)u論與我討論.
如果您覺得還不錯(cuò)的話~可以點(diǎn)個(gè)喜歡鼓勵(lì)我哦.
如果您想和我一起學(xué)習(xí),請毫不吝嗇的私信我吧~
介個(gè)是我的個(gè)人博客,歡迎參觀哦~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市伐蒋,隨后出現(xiàn)的幾起案子工三,更是在濱河造成了極大的恐慌,老刑警劉巖先鱼,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俭正,死亡現(xiàn)場離奇詭異,居然都是意外死亡焙畔,警方通過查閱死者的電腦和手機(jī)掸读,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宏多,“玉大人寺枉,你說我怎么就攤上這事”谅洌” “怎么了姥闪?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長砌烁。 經(jīng)常有香客問我筐喳,道長,這世上最難降的妖魔是什么函喉? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任避归,我火速辦了婚禮,結(jié)果婚禮上管呵,老公的妹妹穿的比我還像新娘梳毙。我一直安慰自己,他們只是感情好捐下,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布账锹。 她就那樣靜靜地躺著,像睡著了一般坷襟。 火紅的嫁衣襯著肌膚如雪奸柬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天婴程,我揣著相機(jī)與錄音廓奕,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛桌粉,可吹牛的內(nèi)容都是我干的蒸绩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼铃肯,長吁一口氣:“原來是場噩夢啊……” “哼患亿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起缘薛,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤窍育,失蹤者是張志新(化名)和其女友劉穎卡睦,沒想到半個(gè)月后宴胧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡表锻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年恕齐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞬逊。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡显歧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出确镊,到底是詐尸還是另有隱情士骤,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布蕾域,位于F島的核電站拷肌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏旨巷。R本人自食惡果不足惜巨缘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望采呐。 院中可真熱鬧若锁,春花似錦、人聲如沸斧吐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽煤率。三九已至口予,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間涕侈,已是汗流浹背沪停。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人木张。 一個(gè)月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓众辨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舷礼。 傳聞我的和親對象是個(gè)殘疾皇子鹃彻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355

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