成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一個函數超過1000行,可以不?

開發 前端
們平時看到的“一個函數的代碼盡量不要超過50行”,它其實是相對代碼結構化、模塊化而言的,有很多情況,代碼也會超過50行,甚至上千行。

[[404329]]

本文轉載自微信公眾號「strongerHuang」,作者strongerHuang。轉載本文請聯系strongerHuang公眾號。

“一個函數的代碼盡量不要超過50行”

有些讀者可能看到過類似這樣的描述,而自己做項目時,很多函數都比較多(超過50行),就會懷疑自己這樣寫是不是不對?

那么,一個函數究竟能不能超過50行呢?今天就來討論下關于函數代碼行數相關的內容。

1關于代碼行數多少的問題

一個函數多少行代碼合適? 超過1000行的代碼有什么問題?

在編程的各種規范中,對函數代碼行沒有強制要求必須低于**行才行。

你一個項目所有函數都低于50行代碼,是可以的。反過來,你一個函數超過一萬行代碼(只有main函數),如果代碼沒問題,也能編譯通過,也是可以照常工作。

我們平時看到的“一個函數的代碼盡量不要超過50行”,它其實是相對代碼結構化、模塊化而言的,有很多情況,代碼也會超過50行,甚至上千行。

2模塊化代碼行數少

代碼為什么要模塊化?

這個問題好比:圖書館的書籍,為什么要分類?

因為我們代碼要實現各種各樣的功能,代碼模塊化之后,會讓我們更方便的管理、移植,以及后期的維護。

代碼模塊化是編程中的一個重要思想,有了模塊化思維,開發項目會讓你有事半功倍的效果。

這里可以參看之前分享的文章《嵌入式開發中的兩點編程思想》。

說回來,為什么模塊化代碼行數少?

代碼模塊化,就是把要實現的細小功能模塊,用一個函數封裝起來,也就牽涉到本文說的函數代碼行數少的問題。

你會發現很多底層驅動、中間層、應用層的代碼,其實都會用到模塊化編程。

比如底層驅動庫函數:

還比如RTOS模塊化代碼:

縱觀這些實現模塊化的代碼,你會發現,每個函數的代碼行數都不多,基本保持在50行一下。

甚至有的函數代碼只有一行:

  1. INT16U  OSVersion (void) 
  2.     return (OS_VERSION); 

當然,并不是所有的模塊化代碼行數都低于50行,也有100行的,也有超過200行的,但整體來說,模塊化代碼的行數相對都不多。

3多行代碼的函數

模塊化代碼的函數,函數一般都會低于50行。但是實際編程中,其實也有很多函數是超過50行。

比如一些復雜算法、通信協議、應用代碼等,這些函數都有可能超過50行。

這么說吧,像用到一些條件判斷if else,或者switch case,多幾個條件(比如25個),基本上這個函數代碼就超過50行了。

還有像有些函數代碼中,會用到很多局部變量,多定義幾個變量函數代碼行也會超過50行:

通常來說,超多行函數,一般在業務邏輯應用代碼中比較常見。

有時候,我們寫一個應用代碼,可能不知不覺(復制粘貼)就上百行代碼了。(main函數實現了所有功能,是不是似存相識?)

我之前也這么干過,特意找了一下幾年前寫的代碼,上千行的一個觸摸屏處理函數:

這個函數使用 if else 處理了很多觸摸按鍵信息(上百個Touch),還包含一些指令、數據解析分類,這個函數代碼行注定不會低于50行。

(當然,這個上千行的函數,肯定有優惠的空間,減少三分之一應該沒問題)

4最后

一個函數超過1000行代碼,理論上是可以的。但實際開發中,要盡量避免“超長行函數”,盡量控制在50 ~ 80行代碼。

“超長行函數”在實際開發中也常有,如果一個函數實在太多,代碼要盡量規范法,比如:代碼命名、對齊、注釋等。

 

所以,一個函數代碼函數有點多,不要懷疑自己,在“壓縮”代碼行的同時,規范法代碼就OK。

 

責任編輯:武曉燕 來源: strongerHuang
相關推薦

2022-07-14 10:54:15

Python代碼Matplotlib

2022-08-10 10:51:40

數據SQL

2020-09-24 10:47:45

安全密碼數據

2019-04-25 05:35:30

ping網絡命令

2020-04-20 09:02:33

函數RPCCPU

2020-05-11 17:12:52

換臉Python圖像

2021-02-14 13:35:51

程序員工具互聯網

2021-06-16 17:46:55

函數指針結構

2022-07-26 16:08:43

print函數

2021-12-07 06:55:17

節流函數Throttle

2012-08-23 14:23:33

函數式編程

2023-09-04 08:08:59

2025-03-07 10:18:27

2023-12-28 08:01:59

2014-04-08 11:47:36

NASA軟件開源

2022-06-29 09:02:31

go腳本解釋器

2011-05-19 14:40:33

SQL Server

2013-03-04 10:22:30

Python

2017-03-28 21:03:35

代碼React.js

2022-01-26 16:30:47

代碼虛擬機Linux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产在线精品一区二区三区 | 成人欧美一区二区三区在线观看 | 狠狠色狠狠色综合日日92 | 在线观看日本高清二区 | 一级欧美视频 | 欧美福利三区 | 欧美一级二级三级视频 | 一区二区三区视频在线 | 国产精久久久久久久 | 久久国内 | 91看片免费| 精品久久久久一区 | 国产精品美女久久久久aⅴ国产馆 | 九九亚洲 | 欧美成人a | 欧美精品网 | 精品免费国产一区二区三区 | 国产小视频在线 | 久草网在线视频 | 五月婷婷视频 | 99精品一区二区 | 亚洲国产中文在线 | 男女一区二区三区 | 天天干天天草 | 久久久久久中文字幕 | 日韩在线免费看 | 国产成人免费视频网站高清观看视频 | 91亚洲一区 | 天天操综合网站 | 999久久久| 中文字幕1区 | 欧美精品第一区 | 91嫩草精品 | 国产精品久久国产愉拍 | 盗摄精品av一区二区三区 | 国产亚洲精品久久久优势 | 亚洲免费视频网站 | 欧美三级在线 | 国产一在线| 五月婷六月丁香 | 国产精品美女久久久久久免费 |