模塊 為什么程序開發(fā)時一定要使用封裝而不能讓用戶直接訪問變量?
為什么程序開發(fā)時一定要使用封裝而不能讓用戶直接訪問變量?編程語言有兩個極端:一是把用戶當成小偷,以“用戶一定會犯錯”為原則。此時,它將盡可能地封裝和限制用戶的行為。以Java為代表。其優(yōu)點是用戶門檻較
為什么程序開發(fā)時一定要使用封裝而不能讓用戶直接訪問變量?
編程語言有兩個極端:一是把用戶當成小偷,以“用戶一定會犯錯”為原則。此時,它將盡可能地封裝和限制用戶的行為。以Java為代表。其優(yōu)點是用戶門檻較低,因此開發(fā)人員可以快速啟動現(xiàn)成的代碼。缺點是開發(fā)效率低。
一是將用戶視為上帝,為所欲為。以C/Python為例,甚至可以在Python運行時修改代碼本身。其優(yōu)點是開發(fā)效率高,缺點是使用門檻高,容易入坑。當然,因為您有足夠的自由,所以您可以人為地設置“約束”,即自封裝,這樣所有處理您的代碼的開發(fā)人員都將遵守您的“條約”。
在這兩個極端之間也有大量的語言,例如rust。
封裝并不意味著“好”或“壞”,它取決于您使用的語言的“最佳實踐”。一個好的程序是遵循“最佳實踐”并根據(jù)實際情況編寫的程序。
C語言開發(fā)單片機為什么大多數(shù)都采用全局變量的形式?
可能您看到的大多數(shù)應用程序都比較簡單,或者MCU的性能不強。為了減少調(diào)用函數(shù)導致的性能下降,請使用全局變量
!第一,情況無話可說,問題不大。
第二,也很普遍。我認為這與歷史遺留的問題有關。主流MCU上的100m似乎已經(jīng)存在了大約15年。因此,人們普遍認為單片機的性能較差。每個人都會想到一種提高代碼效率的方法。全局變量的廣泛使用是應用最廣泛和最有效的一種!但這不符合PC應用程序程序員編寫的模塊化、高內(nèi)聚、低耦合的方法。不行,功能和性能只能優(yōu)先考慮
!您是否忽略了由這個全局變量引起的軟件風險以及開發(fā)和維護困難?當然不是。我們應該嚴格管理這些全局變量,給每個變量一個明確的定義、類型和函數(shù),這些都應該在文檔中明確描述!如果你理解了這樣一個文檔,你就會理解一半以上的軟件功能和框架(可能沒有框架),這樣開發(fā)和維護就可以繼續(xù)了。
回到現(xiàn)在,MCU的主頻超過1GHz。選擇200米以上的MCU非常容易,內(nèi)存為512KB。因此,MCU的全局變量也可以成為歷史。讓我們擁抱更合適的軟件開發(fā)思想和方法,模塊化和面向?qū)ο螅?/p>