第一篇:PHP程序設(shè)計--項目報告
《PHP程序設(shè)計》課程
項 目 報 告
專業(yè)班級: 學(xué)
號: 姓
名:
日
期:
****年**月**日
項目名稱
(參考提綱如下,整體要求是篇幅8頁-12頁,不要超過12頁)
1.項目需求
(描述要實現(xiàn)的功能)
2.項目設(shè)計
(分點描述清楚項目架構(gòu))(1)整體流程圖
(2)功能模塊及其對應(yīng)頁面
(3)代碼類及其相互關(guān)系
(4)數(shù)據(jù)庫設(shè)計
3.關(guān)鍵代碼解釋
(把業(yè)務(wù)處理或數(shù)據(jù)傳遞等,比較關(guān)鍵的代碼進(jìn)行解釋,逐行說明該代碼是干什么的)例如
(1)數(shù)據(jù)庫連接,SQL執(zhí)行(2)用戶注冊
(3)添加、刪除文章(4)文章列表 …(等等)
第二篇:《PHP程序設(shè)計》教學(xué)大綱
《PHP程序設(shè)計》教學(xué)大綱
一、教學(xué)性質(zhì)
本課程屬于計算機軟件開發(fā)專業(yè)的一門計算機編程語言基礎(chǔ)課程,主要學(xué)習(xí)PHP程序設(shè)計語言的知識和應(yīng)用,具體包括PHP概述、HTML基礎(chǔ)、javascript基礎(chǔ)、PHP語法基礎(chǔ)、流程控制結(jié)構(gòu)、PHP數(shù)組、面向?qū)ο蠹夹g(shù)、PHP網(wǎng)站開發(fā)、MySQL數(shù)據(jù)庫技術(shù)和PHP、MySQL數(shù)據(jù)庫編程技術(shù)、PHP管理系統(tǒng)開發(fā)等。
二、教學(xué)目標(biāo)
通過本課程的學(xué)習(xí),課堂上先結(jié)合案例講解PHP的基本語法等知識,再通過上機實踐和課后練習(xí),進(jìn)行實際案例的開發(fā)。使學(xué)生能夠更加全面地理解PHP語言的語法結(jié)構(gòu)和運行原理,并能熟練地運用PHP和MySQL等知識進(jìn)行項目開發(fā)。
三、教學(xué)內(nèi)容 第1章Web基礎(chǔ)
1.1 Web的體系結(jié)構(gòu) 1.2 Internet通信協(xié)議
1.3 基于數(shù)據(jù)庫的動態(tài)Web工作模式 1.4 案例教程 第2章 HTML基礎(chǔ)
2.1 HTML文檔結(jié)構(gòu) 2.2 HTML基本標(biāo)記的使用 2.3 HTML表單 2.4 案例教程
第3章 JavaScript客戶端腳本語言
3.1 JavaScript語言基礎(chǔ)
3.2 JavaScript程序流程控制語句 3.3 JavaScript函數(shù)和事件處理程序 3.4 HTML文檔對象模型 3.5 JavaScript內(nèi)置的常用對象 3.6 用JavaScript腳本驗證HTML數(shù)據(jù) 3.7 案例教程
第4章 構(gòu)建基于PHP 5的動態(tài)Web開發(fā)環(huán)境
4.1 PHP 5概述
4.2 Apache和PHP 5的組合安裝和測試 4.3 Windows下MySQL的安裝與運行 4.4 案例教程
第5章 PHP 5的程序設(shè)計基礎(chǔ)
5.1 PHP 5程序的語法結(jié)構(gòu)
5.2 PHP 5的數(shù)據(jù)類型 5.3 PHP 5的常量和變量 5.4 PHP 5程序的數(shù)據(jù)輸入和輸出 5.5 PHP 5程序的流程控制語句 5.6 PHP 5的數(shù)組 5.7 函數(shù) 5.8 案例教程
第6章
PHP 5的面向?qū)ο缶幊?/p>
6.1 面向?qū)ο缶幊痰幕A(chǔ)知識 6.2 PHP 5中面向?qū)ο缶幊痰幕炯夹g(shù) 6.3 PHP 5中面向?qū)ο缶幊痰母呒壖夹g(shù) 6.4 案例教程
第7章 常用的PHP 5內(nèi)部函數(shù)
7.1日期和時間函數(shù) 7.2文件操作函數(shù) 7.3字符串處理函數(shù) 7.4正則表達(dá)式函數(shù) 7.5 FTP函數(shù) 7.6 案例教程
第8章 MySQL數(shù)據(jù)庫技術(shù)
8.1 MySQL概述
8.2 MySQL服務(wù)器的啟動和關(guān)閉 8.3 操作MySQL數(shù)據(jù)庫 8.4 操作MySQL數(shù)據(jù)表 8.5 操作MySQL數(shù)據(jù)
8.6 phpMyAdmin圖形化管理工具 8.7 案例教程
第9章 PHP與MySQL數(shù)據(jù)庫編程技術(shù) 9.1 PHP操作MySQL數(shù)據(jù)庫的步驟 9.2 連接數(shù)據(jù)庫服務(wù)器 9.3 選擇指定數(shù)據(jù)庫 9.4 數(shù)據(jù)庫基本操作 9.5關(guān)閉數(shù)據(jù)庫連接 9.6 案例教程 第10章 會話和用戶認(rèn)證
10.1網(wǎng)頁重定向 10.2用戶認(rèn)證 10.3 PHP的Session 10.4 案例教程
四、教學(xué)方法與手段
教學(xué)中要多采用實例教學(xué)等現(xiàn)代教學(xué)手段,加強直觀性教學(xué),注意理論聯(lián)系實際,重視培養(yǎng)學(xué)生的實際操作能力。
在教學(xué)過程中注意教學(xué)方法的運用,多采用能激發(fā)學(xué)生學(xué)習(xí)積極性、主動性的教學(xué)方法,如課堂討論、辯論等。
五、考核方式
采取期末考試與上交作品相結(jié)合的方式。平時考勤和作業(yè)占成績的30%,期末作品占成績的70%。六:主要教材:
《PHP程序設(shè)計案例教程》,徐輝,清華大學(xué)出版社(2013-12-12)
七、學(xué)習(xí)指導(dǎo)方案
布置作業(yè)題(作品),并讓學(xué)生做平時作品,遇到問題可及時和任課教師聯(lián)系進(jìn)行答疑。
第三篇:程序設(shè)計實訓(xùn)課程項目報告
《程序設(shè)計實訓(xùn)》課程項目報告
IMAP4及MIME協(xié)議剖析
班級:01五專2班
學(xué)號:01661430
姓名:徐莉
指導(dǎo)教師:袁梅冷聶哲
2005年12月
一、IMAP4協(xié)議剖析
IMAP是Internet Message Access Protocol的縮寫,顧名思義,它是通過Internet獲取信息的一種協(xié)議。IMAP4是IMAP協(xié)議的第4個版本,正如POP3是POP協(xié)議的第3個版本一樣。IMAP用于訪問存儲在郵件服務(wù)器系統(tǒng)內(nèi)的電子郵件和電子公告板信息。IMAP 允許用戶郵件程序如同操作本機系統(tǒng)一樣訪問遠(yuǎn)程消息存儲器??赏ㄟ^臺式電腦遠(yuǎn)程操作保存在 IMAP 服務(wù)系統(tǒng)內(nèi)的郵件,而不需要在計算機之間來回傳輸消息或文檔。
和POP3的區(qū)別
很多朋友都對POP3非常熟悉,我們就從POP3說起。POP3提供了快捷的郵件下載服務(wù),用戶可以利用POP3把郵箱里的信下載到PC上進(jìn)行離線閱讀。一旦郵件進(jìn)入PC的本地硬盤,就可以選擇把郵件從服務(wù)器上刪除,然后脫離與Internet的鏈接并可在任何時候閱讀已經(jīng)下載的郵件。
IMAP同樣提供了方便的郵件下載服務(wù),讓用戶能進(jìn)行離線閱讀,但I(xiàn)MAP能完成的卻遠(yuǎn)遠(yuǎn)不止這些。首先,IMAP提供的摘要瀏覽功能可以讓你在閱讀完所有的郵件到達(dá)時間、主題、發(fā)件人、大小等信息后才做出是否下載的決定。如果根據(jù)摘要信息就可以決定某些郵件對你毫無用處,你可以直接在服務(wù)器上把這些郵件刪除掉。如果你的IMAP客戶端軟件完整支持IMAP4rev1(如Netscape 4.5),那么你還可以享受選擇性下載附件的服務(wù)。假如一封郵件里含有5個附件,而其中只有兩個附件是你需要的,你就可以只下載那兩個附件,節(jié)省了下載其余3個的時間。
IMAP 包括了一系列操作:郵箱的建立、刪除及重命名、檢查新郵件、永久刪除郵件、設(shè)置和清除標(biāo)志、基于服務(wù)器和 MIME 的分析和搜索、有效并有選擇的取回郵件屬性、文本和部分內(nèi)容。IMAP 允許用戶從多臺計算機上訪問郵件(新郵件或保存過的郵件)。對于保證電子郵件的可靠性和同時使用多臺計算機的環(huán)境來說,這一特性尤其重要。
IMAP與POP3不同的地方關(guān)鍵是在支持離線閱讀的同時也鼓勵用戶把郵件存儲和組織在服務(wù)器上。
在線方式下,IMAP 用戶不用一次性地從共享服務(wù)器上收取郵件然后刪除。IMAP 采用的是交互式客戶機—服務(wù)器方式,用戶可以向服務(wù)器請求特定郵件的信頭或主體,或者請求服務(wù)器搜索滿足一定條件的郵信。收件箱中的信件標(biāo)有各種狀態(tài)標(biāo)志(如“刪除”或“已回復(fù)”),它們一直保留直到用戶真正刪除。在 IMAP 系統(tǒng)中,用戶可以像在本地一樣遠(yuǎn)程操作管理郵箱。根據(jù) IMAP 客戶端實現(xiàn)方式及系統(tǒng)管理員設(shè)計的郵件系統(tǒng)結(jié)構(gòu),用戶可以在本地機器上保存郵件,或在服務(wù)器上保存郵件,也可以兩者選一。
IMAP4 是 IMAP 的最新版本,其主要特征如下:與因特網(wǎng)消息標(biāo)準(zhǔn)完全兼容,如: MIME ;允許多臺計算機同時訪問和管理郵件;允許通過低效率的文件訪問協(xié)議進(jìn)行訪問;提供對“在線”、“離線”和“無連接”三種訪問方式的支持;支持共享郵箱的并發(fā)訪問;客戶端軟件不需要了解服務(wù)器上的文件存儲格式。
怎樣使用IMAP
支持IMAP的客戶端軟件不多,建議使用OE和Netscape Messenger。這兩個軟件各有特點,Netscape功能多,但OE顯得更簡單和快捷,而且有中文版本。很遺憾,國內(nèi)用戶喜愛的FoxMail目前還不支持IMAP。其他的E-mail客戶端軟件,目前版本對IMAP4的支持都不完整,不推薦使用。
在OE里設(shè)置21cn的IMAP賬號:
1、點擊“工具/賬號”菜單。
2、在彈出對話框中單擊“添加/郵件”按鈕。
3、填寫你的名稱,該名稱將出現(xiàn)在發(fā)件人域,單擊“下一步”。
4、填寫你在21cn上的電子郵件地址,單擊“下一步”。
5、選擇“IMAP”作為郵件接收服務(wù)器類型,在郵件接收服務(wù)器欄內(nèi)填寫“imap-ent.21cn.com”,在郵件發(fā)送服務(wù)器欄內(nèi)填寫“smtp-ent.21cn.com”,單擊下一步。
6、輸入顯示在OE文件夾列表內(nèi)的名稱,單擊“下一步”并按照向?qū)ё罱K完成設(shè)置。
常見問題:
1、我可以混合使用POP3、IMAP4、WebMail來訪問我的郵箱嗎?
可以,但POP3只下能下載除Trash和Sent文件夾外那些沒有打刪除標(biāo)記的郵件,IMAP4和WebMail則可以閱讀所有的郵件。
2、為什么我用OE 5.0建立IMAP賬號后卻在WebMail中發(fā)現(xiàn)了兩個奇怪的文件夾?缺省情況下IE5會自動為你建立兩個名為“已發(fā)送郵件”和“草稿”的文件夾。由于中文名稱在WebMail里得不到正確的編碼解釋,所以未能正確顯示??梢酝ㄟ^OE里的關(guān)于該賬號的“高級設(shè)置”功能刪除這兩個文件夾。
二、MIME協(xié)議剖析
MIME(Multimedia Internet Mail Extensions)表示多用途Internet郵件擴(kuò)允協(xié)議。MIME擴(kuò)允了基本的面向文本的Internet郵件系統(tǒng),以便可以在消息中包含二進(jìn)制附件。
MIME是一種技術(shù)規(guī)范,它原來是用于電子郵件的,現(xiàn)在也可以用于瀏覽器上,傳送可以供瀏覽器識別的信息,關(guān)于MIME的知識并是十分難懂的,有一些基本的計算機概念就可以理解了,但如果要進(jìn)一步使用,就必須注意內(nèi)容。實際上,我們在上網(wǎng)的時候就已經(jīng)接觸到了MIME,只是瀏覽器和服務(wù)器在底層實現(xiàn)了。
MIME有時候被錯誤地理解為多媒體Internet郵件擴(kuò)展(Multimedia Internet Mail Extensions),這是一個錯誤,但是MIME在網(wǎng)上經(jīng)常用于多媒體應(yīng)用程序,所以人們以為
這是它是多媒體郵件擴(kuò)展,而實際上它應(yīng)該被稱為多用途Internet郵件擴(kuò)展(Multipurpose Internet Mail Extensions),因為有時候內(nèi)容里根本沒有非文本成份。
MIME對于郵件系統(tǒng)的擴(kuò)展是巨大的,因為在MIME出現(xiàn)以前,信件內(nèi)容如果要包括聲音和動畫,就必須把它變?yōu)锳SCII碼或把二進(jìn)制的信息變成可以傳送的編碼標(biāo)準(zhǔn),而接收方必須經(jīng)過解碼才可以獲得聲音和圖畫信息。MIME提供了一種可以在郵件中附加多種不同編碼文件的方法。這與原來的郵件是大大不同的。而現(xiàn)在MIME已經(jīng)成為了HTTP協(xié)議標(biāo)準(zhǔn)的一個部分。
MIME信息包含
一個普通的文本郵件的信息包含一個頭部分(To: From: Subject: 等等)和一個體部分(Hello Mr.,等等)。在一個符合MIME的信息中,郵件的各個部分叫做MIME段,每段前也綴以一個特別的頭。MIME郵件只是基于RFC 822郵件的一個擴(kuò)展。然而它有著自已的RFC規(guī)范集。
頭字段
MIME頭根據(jù)在郵件包中的位置,大體上分為MIME信息頭和MIME段頭,MIME信息頭指整個郵件的頭,而MIME段頭只每個MIME段的頭。
MIME信息頭有:
MIME-Version:
這個頭提供了所用MIME的版本號。這個值習(xí)慣上為1.0。
Content-Type:
它定義了數(shù)據(jù)的類型,以便數(shù)據(jù)能被適當(dāng)?shù)奶幚?。有效的類型有:text,image,audio,video,applications,multipart和message。注意任何一個二進(jìn)制附件都應(yīng)該被叫做application/octet-stream。這個頭的一些用例為:image/jpg, application/mswork,multipart/mixed。
Content-Transfer-Encoding:
它說明了對數(shù)據(jù)所執(zhí)行的編碼方式,客戶/MUA將用它對附件進(jìn)行解碼。對于每個附件,可以使用7bit,8bit,binary,quoted-printable,base64和custom中的一種編碼方式。7bit編碼是用在US ASCII字符集上的常用的一種編碼方式。8bit 和binary編碼一般不用。對可讀的標(biāo)準(zhǔn)文本,如果傳輸要經(jīng)過對格式有影響的網(wǎng)關(guān)時對其進(jìn)行保護(hù),可以使用quoted printable。Base64是一種通用方法,在需要決定使用哪一種編碼方法時,它提供了一個不用費腦子的選擇;它通常用在二進(jìn)制,非文本數(shù)據(jù)上。注意,任何非7bit 數(shù)據(jù)必須用一種模式編碼,這樣它就可以通過Internet郵件網(wǎng)關(guān)。
Content-ID:
如果Content-Type是message/external-body或multipart/alternative時,這個頭就有用了。
Content-Description:
這是一個可選的頭。它是任何信息段內(nèi)容的自由文本描述。描述必須使用us-ascii碼。
Content-Disposition:
這是一個試驗性的頭,它用于給客戶程序/MUA提供提示,來決定是否在行內(nèi)顯示附件或作為單獨的附件。
MIME段頭(出現(xiàn)在實際的MIME附件部分的頭),除了MIME-Version頭,可以擁有以上任何頭字段。如果一個MIME頭是信息塊的一部分,它將作用于整個信息體。例如,如果Content-Transfer-Encoding顯示在信息(整個信息)頭中,它應(yīng)用于整個信息體,但是如果它顯示在一個MIME段里,它“只能”用于那個段中。
MIME是服務(wù)器通知客戶機傳送文件是什么類型的主要方法,客戶機瀏覽器也通過MIME告訴服務(wù)器它的參數(shù)。在網(wǎng)上,如果接收到的文件沒有MIME頭,就默認(rèn)它為HTML格式。但這樣也不好,因為當(dāng)MIME的包頭是text/plain時,瀏覽器將直接顯示而不關(guān)心它的什么字體,顏色之類的參數(shù),這樣顯示出來的內(nèi)容就會與原來的設(shè)置不一樣了。MIME頭是什么樣子要看它是用在電子郵件中還是用在瀏覽器上,兩者內(nèi)容可能有所不同。對于郵件頭來說,版本號,內(nèi)容類型聲明,編碼方式,內(nèi)容描述是必不可少的。這是用于郵件頭中的格式,在下面,我們將重點說到在HTTP中傳送MIME頭,這時MIME頭要簡單一些。
下例是一個郵件的標(biāo)準(zhǔn)MIME頭:
Mime-Version: 1.0 //版本號:1.0
Content-Type: multipart/mixed;boundary=“IMA.Boundary.750407228” //內(nèi)容類型是多種的--IMA.Boundary.750407228
Content-Type: text/plain;charset=US-ASCII //內(nèi)容類型:文本,字符是ASCII的Content-Transfer-Encoding: 7bit //編碼方式:7位
Content-Description: cc:Mail note part
在用于瀏覽器時,用戶不需要知道那么多的信息,所以MIME頭就比較簡單了。在訪問一個網(wǎng)頁時,瀏覽器和服務(wù)器之間產(chǎn)生一個會話,作為請求內(nèi)容的一部分,瀏覽器發(fā)送它能夠理解的MIME類型的描述,這就告訴服務(wù)器,瀏覽器除了網(wǎng)頁外還可以支持什么,服務(wù)器對這個信息一般不作為什么修改。
服務(wù)器通過發(fā)向客戶機的MIME頭通知客戶瀏覽器內(nèi)容是什么,我們看看下面這個頭:Content-type: text/html
在實現(xiàn)的時候,一定要注意MIME頭后要跟一個空行,不然這個頭會被瀏覽器忽略,這個頭會被當(dāng)作文本顯示出來。當(dāng)服務(wù)器傳送GIF圖象時,頭會如下:
Content-type: image/gif
Content-transfer-encoding: BINARY
通常的MIME內(nèi)容類型并不起什么作用,瀏覽器可以自己識別內(nèi)容的類型,但是如果您使用一些另外的類型,這個問題可就大了,如果你使用了text/postscript,那瀏覽器會顯示下載窗口,或就把這個東西顯示出來,那可就不好辦了。下面我們介紹一下標(biāo)準(zhǔn)MIME類型。
Text.文本,它用于描述不同類型的文本,包括通常的文本,PostScript和HTML,雖然HTML不是一個可能的子類型。
Multipart.多類型,指出此信息包括多種信息,不止一種類型。
Message.用于標(biāo)記不同類型的消息。
Application.應(yīng)用類型。
Image.圖像,用于標(biāo)明圖形文件。
Audio.聲音,用于標(biāo)明聲音文件。
Video.影像,用于標(biāo)明動畫文件。
安全
由于MIME定義了多種不同的內(nèi)容類型,因此在郵件客戶端可以識別這些標(biāo)準(zhǔn)的內(nèi)容說明,從而調(diào)用不同的程序插件來進(jìn)行處理,如為應(yīng)用,則提示下載,如為圖像,則自動打開(如OE),但由于BASE64編碼的內(nèi)容看起來是一樣的,所以我們就可以把一個自己編寫的執(zhí)行程序或木馬通過BASE64編碼后,附加在郵件后,并強制定義其為圖形或聲音等能被自動處理的內(nèi)容說明,這樣,在郵件被打開時,這些編碼就會被自動的處理,也就是相當(dāng)于運行了這些編碼解碼后的程序。這就是MIME缺陷漏洞,在MS的網(wǎng)站已經(jīng)就此問題做出了補救方法,或使用非MS的產(chǎn)品來接收郵件,如FOXMAIL。
第四篇:程序設(shè)計報告
《程序設(shè)計》課程設(shè)計
題目名稱:
愛
學(xué) 院:
專業(yè)班級: 學(xué) 號: 姓 名: 指導(dǎo)教師: 完成日期: 2015年 12月
日
程序設(shè)計報告
《程序設(shè)計課程設(shè)計》
一.概述(題目內(nèi)容)
本次設(shè)計程序題目為“愛”。
“愛”是世界上最美好的感情,我們愛家人,愛朋友,愛動物,愛自然,愛這美好的世界。可是,你是否羞于向你最親近的人表達(dá)你最真實的感受,尤其是對父母,害羞沒關(guān)系,讓本程序幫幫你。
二.設(shè)計內(nèi)容及其要求
內(nèi)容要表達(dá)出,體現(xiàn)出“愛”。
要求:1.有音樂 2.有背景 3.有視頻 4.有表達(dá)愛的字樣
三.設(shè)計思路、設(shè)計方法、設(shè)計工具
設(shè)計思路:需要繪圖程序,怎樣體現(xiàn)I LOVE U,需要插入圖片,音樂和視頻,出現(xiàn)對話框提示。
設(shè)計方法:用劃線和設(shè)置顏色來體現(xiàn)I LOVE U,設(shè)計函數(shù)在有背景圖的情況下實現(xiàn)文字的移動。
設(shè)計工具:VC6 + EasyX 20140321 四.整體流程,各部分介紹
提示 是否開啟音樂(Y打開音樂 N 不打開音樂)繪制I LOVE U 文字移動
提示是否打開視頻(Y打開視頻,關(guān)閉音樂N不打開視頻音樂繼續(xù))
#include
#pragma comment(lib,“Winmm.lib”)
// 引用 Windows Multimedia API myouttextxy函數(shù)實現(xiàn)文字在背景上的移動 主函數(shù)
loadimage()//加載圖片
Putimage()//顯示圖片
mciSendString()//加載音樂,播放音樂,循環(huán)播放音樂,暫停音樂
Setline()//繪制線 用for,while循環(huán)實現(xiàn)I LOVE U的繪制 MessageBox()//獲取窗柄,實現(xiàn)選擇
mciSendString()//加載視頻,播放視頻,關(guān)閉視頻 getch();//從鍵盤獲取 closegraph();//關(guān)閉程序
四.設(shè)計結(jié)果
五.總結(jié)
可以將其他的分辨率為530*300左右的照片重命名為background.jpg作為背景圖片,與編譯文件放在一起,將其他的MP4的音樂和MP4視頻分別重命名為background.,mp3 background.mp4,分別復(fù)制一份,一份與編譯文件放在一起,另一份放入debug文件中。缺點:必須壓縮至D盤根目錄下,否則,圖片不能加載。
第五篇:PHP實習(xí)報告
PHP實習(xí)報告
1.入職第一天
入職第一天要求熟悉公司的開發(fā)環(huán)境,以及代碼風(fēng)格。
公司的開發(fā)環(huán)境是windoes+apache+mysql,開發(fā)工具是Eclipse+navicat。
原本以為如今公司開發(fā)都會在linux系統(tǒng)下,這才清楚開發(fā)環(huán)境全憑個人喜好以及熟悉程度。其實同樣是做架構(gòu),同樣是寫代碼,環(huán)境不重要。只是因為最后的服務(wù)器是linux系統(tǒng),為了避免上線以后出問題,所以對常見的linux的特點要求熟悉。
Apache并不要求掌握多少,因為服務(wù)器維護(hù)有專職人員做,而且做的更專業(yè)更好,我們只是簡單能使用就好。
Eclipse是一套很強大的IDE,有各種版本適合各種語言開發(fā),如java、php等。其附帶的功能強大而又方便,是大中型項目的開發(fā)利器。因為在大中型項目開發(fā)時,項目內(nèi)部結(jié)構(gòu)錯亂復(fù)雜,各個文件之間存在個各種各樣的依賴關(guān)系,這時候一個好的IDE可以省下很多使用notepad開發(fā)時的勞力。
Navicat是一套數(shù)據(jù)庫管理工具,用它來連接mysql比命令行操作更方便,比phpmyadmin更快捷,因為C/S的系統(tǒng)有更快的響應(yīng)速度以及處理速度。
代碼風(fēng)格是影響團(tuán)隊開發(fā)的一個很重要因素,這一點在我們后面進(jìn)行開發(fā)的時候給我?guī)硐喈?dāng)深刻的感觸。
從簡單的代碼縮進(jìn)、留白,到更深入的數(shù)據(jù)處理方式,處理環(huán)節(jié),每個人都有自己的理解和想法,因為每個人都有自己的經(jīng)驗。
代碼格式還好說,在公司見識到了很方便的代碼美化工具,可以方便的轉(zhuǎn)化為自己賞心悅目的格式。但是數(shù)據(jù)的處理方式、流程、環(huán)節(jié),卻是項目整合的關(guān)鍵。比如關(guān)鍵字過濾的處理,重復(fù)處理會影響效率,比如某顯示值的變換,萬萬不能重復(fù)處理。所以在一開始就必須規(guī)定好入口參數(shù)、出口參數(shù)的格式,并且將數(shù)據(jù)處理流程規(guī)定好!即有一套精確的數(shù)據(jù)流圖!
2.關(guān)于數(shù)據(jù)庫架構(gòu)——理論和實踐
該單位的官網(wǎng)是由一個經(jīng)驗豐富的架構(gòu)師、還有幾個專職人員帶領(lǐng)我們幾個實習(xí)生一起做。在數(shù)據(jù)庫架構(gòu)的問題上我第一次感受到經(jīng)驗和書本的矛盾關(guān)系。
在看到該官網(wǎng)的數(shù)據(jù)庫架構(gòu)時,我不禁覺得其有問題。按著書上關(guān)于數(shù)據(jù)庫范式的講解,毫無疑問該網(wǎng)站的數(shù)據(jù)庫存在數(shù)據(jù)冗余等諸多問題,難道這個架構(gòu)師和這些工程師們不懂?dāng)?shù)據(jù)庫范式?事實證明我猜對了一半,當(dāng)我滿懷疑惑提出數(shù)據(jù)庫的問題后,才發(fā)現(xiàn)有一個工程師真的不清楚數(shù)據(jù)庫范式是什么,甚至連這個概念都沒聽過。另外一個工程師帶著我分析這個網(wǎng)站的用途和需求,并講解了這樣設(shè)計的優(yōu)點和缺點,以及按著規(guī)范的范式要求去設(shè)計的優(yōu)點個缺點。最終我了解到,數(shù)據(jù)庫范式是一個規(guī)范,它在理想程度上解決了數(shù)據(jù)冗余,刪除出錯等諸多問題,但是當(dāng)我們完全按著數(shù)據(jù)庫范式去設(shè)計的時候就發(fā)現(xiàn)并沒有想象中的好。因為有一些冗余或刪除出錯很可能一年才遇到一次,而且在人為提醒的狀況下完全可以避免,但是為了避免冗余所耗費的勞力,所付出的代價卻是相當(dāng)巨大的。
3.關(guān)于注釋
開發(fā)的時候被一再強調(diào)注釋的重要性。并且就連注釋的格式都規(guī)范的死死的。這就是團(tuán)隊開發(fā)。每一個文件都必須有文件注釋,每一個函數(shù)都必須有功能注釋以及參數(shù)注釋,甚至就連每一個變量都必須有注釋,必須清清楚楚標(biāo)明用途,哪怕它的標(biāo)識符很清楚表示它只是個password。
如今的開發(fā)語言都有其相應(yīng)的自動生成API幫助文檔的小軟件,每一個軟件都規(guī)定了注釋的規(guī)范,以方便生成幫助文檔,好在這些文檔規(guī)范大致相同。剛開始很驚訝,因為注釋的內(nèi)容居然能占一半,甚至更多,這在以前都未曾遇到。
4.如何解決問題
官網(wǎng)開發(fā)到一半遇到兩個問題:一個是視頻播放上傳,再有一個就是自動繪制圖表。視頻上傳在土豆,優(yōu)酷上屢見不鮮,可是真正到了自己開發(fā)的時候才發(fā)現(xiàn)并不像想象的那么容易。我只要一想到上傳時網(wǎng)絡(luò)狀況、斷點續(xù)傳、視頻格式這些技術(shù)問題,頭就大了。自動圖表就更不必說,根本不知道從哪里下手,更不能接受的是架構(gòu)師經(jīng)理和兩個工程師居然也沒遇到過類似問題。
當(dāng)時我覺得這件事或許解決不了,因為項目已經(jīng)分好時間,工期只有這么多,即便能解決怕也是要超工期。最后向上級反映一下改一下需求然后可能就不了了之了。事實證明了我的想法很愚蠢,因為經(jīng)理根本就沒向上反映,只是相當(dāng)?shù)ǖ亟o了一句話:上網(wǎng)找找方法,肯定能實現(xiàn)。沒想到真讓經(jīng)理說中了。
最后大家齊心合力,首先把問題分析,難關(guān)一個一個克服,經(jīng)歷了整夜守著谷歌翻譯看幫助文檔,經(jīng)歷了整夜手工輸入連接下載flash接口,經(jīng)理了整夜調(diào)試修改別人的代碼??經(jīng)歷了一個又一個不眠之夜,工作居然提前完成了!
事后一次聚餐的時候大家說根本沒想到這個可能實現(xiàn),經(jīng)理說:“類似的狀況我之前就遇到很多回了。最開始也是想著該需求,后來才認(rèn)識到,公司招人來是解決問題的,工作就要盡責(zé)!有需求就必須滿足!即便滿足不了也得盡全力去做。最重要的是:事情都是人做的,別人能做,自己為什么不能,即便不能自創(chuàng),抄也可以抄來”。
實習(xí)心得:
1.關(guān)于公司的開發(fā)環(huán)境和代碼規(guī)范
公司的環(huán)境和規(guī)范,都是長期以來根據(jù)實踐經(jīng)驗慢慢總結(jié)出來的,很適合當(dāng)前規(guī)模項目的開發(fā),因此必須及時熟悉。這就如生產(chǎn)力和生產(chǎn)關(guān)系之間的聯(lián)系,毫無疑問當(dāng)前的生產(chǎn)關(guān)系是適應(yīng)生產(chǎn)力的。
規(guī)范包括代碼規(guī)范和架構(gòu)規(guī)范,它制定了數(shù)據(jù)處理流程的規(guī)范,以及考慮因素。然而不同的項目對應(yīng)不同的需求,應(yīng)當(dāng)考慮的因素也是不同的。比如一個普通公司的內(nèi)網(wǎng)只允許內(nèi)部員工訪,這樣的話對安全系數(shù)的要求就不高,但大流量大負(fù)載的狀況就得多加考慮!換過來如果是一個機關(guān)部門的網(wǎng)站,問顯然不會有大流量大負(fù)載的情況出現(xiàn),因此在這上面便可以少考慮,而安全系數(shù)就是不得不考慮的致命因素!
2.關(guān)于理論和實踐
最開始的數(shù)據(jù)庫問題讓我明白了書上的理論在面對實現(xiàn)中的硬傷時表現(xiàn)得是那么蒼白,那更多的只是理論上的完美,而實際工作中是不存在完美的!
后來的代碼實現(xiàn)工作讓我認(rèn)識到,即便是理論上掌握了,實踐的話卻不一定成功。且不說無數(shù)次調(diào)試后才能保證語句的正確,單單是邏輯錯誤出現(xiàn)的頻率就幾乎讓人崩潰。原本在腦海中那么清晰地思路,到實現(xiàn)的時候才發(fā)現(xiàn)居然有那么多問題沒想到!
公司實習(xí)這段時間我清楚了什么叫:紙上得來終覺淺,絕知此事要躬行!
3.注釋——責(zé)任心的體現(xiàn)
在公司開發(fā),最開始被迫寫N多注釋,到后期整合項目的時候才發(fā)現(xiàn)多虧有這些注釋。它們使得我們可以很方便地回想起自己當(dāng)時的想法,更使得我們可以毫無障礙地讀懂別人的代碼,以后即便是換了一批人員進(jìn)行二次開發(fā)或者維護(hù)都會很方便。
注釋,既是對自己作品的信心,也是對自己作品的負(fù)責(zé)!
4.公司招人是需要解決問題
官網(wǎng)遇到的兩個問題最終被解決,我清楚地知道問題解決的每一個過程。從最開始的毫無頭緒,到后來的稍有眉目,再到后來思路清晰,然后一步一步實現(xiàn)!經(jīng)理那句話給我印象很深刻:公司招人是要來解決問題的!我想我以后都不會輕易說不行了。
5.實習(xí)感受
通過本次實習(xí),我基本了解了公司的開發(fā)流程,以及一些開發(fā)時的注意事項,同時也使自己的代碼水平上升了一個層次。然而更多的收獲在于了解到工作是什么樣的狀態(tài),工作中的問題以及遇到問題怎么做。經(jīng)過這次實習(xí),工作于我不再是想象中的那個空洞的名詞,我深深地感受到它的存在!深深地體會到它和學(xué)校的區(qū)別!