国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

iOS開發(fā)人員的十大基本規(guī)則

移動開發(fā)
這份清單純粹來自我的大腦。這是關(guān)于成為一名好的Swift開發(fā)者的感覺。我有偏見。這是我在準備課程和制作應(yīng)用程序時閱讀了Swift文檔和WWDC視頻后發(fā)現(xiàn)的。

免責聲明:這份清單純粹來自我的大腦。這是關(guān)于成為一名好的Swift開發(fā)者的感覺。我有偏見。這是我在準備課程和制作應(yīng)用程序時閱讀了Swift文檔和WWDC視頻后發(fā)現(xiàn)的。

1.縮進,不夠快捷。

我看到過很多開發(fā)人員編寫如下代碼, 

  1. func neverDoThis() 
  2.   let fuglyCode = true 
  3.   if (fuglyCode == true
  4.   { 
  5.     print("This is atrocious"
  6.   } 

如果我看到上面的代碼類型,我真的很難判斷。我以為他/她從來沒有閱讀過API指南/文檔或任何人的Swift代碼。我們來看看WWDC的蘋果工程師如何撰寫。 

  1. // How Swift engineers would write 
  2. func swiftyWay() { 
  3.   let isLegit = true 
  4.   if isLegit { 
  5.     print("This is fine"
  6.   } 

2.永不使用Try !, as !, String!除非%100確定

如果你一直在附近,確保你了解它們之間的差異, 

  1. as asas
  2. try try! try? 
  3. Int IntInt

如果你不知道自己在做什么,并且使用Xcode左側(cè)的那些,你一定會看到“發(fā)現(xiàn)意外的零”消息。不要被動。移動你的屁股并理解他們的意思。特別是對于那些參加Udemy初級課程(包括我自己)的人,你需要弄清楚你自己的。

3.不要超過20行功能

我的朋友昨天要我回顧他的代碼。一個函數(shù)有50行。它涵蓋了整個Xcode黑屏。我就像,這個狗屎不會去任何地方。我告訴他,“我不想讀你的代碼,因為你的代碼很糟糕”。我告訴他把它分解成碎片并模塊化。真相傷害,但他是我的朋友,我需要真實而清楚。沒有廢話試圖取悅他。

例如,不要寫這樣的東西,盡管下面的內(nèi)容不太。。。 

把它分解成幾塊。 

4.UI主線程,網(wǎng)絡(luò)后臺線程

多重威脅(由CPU完成的一組任務(wù))的概念令人望而生畏。我不怪你。我沒有計算機工程背景,但我仍然不太了解。

我寫了兩篇文章,為什么你需要使用UI更新的主線程和后臺線程進行聯(lián)網(wǎng)。所以,我會跳過這一部分。

5.不要使Swift文件超過200行

我第一次學(xué)習(xí)如何制作應(yīng)用程序時犯了這個錯誤。我制作了一個包含多個UIViewController類和模型的超過800行的文件。這是我不會重復(fù)的。一旦你入侵,你永遠不會回去。當然,如果文件是JSON或基于內(nèi)容的文件,它可能包含數(shù)以千計的行。

我不會詳細解釋所有這些概念,但我會告訴你,你可以學(xué)習(xí)什么,并使你的整個應(yīng)用程序更加干凈。

有幾個方法可以從根本上減少行數(shù)并仍然可讀。您可以使用UITableVIew和UICollectionView使用面向協(xié)議的編程來制作可重用的代碼。如果您使用的是代表Massive View Controller的MVC,則可能需要了解MVVM的工作原理。

6.永遠不要輸入任何東西。

你是否意識到我們可以在Xcode中自動完成許多屬性的原因是由于Enums?這看起來很明顯,但對初學(xué)者來說可能并非如此。

你想在編程中做的最后一件事是硬核打字,而不是挑選。例如,當您創(chuàng)建UIAlertViewStyle時,UIKit工程師創(chuàng)建, 

  1. public enum UIAlertViewStyle : Int { 
  2.  case `default
  3.  case secureTextInput 
  4.  case plainTextInput 
  5.  case loginAndPasswordInput 

你能想象打字每個案件嗎?我不能,因為我不考慮它,因為這是必須的。不要為自己編寫硬編碼,而是為了你隊友的灰白頭發(fā)。

7.姓名。具有描述性。造型指南

根據(jù)Swift API指南,開發(fā)人員應(yīng)該遵循一些標準。

a.公約>獨特性

每種編程語言都有自己的特點和風格。雖然是主觀的,但是可以通過閱讀在開源項目中編寫的Swift文檔和Swift文件來找到約定。同樣,我強烈建議你看看用Swifty的方式寫什么感覺。相反給你舉例,我會在下面給你提供資源。

b.表現(xiàn)力>令人印象深刻

有些帥哥喜歡把東西扭曲,讓他們感到優(yōu)越感,因為別人看不懂。這是廢話。沒有人應(yīng)該這樣做。這完全是關(guān)于彼此之間的有效溝通。是的,代碼是人類與計算機交流的一種方式。但是,它也在我們之間,開發(fā)者和極客之間。請不要成為那個試圖用莎士比亞的話來留下印象的傲慢家伙。沒必要。

c.清晰度>簡潔

Swift的開發(fā)者要求我們清楚地說出名字,以便在三周后回來時,我們很好。但是,沒有黑色和白色。這是使用描述性名稱和減少總體行數(shù)的平衡。

“簡潔本身不是一個有價值的目標。簡潔的代碼是使用上下文線索的結(jié)果“ -——Doug Gregor,Swift Engineer 

  1. // Too brief & Lack of context 
  2. let a = "A" 
  3. let b = "B" 

如果我要閱讀上面的代碼,我會困惑到底是什么a和b始終。所以,我必須一直找到它們。為什么我們不能通過寫作來更具描述性, 

  1. // How I would do it 
  2. let capLetterA = "A" 
  3. let capLetterB = "B" 

8.使用Guard

Guard語句不僅可用于展開optioanls,還可用于替換if-else語句,并使用break或using return提前退出函數(shù)。它允許任何人識別如果在沒有滾動查找其他塊的情況下沒有滿足條件會發(fā)生什么。我們來看一個真實世界的例子。 

  1. let name = "Bobby" 
  2. func checkName() { 
  3.   // Early Check 
  4.   guard name == "Bob" else { 
  5.   print("You ain't Bob"
  6.   return 
  7.  } 
  8.   
  9.  // I can do anything I want without seeing the else block. 
  10.  // So much freedom 
  11.  // You don't even need to read this 
  12.  // Why are you even reading this 
  13.  // Now, you may leave. I'm not going to say anything important 
  14.  // In this block of code 
  15.   
  16.  // Lol... you still here? 
  17.  print("You Good, bro"

如果您不明白打開option和提前退出意味著什么,請檢查下面的資源。

9.如果可以的話,不要使用NS

我沒有在Objective C中編寫代碼,所以我盡量避免它在精神上和身體上都能達到。除非你正在與Objective-C API交互,否則即使Swift自動將一些Objective-C類型轉(zhuǎn)換為Swift類型,并將一些Swift類型轉(zhuǎn)換為Objective-C類型,也遠離使用NS。

Swift的確受到Objective-C和其他許多語言的啟發(fā),但它是一門獨立的語言。我不確定轉(zhuǎn)換速度有多慢,但建議Swift開發(fā)人員盡可能避免。由于Swift提供了自己的本地庫和API,因此您可以查看替代方案。 

“歷史筆記:如果你想知道為什么你遇到的很多類都有NS前綴,那是因為可可和Cocoa Touch的歷史。可可開始使用收集的框架來構(gòu)建NeXTStep操作系統(tǒng)的應(yīng)用程序。當蘋果在1996年購買NeXT時,大部分NeXTStep都被納入到OS X中,包括現(xiàn)有的類名稱。 Cocoa Touch作為Cocoa的iOS平臺引入; Cocoa和Cocoa Touch都提供了一些類,盡管每個平臺都有很多獨特的類。像NS和UI這樣的雙字母前綴(用于iOS上的用戶界面元素)保留給Apple使用“。 ——Apple

10.不要依賴分段

當故事板看起來像蜘蛛網(wǎng)時,初學(xué)者往往會制造太多的Segues。一旦超出了某個閾值,它就變得難以管理,很難跟蹤每個視圖控制器。因此,使用Delegate / NSNotification發(fā)送數(shù)據(jù)。使用多個故事板而不是一個。如果您對Delegate感到滿意,則可以開始使用RxSwift或ReactiveCocoa傳遞數(shù)據(jù)或僅通過幾行代碼發(fā)送通知。

責任編輯:未麗燕 來源: 簡書
相關(guān)推薦

2020-06-28 09:56:48

.NET開發(fā)工具

2011-03-31 10:22:41

Java開發(fā)

2009-04-03 14:36:05

Java問卷調(diào)查開源

2016-10-18 10:45:00

開發(fā)開源

2020-06-05 14:38:25

開發(fā)人員職位開發(fā)

2016-10-14 19:30:21

云計算云數(shù)據(jù)庫數(shù)據(jù)庫

2021-11-21 22:43:10

Java開發(fā)框架

2016-11-09 13:46:00

云數(shù)據(jù)庫

2019-07-02 14:27:31

編程語言開發(fā)

2024-08-12 08:00:00

人工智能開發(fā)AI編程助理

2012-07-13 09:18:29

2022-01-21 10:18:53

VSCode擴展插件

2023-02-26 01:47:13

2020-07-01 07:42:11

JavaScript開發(fā)技術(shù)

2015-07-09 10:18:36

Android開發(fā)工具

2012-10-11 09:12:02

2025-07-04 04:00:00

2010-02-24 13:45:40

Python開發(fā)人員

2021-08-07 15:38:07

開發(fā)Java工具

2023-02-26 18:43:05

SQL工具數(shù)據(jù)庫
點贊
收藏

51CTO技術(shù)棧公眾號

精品在线观看入口| 巨乳诱惑日韩免费av| 亚洲图片88| 久久久亚洲午夜电影| 国产精品一级伦理| 亚洲成人动漫av| 日本a在线免费观看| 高清在线不卡av| 欧美aaaaa性bbbbb小妇| 在线亚洲欧美专区二区| 欧洲一区精品| 亚洲97在线观看| 欧美日韩有码| 精品人伦一区二区色婷婷| 91禁在线看| 日韩成人中文电影| 欧美天天综合| 在线成人私人影院| 欧美精品一区视频| 伪装者在线观看完整版免费| 国产亚洲视频系列| 国产日产精品久久久久久婷婷| 欧美日韩免费观看一区二区三区 | 91麻豆精品国产91久久久资源速度 | 国产成人精品久久二区二区91| 中文字幕2019第三页| 在线观看日韩| 九九精品视频在线观看| 国产性生交xxxxx免费| 成人午夜一级二级三级| 久久天堂电影| 国产精品网站在线| 99久re热视频精品98| 久久亚洲欧美| 欧美videossexotv100| 日本肉体xxxx裸体xxx免费| 亚洲国产高清视频| 68精品久久久久久欧美| 欧美一卡二卡| 亚洲成人精品久久| 久久亚洲资源| 最近2019中文字幕一页二页| 91禁在线看| 亚洲一区二区福利| 欧美高清免费| 久久久久久久91| 久久精品国产大片免费观看| 国产精品视频免费在线| 午夜亚洲性色福利视频| 日韩一级性生活片| 久久久蜜桃精品| 蜜臀av性久久久久av蜜臀妖精| 久久精品91久久香蕉加勒比| 精精国产xxxx视频在线中文版| 91视频国产一区| 亚洲国产精品综合久久久 | 欧美日韩综合在线| 黄色网页在线播放| 亚洲无av在线中文字幕| 国产精品成人av| 男人透女人免费视频| 日本大胆欧美人术艺术动态| 日韩一区二区三区高清| 99精品欧美一区| 交换国产精品视频一区| 日韩欧美国产麻豆| 成人羞羞动漫| 国产小黄视频| 中文字幕欧美日韩在线| 亚洲一卡久久| 无圣光视频在线观看| 精品久久久在线观看| 亚洲色精品三区二区一区| 成人免费精品视频| 无码粉嫩虎白一线天在线观看 | 激情久久久久| 久青草视频在线播放| 日韩电影免费观看在线观看| 一色桃子av在线| 欧美一级片在线| 久久99久久99精品免观看软件| 欧美精品在线第一页| 欧美日韩激情在线一区二区三区| 成人国产一区二区| 国产高清久久久| 污色网站在线观看| 在线亚洲免费视频| 亚洲黄色网址| 国产精品久久久久久久app| 国产精品久久777777毛茸茸 | 国产精品久久久久久福利一牛影视 | 在线成人视屏| 中文字幕在线看视频国产欧美在线看完整 | 一本色道a无线码一区v| 黄网页免费在线观看| 亚洲精品在线三区| 欧美国产三区| 免费看国产一级片| 欧美三级电影精品| 亚洲成在人线免费观看| 日韩欧美国产不卡| 一级毛片精品毛片| av成人在线电影| 国产精品麻豆网站| 成人免费在线观看视频| 国产精品中出一区二区三区| 亚洲日穴在线视频| 亚洲色图美女| 久久免费电影| 色妞在线综合亚洲欧美| 国产一二三在线观看| 最近2019年好看中文字幕视频| 国产一区二区免费视频| 韩国自拍一区| 欧美日韩少妇| 91精品视频大全| 91在线视频观看| 男人的天堂在线视频免费观看 | 亚洲视频777| 日本成a人片在线观看| 欧美裸体男粗大视频在线观看| 欧美天天在线| 成人3d动漫网站| 一区二区三区 在线观看视| 欧美日本中文| 久播影院第一理论片| 神马久久桃色视频| 日本不卡一二三区黄网| 日韩av视屏| 91大神福利视频在线| 国产一区视频导航| 国产视频一区二区| 91免费精品国偷自产在线| 国产精品无码永久免费888| 性欧美freesex顶级少妇| 精品国产福利| 在线影院国内精品| 久久中文字幕二区| 视色,视色影院,视色影库,视色网| 久久国产精品亚洲| 在线视频欧美性高潮| 亚洲欧美偷拍另类a∨色屁股| 久久国产综合| 电影亚洲一区| 欧美xxxxxxxxx59| 婷婷久久伊人| 美日韩精品免费视频| 日韩黄在线观看| 日韩精品久久久久久久玫瑰园| 9色精品在线| 浮生影视网在线观看免费| 国产精品黄视频| 欧美1区3d| 国产原创一区| 97视频在线观看网站| 国产精品欧美激情在线观看| 高清在线视频日韩欧美| 欧美在线一二三| 豆国产96在线|亚洲| 91精品蜜臀一区二区三区在线| 欧美艳星kaydenkross| 在线久久视频| av免费看网址| 欧美日韩国产精品一卡| 国产精品久久久久久久久久久新郎| 日韩精品一区二区在线| 亚洲国产美女久久久久| 六月婷婷色综合| 日本无删减在线| 亚洲tv在线观看| 亚洲国产精品电影| 国产日韩影视精品| 亚洲精品国产视频| 日韩精品欧美激情| 国产日韩一区欧美| 成人短视频下载| 天堂久久一区| 国产人妻777人伦精品hd| 亚洲一级黄色片| 成年人网站91| 久久精品论坛| 日韩欧美国产一区在线观看| 亚洲人成网站色在线观看| 不卡免费追剧大全电视剧网站| 91精品动漫在线观看| 日本在线一区二区三区| 日韩欧美看国产| jizz日韩| 国产在线观看网站| 四季久久免费一区二区三区四区| 黄色污网站在线观看| 天天综合中文字幕| 久久精品夜夜夜夜夜久久| xnxx国产精品| 成人在线免费观看网站| 色大18成网站www在线观看| 无码人妻精品一区二区蜜桃网站| 欧美精品久久久久久久久| 色噜噜偷拍精品综合在线| 久久精品国产免费看久久精品|