久草资源网-久草资源网站-久草资源在线-久草资源在线播放-天天艹天天艹-天天艹夜夜

蒙狼科技logo
設為首頁| 聯系我們
咨詢熱線: 13917498722
  您的位置: 首頁 > 網站資訊 > 函數要多小才夠好——談小函數之道

函數要多小才夠好——談小函數之道

發布日期:2017/6/17

百度權重查詢 站長交易 友情鏈接交換 網站監控 服務器監控 seo監控

“設計的函數往往比較小,而過大函數的設計往往烏煙瘴氣,或者存在很大的優化空間。”

也許你認為討論函數的大小沒有需要,原因是函數設計的本質是內聚,它的大小只是它的體現形式。而上面的原因有需要讓我們討論一下函數的大小問題。

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

好小數目沒有限制,即便是只有1個,也有存在的需要。

在下面的情況下我會將函數拆分為更小的函數:

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

假如函數過長,無法一眼看到一個函數所有的代碼,我會毫不猶豫的拆分。我不想讓讀者去翻屏,也不想讓讀者前顧后盼,顧此失彼。漂亮的函數應該讓讀者一眼就知道他在做什么以及怎么做的。

2、局部變量過多。

假如局部變量超過七個,我會考慮拆分函數。變量過多意味著我要記錄太多的狀況,這會加重我大腦的負擔,同時要考慮太多的東西。這也同時意味著我可能沒有對函數功能進行深入的思考。

3、太多的縮進。

太多的縮進意味著太多的嵌套,要么是循環,要么是判斷,都會導致復雜的邏輯。

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

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

5、不處于統一抽象條理。

舉例,有一個初始化函數,需要初始化配置數據,套接字,數據庫連接,通道狀況。

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;

……

}

}

上個函數中對所有通道的初始化一塊代碼就和其他的不處于一個抽象條理,我們應該將它封裝起來:

void chn_init()

{

int i = 0;

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

G_user_chn[i].status =status_init;

……

}

}

函數好小可以有多小,它存在的意義

我見過的好優異的函數:

int max(int a, intb)

{

return a> b?a:b;

}

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

小函數的好大障礙:性能

對于程序員新手,小函數的好大障礙在于沒有經驗體味不到小函數的優勢,沒有經驗拆分大函數為更小的函數。

對于有一定經驗的程序員,小函數的好大障礙也許是對性能的憂慮。

對于性能,切記,不要過早優化。我們一般認為的程序的,一般并不是程序的:我們需要工具來確定真正的所在,20%的代碼耗費了80%的性能,優化之前首先要找到那20%的代碼。函數調用會產生資源和性能的損耗,但是這是不是程序的性能?消費的性能占總體的性能百分比為多少?這一切在代碼編寫時并不清楚,所以,我的觀點是寧可選擇簡短的函數來獲得清晰簡單的設計,以便在項目后期能夠更快,更好的進行性能優化。

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

關于函數調用產生的性能消費,我會抽時間測試一下,看到底占用多少。

好后的建議:

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

文章來源:常高偉的博客





其他相關文章
  • B2B類行業門戶網站網頁設計要素
  • 網絡銷售的十大技巧
  • 網站建設中常見問題的幾個誤區
  • 網絡推廣的目的
  • 網站建設后的轉讓問題
  • 做網站優化,代碼優化怎么做?




  • 企業網站后臺使用
    購物網站后臺使用
    網站產品圖片的處理



    農業銀行支付
    建設銀行支付
    郵政儲蓄銀行支付



    企業網站建設
    整站建設
    購物網站



    企業網站建設建議
    注冊適合自己的域名
    什么是虛擬主機




    售前咨詢QQ: 838821345
    售后服務QQ: 464698733
    應急手機:13917498722


    微信掃一掃
    添加24小時微信客服


    郵箱:lang@MENGL.CN
    地址:上海寶山區城銀路555弄2號樓3樓
    ICP備案:滬ICP備12042844號-3
     滬公網安備:31011402002917號
    做網站 | 企業網站建設 | 上海做網站 | 企業網站制作 | 做網站的公司 | 關于蒙狼 | 整站建設 | 購物網站 | 企業網絡營銷 | 成功案例 | 加盟代理 | 在線訂單
    服務區域: 臨港新區做網站 徐匯做網站 閔行做網站 長寧做網站 虹口做網站 黃浦做網站 盧灣做網站 靜安做網站 浦東做網站 楊浦做網站 普陀做網站 閘北做網站 寶山做網站 嘉定做網站 松江做網站 昆山做網站
    Copyright 2012-2025 上海蒙狼網絡科技有限公司 www.jnjiaoyu.cn All Rights Reserved
    99久久网站| 精品国产一区二区三区久| 日本免费乱理伦片在线观看2018| 国产成人精品综合在线| 久久国产一久久高清| 深夜做爰性大片中文| 日本伦理片网站| 亚洲第一色在线| 亚洲第一色在线| 国产麻豆精品| 免费一级片在线观看| 国产成a人片在线观看视频| 欧美国产日韩在线| 99久久精品国产国产毛片| 欧美爱爱网| 黄色短视频网站| 免费一级片在线| 日日日夜夜操| 欧美a级大片| 免费毛片播放| 青青青草视频在线观看| 日韩免费片| 日韩免费在线视频| 亚欧视频在线| 亚洲精品中文字幕久久久久久| 青青久久国产成人免费网站| a级黄色毛片免费播放视频| 国产成人精品影视| 一本伊大人香蕉高清在线观看| 精品国产三级a∨在线观看| 日韩在线观看视频网站| 日韩在线观看免费| 美女免费黄网站| 日本特黄特黄aaaaa大片| 国产91精品系列在线观看| 一级女性全黄久久生活片| 国产91素人搭讪系列天堂| 日韩av成人| 香蕉视频一级| 二级片在线观看| 日本特黄特黄aaaaa大片| 午夜家庭影院| 免费国产在线观看| 国产国语在线播放视频| 日韩中文字幕一区二区不卡| 国产网站在线| 高清一级做a爱过程不卡视频| 国产福利免费视频| 一a一级片| 四虎影视久久| 黄视频网站免费观看| 欧美爱爱网| 999久久狠狠免费精品| 国产亚洲精品成人a在线| 日韩一级黄色| 亚洲 欧美 91| 精品国产亚一区二区三区| 国产伦精品一区二区三区在线观看| 青青青草影院| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产91精品露脸国语对白| 国产美女在线一区二区三区| 九九免费高清在线观看视频| 久久国产精品永久免费网站| 亚洲 欧美 91| 国产一区二区精品久久91| 欧美激情一区二区三区在线播放| 成人a大片在线观看| 免费国产在线视频| 欧美α片无限看在线观看免费| 国产成人欧美一区二区三区的| 国产极品白嫩美女在线观看看| 精品视频免费看| 毛片成人永久免费视频| 九九免费高清在线观看视频| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 九九精品久久| 九九热国产视频| 91麻豆精品国产综合久久久| 欧美日本二区| 欧美大片毛片aaa免费看| 黄视频网站在线看| 日韩专区一区| 99久久精品国产国产毛片| 欧美a级片视频| 国产不卡在线播放| 青青久久国产成人免费网站| 久久精品人人做人人爽97| 九九免费高清在线观看视频| 精品国产三级a∨在线观看| 四虎影视精品永久免费网站 | 色综合久久手机在线| 国产网站免费| 成人免费网站久久久| 999久久久免费精品国产牛牛| 日本在线不卡视频| 四虎久久影院| 欧美激情一区二区三区视频| 国产韩国精品一区二区三区| 国产一区二区精品久久91| 欧美激情一区二区三区中文字幕| 精品国产三级a∨在线观看| 国产成a人片在线观看视频| 天天做人人爱夜夜爽2020毛片| 日本免费乱人伦在线观看| 中文字幕97| 午夜激情视频在线播放| 美女免费精品视频在线观看| 99久久精品国产片| 夜夜操天天爽| 国产激情视频在线观看| 一级女人毛片人一女人| 一级女性全黄生活片免费| 美国一区二区三区| 99热热久久| 免费国产一级特黄aa大片在线| 九九免费精品视频| 美女免费毛片| 日韩欧美一及在线播放| 国产伦精品一区二区三区无广告| 精品国产香蕉在线播出| 国产一区二区精品| 免费毛片播放| 国产不卡高清| 日韩av东京社区男人的天堂| 你懂的福利视频| 四虎影视库| 999久久66久6只有精品| 一本高清在线| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 99久久网站| 国产不卡在线看| 亚洲第一页色| 日韩在线观看视频网站| 99色视频| 国产一区二区精品在线观看| 午夜在线亚洲| 国产91精品一区二区| 九九免费高清在线观看视频| 亚洲www美色| 国产高清在线精品一区a| 亚洲精品中文字幕久久久久久| 久久精品道一区二区三区| 91麻豆国产级在线| 韩国三级视频网站| 国产视频一区二区在线观看| 欧美激情一区二区三区视频| 在线观看导航| 天天色色色| 久久国产一区二区| 中文字幕一区二区三区精彩视频 | 亚洲 男人 天堂| 国产成人精品影视| 亚欧乱色一区二区三区| 黄视频网站免费看| 国产综合成人观看在线| 天天做人人爱夜夜爽2020毛片| 国产综合91天堂亚洲国产| 亚洲www美色| 日韩在线观看视频黄| 亚欧视频在线| 天天做人人爱夜夜爽2020| 免费国产在线观看| 亚洲天堂一区二区三区四区| 国产国产人免费视频成69堂| 国产一区二区精品久久91| 天天色色色| 一级毛片看真人在线视频| 国产视频在线免费观看| 91麻豆高清国产在线播放| 香蕉视频三级| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 99久久精品国产片| 久久99中文字幕| 青青久久精品| 成人高清视频在线观看| 日本免费看视频| 国产综合成人观看在线| 精品国产一区二区三区久 | 精品久久久久久影院免费| 黄视频网站在线看| 香蕉视频久久| 99色视频| 国产一级生活片| 日日夜夜婷婷| 99久久精品国产片| 天天色色色| 国产伦精品一区二区三区无广告| 成人a大片在线观看| 国产网站免费观看| 一本高清在线| 欧美日本韩国| 国产高清在线精品一区a| 精品视频在线观看一区二区| 欧美大片a一级毛片视频| 高清一级做a爱过程不卡视频| 欧美a级片视频| 精品视频在线观看免费| 久久国产一久久高清| 99色精品|