我目前的項目代碼庫已經精煉了每個單元及其朋友。過度使用重新定義原始數據類型?
提取物: -
...
typedef int m; // meter
typedef int htz;
typedef int s; // second
...
好還是壞?
我討厭它!它是一種痛苦,沒有任何好處,全球定義的「m」,omg!
但我想說出爲什麼我討厭它的原因,多一點技術/口齒伶俐的莊園......你好!
人們可以列出此模式的For/Against參數嗎?非常感謝。
我目前的項目代碼庫已經精煉了每個單元及其朋友。過度使用重新定義原始數據類型?
提取物: -
...
typedef int m; // meter
typedef int htz;
typedef int s; // second
...
好還是壞?
我討厭它!它是一種痛苦,沒有任何好處,全球定義的「m」,omg!
但我想說出爲什麼我討厭它的原因,多一點技術/口齒伶俐的莊園......你好!
人們可以列出此模式的For/Against參數嗎?非常感謝。
更好地使它們成爲自定義類型,因爲那樣您就可以控制轉換和重載操作符。現在,我可以做一些毫無意義的事情,比如把赫茲乘以一米。理想情況下,m/s會產生一個速度 - 但它不會。這只是typedef
他們沒有意義。
boost.units救援! – PlasmaHH
是的,讓他們類,或@PlasmaHH狀態,使用Boost。 –
「我可以做一些毫無意義的事情,比如把儀表乘以赫茲」 - 一個糟糕的例子,通過將波長(以m爲單位)和頻率(以赫茲爲單位)乘以波長(以m/s爲單位) ')。 –
大概他們試圖證明意圖,但沒有類型安全性,就沒有強制執行它。這只是混亂,增加了代碼推理的入口障礙。
即使他們嘗試創建類型安全性,試圖在低級別抽象數據只會增加複雜性。它不會使解決問題變得更容易。無論如何,變量名稱足以描述內容。
「變量名無論如何描述內容足夠好」...... wweelll,應該做的! –
@IanVaughan顯然,我對我的悲觀主義持樂觀態度。 –
哇。編寫代碼的人真的走出了自己的路,讓所有變量名稱聽起來「自然」。 –
這絕對令人震驚。應該是'Hz'。 –