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

現代Objective-C七宗罪

移動開發 iOS
拜移動大潮所賜,這兩年Objective-C可謂是風頭正茂,連續兩年獲得年度編程寶座,然而任何一門編程語言也不是十全十美的,如果你正在編寫Objective-C代碼,那么這篇文章可能會得罪你;倘若還沒,那么你無需擔心,本文我們一起來細數下Objective-C的七宗罪。

拜移動大潮所賜,這兩年Objective-C可謂是風頭正茂,連續兩年獲得年度編程寶座,然而任何一門編程語言也不是十全十美的,這不,這個備受蘋果公司關注的Objective-C也不招人待見,原文作者Ash發表一篇博客例舉了Objective-C七宗罪。

 

[[61368]]

以下是譯文:

如果你正在編寫Objective-C代碼,那么這篇文章可能會得罪你;倘若還沒,那么你無需擔心,本文我們一起來細數下Objective-C的七宗罪。

一宗罪:.xib文件太大

我之所以說Objective-C不好,有幾個原因,***的問題是當系統加載系統.xib時,需要加載整個.xib;并且在啟動應用程序或者用戶交互響應環節時占據大量時間,這一點很讓人頭疼。

第二個問題是,無法重復使用視圖(或者與它相關聯的代碼),你總不會希望一直重復粘貼與復制吧。

二宗罪:無法使點語法保持一致

談及Objective-C的語法,很多開發者***感覺就變成望而卻步了。

許多開發者總認為使用點語法編寫是主觀現象,也許他們的想法是正確的。但是我個人認為點語法是一個較為現代化的方式來訪問屬性,這不屬于客觀現象。相反,如果你選擇使用點語法,并且一直堅持這么做。那么,建議你要么全部使用,要么干脆不要,記住,千萬不要混合及匹配使用 。

三宗罪:.m Files中的類繁多

在一個相同的文件里會出現很多類,這是一個很主觀的現象,因為這往往會利用一個有用的方式來定義,就如同小包裝模型類或者值轉換。

如果外部文件需要使用你的新類,把它放在自己的文件夾中即可。如果你#import一個視圖控制器僅僅是為了在.m file里面得到一個輔助類,那么要把重構擺在首位。

四宗罪:無法進行編譯器優化測試

當你開發時通常會使用Xcode默認選項——關閉優化,但最終發布前肯定還是會開啟它的,這時經常會出嚴重的問題。

你無需調優編譯器來做完整的回歸測試,只需一個簡單的smoke測試就足夠了。如果你有beta測試人員,那么可以進行設置,重要的是某人在測試之外能夠生成二進制文件以確保用戶能夠被控制。

五宗罪:體系結構的基本類型

Objective-C這門語言以及其運行時既是為iOS,也是為OS X而開發的。但iOS 32位而OS X是64位的。當你使用Objective-C定義原始值的時,使用int將會出現丟失;如同為OS X編譯時出現的那些半位,使用long int又顯得太蠢了。

六宗罪:不必要的-C APIs

什么是Keychain API?新的OS X APIs需要使用Sandboxing,但需要使用C嗎?這里我討論的不是核心基礎類,而是一些嚴重混亂的C。

C語言比Objective-C快不了多少。如果你想做任何實時系統方面或者處理音頻或視頻,可選擇使用C。在大多數情況下Objective-C是不錯的選擇。

七宗罪:無法使用自動化測試

你是否使用Objective-C進行單元測試?也許你不曾使用過。那么你曾給UI進行自動化驗證測試嗎?答案也是NO。那你曾設置過任何持續集成嗎?

我不理解Objective-C社區為什么要回避這個問題?要知道這是一個嚴重的、 系統性的問題。最近我才開始單元測試,我和我的同事在探索UI自動化驗收測試。沒人知道它是這么的難,也許是因為沒人做過,以致沒有這方面的資源。因此,我們必須靠自己。文檔是編寫代碼的重要組成部分,我花了整整一天的時間才弄清楚模擬對象是什么,更遑論如何使用它們。

這對于Objective-C社區來說是個嚴重的問題。此外,單元測試也值得重視且應該將其做好。

英文出自:Ashfurrow

【編輯推薦】

  1. 回顧:Objective-C風暴來襲,精彩不容錯過
  2. 2012年12月編程語言排行榜:Objective-C風暴來襲
  3. Objective-C Category初體驗
責任編輯:張浩 來源: 紅黑魂
相關推薦

2023-05-08 10:54:39

IT管理CIO

2011-02-21 09:04:25

2024-06-19 19:28:51

2018-02-05 23:14:35

光纖網絡光纖施工

2021-03-01 18:48:21

Go管理工具

2014-01-13 09:35:13

創業企業

2013-05-10 10:49:53

2015-09-15 13:22:08

數據分析七宗罪

2017-01-09 15:25:49

物聯網策略設計

2010-08-18 10:05:27

IE7IE6

2017-08-02 16:24:04

2015-09-06 11:25:57

七宗罪失敗案例

2011-02-23 10:51:36

Chrome

2012-09-07 14:41:26

2019-04-15 09:00:00

SQLOracle數據庫

2023-10-17 20:28:13

軟件開發代碼

2015-07-16 09:14:50

數據中心數據中心效率

2014-07-14 17:29:06

運營商定制手機

2021-03-03 14:08:48

自動化高管IT投資

2012-04-04 22:15:19

移動游戲
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品久久久久久久 | 亚洲成人一区二区三区 | 玖玖国产精品视频 | 欧美日韩在线一区二区三区 | 成人精品啪啪欧美成 | 99视频入口 | 蜜桃传媒一区二区 | 日日操日日干 | 中文字幕国产视频 | 91精品国产一区二区在线观看 | 国产www成人 | 九九综合 | 欧美精品一区二区三区在线 | 日本二区在线观看 | 日韩视频专区 | 欧美激情综合色综合啪啪五月 | 日韩亚洲一区二区 | 亚洲久久 | 无码日韩精品一区二区免费 | 国产一区二区三区不卡av | 天天操人人干 | 日韩欧美在线不卡 | 99九色| 欧美一级黄色片 | www.887色视频免费 | 97caoporn国产免费人人 | 亚洲狠狠爱| 国产精品久久久久久久久 | 国产精品99久久久久久久vr | 97人人草 | 成人小视频在线观看 | 福利网址| 91精品中文字幕一区二区三区 | 高清av在线| 国产美女在线精品免费 | 亚洲欧美视频在线观看 | 日韩中文一区二区三区 | 国产一区二区 | 欧美国产日韩在线观看 | 七七婷婷婷婷精品国产 | 999久久久久久久久6666 |