本週在進行教程的複習,對一些知識點有了更深的體會php
由於下週就開始開發了,我覺的下週的技術問題可能會出現特別多html
因此這周對照着咱們的教程,整理了一下咱們開發的流程思路。c++
咱們的目標:一個開發團隊寫出的代碼,就像一我的寫的同樣!sql
分析一下咱們的項目須要什麼樣子的的對象數據庫
一個系統離不開數據庫、數據表,咱們須要先分析出系統須要的對象種類、以咱們學習的結構爲例,咱們要先分析出咱們的對象,對象包括教室、班級、學生、課程,找到英文名字一一對應好。bootstrap
開啓環境、創建數據庫、數據表等到作好框架
E-R圖中必須具備的東西:鍵值,咱們統稱爲id,建立時間,更新時間(何時加入更新時間),而後把他們繪製到一個圖像,在圖像當中標出相關的信息
把E-R圖作好以後,分析其中不一樣對象之間的對應關係,將多對多的關係拆分掉工具
這一部分咱們應該首先思考的是功能、而後把功能和頁面聯繫起來,咱們設計的系統的頁面都是和對象緊密聯繫的學習
這個過程單一思考的時候有種籠統、無從下手的感受,但咱們仍是要把他們結合起來思考,咱們在E-R圖中已經把咱們要寫的元素展現出來了,接下來考慮咱們須要是什麼樣的關係,咱們能夠逐個的入手討論。url
注意的是:一個動做對應一個action,這是我學習的時候一個誤區,關於跳轉的動做當時沒有理解清楚。
一個動做對應一個方法,而後創建出一個網狀結構,把所須要的action對應好。
(咱們從讓系統首先展現出來的頁面開始思考、index頁面須要展現出教師的首頁,因此應該是讀取、同時首頁中有編輯和刪除的兩個按鈕,咱們要在首頁當中的按鈕與C層的方法連接起來,按照這種思路,咱們把這些功能列出來)
教師對象:添加、編輯、刪除 班級對象:添加、編輯、刪除 學生對象:添加、編輯、刪除 班級課程對象:添加、讀取數據 課程對象:添加、編輯
有了這些咱們須要製做的功能以後,從每一個功能入手,分析功能會涉及到的對象,權限,功能方法,就像在學生對象中,咱們會涉及到直接調用課程對象的問題,把這些作成屬性添加到UML圖中去。而且把相關功能的註釋,以及方法的內容添加到UML圖當中。
完善UML圖,分析邏輯是否合理,而後開始寫代碼。
建立好了數據庫,咱們要在給相應的對象創建數據表,用管理工具能夠不須要sql語言創建,sql語言須要逐漸的學習,注意咱們的要求規範:
首先連接數據庫,按照教程中的方法,在咱們的php當中把相關的信息搭建好
先把咱們以前UML圖中涉及到對象模塊的
M層、C層、驗證的相關文件夾、文件
都創建起來,相關的文件名都寫好,文件的use內容弄好(也能夠在寫功能的時候完善,可是提早多寫一點總能避免一些問題吧),藉助UML圖把框架搭建完成。
咱們開始設計V層的html,先從首要的對象入手(如教師或者學生,因爲咱們是教師管理系統,登陸須要用教師的id,因此首先完成教師對象的設計)
在bootstrap裏面查找相應的模板,而後把他加入到V層
注意要多寫註釋。
把設計好須要顯示的數據、功能按鍵、把相關功能的url位置標註出來
注意一個動做對應一個action,而後把咱們須要寫的功能去完善,參照教程裏面的代碼,還有開發手冊裏的代碼進行添加功能。ThinkPHP裏有不少東西都是自動聯繫好的,要不斷的去參照教程去寫代碼。
能寫到M層裏的功能就不要放到C層
在這裏寫功能的時候,目前本身感受還不是很熟練,只有照着教程一步一步走了。
就像當初寫c++的實驗,做爲一個客戶把功能都驗證一遍,看本身的程序有什麼錯。
在完成功能的時候就應該不斷地調試,有些常見的問題咱們在以前的學習當中已經遇到過,可是相關的問題確定還會層出不窮,要有耐心。
按照教程中的方法開啓trace,看着控制檯,一步一步驗證。
把代碼按照教程中的方法定製成咱們須要的域名的格式
對象的方法完成而且調試結束以後,咱們也就有了對代碼的總體把握,如今開始重構代碼,咱們把教程中重構的方法用起來,給代碼進行愈來愈精簡的重構,而且團隊要儘可能把代碼的格式寫成一致。
下週就開始開發了,最近的事情好像一會兒多了起來,有團隊的任務,還有開學的考試,目前剩下的時間也就半個月左右了,努力抓時間幹吧。
天天至少有一半的時間和精力都花在了沒有意義的人和事上,而一年下來你卻感受毫無收穫。我想這就是一天很長,一年卻很短的緣由。本文做者:河北工業大學夢雲智開發團隊 溫宇航