關注用戶體驗,梳理客戶需求,我們更懂您!
APP軟件開發發布時間:2019-12-01 瀏覽次數:2271
我在做APP開發的時候,發現自己在寫程序的時候,常常處于兩種狀態的切換,我把這兩種狀態稱為軟件開發的上帝模式與農民模式。我先給大家介紹一下這兩種模式的特點。
上帝模式
處于上帝模式時,我需要構思整個應用的架構設計,如何進行類之間的組織和信息的傳遞。我有可能會在紙上畫一些類圖,把關鍵的幾個類之間關系構思清楚。這就類似于建筑師畫設計圖紙一樣。
在這個階段,我的大腦是努力工作的,我會利用我學到的《設計模式》、《重構》、《代碼大全》中的架構知識,先把類的關系組織好。然后我會深入到每一類的實現細節,構思好每個類大概怎么實現,這個過程又會利用了如何命名、DRY 原則、單一職責原則等編程知識。
而這一切的行為,都是在紙上完成的,我甚至會關掉電腦屏幕,因為電腦屏幕前有很多影響注意力的信息(例如 QQ、微信、郵件等)。
農民模式
當一切構思基本完成,我就會打開APP開發工具,開始我的農民模式工作。
在農民模式,我會專心于將我剛剛構思好的內容變成一行行真實的代碼。由于已經想得比較清楚,這個過程通常更多是一種體力活,或者好聽一點,是一個手藝人的體力活。對于農民模式的我來說,我需要知道 APP開發的各種基本知識,以及一些常見的提升效率的工作方式,以便我能夠更快地完成編碼工作。
在農民模式中,我會注意集中精力,因為雖然實現代碼是偏體力活的事情,但是思路如果斷掉,接上的話還是會花費不少時間。有一些同事會喜歡戴上耳機,以避免干擾,也是這個道理。
我還會把每個類大概的成員變量和成員方法名想好。構思完成之后,我脫下上帝的黃袍(別問我上帝為什么要穿黃袍,我也不知道),換上農民干活的麻布衣服,開始搬代碼了。我先把這些類都建好,方法名命名好。接著我開始填一個一個的方法名的實現。
每一個類的實現過程都可以看作一個階段性的成果,這個時候我會稍微休息一下,然后繼續搬磚。
較終,我完成了所有代碼,然后開始運行。咦,為什么運行效果不對?我趕緊打起精神,開始調試起代碼來。這個時候,我一會兒切換成上帝模式,審視自己的架構是否有漏洞。一會兒切換成農民模式,看自己是不是不小心敲錯了一些代碼細節。
較終,代碼被全部編寫完成并且運行正常了。
一些技巧
上帝模式的技巧
上帝模式中,切忌不應該過于著急動手,把一切的細節都想清楚,看看有沒有特殊情況沒有考慮到。如果一開始設計得不好,那么真正實現到較后才發現,那么農民模式下寫的代碼就白白浪費了。
上帝模式的工作是可以脫離電腦來實施的,這意味著我們可以拉上同事,找個白板討論。我們也可以在上下班的路上思考。
經過討論的上帝模式的產出會更加靠譜,在我們公司,我們會在 Scrum 的計劃會議的后半程,用出牌的方式估計每一個工作的 Story Point,而具體的估計方式,就是以上帝模式將整個工作細化,使得我們大家能夠明確出農民模式下的編碼工作量到底是多少。
軟件開發能力的提高,上帝模式會比農民模式更難,在上帝模式下工作得出色的同學,會進一步成為架構師,成為更復雜架構的設計規劃者。
在軟件開發書籍中,涉及上帝模式的圖書也有很多,例如《設計模式》和《重構》,但是好的架構都是無法脫離實際業務的,所以大多數程序員都無法通過簡單地看書就提高自己的上帝模式的能力,更多的提高方式是工作一段時間,有一些實際體會之后再看書,就能夠理解書中的道理。
農民模式的技巧
農民模式中,效率是第一要素。所以,保證自己的專注力是非常重要的。在這方面,「番茄工作法」是一個不錯的實踐方式。
農民模式中,應該盡量采用「寬度優先搜索」的方式來完成任務,而不是「深度優先搜索」的方式。在上面的例子中,我先將各種類的類名和方法名填好,然后再完善細節就是一種「寬度優先搜索」的方式。這種方式下,我們不需要額外的「棧空間」來保存工作的上下文。
為了更容易理解,我來舉一個「深度優先搜索」的工作方式,在上面的例子中,我先寫界面的 Controller 類,寫到一半發現需要 TableViewCell,于是就去寫 TableViewCell。TableViewCell 寫到一半發現需要先實現 ViewModel,然后就跑去實現 ViewModel,ViewModel 實現完發現需要緩存起來,于是就跑去寫緩存邏輯。這種工作方式下,我就需要分別記住:Controller 的進度和 TableViewCell 的進度,以便我之后繼續完善它們。這種方式其實就相當于一次「打斷」,因為我把 Controller 的編寫硬生生拆成了兩次,這樣就使得我需要更多時間回記上次的思路。
農民模式中,我們應該盡量提升自己的代碼輸入效率。比如將常用的代碼片段保存在 Xcode 的 Snippets 中或者 Dash 中,在組織內規范好統一的命名約定和規則,熟悉 APP的各種調試技巧,都可以使自己更快把上帝模式下的藍圖轉換成實際代碼。
相對于上帝模式,大部分同學都會輕視農民模式下的效率。比如寫一會兒代碼聊一會兒 QQ。比如由于自己事先積累不夠,很多基本的 APP開發知識還需要查資料和文檔。農民模式下的效率低下,使得一個人看起來工作了很久,卻沒有什么產出。
在 APP開發領域,我個人的經驗表明,我在一整天的農民模式中,可以產出 1000 行左右的代碼。2012 年猿題庫創業初期時,我在 4 個月的緊張工作中,平均每天的代碼產出約為 500 行。
一些問題
提升上帝模式能力
很多app開發新手對于提升自己上帝模式的能力感覺到無從下手,建議這部分同學可以多分析一些優秀的開源軟件的架構,同時閱讀一些相關的書籍。另外,每一次惡心的重構都是一次難得的經驗,說明之前的架構設計不夠優雅,結合自身的業務特點,多思考多討論,慢慢地就會培養出自己對于架構的一些心得了。
提升農民模式效率
很多app開發新手對于農民模式不夠重視。一個程序員大部分時間都應該是處于農民模式的,農民模式決定了我們產出的效率,而很多人只重視工作時間,不重視工作效率,使得自己的產出非常低下。
提升自己的農民模式能力,建議使用「番茄工作法」并且做一些時間記錄,平時多學習一些較新的 app開發知識,以便減少自己的知識盲區。專注于自己的精力是否集中,如果覺得太累,就活動一下或者適當休息,不應該強迫自己Coding。
警惕混搭模式
混搭模式,類似于練功人士的「走火入魔」,專指那些在上帝模式沒有想清楚,就馬上切入農民模式寫代碼,寫到一半代碼又切到上帝模式思考。邊寫邊想的混搭模式使得自己想的時候不夠清晰,寫的時候又不夠專注,兩邊都不討好。通常剛剛入行的人都處于這種混搭的模式,不但寫出來的代碼容易有邏輯錯誤,而且速度很慢。
App開發不是“萬能藥”,但它是企業從“流量思維”轉向“用戶思維”的關鍵工具。當你能通過App提供“不可替代”的價值(比如更便捷的服務、更專屬的體驗、更懂用戶的需求),用戶自然會留下來,增長也就水到渠成。
各位App開發公司的老板和運營小伙伴們!在如今這個競爭激烈的市場環境下,要是咱公司有連鎖業務,打造一套高效的連鎖運營體系那可太重要啦!它能讓咱的各個連鎖分支高效協作,提升整體競爭力。
APP開發想成功,就得精準解決用戶痛點,從操作、功能、性能等方面下足功夫。看完這些,你是不是對好用的APP如何誕生有了更深的了解?要是你在使用APP過程中還有哪些煩惱,或者有啥好的APP開發想法,歡迎在評論區嘮一嘮!
些集成在 APP 里的超強功能,每一個都 “戰斗力爆表”!在北京這樣充滿機遇和挑戰的城市,擁有一款這樣的 APP,就相當于給自己的業務裝上了 “超級引擎”,效率飆升不在話下!
北京APP開發行業機遇與挑戰并存。當下 AI 技術、跨平臺開發、注重用戶體驗以及與物聯網融合等趨勢明顯,要打造爆款APP,就得精準定位用戶,突出核心功能,做好運營推廣。
咱就是說,現在誰的手機里還沒裝個十來個APP?點外賣、刷視頻、學知識、買東西……APP早就成了我們生活里離不開的 “電子搭子”。可你有沒有想過,這些五花八門、功能超全的APP,都是咋誕生的?答案就是 ——APP開發公司!
風口已經來了,北京的APP 開發市場就像一片藍海,充滿了無限可能!只要咱們公司精準洞察市場、堅持技術創新、做好營銷推廣、打造優秀團隊、合規運營,就一定能在這波紅利期搶占先機,實現快速發展!
北京App開發團隊通過深挖用戶需求、創新功能設計、優化技術架構和創新營銷推廣等打破常規的思路,開發出了許多獨具特色、深受用戶喜愛的App。在未來,隨著技術的不斷發展和市場的變化,相信北京App開發會繼續保持創新活力,為用戶帶來更多優質的App產品。
在北京App開發,精準解決用戶痛點是關鍵。通過深入調研、分析競品、關注行業動態發現痛點,在功能設計、用戶體驗、持續優化上解決痛點,再借助北京的資源優勢,相信你一定能開發出一個受用戶歡迎的App。
在2025年的今天,科技飛速發展,各行各業都在尋求數字化轉型的突破口。對于App開發公司來說,低代碼平臺無疑是一把利器,它正以前所未有的方式顛覆著傳統行業的開發模式。