成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

app軟件開發(fā)如何提升上帝視角和農(nóng)民視角能力

2020-11-28    分類: 軟件開發(fā)

我在做APP開發(fā)的時(shí)候,發(fā)現(xiàn)自己在寫程序的時(shí)候,常常處于兩種狀態(tài)的切換,我把這兩種狀態(tài)稱為軟件開發(fā)的上帝視角與農(nóng)民視角視角。我先給大家介紹一下這兩種模式的特點(diǎn)。

上帝視角

處于上帝視角時(shí),我需要構(gòu)思整個(gè)應(yīng)用的架構(gòu)設(shè)計(jì),如何進(jìn)行類之間的組織和信息的傳遞。我有可能會在紙上畫一些類圖,把關(guān)鍵的幾個(gè)類之間關(guān)系構(gòu)思清楚。這就類似于建筑師畫設(shè)計(jì)圖紙一樣。

app開發(fā),app制作

在這個(gè)階段,我的大腦是努力工作的,我會利用我學(xué)到的《設(shè)計(jì)模式》、《重構(gòu)》、《代碼大全》中的架構(gòu)知識,先把類的關(guān)系組織好。然后我會深入到每一類的實(shí)現(xiàn)細(xì)節(jié),構(gòu)思好每個(gè)類大概怎么實(shí)現(xiàn),這個(gè)過程又會利用了如何命名、DRY 原則、單一職責(zé)原則等編程知識。

而這一切的行為,都是在紙上完成的,我甚至?xí)P(guān)掉電腦屏幕,因?yàn)殡娔X屏幕前有很多影響注意力的信息(例如 QQ、微信、郵件等)。

農(nóng)民視角視角

當(dāng)一切構(gòu)思基本完成,我就會打開APP開發(fā)工具,開始我的農(nóng)民視角視角工作。

在農(nóng)民視角視角,我會專心于將我剛剛構(gòu)思好的內(nèi)容變成一行行真實(shí)的代碼。由于已經(jīng)想得比較清楚,這個(gè)過程通常更多是一種體力活,或者好聽一點(diǎn),是一個(gè)手藝人的體力活。對于農(nóng)民視角視角的我來說,我需要知道 APP開發(fā)的各種基本知識,以及一些常見的提升效率的工作方式,以便我能夠更快地完成編碼工作。

在農(nóng)民視角視角中,我會注意集中精力,因?yàn)殡m然實(shí)現(xiàn)代碼是偏體力活的事情,但是思路如果斷掉,接上的話還是會花費(fèi)不少時(shí)間。有一些同事會喜歡戴上耳機(jī),以避免干擾,也是這個(gè)道理。

我還會把每個(gè)類大概的成員變量和成員方法名想好。構(gòu)思完成之后,我脫下上帝的黃袍(別問我上帝為什么要穿黃袍,我也不知道),換上農(nóng)民干活的麻布衣服,開始搬代碼了。我先把這些類都建好,方法名命名好。接著我開始填一個(gè)一個(gè)的方法名的實(shí)現(xiàn)。

每一個(gè)類的實(shí)現(xiàn)過程都可以看作一個(gè)階段性的成果,這個(gè)時(shí)候我會稍微休息一下,然后繼續(xù)搬磚。

較終,我完成了所有代碼,然后開始運(yùn)行。咦,為什么運(yùn)行效果不對?我趕緊打起精神,開始調(diào)試起代碼來。這個(gè)時(shí)候,我一會兒切換成上帝視角,審視自己的架構(gòu)是否有漏洞。一會兒切換成農(nóng)民視角視角,看自己是不是不小心敲錯了一些代碼細(xì)節(jié)。

較終,代碼被全部編寫完成并且運(yùn)行正常了。

app開發(fā),app制作

APP開發(fā)的一些技巧

上帝視角的技巧

上帝視角中,切忌不應(yīng)該過于著急動手,把一切的細(xì)節(jié)都想清楚,看看有沒有特殊情況沒有考慮到。如果一開始設(shè)計(jì)得不好,那么真正實(shí)現(xiàn)到較后才發(fā)現(xiàn),那么農(nóng)民視角視角下寫的代碼就白白浪費(fèi)了。

上帝視角的工作是可以脫離電腦來實(shí)施的,這意味著我們可以拉上同事,找個(gè)白板討論。我們也可以在上下班的路上思考。

經(jīng)過討論的上帝視角的產(chǎn)出會更加靠譜,在我們公司,我們會在 Scrum 的計(jì)劃會議的后半程,用出牌的方式估計(jì)每一個(gè)工作的 Story Point,而具體的估計(jì)方式,就是以上帝視角將整個(gè)工作細(xì)化,使得我們大家能夠明確出農(nóng)民視角視角下的編碼工作量到底是多少。

軟件開發(fā)能力的提高,上帝視角會比農(nóng)民視角視角更難,在上帝視角下工作得出色的同學(xué),會進(jìn)一步成為架構(gòu)師,成為更復(fù)雜架構(gòu)的設(shè)計(jì)規(guī)劃者。

在軟件開發(fā)書籍中,涉及上帝視角的圖書也有很多,例如《設(shè)計(jì)模式》和《重構(gòu)》,但是好的架構(gòu)都是無法脫離實(shí)際業(yè)務(wù)的,所以大多數(shù)程序員都無法通過簡單地看書就提高自己的上帝視角的能力,更多的提高方式是工作一段時(shí)間,有一些實(shí)際體會之后再看書,就能夠理解書中的道理。

農(nóng)民視角視角的技巧

農(nóng)民視角視角中,效率是要素。所以,保證自己的專注力是非常重要的。在這方面,「番茄工作法」是一個(gè)不錯的實(shí)踐方式。

農(nóng)民視角視角中,應(yīng)該盡量采用「寬度優(yōu)先搜索」的方式來完成任務(wù),而不是「深度優(yōu)先搜索」的方式。在上面的例子中,我先將各種類的類名和方法名填好,然后再完善細(xì)節(jié)就是一種「寬度優(yōu)先搜索」的方式。這種方式下,我們不需要額外的「??臻g」來保存工作的上下文。

為了更容易理解,我來舉一個(gè)「深度優(yōu)先搜索」的工作方式,在上面的例子中,我先寫界面的 Controller 類,寫到一半發(fā)現(xiàn)需要 TableViewCell,于是就去寫 TableViewCell。TableViewCell 寫到一半發(fā)現(xiàn)需要先實(shí)現(xiàn) ViewModel,然后就跑去實(shí)現(xiàn) ViewModel,ViewModel 實(shí)現(xiàn)完發(fā)現(xiàn)需要緩存起來,于是就跑去寫緩存邏輯。這種工作方式下,我就需要分別記?。篊ontroller 的進(jìn)度和 TableViewCell 的進(jìn)度,以便我之后繼續(xù)完善它們。這種方式其實(shí)就相當(dāng)于一次「打斷」,因?yàn)槲野?Controller 的編寫硬生生拆成了兩次,這樣就使得我需要更多時(shí)間回記上次的思路。

農(nóng)民視角視角中,我們應(yīng)該盡量提升自己的代碼輸入效率。比如將常用的代碼片段保存在 Xcode 的 Snippets 中或者 Dash 中,在組織內(nèi)規(guī)范好統(tǒng)一的命名約定和規(guī)則,熟悉 APP的各種調(diào)試技巧,都可以使自己更快把上帝視角下的藍(lán)圖轉(zhuǎn)換成實(shí)際代碼。

相對于上帝視角,大部分同學(xué)都會輕視農(nóng)民視角視角下的效率。比如寫一會兒代碼聊一會兒 QQ。比如由于自己事先積累不夠,很多基本的 APP開發(fā)知識還需要查資料和文檔。農(nóng)民視角視角下的效率低下,使得一個(gè)人看起來工作了很久,卻沒有什么產(chǎn)出。

在 APP開發(fā)領(lǐng)域,我個(gè)人的經(jīng)驗(yàn)表明,我在一整天的農(nóng)民視角視角中,可以產(chǎn)出 1000 行左右的代碼。2012 年猿題庫創(chuàng)業(yè)初期時(shí),我在 4 個(gè)月的緊張工作中,平均每天的代碼產(chǎn)出約為 500 行。

app開發(fā),app制作

APP開發(fā)的一些問題

提升上帝視角能力

很多app開發(fā)新手對于提升自己上帝視角的能力感覺到無從下手,建議這部分同學(xué)可以多分析一些的開源軟件的架構(gòu),同時(shí)閱讀一些相關(guān)的書籍。另外,每一次惡心的重構(gòu)都是一次難得的經(jīng)驗(yàn),說明之前的架構(gòu)設(shè)計(jì)不夠優(yōu)雅,結(jié)合自身的業(yè)務(wù)特點(diǎn),多思考多討論,慢慢地就會培養(yǎng)出自己對于架構(gòu)的一些心得了。

提升農(nóng)民視角視角效率

很多app開發(fā)新手對于農(nóng)民視角視角不夠重視。一個(gè)程序員大部分時(shí)間都應(yīng)該是處于農(nóng)民視角視角的,農(nóng)民視角視角決定了我們產(chǎn)出的效率,而很多人只重視工作時(shí)間,不重視工作效率,使得自己的產(chǎn)出非常低下。

提升自己的農(nóng)民視角視角能力,建議使用「番茄工作法」并且做一些時(shí)間記錄,平時(shí)多學(xué)習(xí)一些較新的 app開發(fā)知識,以便減少自己的知識盲區(qū)。專注于自己的精力是否集中,如果覺得太累,就活動一下或者適當(dāng)休息,不應(yīng)該強(qiáng)迫自己Coding。

警惕混搭模式

混搭模式,類似于練功人士的「走火入魔」,專指那些在上帝視角沒有想清楚,就馬上切入農(nóng)民視角視角寫代碼,寫到一半代碼又切到上帝視角思考。邊寫邊想的混搭模式使得自己想的時(shí)候不夠清晰,寫的時(shí)候又不夠?qū)W?,兩邊都不討好。通常剛剛?cè)胄械娜硕继幱谶@種混搭的模式,不但寫出來的代碼容易有邏輯錯誤,而且速度很慢。

網(wǎng)頁題目:app軟件開發(fā)如何提升上帝視角和農(nóng)民視角能力
文章路徑:http://jinyejixie.com/news/91425.html

網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營銷seo公司;服務(wù)項(xiàng)目有軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
苏尼特右旗| 昂仁县| 密云县| 庄河市| 临澧县| 若尔盖县| 祁门县| 乡城县| 湟中县| 巴林左旗| 文水县| 曲周县| 吉木萨尔县| 石台县| 巴林左旗| 玉龙| 湛江市| 芮城县| 怀来县| 信宜市| 通河县| 麦盖提县| 东明县| 垣曲县| 衡阳县| 崇文区| 永安市| 大竹县| 元朗区| 读书| 鹤岗市| 喀喇沁旗| 泰和县| 凤阳县| 麻城市| 德阳市| 镇远县| 合山市| 新建县| 洞头县| 镇坪县|