<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      云信息

      導航

      開發前建議先寫個文檔,嗯想法不錯

      一、輕文檔先行

      什么叫輕文檔?其實輕文檔指的是不需要按照標準的軟件工程知識來編寫需求分析,架構設計,模塊設計,流程圖時序圖等文檔,而是采用比較自由的方式,把你要做的事情,還有做事情的步驟描述清楚的文檔。這樣的文檔不需要限制格式,甚至你可以手寫在自己的筆記本上面,只要自己能看得懂,在開發過程中能夠隨時查閱就可以了。

      1. 為什么要寫文檔

      剛開始工作的時候,總是一接到任務就馬上開始寫代碼,結果遇到了很多問題,例如:

      ①. 需求本身就存在問題,代碼寫到一半以后才發現

      ②. 部分需求沒有表達清楚,發現的時候才去溝通,結果發現時間不夠,或者跟之前的代碼產生沖突

      ③. 代碼寫到一半時,發現自己思路不對或者不清晰了

      最后很有可能導致項目延期。

      如果在開發前就把需求分解好,把問題溝通清楚,把要做的點一個個列下來,就能大大地避免這些問題。

      2. 文檔寫什么

      ①. 準備工作

      在開始之前需要準備什么?例如做一個發送消息的界面,需要有以下的準備:

      a. 接口協議

      b. 測試環境

      c. 測試賬號

      準備工作提前做好,往往會加快效率。為什么要把這些內容記錄下來,是為了在開發過程中可以快速檢索。如果等到開始開發以后再去查聊天記錄,或者是找相關人員詢問,那就慢了。

      ②. 羅列需要做的小功能點

      例如做一個發送消息的界面,就有很多小功能點:

      a. 發送界面

      b. 發送的數據接口

      c. 文本字數限制

      如果你仔細一想,可能還會出現以下問題:

      a. 是否需要登錄?如果未登錄,是否要引導登錄

      b. 對于發送失敗的情況,要如何處理?

      c. 字數超出限制時,如何交互?

      d. 用戶重復發相同的文本,是否要過濾?

      e. 如何處理數據接口的錯誤碼?

      當你記錄下這些小功能,并且跟產品經理溝通清楚以后,你的開發周期已經可以初步評估了,并且這時候也已經弄清楚這個需求有多少小功能,需要怎么劃分模塊,怎么構建內部流程。

      對于部分流程復雜的功能,可以畫一下流程圖輔助理解

      ③. 記錄這個需求的改動點

      如果這是一個新需求,并且跟以前的版本沒有任何關系,則可以忽略這部分

      如果是這個需求會影響以前的代碼,則需要將改動部分記錄下來,因為項目中的 bug 有很多是改出來的,列出改動點后會讓自己更清楚新功能帶來的影響,減少很多低級bug

      例如新增一個發送圖片的功能,這個功能會影響聊天窗口的展示,會影響鍵盤,這些改動點就要記錄下來。一來可以輔助思考有沒有漏掉的小功能點,二來在自測試的時候需要覆蓋聊天窗口的展示和鍵盤的切換。

      ④. 羅列自測試內容

      編碼完成以后,一定要進行自測試,自測試越仔細,越能提前發現 bug 并修復。如果是測試人員發現了 bug ,然后再提交給你,你這時候再去解決,效率往往會比較低。

      以發送消息為例,自測內容也有很多:

      a. 正常發送消息

      b. 未登錄時點擊發送

      c. 字數超出限制

      d. 沒有網絡時點發送

      e. 網絡很差時不斷點發送

      等等.......

      二、開始編碼

      1. 是重寫還是保持不變

      每做一個新需求,都有可能會面臨這樣的問題:

      ①. 以前的模塊寫得太爛了,很想重新寫

      ②. 差不多的需求,以前用了這樣的方式實現,這次想換一種方式實現

      會考慮以上的問題,證明你是一個想要不斷進步的人,但是,在做決定之前最好先考慮以下因素:

      ①. 重寫模塊,很可能牽一發而動全身,要想清楚改動可能帶來的影響,以及解決這些問題需要的時間

      ②. 使用新方案實現需求,新的方案是否已經經過仔細的驗證,如果沒有,它可能會帶來新問題

      其實保持不變也有一些優勢:

      ①. 可以比之前做得更快,因為你熟悉了

      ②. 不會出現新問題

      考慮好以后,是重寫還是保持現狀,基本已經有答案了

      不過保持現狀并不意味著是放棄追求,你可以用業余的時間來證明你的方案,當它已經穩定了,可行了,那你隨時都可以重寫了。

      2. 實現需求,Demo 先行

      用 Demo 來實現一個需求是最快的,因為它運行快,可以隨意修改,而且代碼量少,如果實現過程出現問題,很容易就可以定位到原因。

      先建立一個 Demo,然后把需要的資源移植過來,把功能實現以后,再移植到項目中,這樣可以節省不少開發時間

      3. 借助工具

      ①. 代碼模板(File Template)

      我們創建一個視圖,控制器,或者一個 Model,可能會有一些固定不變的函數、屬性需要被定義或者重寫,使用 Xcode 可以創建代碼模板,在創建類文件的時候一鍵生成這些代碼,提高效率。

      ②. 代碼片段(Code Snippet)

      一般可重用的代碼,我們會封裝成類或者函數,以便其他地方使用,但有一些代碼是不適合封裝的,例如:

      a. 聲明一個屬性

      b. 創建一個線程

      像這類的代碼,我會做成代碼片段,然后通過 Xcode 的 Code Snippet 自動補充功能來快速完成,一個代碼片段例子:

      這里寫圖片描述

      只要輸入 @OperateThread 就可以直接完成創建一個操作隊列的代碼,大幅度減少編碼時間。

      ③. 自動注釋工具(VVDocumenter)

      一個可以一鍵創建注釋模板的工具,減少寫注釋所需的時間

      4. 適當添加注釋

      如果像官方的 API 那樣,所有地方都添加注釋,那工作量就太大了,需要額外的開發時間,如果只是針對一些語義不明、有歧義的代碼添加注釋,反而會減少開發時間。

      例如一個屬性:

      @property (nonatomic, assign) int64_t createTime;

      一看就知道是指創建時間,但它到底是不是時間戳?如果是時間戳,那單位是秒還是毫秒?如果還要打印數據以后才能下結論,就太耗時間了。

      加上注釋以后,它就一目了然了

      /// 創建時間(時間戳 秒)

      @property (nonatomic, assign) int64_t createTime;

      三、自測

      1. 先檢查后自測

      完成一個小功能以后,先檢查一下代碼,然后再開始自測,因為代碼可以告訴你很多信息:

      ①. 是否有低級錯誤

      ②. 是否有難以發現的漏洞

      ③. 流程是否存在問題

      如果你編碼完成以后立即自測,可能會進入被動狀態:

      ①. 這個界面顯示不對

      ②. 這個數據跟預期對不上

      ③. 有些不該出現的東西出現了

      這時候再反過來去調試代碼,一步步修改,會很慢,因為你編譯和操作都需要時間,而且有些條件不是很容易模擬,那種情況就更耗時間了

      2. 自測點要全部過一遍

      可能你會覺得這很煩,很浪費程序員的時間,但自測過程發現 bug 是最容易修復的,因為這時候代碼記憶最清晰,最容易找到問題所在。

      四、總結

      先用文檔理清思路,然后開始編碼,編碼完成以后要檢查代碼并自測。這就是我的編程習慣,一直沿用至今。

      其實知道一個技巧,并不會提升效率,只有堅持使用這個技巧,并形成習慣以后,才會真正地提高效率。

      posted on 2015-09-04 13:36  云信息  閱讀(508)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 岛国岛国免费v片在线观看| 精品乱码一区二区三四五区| 公天天吃我奶躁我的在线观看| 国产suv精品一区二区四| 成年无码av片在线蜜芽| 欧美一级黄色影院| 精品亚洲香蕉久久综合网| 色九九视频| 亚洲码欧洲码一二三四五| 扶余县| 国产精品成人综合色在线| 无码专区视频精品老司机| 亚洲国产午夜福利精品| 尤物yw193无码点击进入| 久久精品国产只有精品96| 蜜臀av午夜精品福利| 久久精品国产精品亚洲艾| 久久99日韩国产精品久久99| 欧美日产国产精品日产| 国产亚洲精品久久77777| 久久久国产成人一区二区| 无码国产偷倩在线播放老年人| 蜜臀视频在线观看一区二区| 午夜福利偷拍国语对白| 在线看国产精品自拍内射| 在国产线视频A在线视频| 黑人巨大精品欧美一区二区| 日韩精品久久久肉伦网站| 国产女高清在线看免费观看| 日韩av一区二区高清不卡| 亚洲日韩精品无码av海量| 二区三区亚洲精品国产| 亚洲国产一区二区三区亚瑟| 成人免费AV一区二区三区| 免费国产高清在线精品一区| 天堂网www在线资源网| 人妻少妇偷人无码视频| 日本一区二区三区四区黄色| 国产精品无码无卡在线观看久| 午夜视频免费试看| 顶级欧美熟妇xx|