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