如何從零開(kāi)始教女同學(xué)進(jìn)行PHP開(kāi)發(fā):寫(xiě)需求文檔
背景:遠(yuǎn)在北京的高中女同學(xué)讓我?guī)兔Ξ?dāng)她的實(shí)訓(xùn)“技術(shù)顧問(wèn)”,實(shí)訓(xùn)要求個(gè)人獨(dú)立開(kāi)發(fā)一個(gè)web項(xiàng)目,她選擇的開(kāi)發(fā)語(yǔ)言是php。其實(shí)我又當(dāng)了一次標(biāo)題黨,她雖然以前從來(lái)沒(méi)用過(guò)PHP,但是卻有一點(diǎn)點(diǎn)html、css、javascript基礎(chǔ)(據(jù)說(shuō)已經(jīng)忘光了),有用過(guò)C和java寫(xiě)過(guò)東西。
項(xiàng)目描述:
題目——資源預(yù)定管理系統(tǒng)
功能需求——
1. 針對(duì)企事業(yè)單位開(kāi)發(fā)一個(gè)資源預(yù)定管理系統(tǒng)
2. 針對(duì)不同類(lèi)別的資源,例如會(huì)議室、汽車(chē)、儀器設(shè)備等,向員工提供預(yù)約使用的功能
3. 員工登錄系統(tǒng)后,可以查看指定的資源當(dāng)前的預(yù)定情況,可以預(yù)定指定時(shí)間段內(nèi)空閑的資源。
4. 不同的資源需要根據(jù)情況設(shè)置不同開(kāi)放時(shí)間,例如每天的8:00到18:00,用于智能在開(kāi)發(fā)時(shí)間內(nèi)進(jìn)行預(yù)定
5. 不同的資源可以預(yù)定的最小時(shí)間單位是不同的,例如會(huì)議室按分鐘進(jìn)行預(yù)定,最短15分鐘,汽車(chē)按小時(shí)預(yù)定,最短2個(gè)小時(shí)。
6. 系統(tǒng)遵循先到先得的原則進(jìn)行預(yù)定。
7. 用戶(hù)預(yù)定后,尚未使用前可以取消,取消后,其它用戶(hù)可以繼續(xù)預(yù)定
第一步:寫(xiě)需求文檔
計(jì)算機(jī)專(zhuān)業(yè)的同學(xué)一般都上過(guò)軟件工程這門(mén)課,自然知道做需求的重要性。就算沒(méi)上過(guò),有過(guò)工作經(jīng)驗(yàn)的同志們也應(yīng)該看過(guò)別人寫(xiě)的需求文檔。如果把一個(gè)項(xiàng)目的完成比作造房子,那么需求就好比建筑設(shè)計(jì)圖,如果設(shè)計(jì)的不好,那么造出來(lái)的房子也不會(huì)好看。雖然軟件開(kāi)發(fā)比建筑有更大的靈活性(起碼房子不能動(dòng)不動(dòng)就回滾代碼,撤銷(xiāo)更改),但是需求要是做得不全面不嚴(yán)格,往往會(huì)極大地增加不必要的工作量和降低工作效率。
你想想,今天告訴你這樣一個(gè)需求,你代碼寫(xiě)了一半,過(guò)幾天告訴你需求改了,之前的代碼都沒(méi)用了,你什么感覺(jué)?雖然需求變更是常有的事,但是一旦需求發(fā)生失控,對(duì)項(xiàng)目的影響往往是災(zāi)難性的。
幸好妹子之前做桌面軟件課程設(shè)計(jì)的時(shí)候?qū)戇^(guò)需求文檔,不然要從頭開(kāi)始學(xué)怎么做需求還是一件蠻麻煩的事情。但如果剛?cè)腴T(mén)的童鞋嫌麻煩不做需求是大大的不妥,且不論進(jìn)入正式工作后要接觸更為嚴(yán)格嚴(yán)謹(jǐn)?shù)男枨笪臋n,哪怕只是應(yīng)付學(xué)校里的課程設(shè)計(jì),在軟件規(guī)模足夠大的情況下,做需求用一天的時(shí)間,起碼可以使開(kāi)發(fā)的時(shí)間縮短一個(gè)星期。
第二步:登錄頁(yè)面的舉例
妹子寫(xiě)需求文檔去了,那我也不能閑著。因?yàn)槲抑爸皇巧晕⒖催^(guò)php的相關(guān)資料,并沒(méi)有用過(guò)php寫(xiě)過(guò)一行代碼,為了走在妹子前面,必須要提前學(xué)習(xí)妹子要用的東西。由于這個(gè)課程設(shè)計(jì)的項(xiàng)目有登錄的功能,所以我打算用這個(gè)頁(yè)面作為介紹php的第一個(gè)例子,并且往后還會(huì)就登錄功能整個(gè)流程進(jìn)行更加詳盡的說(shuō)明。
首先,我們看一個(gè)最簡(jiǎn)單的html登錄頁(yè)面,上代碼!
- <html>
- <head>
- <meta charset="gbk">
- <title>用戶(hù)登錄界面</title>
- </head>
- <body>
- <form name="login" action="Controller.php" method="post" >
- <td class="tbl">用戶(hù)名:</td><td><input type="text" name="user_id"></td>
- <td class="tbl">密碼:</td><td><input type="text" name="user_password"></td>
- <td><input type="submit" value="登入系統(tǒng)"></td>
- </form>
- </body>
- </html>
為了讓大家不當(dāng)極致的伸手黨,我就不把頁(yè)面截圖上來(lái)了,大家自己復(fù)制代碼用瀏覽器看看效果。為什么我要給妹子寫(xiě)這幾行代碼呢?主要是想讓妹子重新熟悉一下html代碼長(zhǎng)什么樣子,而且是為了下面讓妹子知道php與html為什么混合在一起做鋪墊。過(guò)了這么一會(huì)兒,大家應(yīng)該已經(jīng)看過(guò)上面那些代碼的顯示效果了吧。既然這樣,請(qǐng)看下面加入php后的代碼:
- <?php //php代碼部分開(kāi)始
- echo "<html>";
- echo "<head>";
- echo "<meta charset=\"gbk\">";
- echo "<title>用戶(hù)登錄界面</title>";
- ?><!-- php代碼部分結(jié)束-->
- </head>
- <body>
- <form name="login" action="Controller.php" method="post" >
- <td class="tbl">用戶(hù)名:</td><td><input type="text" name="user_id"></td>
- <td class="tbl">密碼:</td><td><input type="text" name="user_password"></td>
- <?php
- echo "<td><input type=\"submit\" value=\"登入系統(tǒng)\"></td>"
- ?>
- </form>
- </body>
- </html>
這段代碼主要讓妹子了解這么幾點(diǎn):(1)php代碼要用<?php ?>標(biāo)簽進(jìn)行標(biāo)識(shí)(2)如何使用echo語(yǔ)句進(jìn)行輸出html代碼,另外關(guān)于要用對(duì)""中的"(雙引號(hào))用\(轉(zhuǎn)義符)進(jìn)行轉(zhuǎn)義。(3)php代碼是如何跟html代碼進(jìn)行混合的。
PS:完事開(kāi)頭難,第一篇文章就先寫(xiě)這么多。起點(diǎn)定的太高反而不好,容易把初學(xué)者搞迷糊了。多看作為例子的代碼,自己動(dòng)手改一改,寫(xiě)一寫(xiě),感受一下。
原文鏈接:http://www.cnblogs.com/levenyes/archive/2013/09/04/3299146.html