在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

續上一貼

續上一貼

更新時間:2022-04-26 文章作者:未知 信息來源:網絡 閱讀次數:

3.11. 記錄所有的空語句

總是記錄下for或者是while的空塊語句,以便清楚的知道該段代碼是漏掉了,還是故意不寫的。

while ($dest++ = $src++)
; // VOID

3.12. 不要采用缺省方法測試非零值

不要采用缺省值測試非零值,也就是使用:

if (FAIL != f())
比下面的方法好:

if (f())

即使 FAIL 可以含有 0 值 ,也就是PHP認為false的表示。在某人決定用-1代替0作為失敗返回值的時候,一個顯式的測試就可以幫助你了。就算是比較值不會變化也應該使用顯式的比較;例如:if (!($bufsize % strlen($str)))應該寫成:if (($bufsize % strlen($str)) == 0)以表示測試的數值(不是布爾)型。一個經常出問題的地方就是使用strcmp來測試一個字符等式,結果永遠也不會等于缺省值。
非零測試采用基于缺省值的做法,那么其他函數或表達式就會受到以下的限制:
· 只能返回0表示失敗,不能為/有其他的值。
· 命名以便讓一個真(true)的返回值是絕對顯然的,調用函數IsValid()而不是Checkvalid()。

3.13. 布爾邏輯類型

大部分函數在FALSE的時候返回0,但是發揮非0值就代表TRUE,因而不要用1(TRUE,YES,諸如此類)等式檢測一個布爾值,應該用0(FALSE,NO,諸如此類)的不等式來代替:

if (TRUE == func()) { ...
應該寫成:

if (FALSE != func()) { ...

3.14. 通常避免嵌入式的賦值

有時候在某些地方我們可以看到嵌入式賦值的語句,那些結構不是一個比較好的少冗余,可讀**強的方法。

while ($a != ($c = getchar()))
{
process the character
}
++和--操作符類似于賦值語句。因此,出于許多的目的,在使用函數的時候會產生副作用。使用嵌入式賦值提高運行時**能是可能的。無論怎樣,程序員在使用嵌入式賦值語句時需要考慮在增長的速度和減少的可維護**兩者間加以權衡。例如:

a = b + c;
d = a + r;
不要寫成:

d = (a = b + c) + r;

雖然后者可以節省一個周期。但在長遠來看,隨著程序的維護費用漸漸增長,程序的編寫者對代碼漸漸遺忘,就會減少在成熟期的最優化所得。


4. 幫助與共享

4.1. 重用您和其他人的艱苦工作

跨工程的重用在沒有一個通用結構的情況下幾乎是不可能的。對象符合他們現有的服務需求,不同的過程有著不同的服務需求環境,這使對象重用變得很困難。
開發一個通用結構需要預先花費許多的努力來設計。當努力不成功的時候,無論出于什么原因,有幾種辦法推薦使用:

4.2. 請教!給群組發Email求助

這個簡單的方法很少被使用。因為有些程序員們覺得如果他向其他人求助,會顯得自己水平低,這多傻啊!做新的有趣的工作,不要一遍又一遍的做別人已經做過的東西。
如果你需要某些事項的源代碼,如果已經有某人做過的話,就向群組發email求助。結果會很驚喜哦!
在許多大的群組中,個人往往不知道其他人在干什么。你甚至可以發現某人在找一些東西做,并且自愿為你寫代碼,如果人們在一起工作,外面就總有一個金礦。

4.3. 告訴!當你在做事的時候,把它告訴所有人

如果你做了什么可重用的東西的話,讓其他人知道。別害羞,也不要為了保護自豪感而把你的工作成果藏起來。一旦養成共享工作成果的習慣,每個人都會獲得更多。

4.4. 小型代碼庫

對于代碼重用,一個常見的問題就是人們不從他們做過的代碼中做庫。一個可重用的類可能正隱蔽在一個程序目錄并且決不會有被分享的激動,因為程序員不會把類分拆出來加入庫中。
這樣的其中一個原因就是人們不喜歡做一個小庫,對小庫有一些不正確感覺。把這樣的感覺克服掉吧,電腦才不關心你有多少個庫呢。
如果你有一些代碼可以重用,而且不能放入一個已經存在的庫中,那么就做一個新的庫吧。如果人們真的考慮重用的話,庫不會在很長的一段時間里保持那么小的。

4.5. 知識庫

很多公司不清楚現有什么代碼可用,而且大多數程序員仍然沒有通過溝通他們已經做過了什么,或者一直在詢問現存什么代碼可用。解決這個的方法是有一個可用的知識庫。
理想的情況是,程序員可以到一個WEB頁,瀏覽或者查詢打包的知識庫列表,找到他們所要的。建立一個程序員可以自動維護的知識庫系統,是一個很不錯的做法。如果有一個專門的管理員來負責維護這個知識庫,那當然更好。
另一種方法是自動的從代碼中產生知識庫的做法。把通用的類、方法和標頭(subsystem headers)作為手冊或者是知識庫的一個條目。


5. 書寫注釋


5.1. 講一個故事

把你的注釋當作描述系統的一個故事。并且使得你的注釋能被機器解析后,以固定的格式放到手冊中去。類的注釋是故事的一部分,方法的名稱、方法的注釋、方法的實現也是故事一部分。所有的這些部分編織在一起,使得人們在以后的時間里能夠準確的知道你干了什么,為什么這么做。

5.2. 歸檔注釋

注釋的要歸檔才有意義,否則,假如在一個地方放一條注釋描述你做了什么選擇和你為什么這么做,只有考古學家才能發現這是最有用的信息。(如何歸檔另行規范)

5.3. 注釋結構

工程的每部分都有特定的注釋結構。 程序中的注釋,這里給出示例作為規范,注釋中以 * @ 為關鍵字的開始,以:為注釋關鍵字結尾。

5.3.1. 預定義關鍵字

關鍵字 含義
Purpose 表示類、屬**、方法要做些什么或者什么含義。
Package Name 類名
Author 作者
Modifications 修改記錄(編號規則為“No”+日期+“-”+序號)
See 參考
Method Name 方法名
Parameter 參數名(包括類型)
Return 返回值(包括類型)
Attribute/Variable Name 屬**/變量名
Type 屬**/變量類型

5.3.2. 類的注釋

/**
* @ Purpose:
* 訪問數據庫的類,以ODBC作為通用訪問接口
* @Package Name: Database
* @Author: Forrest Gump gump@crtvu.edu.cn
* @Modifications:
* No20020523-100:
* odbc_fetch_into()參數位置第二和第三個位置調換
* John Johnson John@crtvu.edu.cn
* @See: (參照)
*/
class Database
{
……
}

5.3.3. 方法注釋

/**
* @Purpose:
* 執行一次查詢
* @Method Name: Query()
* @Parameter: string $queryStr SQL查詢字符串
* @Return: mixed 查詢返回值(結果集對象)
*/
function($queryStr){……}

5.3.4. 屬**或變量注釋

/**
* @Purpose:
* 數據庫連接用戶名
* @Attribute/Variable Name: mDbUserName
* @Type: string
*/
var mDbUserName;

5.3.5. if (0)來注釋外部代碼塊

有時需要注釋大段的測試代碼,最簡單的方法就是使用if (0)塊:
function example()
{
great looking code

if (0) {
lots of code
}

more code
}
你不能使用/**/,因為注釋內部不能包含注釋,而大段的程序中可以包含注釋。

5.3.6. 目錄文檔

所有的目錄下都需要具有README文檔,其中包括:
· 該目錄的功能及其包含內容
· 一個對每一文件的在線說明(帶有link),每一個說明通常還應該提取文件標頭的一些屬**名字。
· 包括設置、使用說明
· 指導人們如何連接相關資源:
o 源文件索引
o 在線文檔
o 紙文檔
o 設計文檔
· 其他對讀者有幫助的東西
考慮一下,當每個原有的工程人員走了,在6個月之內來的一個新人,那個孤獨受驚嚇的探險者通過整個工程的源代碼目錄樹,閱讀說明文件,源文件的標頭說明等等做為地圖,他應該有能力穿越整個工程。


6. 其他


· 采用面向對象的設計方法;

理由
毫無疑問這是最接近人們自然思維的方法,可能前期會覺得沒有直接書寫來得快,能否試著保留自己的看法?好戲在后頭!

· 類的定義采用一個文件一個類,并且類名和文件名相同;

理由
o 越來越多的人接受了這種做法
o 事實證明這種方法使得項目的邏輯結構更清晰

· 類定義文件中,定義體之外不得出現諸如echo、print等輸出語句;

理由
出現這樣的語句,應該當做出現bug來看。

· 輸出網頁的頁面不出現SQL語句

理由
這是n層結構的編程思想所致,每層的任務不同,雖然可以越權行使,可能這樣很快捷,但我們不贊成這么干。

· 進行SQL執行的數據必須進行有效**檢測

特殊符號:
對于MS SQL Server,’%_[ ] 這些符號都是在書寫SQL語句中的特殊含義字符,在SQL執行前需要對這些字符進行處理。
腳本符號:
對于PHP腳本標記,如<??><%%><?php?><script lang<script language="php"></script>,在進入數據庫前需要檢測處理。
理由
這是數據庫編程的一個約定,很多參考書上也是這么說,這里需要強調一下。

· 在HTML網頁中盡量不要穿插PHP代碼

循環代碼和純粹變量輸出(類似于<?=$UserName?>)除外。
理由
o 需要說明的是我們工作的上游,頁面設計者的工作,假如在頁面中穿插代碼,將破壞結構,這應當是我們需要避免的。
o 在這里的PHP代碼只負責顯示,多余的代碼顯然是不應該的。

· 沒有含義的數字

一個在源代碼中使用了的赤裸裸的數字是不可思議的數字,因為包括作者,在三個月內,沒人它的含義。例如:
if (22 == $foo) { start_thermo_nuclear_war(); }
else if (19 == $foo) { refund_lotso_money(); }
else if (16 == $foo) { infinite_loop(); }
else { cry_cause_im_lost(); }
在上例中22和19的含義是什么呢?如果一個數字改變了,或者這些數字只是簡單的錯誤,你會怎么想?
使用不可思議的數字是該程序員是業余運動員的重要標志.
你應該用define()來給你想表示某樣東西的數值一個真正的名字,而不是采用赤裸裸的數字,例如:
define("PRESIDENT_WENT_CRAZY", "22");
define("WE_GOOFED", "19");
define("THEY_DIDNT_PAY", "16");

if (PRESIDENT_WENT_CRAZY == $foo) { start_thermo_nuclear_war(); }
else if (WE_GOOFED == $foo) { refund_lotso_money(); }
else if (THEY_DIDNT_PAY == $foo) { infinite_loop(); }
else { happy_days_i_know_why_im_here(); }
現在不是變得更好了么?


7. PHP文件擴展名


常見的PHP文件的擴展名有:html, .php, .php3, .php4, .phtml, .inc, .class...
這里我們約定:

· 所有瀏覽者可見頁面使用.html
· 所有類、函數庫文件使用.php

理由

· 擴展名描述的是那種數據是用戶將會收到的。PHP是解釋為HTML的。


8. PHP代碼標記

統一使用<?php ?>,只輸出變量時<?=$username?>


溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 欧美婷婷精品激情| 日韩欧美亚洲天堂| 精品国产成人av在线免| 久久久久久久香蕉| 永久av免费在线观看| 日韩精品aaa| 超碰91在线播放| 久久久久久久久久一区二区| 中文字幕无码不卡免费视频| 波多野结衣家庭教师在线| 少妇人妻无码专区视频| 久激情内射婷内射蜜桃| 欧美污视频网站| 日韩无套无码精品| 三上悠亚在线一区二区| 日本高清一区二区视频| 美女黄色片网站| 丁香婷婷综合激情| 欧美日韩在线视频一区二区三区| 久久精品国产精品亚洲色婷婷| 无码人妻丰满熟妇区毛片18| www.夜夜爽| 黑人巨大国产9丨视频| 久久综合亚洲精品| 岳毛多又紧做起爽| 中文字幕第88页| 91免费版看片| 国产精品免费成人| 亚洲精品中文字幕乱码无线| 欧美黑人在线观看| 日韩有码免费视频| 91亚洲一区二区| 欧美亚洲精品一区二区| 污污动漫在线观看| 日本a视频在线观看| 性猛交ⅹ×××乱大交| 久久av综合网| 亚洲一级片av| 丰满少妇被猛烈进入高清播放| 成人亚洲精品777777大片| 国产在线拍揄自揄拍无码| 国产偷人视频免费| 三级网在线观看| 美女黄色片视频| 国产精彩视频一区二区| 91国内在线播放| 免费毛片小视频| 精品人妻人人做人人爽| 国产三级日本三级在线播放| 18禁裸男晨勃露j毛免费观看| 最新天堂在线视频| 中文字幕乱码人妻综合二区三区| 激情五月五月婷婷| 五月天婷婷亚洲| 亚洲成熟丰满熟妇高潮xxxxx| 国产av熟女一区二区三区| 一路向西2在线观看| 欧美日韩在线免费播放| 69堂免费视频| 狠狠干 狠狠操| 日韩a级黄色片| 青青草视频国产| 热久久最新网址| 300部国产真实乱| 女女百合国产免费网站| 欧美 国产 精品| 午夜啪啪免费视频| 欧美性受xxxx黒人xyx性爽| 在线不卡一区二区三区| 婷婷免费在线观看| 欧美成人三级在线播放| 99re精彩视频| 国内av一区二区| 99中文字幕在线| 中文字幕55页| 日本一级黄视频| 99久久国产综合精品五月天喷水| www.夜夜爱| 国产又黄又大又粗视频| 亚洲成人福利在线观看| 日韩欧美亚洲另类| 免费久久久久久| www.av91| 日本三级免费观看| 最新免费av网址| 欧美三级午夜理伦三级老人| 久久99久久99精品| 国产精品wwwww| 手机免费看av网站| 国产情侣第一页| 久热免费在线观看| 中文字幕制服丝袜在线| 给我免费播放片在线观看| jizz欧美激情18| 日本道在线视频| 激情五月亚洲色图| 大陆极品少妇内射aaaaaa| 午夜精品久久久内射近拍高清| 中文字幕资源在线观看| 久久艹国产精品| 久久久久久久久久一区二区| 国产内射老熟女aaaa| 国产av人人夜夜澡人人爽| 日韩欧美一级在线| 亚洲 欧美 另类人妖| 国产免费黄色一级片| 黄色永久免费网站| 男女视频网站在线观看| 手机在线免费毛片| caopor在线视频| 欧美大黑帍在线播放| 午夜精品免费看| 亚洲免费av一区二区三区| www.日本在线视频| 亚洲天堂国产视频| 久章草在线视频| 国产中文字幕二区| 亚洲av首页在线| wwwwwxxxx日本| 成人中文字幕av| 女性女同性aⅴ免费观女性恋| 丰满人妻一区二区三区53号| 手机在线国产视频| 污版视频在线观看| 91视频免费版污| www.亚洲天堂网| 爱福利视频一区二区| 91九色丨porny丨国产jk| 黄色特一级视频| 黄色网络在线观看| youjizz.com亚洲| 国产一级片自拍| 中文字幕色网站| www.桃色.com| 黄瓜视频免费观看在线观看www | 精品视频无码一区二区三区| 亚洲理论电影在线观看| 男人草女人视频| 黄色一级片av| 可以看毛片的网址| 人妻夜夜添夜夜无码av| www..com日韩| 黄色片视频在线播放| 国产aaaaa毛片| 亚洲色图欧美自拍| 国产日韩第一页| 日韩精品在线中文字幕| 少妇无码av无码专区在线观看| 男人日女人视频网站| 日韩欧美国产免费| www.四虎成人| 日本黄大片一区二区三区| 91亚洲一区二区| www.国产二区| 欧美日韩在线成人| 天堂在线中文在线| 国产 国语对白 露脸| 男人添女人下部高潮视频在观看| 久草精品在线播放| 天堂在线一区二区三区| 日本一区午夜艳熟免费| 免费在线观看毛片网站| 欧美 日韩 国产 在线观看| 成年女人18级毛片毛片免费| 国产精品97在线| 一级片黄色免费| 无码播放一区二区三区| 色婷婷激情视频| 无码aⅴ精品一区二区三区浪潮| 天天干天天草天天| 久草免费福利在线| 亚洲精品mv在线观看| 久久国产精品视频在线观看| 天美一区二区三区| 免费无码av片在线观看| 手机在线免费毛片| 国产日产欧美视频| 中文字幕超清在线免费观看| 黑人糟蹋人妻hd中文字幕| 国产四区在线观看| 一区二区三区 日韩| 大陆极品少妇内射aaaaa| 亚洲区成人777777精品| 制服丝袜综合网| 免费午夜视频在线观看| 日韩精品在线中文字幕| 欧美aaa在线观看| 黄色免费网址大全| 无码人妻丰满熟妇区毛片18| 日韩一级性生活片| 五月天激情图片| 日日干日日操日日射| 中文字幕一区二区三区四区在线视频| 精品人妻大屁股白浆无码| 丰满女人性猛交| 亚洲 欧洲 日韩| 成人免费黄色av| 看一级黄色录像| 777久久精品一区二区三区无码| 在线播放免费视频|