我們專(zhuān)注於高端品牌網(wǎng)站創(chuàng)意設(shè)計(jì)與開(kāi)發(fā)
源碼是什麼?我們可以把它理解成源文代碼,就拿我們當(dāng)前看到的這個(gè)網(wǎng)頁(yè)來(lái)說(shuō)吧,其實(shí)它是由一大堆的原始碼組成,通過(guò)我們的IE(Microsoft Internet Explorer)瀏覽器(或伺服器)翻譯成現(xiàn)在我們所看到的這個(gè)樣子。
網(wǎng)站源碼也分為兩(liǎng)種,一種是動(dòng)態(tài)源碼如:ASP,PHP,JSP,.NET,CGI等,一種是靜態(tài)源碼如:HTML等。
什麼是動(dòng)態(tài)源碼呢?最大的特點(diǎn)就是能夠和用戶(hù)之間互動(dòng)。比如說(shuō)網(wǎng)易的信箱,張三登陸的時(shí)候,會(huì)看到歡迎光臨張三,李四又登陸了,李四又看到歡迎光臨李四,其實(shí)他們兩(liǎng)個(gè)人登陸的是一個(gè)頁(yè)面,這個(gè)就是動(dòng)態(tài)源碼的好處,如果要是用靜態(tài)源碼,好像網(wǎng)易有幾百萬(wàn)的郵箱用戶(hù),每個(gè)人做一個(gè)頁(yè)面那要多少頁(yè)啊?動(dòng)態(tài)源碼不單單只有這麼一點(diǎn)用處,比如說(shuō)我們常見(jiàn)的一些論壇、留言本、計(jì)數(shù)器、聊天室等,都是由動(dòng)態(tài)源碼開(kāi)發(fā)的。動(dòng)態(tài)源碼最大的特點(diǎn)就是有資料庫(kù),比如ACCESS,SQL,MYSQL,等!此類(lèi)網(wǎng)站源碼的特點(diǎn)就是擁有後臺(tái)管理,此類(lèi)網(wǎng)站源碼相對(duì)靜態(tài)源碼來(lái)說(shuō)不容易被搜尋引擎收錄!
什麼是靜態(tài)源碼呢,比如說(shuō)我們當(dāng)前看到的這個(gè)網(wǎng)頁(yè)他就是靜態(tài)的源碼,靜態(tài)源碼無(wú)法實(shí)現(xiàn)以上的那些功能。沒有後臺(tái),但容易被搜尋引擎收錄
那麼什麼樣的原始碼才是好的原始碼呢?
一篇好的代碼,就如同一篇好的文章,結(jié)構(gòu)合理,重點(diǎn)清晰,通俗易懂。積累了足夠多的編碼經(jīng)驗(yàn),在完成功能之餘,自然會(huì)追求自己的代碼更「好看」一些,接下來(lái)就談談我對(duì)於「好代碼」的理解。
1、遵循規(guī)範
沒有規(guī)矩,不成方圓,遵循編碼規(guī)範,是最基本的素養(yǎng)。在公司,一般都會(huì)有公司規(guī)定的若干規(guī)範,在編碼時(shí),時(shí)刻提醒要遵循這些規(guī)範,命名規(guī)則、縮進(jìn)規(guī)則、換(huàn)行規(guī)則……團(tuán)隊(duì)不分大小,哪怕是個(gè)人獨(dú)立項(xiàng)目,風(fēng)格統(tǒng)一的代碼,是確保代碼可讀性的前提。
如果實(shí)在不知道應(yīng)該遵循怎樣的編碼規(guī)範,不妨找找看語言官方是否有推薦的規(guī)範說(shuō)明,比如C#,微軟官方就提供了一套編碼規(guī)範。或者,我們可以找某個(gè)大公司的編碼規(guī)範,這些規(guī)範一般都是經(jīng)過(guò)了實(shí)際項(xiàng)目實(shí)踐過(guò)的,可以放心使用。
養(yǎng)成了習(xí)慣之後,代碼就如同學(xué)生時(shí)代寫(xiě)作文那樣,無(wú)論內(nèi)容好壞,首先「卷面分」是能拿到的。
2、有意義的命名
為你的類(lèi)、方法、變量選擇有意義的命名,相信我,這非常重要,好的代碼應(yīng)該是「自解釋」的,不僅可以提高代碼可讀性,也提高了可維護(hù)性。假如,僅僅半年後再讀自己的代碼時(shí),看著滿(mǎn)篇莫名其妙的名稱(chēng),連代碼要實(shí)現(xiàn)什麼業(yè)務(wù)邏輯都想不起來(lái)了,能做的就只有懷疑人生了吧。
* 類(lèi)的命名,應(yīng)該體現(xiàn)出「是什麼」。比如一個(gè)提供文件讀寫(xiě)功能的類(lèi),叫做 FileAccessor 就比 FileHelper 好一些,當(dāng)然或許分解成 FileWriter 和 FileReader 更適合,但這要視需求而定。
* 方法的命名,應(yīng)該體現(xiàn)出「做什麼」,描述這個(gè)方法實(shí)際做了什麼處理。比如我們有一個(gè)根據(jù)名稱(chēng)排序的方法,那麼叫做 SortByName 就比簡(jiǎn)單的 Sort 擁有更好的可讀性。
* 變量的命名,如同類(lèi),也應(yīng)該體現(xiàn)「是什麼」。比如一個(gè)保存文件完整路徑的變量,叫做 a 的話(huà),簡(jiǎn)直是反人類(lèi),叫做 f 好歹能讓我猜想這是個(gè)有關(guān) file 的變量,如果叫做 filePath 我給90分,如果是 fileFullPath 我就給滿(mǎn)分。
3、足夠短的方法體
一旦一個(gè)方法寫(xiě)得太長(zhǎng),勢(shì)必堆積了大量的邏輯,一旦涉及到很多嵌套或者邏輯分支,不說(shuō)將來(lái)的維護(hù)難度,就是當(dāng)下,很容易就把自己也繞懵了吧。
所以一旦法相一個(gè)方法體過(guò)長(zhǎng),就應(yīng)該考慮是否需要把一個(gè)完整的邏輯段提取成一個(gè)獨(dú)立私有方法了,這樣以來(lái),不僅縮短了單個(gè)方法的長(zhǎng)度,讓邏輯更加清晰,也可以有效的降低風(fēng)險(xiǎn),因為簡(jiǎn)短代碼的邏輯複雜度勢(shì)必降低,開(kāi)發(fā)人員更容易把握住。
至於「過(guò)長(zhǎng)」是多長(zhǎng)呢?根據(jù)個(gè)人經(jīng)驗(yàn),25行就值得引起注意了,50行基本就是可忍受的上限了,除非及特殊情況,否則儘量不要超過(guò)這個(gè)上限。曾經(jīng)維護(hù)過(guò)單個(gè)方法2000多行的人瑟瑟發(fā)抖,往事不堪回首。
4、無(wú)歧義的行為
具有隱含行為的方法,危害極大。一個(gè)方法,儘量只做一個(gè)事情,不要做額外的事,否則很容易帶來(lái)意想不到的風(fēng)險(xiǎn)。
舉個(gè)例子,我自己寫(xiě)過(guò)的一個(gè)方法。基本數(shù)據(jù)結(jié)構(gòu)類(lèi)似堆棧,每次從集合中取出一個(gè)對(duì)象之後,將這個(gè)對(duì)象移出集合。但是我的方法名稱(chēng)是 GetXXX,結(jié)果就是發(fā)現(xiàn)每次取一個(gè)對(duì)象之後,集合莫名其妙(其實(shí)業(yè)務(wù)就是這樣沒錯,但是我不記得這回事兒了)地就會(huì)變短,導(dǎo)致後續(xù)的處理一塌糊塗。對(duì)策有兩(liǎng)種,一是把對(duì)象移出集合的邏輯拿到 GetXXX 的調(diào)用處來(lái)做,這樣移除動(dòng)作就是顯示可見(jiàn)的了;或者把方法名改成 PopXXX 或者 GetAndRemoveXXX (醜了點(diǎn),但好歹看得懂),這樣以來(lái),至少我們的行為與名稱(chēng)是一致的,消除了歧義。
文章引用:http://www.szymweb.com/new/1055.html
本站文章為深圳網(wǎng)站建設(shè)·源美網(wǎng)絡(luò)原創(chuàng)策劃(huà),如有版權(quán)糾紛或者違規(guī)問(wèn)題,請聯(lián)繫我們刪除,謝謝!
售後保障
承諾任何問(wèn)題1小時(shí)內(nèi)解決數(shù)據(jù)備份
更安全、更高效、更穩(wěn)定價(jià)格公道精準(zhǔn)
項(xiàng)目經(jīng)理精準(zhǔn)報(bào)價(jià)不弄虛作假合作無(wú)風(fēng)險(xiǎn)
重合同講信譽(yù),無(wú)效全額退款