Adobe Flex編碼約定文件引發了爭論
2008年4月18日,Adobe發表了其Flex SDK編碼約定及最佳實踐。Adobe的Flex團隊這樣解釋這個新約定:“……這個編碼標準是為那些使用ActionScript 3(AS3)編寫開源Flex框架元件的開發者設定的。堅持這些標準可以使原始碼看起來更一致、組織更良好、更專業”。
然而,這一約定在Flex RIA社群的開發者中引發了爭論。例如,Keith Petters就 不喜歡看到在編碼約定文件中所表述的“flex定式(fixation)”。他評論道,“讓我厭煩的一件事情是,這是一個條款化的Flex文件。實際上那 裡並沒有任何Flex特定的內容,全是AS3編碼約定。我希望Adobe放棄其Flex定式並承認現存的AS3就是一門很好的語言。” Igor Costa這樣回應:“你這麼說是沒錯,Keith;但是,這篇文件也只是針對Flex 4 SDK的編碼指南,針對那些放置在SDK上的ActionScript類而已,根本不是針對整個語言的。”
或許,最激烈的爭論是關於程式碼應以何種格式出現的細節意見。正如TL on PL的Tom Lee 所說,“我認為,提供某種建議背後的基本原理是有作用的,而不是僅僅去說‘這樣做,不要那樣做’”。例如,Lee特別反感這樣的建議“使用Array字面值(literals)而不要用new Array()”。他評論道
難道“new Array()”不是與其它型別物件的例項化方式更一致嗎?“[]”是一種簡寫語法。我認為一般情況下都要避免簡寫,因為這需要對一門語言更加精通,不是 一般的多面手程式設計師所能掌握的。我還對推薦使用Object字面值、RegExp字面值等等都提出相同的異議。一致性是關鍵。
Igor Costa還質疑編碼約定及最佳實踐是否還包含了一些不必要的規定。例如,他問道:“不要在左括號前後或右括號前面放置任何空格。這樣做:a[0];不要這樣做: a[ 0 ]。真的有必要對空格這麼擔憂嗎?”
與此同時,Tony Fendall認為一致性及好的習慣是有價值的。他說:
就個人來講,我同意所提議的約定。是的,你可以爭論說空格對於程式碼的功能沒有直接的重要作用,但是在所有類及函式看上去都一致的程式碼上工作,要比在每個提交者都有其自己風格的程式碼上工作感覺要好得多。這些好處使得去構建一些好的小習慣的努力是值得的。
其它爭論集中在是使用整數還是無符號整數。編碼約定文件建議對整數使用使用int,即使它們並不能取負值。只對RGB顏 色、位掩碼、及其它非數字值使用uint。“如果你只是想對除了無符號整數的其它東西使用uint,要點是什麼呢?”Keith Petters這樣問道。
Pixel Burner這樣評述:“我已經注意到許多編碼者都在虔誠地使用uintt。可是,我讀了幾篇文章都指出uint比int資料型別慢200%到400%。因此,我幾乎不使用uint”。Burner還引用了最近Gskinner上的一篇文章,該文章特別討論了關於uint的使用。在進行了程式碼測試之後,該文章得出如下結論:
避免使用uint,除非你確實有好的理由必須使用這個型別。在int具有意義的地方使用int,但是不要被int與Number的效能問題所煎熬。在不確定的時候預設使用Number。最重要的是,不要想當然——多做測試和基準測試——你可能會對結果感到驚訝!
然而,Adobe的Sho Kuwamoto強烈建議避免在ActionScript中使用int,如果要使用,只在如下情況下使用:
- 當你想節省記憶體的時候。(儘管只有當你有大量資料需要儲存的時候才會影響到你)
- 當你想強制一個整數值時。(例如,var i: int = j / 2)
- 當你將整數值從客戶端對映到伺服器端的時候,為了減少出錯機率。(例如,值物件中的int域)
在所有爭論中,有一件事是確定的。編碼約定涉及非常多的內容,而不僅僅是格式和可維護性的問題。
檢視英文原文:Adobe Flex Coding Convention Document Triggered Discussions
注:以上內容來自網路,本人不承擔任何連帶責任
文章轉自:http://www.infoq.com/cn/news/2008/05/flex-coding-convention
相關文章
- Java設定JSON字串引數編碼JavaJSON字串
- 【程式設計素質】Java編碼約定程式設計Java
- 996算啥?深陷997的美國遊戲人,引發歐美大爭論996遊戲
- 金山文件怎麼設定編輯許可權 金山文件線上編輯許可權設定
- o1帶火的CoT到底行不行?新論文引發了論戰
- 音視訊編解碼 -- 編碼引數 CRFCRF
- 都2022年了,還在爭論程式語言?
- Windows系統常用系統引數設定文件Windows
- 【Codecs系列】硬體編碼器編碼引數分析
- 關於vue3簡單狀態管理約定引發的思考Vue
- IDEA如何設定編碼格式,字元編碼,全域性編碼和專案編碼格式Idea字元
- 儲存界的“紅白玫瑰”之爭,有結論了!
- MyEclipse設定文字編碼Eclipse
- 量化合約開發原始碼丨量化合約系統開發(開發穩定版)及案例詳細原始碼
- 秒合約開發(穩定版)丨秒合約系統開發(開發案例)丨秒合約系統原始碼詳情原始碼
- 我發現 Linux 文件寫錯了Linux
- 敏捷開發,如何編寫架構文件敏捷架構
- 文件編寫
- 文件編輯
- 定時器引發的思考定時器
- 量化合約開發系統程式碼流程(Python)*合約量化系統開發定製技術流程Python
- 影片編輯愛好者的必備工具:Adobe Media Encoder 2024來了
- Flex 排版原始碼分析Flex原始碼
- Ubuntu 下設定中文編碼Ubuntu
- 定點數的編碼表示
- MySQL字元編碼設定方法MySql字元
- 體面編碼之程式碼註釋評論
- C++ 反彙編:關於函式呼叫約定C++函式
- 【Azure Redis】因為Redis升級引發了故障轉移後的問題討論Redis
- Windows 11 使用者“怒了” :微軟發推炫耀 3D 海龜表情包引爭議Windows微軟3D
- markdown文件編寫
- REST與GraphQL的爭論REST
- [譯] 討論 JS ⚡:文件JS
- 論壇幫助文件
- Adobe 影像編輯 Photoshop 2024 (ps) 最新
- 隱私新政落地,蘋果新方案引發爭議蘋果
- Adobe全新AI工具引關注,Adobe firefly助力創作更高效、更有創意AI
- DL4J中文文件/模型/自編碼器模型
- 編寫可閱讀的程式碼--基本規約