渐进式迭代教学法--PHP
漸進(jìn)式迭代教學(xué)法--PHP
目前常見的課程體系大致情況如下:
階段1:前端基礎(chǔ)(html+css+js)
階段2:PHP&MySQL基礎(chǔ) + 框架 (PHP基本語法,面向?qū)ο?#xff0c;mvc,sql基礎(chǔ),TP項(xiàng)目)
階段3:前端高級(JS語法,JS語言特性,ajax,JQ,Node,Vue )
階段4:微信
階段5:服務(wù)器部分 (linux基礎(chǔ),Git,Nginx,NoSQL,優(yōu)化及高可用集群,Laravel項(xiàng)目)
階段6:擴(kuò)展 (React,Docker,Swoole,爬蟲)
這樣的課程體系,最大的弊端就是課程關(guān)聯(lián)性太弱,同時課程的切入點(diǎn)不合適,讓人有一種盲人摸象的感覺;
首先明確,我們的課程是專業(yè)的 web 應(yīng)用編程課,以 PHP 這門編程語言為核心。
PHP 開發(fā)的最大特點(diǎn)就是 入門容易開發(fā)快,這也是PHP流行和得到廣泛應(yīng)用最重要的原因之一;
但是,入門容易和開發(fā)快是有前提的:
網(wǎng)絡(luò)通信是做web應(yīng)用開發(fā)的基石,所以,TCP/IP 必須知道,HTTP必須精通,一切都是基于請求和響應(yīng)的;
PHP在整個web應(yīng)用中最重要的就是邏輯處理,因此前臺頁面展示交由HTML,后臺的數(shù)據(jù)持久化交由mysql;網(wǎng)路服務(wù)器交由Nginx或者Apache;
所以,想要使用PHP完成一個完整且健壯的 web 應(yīng)用,關(guān)鍵在于客戶端發(fā)來了什么請求,服務(wù)器端如何處理并響應(yīng),這一點(diǎn)不明白,PHP語法學(xué)的在精通也是無濟(jì)于事;
而上面的課程就存在這樣的問題,前端基礎(chǔ)學(xué)完就會直接進(jìn)入到語言學(xué)習(xí)部分,根本沒有說明我學(xué)的PHP到底用在web應(yīng)用的那個環(huán)節(jié),起到怎樣的作用,為什么要學(xué)PHP 等問題;
而漸進(jìn)式迭代教學(xué)法就是為了解決這個問題的,他是一個課程體系的設(shè)計(jì)邏輯;
下面使用 漸進(jìn)式迭代教學(xué)法 對上面的課程做修改,并進(jìn)行說明:
階段1:前端基礎(chǔ) (html+css+js)
說明:進(jìn)入編程世界,使用HTML和CSS制作簡單的靜態(tài)頁面,配合JS做出一定的動態(tài)效果,提升成就感;
階段2:編程語言入門及網(wǎng)絡(luò)通信原理 (JS語言特性 + ajax + jq + Node + SQL基礎(chǔ) )
說明:使學(xué)生入門編程的第一語言由原來的 PHP 改為 JS ,因?yàn)樵贜ode中,我們可以進(jìn)行相對原始的網(wǎng)絡(luò)編程
自己實(shí)現(xiàn) HTTP 服務(wù)器的編寫,實(shí)現(xiàn)HTTP客戶端的編寫,在這個過程中 深刻感受請求及響應(yīng)的整個HTTP過程;
利用這個節(jié)點(diǎn),就能將網(wǎng)絡(luò)通信的原理講解清楚;
同時,在編程中出現(xiàn)的名詞也會更多的涉及,如:事件綁定及事件輪詢的原理,異步與同步的原理,阻塞與非阻塞,回調(diào)等;
還會涉及到基本的語言語法,解析引擎及編譯原理等;
這個階段結(jié)束,學(xué)生就會有能力完成一個具備基本增刪改查的web應(yīng)用,且對整個web應(yīng)用的環(huán)節(jié)無疑問;
而更重要的就是在這個過程中會形成web應(yīng)用編程的基本邏輯和編程思維的建立;
后面課程中的幾乎所有內(nèi)容,都已客戶端請求與響應(yīng)為基本邏輯,也同時都有了講解理由和依據(jù);
如:客戶端提交到服務(wù)器的數(shù)據(jù)需要永久保存 --> MySQL基礎(chǔ)講解;
掌握網(wǎng)絡(luò)通信基本原理,建立基本的web編程世界觀!!!
至此,第2輪迭代結(jié)束;
階段3:WAMP 環(huán)境下的Web應(yīng)用編程 (apache + PHP基本語法 + 面向?qū)ο?+ mvc + TP5項(xiàng)目)
說明:在上一階段涉及到的網(wǎng)絡(luò)通信中,需要自己寫HTTP服務(wù)器端代碼,需要自己接受并判斷請求,需要自己寫網(wǎng)絡(luò)響應(yīng)數(shù)據(jù),而這些都可以交給現(xiàn)成的服務(wù)器來做,而且做得更好;
因此我就不在需要考慮服務(wù)器的問題,重心就可以轉(zhuǎn)移到具體的業(yè)務(wù)邏輯中,而PHP就是擅長業(yè)務(wù)邏輯處理的編程語言,學(xué)起來容易,開發(fā)起來也快,這就是它最大的優(yōu)勢;
而如果面對普通中大型項(xiàng)目,我們則需要使用MVC進(jìn)行分工協(xié)作,而成熟的MVC框架,就國內(nèi)來說非TP莫屬;
最后使用TP加之前的html,CSS ,ajax與jq 完成一個完整的項(xiàng)目;
這一段的重要性就是對第二階段的迭代替換,使用 Apache 替換Node-http-server,使用PHP替換 JS 進(jìn)行網(wǎng)絡(luò)請求后的邏輯處理,使整個wamp環(huán)境的出現(xiàn)變得順理成章;
這個階段開始,才真正進(jìn)入到以PHP為核心的 web 應(yīng)用編程,也在這一階段凸顯出PHP的優(yōu)勢和學(xué)習(xí)PHP的理由;
至此,進(jìn)入PHP世界,明白PHP在整個Web應(yīng)用中的重要性和優(yōu)勢所在,帶著目標(biāo)和期許進(jìn)入學(xué)習(xí)周期;
同時,也能感受到編程語言僅僅是解決問題的工具,而PHP是哪個用起來最得心應(yīng)手的……
本階段結(jié)束,能夠通過對 js和PHP 兩種編程語言的學(xué)習(xí),更深的體會編譯原理和解析引擎的工作原理,對編程工程化有初步了解,對面向?qū)ο?、框架的使用、?shù)據(jù)類型等都有立體感受;
最后通過 TP 框架的項(xiàng)目串聯(lián)整個第2和第3階段的重要知識點(diǎn);
階段4:LAMP 環(huán)境下的WEB應(yīng)用編程 (linux基礎(chǔ),lamp環(huán)境的搭建,緩存及NoSQL工具,sql優(yōu)化及高可用集群,Docker虛擬化,WEB安全攻防基礎(chǔ))
說明:第三階段中,僅學(xué)會PHP語法結(jié)構(gòu)和框架,是不足以構(gòu)建一個完整的web應(yīng)用程序的,想要使PHP能夠承受成千上萬的大并發(fā)請求壓力,并且能夠抵御一般的黑客攻擊,使用WAMP環(huán)境是很難以支撐和實(shí)現(xiàn)的;
在此階段則引入Linux及各種工具,以配合PHP完成整個web應(yīng)用的架構(gòu);由 階段2和階段3 的單服務(wù)器架構(gòu)引入linux下的多服務(wù)器集群架構(gòu);
依然以整個HTTP請求與響應(yīng)為基本邏輯,提出在請求及響應(yīng)過程中的各種問題引出集群緩存等技術(shù)的必要性;
此階段結(jié)束,可以具備搭建大型WEB應(yīng)用的能力,掌握web開發(fā)的各個環(huán)節(jié),具備web開發(fā)的宏觀意識;
階段5:項(xiàng)目工程化(Git , Vue ,Laravel, 前后端分離項(xiàng)目)
說明:之前的階段全部為單人開發(fā),對于大型項(xiàng)目是不現(xiàn)實(shí)的,由此引入Git+Vue+Laravel技術(shù),使用代碼管理工具,前后端分離,前端及后端使用各自的工程化體系設(shè)計(jì),由單人開發(fā)進(jìn)入多人分工合作開發(fā);
將班級分為每3-5人組成的小組,合作開發(fā)項(xiàng)目并上線運(yùn)行;
配合前四個階段的內(nèi)容,做一個上線并運(yùn)行的項(xiàng)目并不難;
階段6:應(yīng)用技術(shù) (微信 爬蟲 swoole等)
說明:以PHP為中心,進(jìn)行相關(guān)技術(shù)擴(kuò)展;不再過多解釋;
總結(jié):
我創(chuàng)造的這套 漸進(jìn)式迭代教學(xué)法,其根本就是 由淺入深、由原理入實(shí)戰(zhàn)的教學(xué)方法,使整個課程前后連貫且有因果,不再產(chǎn)生類似盲人摸象的無助感,每一個階段的目的和目標(biāo)都是明確的,上一階段輔助下一階段,下一階段承接上一階段;每個階段都會用到上一階段的關(guān)鍵知識點(diǎn),而每個階段都會將上一階段的知識迭代升級,在這個迭代的過程中,不斷復(fù)習(xí)同時又會不斷深入;
這也是起名為 漸進(jìn)式迭代教學(xué)法 的原因;
同時,這樣的課程設(shè)計(jì)也在一定程度上緩解了大部分人 學(xué)完就忘 的現(xiàn)象,這是一個不斷迭代的過程,會及時復(fù)習(xí);
而在這樣的課程體系中,即使某些細(xì)節(jié)的知識點(diǎn)忘記了,也沒關(guān)系,比如在第4階段很可能就會忘記第2階段中具體NodeJS中的語法,而此時具體語法已經(jīng)不重要了,只要能在你腦海中留下關(guān)于使用NodeJS搭建HTTP服務(wù)器的原理知識就可以了;第二階段出現(xiàn)的目的就是打通整個網(wǎng)絡(luò)通信原理,不管以后是否還能使用NodeJS寫一個HTTP服務(wù)器,這都已經(jīng)不重要了,因?yàn)橐呀?jīng)有了Nginx等技術(shù)做支撐;
當(dāng)然,這個教學(xué)法有個最大的 Bug , 就是對老師要求比較高,每個階段的老師都必須明確自己所授課階段的目的性,同時還必須要具備承前啟后的技術(shù)能力,這一點(diǎn)尤為重要,所以備課壓力會相當(dāng)大,每個老師的備課底線就是兩個階段;
轉(zhuǎn)載于:https://www.cnblogs.com/yyuyu/p/10097193.html
總結(jié)
以上是生活随笔為你收集整理的渐进式迭代教学法--PHP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 焊接钛合金为什么不能用氮气
- 下一篇: 潜入java内存结构