2014-03-14 89 views
3

以下內容與Dart Style Guide不兼容。我不應該這樣做嗎?我正在擴展num課程以構建醫療應用程序的度量單位庫。使用小寫字母看起來比Kg或Lbs更優雅。在某些情況下,爲了安全起見,建議使用小寫字母,即毫升而不是毫升。我應該總是避免使用小寫的類名嗎?

class kg extends num { 
    String uom = "kg"; 
    num _value; 

    lbs toLbs() => new lbs(2.20462 * _value); 
} 

class lbs extends num { 
    String uom = "lbs"; 
    num _value; 

    kg toKg() => new kg(_value/2.20462); 
} 
+0

此鏈接可能會幫助你http://en.wikipedia.org/wiki/Naming_convention_(programming)#Java –

+1

有趣的想法。我不會想到擴展num是可能的,因爲int和double不能被擴展。 –

+2

對於它的價值,[API文檔](https://api.dartlang.org/apidocs/channels/stable/#dart-core.num)禁止擴展'num' – Ganymede

回答

1

如果您使用它們取決於您。
有可能是重要的情況。
我現在能想到的是當你有一個開源項目,你不想疏遠潛在的貢獻者。

如果您沒有特別的理由堅守準則,如果您有充分的理由偏離它。

+0

我不知所措,每個人都很有幫助。我覺得爲了病人安全的原因,我要走這條道路,因爲許多醫療應用失敗了。有時我們不知道,直到我們建立完整的畫面。我會建立這個並把它扔進Dart社區,看看大家的想法。再次感謝您的幫助。 – Damon

0

我真的不太認真對待那些編碼標準。

我覺得這些準則是要合理得多:不武斷,更實用:

還有更多的你可以選擇 - 選擇最適合您的任何作品!

PS:

只要你在談論飛鏢,看看這篇文章:

+0

您不能只選擇其他語言的編碼約定。你錯過了編碼慣例的巨大優勢之一;其他程序員可以輕鬆讀取您的代碼。 –

2

對於你的情況,我可能會選擇一個單位(例如毫克),並使其他單位倍數。您可以使用部門進行轉換:

const mg = 1; // The unit 
const g = mg * 1000; 
const kg = g * 1000; 
const lb = mg * 453592; 


main() { 
    const numPoundsPerKilogram = kg/lb; 
    print(numPoundsPerKilogram); // 2.20462... 

    const twoPounds = lb * 2; 
    const numGramsInTwoPounds = twoPounds/g; 
    print(numGramsInTwoPounds); // 907.184 
} 

這是最好使單位小,因此其他單位可以是它的整數倍(int s爲任意精度)。

1

請勿爲單位使用類。使用它們的數量:

class Weight { 
    static const double LBS_PER_KG = 2.20462; 

    num _kg; 
    Weight.fromKg(this._kg); 
    Weight.fromLbs(lbs) { 
    this._kg = lbs/LBS_PER_KG; 
    } 

    get inKg => _kg; 
    get inLbs => LBS_PER_KG * _kg; 
} 

看看想法的持續時間類。

1

編碼約定用於幫助您編寫質量可讀的代碼。如果您發現忽略某種約定有助於提高可讀性,那就是您的決定。

但是,代碼很少只被一雙眼睛看到。如果不遵循風格指南,其他程序員在閱讀代碼時會感到困惑。遵循編碼約定,其他人可以快速深入您的代碼並輕鬆理解正在發生的事情。當然,您可能真的會成爲唯一一個查看此代碼的人,在這種情況下,這是毫無意義的。

我會避免在大多數情況下偏離風格指南,除非優勢非常明顯。對於你的情況,我沒有優勢大於劣勢。

相關問題