三区在线视频_99免费观看_2021国产成人午夜精品_亚洲国产一区二区三区精品

蒙狼科技logo
設(shè)為首頁(yè)| 聯(lián)系我們
咨詢熱線: 13917498722
  您的位置: 首頁(yè) > 網(wǎng)站資訊 > 函數(shù)要多小才夠好——談小函數(shù)之道

函數(shù)要多小才夠好——談小函數(shù)之道

發(fā)布日期:2017/6/17

百度權(quán)重查詢 站長(zhǎng)交易 友情鏈接交換 網(wǎng)站監(jiān)控 服務(wù)器監(jiān)控 seo監(jiān)控

“設(shè)計(jì)的函數(shù)往往比較小,而過大函數(shù)的設(shè)計(jì)往往烏煙瘴氣,或者存在很大的優(yōu)化空間。”

也許你認(rèn)為討論函數(shù)的大小沒有需要,原因是函數(shù)設(shè)計(jì)的本質(zhì)是內(nèi)聚,它的大小只是它的體現(xiàn)形式。而上面的原因有需要讓我們討論一下函數(shù)的大小問題。

我對(duì)函數(shù)的核心思路:我提出代碼好小處理單元的概念:一個(gè)基本操作(賦值,比較等),一個(gè)函數(shù)調(diào)用(包括調(diào)用后判斷返回值進(jìn)行判斷)都看成一個(gè)好小處理單元。那么,一個(gè)函數(shù),好小處理單元合理的個(gè)數(shù)范圍在7以內(nèi)。假如超過了7,你就要考慮把他們拆分成多個(gè)函數(shù)了(為什么是7?人同時(shí)能夠處理的信息不超過7個(gè))。

好小數(shù)目沒有限制,即便是只有1個(gè),也有存在的需要。

在下面的情況下我會(huì)將函數(shù)拆分為更小的函數(shù):

1、一眼不能夠看到函數(shù)所有的代碼。

假如函數(shù)過長(zhǎng),無(wú)法一眼看到一個(gè)函數(shù)所有的代碼,我會(huì)毫不猶豫的拆分。我不想讓讀者去翻屏,也不想讓讀者前顧后盼,顧此失彼。漂亮的函數(shù)應(yīng)該讓讀者一眼就知道他在做什么以及怎么做的。

2、局部變量過多。

假如局部變量超過七個(gè),我會(huì)考慮拆分函數(shù)。變量過多意味著我要記錄太多的狀況,這會(huì)加重我大腦的負(fù)擔(dān),同時(shí)要考慮太多的東西。這也同時(shí)意味著我可能沒有對(duì)函數(shù)功能進(jìn)行深入的思考。

3、太多的縮進(jìn)。

太多的縮進(jìn)意味著太多的嵌套,要么是循環(huán),要么是判斷,都會(huì)導(dǎo)致復(fù)雜的邏輯。

4、假如你在使用ctrl+c和ctrl+v

那你寫的代碼不夠拽(DRY,Don’t Repeat Yourself)。這個(gè)時(shí)候,你要把你復(fù)制的部分拆分為新的函數(shù)。

5、不處于統(tǒng)一抽象條理。

舉例,有一個(gè)初始化函數(shù),需要初始化配置數(shù)據(jù),套接字,數(shù)據(jù)庫(kù)連接,通道狀況。

void init()

{

Config_init();

Socket_init();

Db_init();

int i = 0;

For (i = 0;i < max_chn_num;i++)//初始化所有通道 {

G_user_chn[i].status = status_init;

……

}

}

上個(gè)函數(shù)中對(duì)所有通道的初始化一塊代碼就和其他的不處于一個(gè)抽象條理,我們應(yīng)該將它封裝起來(lái):

void chn_init()

{

int i = 0;

for (i = 0;i < max_chn_num;i++)//初始化所有通道 {

G_user_chn[i].status =status_init;

……

}

}

函數(shù)好小可以有多小,它存在的意義

我見過的好優(yōu)異的函數(shù):

int max(int a, intb)

{

return a> b?a:b;

}

這個(gè)函數(shù)很小,只有一行,但是他存在的意義在于:在函數(shù)的調(diào)用點(diǎn),我們一眼就知道是獲取a和b中的好大值,而不是分析a > b?a:b的邏輯。這樣可以節(jié)省程序員的腦力成本,從而達(dá)到一個(gè)目的:漂亮的函數(shù)應(yīng)該讓讀者一眼就知道他在做什么以及怎么做的。

小函數(shù)的好大障礙:性能

對(duì)于程序員新手,小函數(shù)的好大障礙在于沒有經(jīng)驗(yàn)體味不到小函數(shù)的優(yōu)勢(shì),沒有經(jīng)驗(yàn)拆分大函數(shù)為更小的函數(shù)。

對(duì)于有一定經(jīng)驗(yàn)的程序員,小函數(shù)的好大障礙也許是對(duì)性能的憂慮。

對(duì)于性能,切記,不要過早優(yōu)化。我們一般認(rèn)為的程序的,一般并不是程序的:我們需要工具來(lái)確定真正的所在,20%的代碼耗費(fèi)了80%的性能,優(yōu)化之前首先要找到那20%的代碼。函數(shù)調(diào)用會(huì)產(chǎn)生資源和性能的損耗,但是這是不是程序的性能?消費(fèi)的性能占總體的性能百分比為多少?這一切在代碼編寫時(shí)并不清楚,所以,我的觀點(diǎn)是寧可選擇簡(jiǎn)短的函數(shù)來(lái)獲得清晰簡(jiǎn)單的設(shè)計(jì),以便在項(xiàng)目后期能夠更快,更好的進(jìn)行性能優(yōu)化。

許多人都在質(zhì)疑我上面列舉的max函數(shù)的實(shí)例,假如說他在運(yùn)行期間調(diào)用次數(shù)不大,則對(duì)性能的影響基本可以忽略,而獲得的可讀性,清晰性這極具價(jià)值;反過來(lái),假如他的調(diào)用次數(shù)是否重大,以致成為了性能的,則完全可以在程序編寫完成后,很快的用其他的方法優(yōu)化。程序的不會(huì)許多。

關(guān)于函數(shù)調(diào)用產(chǎn)生的性能消費(fèi),我會(huì)抽時(shí)間測(cè)試一下,看到底占用多少。

好后的建議:

在對(duì)新員工培訓(xùn)的過程中,發(fā)現(xiàn)程序員新手一般對(duì)函數(shù)的大小不夠敏感。所以,我建議你可以多嘗試編寫10行左右(甚至更小)的函數(shù),慢慢你會(huì)發(fā)現(xiàn)小函數(shù)原來(lái)具有大威力。

文章來(lái)源:常高偉的博客





其他相關(guān)文章
  • B2B類行業(yè)門戶網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)要素
  • 網(wǎng)絡(luò)銷售的十大技巧
  • 網(wǎng)站建設(shè)中常見問題的幾個(gè)誤區(qū)
  • 網(wǎng)絡(luò)推廣的目的
  • 網(wǎng)站建設(shè)后的轉(zhuǎn)讓問題
  • 做網(wǎng)站優(yōu)化,代碼優(yōu)化怎么做?




  • 企業(yè)網(wǎng)站后臺(tái)使用
    購(gòu)物網(wǎng)站后臺(tái)使用
    網(wǎng)站產(chǎn)品圖片的處理



    農(nóng)業(yè)銀行支付
    建設(shè)銀行支付
    郵政儲(chǔ)蓄銀行支付



    企業(yè)網(wǎng)站建設(shè)
    整站建設(shè)
    購(gòu)物網(wǎng)站



    企業(yè)網(wǎng)站建設(shè)建議
    注冊(cè)適合自己的域名
    什么是虛擬主機(jī)




    售前咨詢QQ: 838821345
    售后服務(wù)QQ: 464698733
    應(yīng)急手機(jī):13917498722


    微信掃一掃
    添加24小時(shí)微信客服


    郵箱:lang@MENGL.CN
    地址:上海寶山區(qū)城銀路555弄2號(hào)樓3樓
    ICP備案:滬ICP備12042844號(hào)-3
     滬公網(wǎng)安備:31011402002917號(hào)
    做網(wǎng)站 | 企業(yè)網(wǎng)站建設(shè) | 上海做網(wǎng)站 | 企業(yè)網(wǎng)站制作 | 做網(wǎng)站的公司 | 關(guān)于蒙狼 | 整站建設(shè) | 購(gòu)物網(wǎng)站 | 企業(yè)網(wǎng)絡(luò)營(yíng)銷 | 成功案例 | 加盟代理 | 在線訂單
    服務(wù)區(qū)域: 臨港新區(qū)做網(wǎng)站 徐匯做網(wǎng)站 閔行做網(wǎng)站 長(zhǎng)寧做網(wǎng)站 虹口做網(wǎng)站 黃浦做網(wǎng)站 盧灣做網(wǎng)站 靜安做網(wǎng)站 浦東做網(wǎng)站 楊浦做網(wǎng)站 普陀做網(wǎng)站 閘北做網(wǎng)站 寶山做網(wǎng)站 嘉定做網(wǎng)站 松江做網(wǎng)站 昆山做網(wǎng)站
    Copyright 2012-2025 上海蒙狼網(wǎng)絡(luò)科技有限公司 www.chaojifanwen.com All Rights Reserved
    三区在线视频_99免费观看_2021国产成人午夜精品_亚洲国产一区二区三区精品

            精品日韩99亚洲| 久久精品国产一区二区| 欧美午夜一区二区三区| 国产精品77777| 日韩av不卡一区二区| 亚洲国产精品一区二区尤物区| 中文字幕视频一区| 国产精品网友自拍| 欧美激情一区在线观看| 日本一区二区三区在线观看| 国产亚洲欧美日韩俺去了| 久久久久久久久一| 中日韩免费视频中文字幕| 国产日韩av一区| 中文字幕亚洲区| 一区二区三区在线免费| 亚洲一区二区精品视频| 日韩av午夜在线观看| 狠狠色丁香婷综合久久| 国产激情91久久精品导航 | 丝袜美腿亚洲综合| 毛片不卡一区二区| 国产一区在线不卡| 成人国产亚洲欧美成人综合网| 91小视频免费观看| 在线不卡中文字幕播放| 亚洲精品一区二区三区精华液| 国产亚洲美州欧州综合国| 亚洲视频一区二区在线| 亚洲成人av中文| 韩国精品主播一区二区在线观看| 丁香婷婷综合激情五月色| 色噜噜偷拍精品综合在线| 欧美久久久久久久久中文字幕| 日韩欧美在线不卡| 1区2区3区国产精品| 日韩1区2区日韩1区2区| 国产另类ts人妖一区二区| 日本高清不卡一区| 精品少妇一区二区| 一区二区三区四区国产精品| 精品夜夜嗨av一区二区三区| 91麻豆成人久久精品二区三区| 欧美一区二视频| 中文字幕亚洲视频| 精品一区二区日韩| 欧美日韩精品是欧美日韩精品| 国产亚洲一区二区三区在线观看| 亚洲一区二区欧美| 高潮精品一区videoshd| 在线成人小视频| 亚洲欧洲精品成人久久奇米网| 日本不卡一区二区三区| 一本色道亚洲精品aⅴ| 久久精品人人爽人人爽| 日本亚洲三级在线| 欧美亚洲动漫另类| 中文一区二区在线观看| 精品一区二区三区在线观看| 色吧成人激情小说| 国产精品视频一二| 激情综合五月婷婷| 欧美电影一区二区三区| 亚洲在线一区二区三区| 国产成人av电影在线播放| 日韩精品资源二区在线| 亚洲图片有声小说| 91福利在线播放| 美国毛片一区二区| 在线亚洲欧美专区二区| 中文字幕在线不卡国产视频| 国产精品一区二区久久不卡| 日韩亚洲欧美综合| 视频一区二区国产| 欧美日韩成人激情| 一区二区三区四区av| 99久久精品国产毛片| 欧美韩日一区二区三区| 国产剧情一区二区| 久久精品视频一区| 丰满少妇在线播放bd日韩电影| 精品国产一区二区精华| 精品在线免费视频| 久久亚洲二区三区| 国产成人免费xxxxxxxx| 欧美国产视频在线| www.亚洲国产| 中文字幕亚洲一区二区va在线| 成av人片一区二区| 亚洲天堂网中文字| 在线观看免费一区| 午夜精品免费在线观看| 91精品国产综合久久精品| 日韩精品电影在线观看| 欧美一级二级在线观看| 九一九一国产精品| 国产视频视频一区| 色综合天天综合在线视频| 亚洲男女毛片无遮挡| 欧美日韩欧美一区二区| 免费成人小视频| 久久尤物电影视频在线观看| 国产99久久久国产精品免费看| 国产精品天美传媒沈樵| 欧美亚洲国产一区在线观看网站| 午夜激情一区二区三区| 欧美成人官网二区| 国产suv一区二区三区88区| 亚洲欧美一区二区三区久本道91| 色噜噜狠狠成人网p站| 日韩av在线发布| 欧美极品少妇xxxxⅹ高跟鞋 | 激情深爱一区二区| 日本一区二区综合亚洲| 色婷婷精品久久二区二区蜜臀av | 色狠狠桃花综合| 日韩高清不卡一区| 久久久国产一区二区三区四区小说| 不卡视频一二三四| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美激情综合五月色丁香小说| 在线看国产一区二区| 精品综合久久久久久8888| 亚洲精品少妇30p| 精品国产乱子伦一区| 日本乱人伦一区| 国产精品中文字幕欧美| 午夜精品福利视频网站| 国产亚洲精品中文字幕| 欧美美女视频在线观看| 99久久久久免费精品国产| 麻豆国产91在线播放| 亚洲一区二区三区小说| 中文字幕第一区二区| 欧美一级高清片| 欧美色综合网站| 国产不卡在线播放| 久久成人免费网| 亚洲一区二区欧美日韩| 日本一区二区高清| 精品久久久久久久久久久院品网| 99久久精品国产观看| 精品一区二区影视| 视频一区视频二区中文字幕| 综合久久久久久久| 国产拍欧美日韩视频二区| 日韩一卡二卡三卡四卡| 欧美日韩高清在线| 一本色道久久综合精品竹菊 | 亚洲v中文字幕| 日本不卡免费在线视频| 欧美成人一区二区三区在线观看 | 日韩精品一区二区三区老鸭窝| 色香蕉成人二区免费| 国产精品99久久久久久久vr| 日韩国产在线观看一区| 亚洲图片有声小说| 一区二区国产视频| 日韩毛片精品高清免费| 国产精品热久久久久夜色精品三区 | 1024亚洲合集| 国产精品美女一区二区三区| www亚洲一区| 91精品国产91久久久久久最新毛片| 在线免费观看不卡av| 91网站在线播放| 色久综合一二码| 色呦呦一区二区三区| 91福利精品视频| 欧美在线免费观看亚洲| 欧美日韩在线免费视频| 欧美久久久久久久久中文字幕| 在线观看亚洲成人| 欧美日韩一区二区三区四区| 欧美色成人综合| 欧美日韩一区在线| 欧美日韩精品一区二区| 欧美一卡二卡三卡四卡| 亚洲精品在线观看网站| 精品久久久久久久久久久久久久久久久 | 亚洲精品在线电影| 欧美精品一区二区不卡| 国产日产亚洲精品系列| 中文字幕视频一区| 亚洲综合精品自拍| 日韩电影在线免费| 国产一区二区视频在线播放| 国产高清在线观看免费不卡| 99久久久国产精品| 欧美日韩一级片网站| 日韩视频在线永久播放| 久久综合视频网| 国产精品国产自产拍高清av| 亚洲美女偷拍久久| 日本欧美肥老太交大片| 国产成人精品影视| 欧美色爱综合网| 精品国产1区二区| 51午夜精品国产| 国产人成亚洲第一网站在线播放 |