【從開公司到開發(fā)全平臺(tái)產(chǎn)品】3.軟件開發(fā)設(shè)計(jì)階段的思考敦间、實(shí)踐-UPUPMO

  • 大家好,我是 UPUPMO.com 的作者 Meek,歡迎觀看 《從開公司到開發(fā)全平臺(tái)產(chǎn)品》系列廓块。
  • 希望通過(guò)該系列可以幫助新手厢绝,快速了解全棧軟件產(chǎn)品的一些思路、應(yīng)用带猴。
  • 本期我們講解第三章:《軟件開發(fā)設(shè)計(jì)階段的思考昔汉、實(shí)踐》
  • 我們將會(huì)從以下5個(gè)小節(jié)進(jìn)行探討:
1. 競(jìng)品分析
2. 原型設(shè)計(jì)
3. UI 設(shè)計(jì)
4. 架構(gòu)設(shè)計(jì)
5. 基礎(chǔ)數(shù)據(jù)準(zhǔn)備(爬蟲)
6. 項(xiàng)目管理

1. 競(jìng)品分析

[圖片上傳失敗...(image-38f507-1654935459289)]

1.1 總結(jié)

  • 目標(biāo): 通過(guò)競(jìng)品了解其背后的用戶群體、應(yīng)用場(chǎng)景拴清、推廣策略靶病、運(yùn)營(yíng)策略
  • 長(zhǎng)度: 競(jìng)品分析是一個(gè)持續(xù)性的過(guò)程,需要跟進(jìn)產(chǎn)品的迭代口予、發(fā)版
  • 注意: 如果你不喜歡的這一行嫡秕,你很難投入熱情去做,最好是知道自己喜歡什么苹威。

1.2 步驟、細(xì)節(jié)

[圖片上傳失敗...(image-281c14-1654935459289)]

  • 準(zhǔn)備思維導(dǎo)圖驾凶,用于制作功能點(diǎn)圖
  • 區(qū)別:直接競(jìng)品牙甫、間接競(jìng)品、潛在競(jìng)品
  • 區(qū)分:核心功能點(diǎn)调违、特色功能點(diǎn)窟哺、次要功能點(diǎn),排出優(yōu)先級(jí)
  • 把所有競(jìng)品的功能點(diǎn)技肩、流程等信息先用思維導(dǎo)圖客觀羅列出來(lái)且轨,不用急著分析。因?yàn)榉治龈?jìng)品很容易有主觀情緒虚婿,所以一開始先客觀羅列即可旋奢。
  • 摸索各個(gè)功能點(diǎn)的開發(fā)動(dòng)機(jī),它們要解決用戶什么問(wèn)題然痊,怎么觸發(fā)至朗、怎么流轉(zhuǎn)
  • 畫出核心主體 ER 圖:一對(duì)多、多對(duì)多剧浸、一對(duì)一等關(guān)系锹引,用傳統(tǒng)數(shù)據(jù)庫(kù)方式思考,可以有效約束思考范圍
  • 畫出核心唆香、高頻操作的流程圖
  • 截圖交互亮點(diǎn)(流程步驟嫌变、提示邏輯等)
  • 截圖視覺感光亮點(diǎn)(UI 配色、字體等)
  • 詢問(wèn)周邊的人對(duì)競(jìng)品的第一印象
  • 制作 Excel 對(duì)比不同競(jìng)品之間的優(yōu)缺點(diǎn)
  • 了解競(jìng)品公開市場(chǎng)報(bào)告躬它,包括:
技術(shù)架構(gòu)
行業(yè)報(bào)告
人才招聘
社區(qū)交流
動(dòng)態(tài)新聞
官方文檔腾啥、博客
客戶咨詢
用戶存量
日活
活躍時(shí)長(zhǎng)
產(chǎn)品營(yíng)收
產(chǎn)品版本發(fā)布記錄
融資情況
商業(yè)合作
國(guó)家政策

1.3 輸出用戶故事

XXX 產(chǎn)品的 XXX 功能,是希望能解決 XXX 類用戶能在 XXX 場(chǎng)景下能解決 XXX 問(wèn)題,能解決 XXX 數(shù)量問(wèn)題
XXX 產(chǎn)品的 XXX UI 做了 XXX 改動(dòng)碑宴,為了解決 XXX 問(wèn)題
XXX 產(chǎn)品的 XXX 交互做了 XXX 改動(dòng)软啼,為了解決 XXX 問(wèn)題
XXX 產(chǎn)品新增 XXX 功能,為了解決 XXX 問(wèn)題
XXX 產(chǎn)品刪除 XXX 功能延柠,為了解決 XXX 問(wèn)題
XXX 產(chǎn)品 XXX 版本和 XXX 版本之間的變動(dòng)祸挪,透露了 XXX 意圖

2. 原型設(shè)計(jì)

  • 如果是個(gè)人開發(fā),精細(xì)度不用太高贞间。時(shí)間沒(méi)有那么多贿条,能表達(dá)出要做什么、怎么做即可增热。
  • 有突發(fā)靈感時(shí)候建最好立刻議記錄下來(lái)整以。
  • 我不是很推薦現(xiàn)在的產(chǎn)品經(jīng)理還需要專門再寫一個(gè)《需求文檔》,而是借助原型的備注峻仇,在上面?zhèn)渥M你想表達(dá)的細(xì)節(jié)公黑。
  • 讓原型作為產(chǎn)品經(jīng)理的唯一文檔、唯一工具摄咆,這對(duì)團(tuán)隊(duì)協(xié)作有至高的幫助凡蚜。
  • 行業(yè)早期,網(wǎng)絡(luò)不好吭从,云協(xié)作不存在的時(shí)候需要本地化 Word 文檔朝蜘,是大家都不得不做的事,可是現(xiàn)在的時(shí)代變了啊涩金。
  • 如果需要落盤存儲(chǔ)做證據(jù)谱醇,現(xiàn)在云協(xié)作也是可以導(dǎo)出 Word、HTML步做、PDF副渴,完全也可以作為最終交付物的。

2.1 客戶端軟件

[圖片上傳失敗...(image-58262e-1654935459289)]

  • Axure全度,中規(guī)中矩佳晶,網(wǎng)絡(luò)上免費(fèi)模板很多,但因?yàn)椴皇?Web 架構(gòu)讼载,所以協(xié)同效果不好

2.2 網(wǎng)頁(yè)端軟件

[圖片上傳失敗...(image-3c7226-1654935459289)]

  • 墨刀轿秧,免費(fèi)額度很低,基本等于收費(fèi)咨堤。但是素材廣場(chǎng)有很多模板可以直接使用
  • VIP 用戶還可以導(dǎo)出安卓 APK菇篡,可以分享觀看,可以多人協(xié)同
  • 還有一些其他懶得介紹了

3. UI 設(shè)計(jì)

3.1 客戶端軟件

[圖片上傳失敗...(image-757124-1654935459289)]

  • PhotoShop
  • Sketch
  • Adobe XD
  • 我個(gè)人傾向于 Adobe XD 的跨平臺(tái)一喘,并且網(wǎng)上素材也很多

3.2 網(wǎng)頁(yè)端軟件

[圖片上傳失敗...(image-e68a71-1654935459289)]

  • MasterGo
  • 藍(lán)湖
  • Figma
  • 我個(gè)人傾向于 Figma驱还,但是可惜是在外網(wǎng)嗜暴,所以只能選其他。
  • 國(guó)內(nèi)推薦 MasterGo议蟆。

3.3 代碼設(shè)計(jì)

[圖片上傳失敗...(image-4f9b75-1654935459289)]

  • 如果對(duì)細(xì)節(jié)要求不高的話闷沥,可以直接堆代碼來(lái)代替設(shè)計(jì)。現(xiàn)在的 UI 框架樣式美觀咐容,基礎(chǔ)組件齊全舆逃。
  • TailwindCSS
  • Element Plus
  • Vant
  • Ant Design Vue

4. 架構(gòu)設(shè)計(jì)

[圖片上傳失敗...(image-63195f-1654935459289)]

4.1 架構(gòu)是什么

  • 架構(gòu)目前可以為:軟件架構(gòu)、硬件架構(gòu)戳粒、業(yè)務(wù)架構(gòu)路狮、應(yīng)用架構(gòu)、基礎(chǔ)架構(gòu)蔚约、數(shù)據(jù)架構(gòu)等等各種架構(gòu)奄妨。
  • 不管你是怎樣的定義架構(gòu)的,我只認(rèn)為:架構(gòu)是一種人類分工能力的體現(xiàn)苹祟,是作為高級(jí)工具人的體現(xiàn)砸抛,是 5W2H 一種體現(xiàn)
  • 馬克思說(shuō)過(guò):分工作為一切特殊的生產(chǎn)活動(dòng)方式的總體树枫,是從物質(zhì)方面锰悼、作為生產(chǎn)使用價(jià)值的勞動(dòng)來(lái)考察的社會(huì)勞動(dòng)的總體形式
  • 附 5W2H 解釋:
what     >>> 是什么?目的是什么团赏?做什么工作?
why      >>> 為什么要做耐薯?可不可以不做舔清?有沒(méi)有替代方案?
who      >>> 誰(shuí)曲初?由誰(shuí)來(lái)做体谒?
when     >>> 何時(shí)?什么時(shí)間做臼婆?什么時(shí)機(jī)最適宜抒痒?
where    >>> 何處?在哪里做颁褂?
how      >>> 怎么做故响?如何提高效率?如何實(shí)施颁独?方法是什么彩届?
how much >>> 做多少?做到什么程度誓酒?數(shù)量如何樟蠕?質(zhì)量水平如何?費(fèi)用產(chǎn)出如何?

4.2 為什么要做架構(gòu)設(shè)計(jì)?

  • 因?yàn)橐?wù)的客戶越來(lái)越難伺候寨辩,市場(chǎng)同類產(chǎn)品競(jìng)爭(zhēng)越來(lái)越激烈吓懈,要求越來(lái)越高,復(fù)雜需求越來(lái)越多靡狞,團(tuán)隊(duì)成員需要更多協(xié)調(diào)
  • 技術(shù)上的復(fù)雜耻警,一般我們可以概括為:
高性能:我這個(gè)不能等,那個(gè)不能等
高可用:這個(gè)為什么點(diǎn)不了耍攘,那個(gè)為啥訪問(wèn)不了
可擴(kuò)展性:為什么加個(gè)新類型要開發(fā)一周
低成本:為什么 Go 的項(xiàng)目就是比你 Java 用的內(nèi)存低
安全:一失足千古恨
規(guī)模:數(shù)據(jù)越來(lái)越多榕栏,功能越來(lái)越多
體驗(yàn):這個(gè)要能搜索,那個(gè)要優(yōu)雅
  • 以上的種種本質(zhì)都是為了以盡可能以最低的代價(jià)服務(wù)好用戶蕾各。
  • 我們看待問(wèn)題盡可能抓本質(zhì)扒磁,所謂的各種優(yōu)化、緩存式曲、MQ 等等都是手段妨托,要不要用,怎么用吝羞,就是架構(gòu)師的核心兰伤。
  • 事情永遠(yuǎn)是做不完的,要懂得排列優(yōu)先級(jí)順序钧排。
  • 學(xué)東西盡可能系統(tǒng)化敦腔,不要片段化。

4.3 好的架構(gòu)可以帶來(lái)什么?

  • 清晰性
  • 擴(kuò)展性
  • 可維護(hù)性
  • 安全性
  • 穩(wěn)定性
  • 可控性
  • 復(fù)雜性
  • 高性能

4.4 架構(gòu)的核心:人

  • 企業(yè)恨溜、公司等社會(huì)組織都是個(gè)殼符衔,最終做事的是人,最終決定成就糟袁、決定問(wèn)題的根本都是人判族。
  • 是人決定技術(shù),是人寫了代碼项戴,所以面試挑選出適合團(tuán)隊(duì)文化的人是非常非常非常的重要的一件事形帮。
  • 架構(gòu)的前期也是圍繞著人來(lái),要識(shí)別出項(xiàng)目相關(guān)干系人周叮,圍繞這些人進(jìn)行思考
  • 人是重要的辩撑,但是人又往往是不靠譜的,能用程序執(zhí)行的仿耽,最好別用人槐臀。
  • 人都是有惰性的,如何制定規(guī)則氓仲,彼此鞭策水慨,讓彼此之間能一起勇往直前是門學(xué)問(wèn)
  • 人要高效的前提是需要信息透明化(包含:自我透明化得糜、項(xiàng)目透明化、關(guān)系透明化)晰洒,透明的信息是讓同事朝抖、領(lǐng)導(dǎo)信任你的基礎(chǔ)。

4.5 領(lǐng)導(dǎo)力

  • 做領(lǐng)導(dǎo)核心能力:教導(dǎo)能力谍珊,協(xié)調(diào)能力治宣,全局能力
  • 領(lǐng)導(dǎo)是決定船向的人,領(lǐng)導(dǎo)技術(shù)不行砌滞、管理不行侮邀,理論上不存在下屬行的,除非歷史原因遺留的人贝润。
  • 做領(lǐng)導(dǎo)該授權(quán)的時(shí)候大膽授權(quán)绊茧,不應(yīng)該什么事都身體力行,時(shí)間是有限的
  • 做領(lǐng)導(dǎo)最忌諱的就是只會(huì)提這個(gè)打掘,要那個(gè)华畏,無(wú)法給團(tuán)隊(duì)提供幫助,無(wú)法給成員賦能尊蚁,無(wú)法系統(tǒng)性思考問(wèn)題亡笑。
  • 做領(lǐng)導(dǎo)最應(yīng)該制定好目標(biāo),協(xié)調(diào)好資源横朋,確保合適的人在合適的時(shí)間做合適的事情仑乌,保證成本最低也是最高效。
  • 做領(lǐng)導(dǎo)的最好是每天晚上花半小時(shí)篩選簡(jiǎn)歷琴锭,招聘很是看緣分晰甚。并且備選人才多了,也不用擔(dān)心下面的人不夠用祠够,不用擔(dān)心刺頭。

4.6 做架構(gòu)的優(yōu)先原則是什么?

  • 服務(wù)于現(xiàn)實(shí)粪牲,脫虛與現(xiàn)實(shí)
  • 合適原則:適合當(dāng)下古瓤,適合當(dāng)前企業(yè)的人力情況、成本腺阳、業(yè)務(wù)等條件落君,而不是說(shuō) Rust 比 Java 內(nèi)存低、性能強(qiáng)亭引,我就要绎速。
  • 簡(jiǎn)單原則:在滿足需求的情況,越簡(jiǎn)單越好焙蚓,能不用微服務(wù)就不用纹冤,能不用 K8S 就不用洒宝,能不用 Hadoop 就不用
  • 演化原則:大多數(shù)事情都是無(wú)法一步到位的,人最喜歡變化

4.7 架構(gòu)必經(jīng)之路:語(yǔ)言之爭(zhēng)

  • 我不忠于某個(gè)語(yǔ)言萌京,我只終于其生態(tài)雁歌。從找工作角度上考慮,Java知残、JavaScript靠瞎、HTML/CSS 這類長(zhǎng)期多。
  • 語(yǔ)言學(xué)得越多求妹,有對(duì)比才會(huì)有傷害乏盐,在學(xué)習(xí)過(guò)程中必然會(huì)在自己心中產(chǎn)生一個(gè)最適合自己的語(yǔ)言
  • 能做全棧是最好的,做個(gè)產(chǎn)品不會(huì)求著別人支持制恍。
  • 產(chǎn)品不一定是要某一類父能,可以是類 Linux 系統(tǒng),也可以是微信生態(tài)的一小個(gè)產(chǎn)品等等吧趣,只要是有人用法竞,愿意掏錢,或者可以有廣告收入强挫、贊助就是可以的岔霸,過(guò)程是艱辛的,需要不斷摸索俯渤。
  • 我自己寫過(guò) Java呆细、Scala、JavaScript八匠、HTML/CSS絮爷、Python、Go梨树、Dart坑夯、SQL、Shell
  • 我寫 Java抡四、Scala 是因?yàn)槲倚枰?Spring Boot柜蜈、Spark、Flink
  • 我寫 JavaScript指巡、HTML/CSS 是因?yàn)槲倚枰岸苏故?/li>
  • 我寫 Python 是因?yàn)槲倚枰老x淑履、數(shù)據(jù)分析
  • 我寫 Go 是因?yàn)槲倚枰p量微服務(wù)框架、容器化
  • 我寫 Dart 是因?yàn)槲倚枰?Flutter 做移動(dòng)端
  • 我寫 SQL 是因?yàn)槲倚枰樵償?shù)據(jù)庫(kù)
  • 我寫 Shell 是因?yàn)槲倚枰\(yùn)維應(yīng)用
  • 我不是為了學(xué)習(xí)語(yǔ)言而學(xué)習(xí)藻雪,我只是要它們的生態(tài)而已秘噪,我其實(shí)很希望這個(gè)世界只有一個(gè)完美的跨端操作系統(tǒng)、開發(fā)生態(tài)勉耀。只是這不可能會(huì)發(fā)生指煎。
  • 目前行業(yè)沒(méi)有辦法用一種語(yǔ)言干所有事蹋偏,只能一直學(xué)習(xí)。
  • 學(xué)習(xí)多了贯要,知識(shí)點(diǎn)多暖侨,全記腦袋肯定是沒(méi)辦法的,要邊學(xué)邊做筆記邊練習(xí)崇渗,善于用搜索字逗。
  • 雖然我寫 Java 較多,但是從微服務(wù)角度來(lái)講目前我更加看好 Go宅广、gRPC葫掉、CNCF 一系列生態(tài)。
  • 微服務(wù)講究的就是微跟狱,Go 確實(shí)很適合俭厚,也適合做些工具類。目前它就差一個(gè)類 Pivotal 企業(yè)專注在 Web 框架領(lǐng)域的公司驶臊。
  • 現(xiàn)在很多企業(yè)根本沒(méi)到微服務(wù)的階段挪挤,并且他們也負(fù)擔(dān)不起一年二十萬(wàn)的服務(wù)器費(fèi)用,所以不要為了架構(gòu)而架構(gòu)关翎。大多數(shù)企業(yè)都是沒(méi)錢扛门、沒(méi)能力。
  • 更加長(zhǎng)期看我比較認(rèn)可 Rust 這種編譯期就能解決99%問(wèn)題的死板語(yǔ)言纵寝,就是目前生態(tài)還太弱了论寨,需要繼續(xù)觀察。
  • 雖然 Spring 也在努力爽茴,比如在嘗試 Spring Native葬凳,但是畢竟晚了太多,我還是相信未來(lái) 10 年室奏,在微服務(wù)領(lǐng)域一定是以 Go 為主導(dǎo)火焰。

4.8 架構(gòu)設(shè)計(jì)流程

  • 識(shí)別系統(tǒng)復(fù)雜度之處,也就是系統(tǒng)的難點(diǎn)胧沫。需要優(yōu)先做調(diào)研昌简、預(yù)研
  • 多種方案評(píng)估原則:性能、復(fù)雜度琳袄、成本江场、可擴(kuò)展性纺酸、可用性窖逗、部署迭代成本

4.9 DDD 的借鑒(領(lǐng)域驅(qū)動(dòng)設(shè)計(jì))

  • 聲明:不是什么項(xiàng)目都可以上 DDD 的。如果只是簡(jiǎn)單的 CURD 就可以解決的業(yè)務(wù)系統(tǒng)餐蔬。業(yè)務(wù)邏輯簡(jiǎn)單碎紊,模塊彼此關(guān)聯(lián)不多系統(tǒng)佑附,都是不應(yīng)該用 DDD 的。
  • DDD 適合指導(dǎo)復(fù)雜微服務(wù)服務(wù)仗考,因?yàn)?DDD 的限界上下文適合指導(dǎo)微服務(wù)的劃分音同。
  • DDD 是可擴(kuò)展的業(yè)務(wù)架構(gòu)方法論,它的核心訴求就是將業(yè)務(wù)架構(gòu)映射到系統(tǒng)架構(gòu)上秃嗜,在響應(yīng)業(yè)務(wù)變化調(diào)整業(yè)務(wù)架構(gòu)時(shí)权均,也隨之變化系統(tǒng)架構(gòu)。不是為了高性能锅锨、高可用等技術(shù)問(wèn)題而設(shè)計(jì)的叽赊。
  • DDD 強(qiáng)調(diào)從需求分析到代碼實(shí)現(xiàn)到測(cè)試的整個(gè)過(guò)程各人員之間的溝通需要使用一致的無(wú)歧義的領(lǐng)域內(nèi)通用語(yǔ)言。該通用語(yǔ)言必須能夠準(zhǔn)確反映業(yè)務(wù)需求和領(lǐng)域知識(shí)必搞,而不是反映技術(shù)實(shí)現(xiàn)必指。
  • 所以 DDD 對(duì)整體團(tuán)隊(duì)要求都很高,不建議小團(tuán)隊(duì)使用恕洲。
  • 即使是傳統(tǒng)的 MVC 結(jié)構(gòu)塔橡,我也特別推薦大家學(xué)習(xí) DDD 的實(shí)體、聚合根霜第、值對(duì)象葛家、各種 api 入口要嚴(yán)格區(qū)分,雖然代碼量會(huì)增加好幾倍庶诡,但是這個(gè)業(yè)務(wù)復(fù)雜度會(huì)直線下降惦银。代碼量可以考慮通過(guò)生成器來(lái)解決。

4.10 微服務(wù)

  • 微服務(wù)是服務(wù)組織結(jié)構(gòu)的末誓,組織結(jié)構(gòu)不滿足扯俱,微服務(wù)是無(wú)法落地,或者做得很痛苦
  • 微服務(wù)不是拆分得越細(xì)越好喇澡。拆得越細(xì)迅栅,改動(dòng)起來(lái)牽扯的外部關(guān)聯(lián)系統(tǒng)越多,協(xié)調(diào)起來(lái)很難晴玖,可靠性也低读存,排查問(wèn)題困難。
  • 做微服務(wù)就必須上鏈路跟蹤呕屎、監(jiān)控平臺(tái)让簿,要把排查問(wèn)題流程要規(guī)范化购撼,不然一出問(wèn)題就會(huì)很耗時(shí)間笑窜。
  • 微服務(wù)很依賴基礎(chǔ)設(shè)施,如果基礎(chǔ)設(shè)施不完善憔狞,整個(gè)過(guò)程生不如死
  • 微服務(wù)中單個(gè)服務(wù)可以緊貼業(yè)務(wù)快速迭代蹂安,最主要的是也可以更好地管理龐大開發(fā)人員
  • 去中心化組織和部署結(jié)構(gòu)椭迎,減少不必要的協(xié)同锐帜;
  • 數(shù)據(jù)和商業(yè)邏輯受同一個(gè)服務(wù)控制,從而在商業(yè)邏輯快速變更的同時(shí)畜号,保障數(shù)據(jù)模型的
  • 數(shù)據(jù)和狀態(tài)獨(dú)立封裝缴阎,保障一個(gè)業(yè)務(wù)快速演變的同時(shí),還不污染其他業(yè)務(wù)简软;
  • 服務(wù)本身的獨(dú)立部署能力使得容錯(cuò)和容量彈性最大化蛮拔;
  • 細(xì)粒度服務(wù)發(fā)布回滾和故障響應(yīng)能夠有效隔離,出了問(wèn)題可以迅速降級(jí)或回滾痹升。

4.11 核心圖

[圖片上傳失敗...(image-3acf6c-1654935459289)]

  • 聲明:不要死扣 UML 規(guī)則语泽,比如一定要按 UML 的某某形式來(lái)畫圖。
  • 我們要提取這些圖本身要表達(dá)什么视卢,至于畫圖是用圖標(biāo)踱卵、文字、圓圈据过、橢圓等等啥根本不是重點(diǎn)惋砂,但是不能瞎畫。
  • ER 圖
  • 時(shí)序圖绳锅,核心業(yè)務(wù)流程一定要有時(shí)序圖
  • 業(yè)務(wù)架構(gòu)圖
  • 系統(tǒng)架構(gòu)圖
  • 部署架構(gòu)圖
  • 核心功能有時(shí)序圖西饵、流程圖

4.12 數(shù)據(jù)庫(kù)設(shè)計(jì)

[圖片上傳失敗...(image-4bd2fa-1654935459289)]

  • 主推 Navicat Premium 16,可以直接與數(shù)據(jù)庫(kù)互相轉(zhuǎn)換鳞芙,支持顯示字段注釋
  • 次推 PDManer

4.13 YApi 接口設(shè)計(jì)(重要)

[圖片上傳失敗...(image-9f4021-1654935459289)]

  • 這個(gè)我認(rèn)為是最重要的一個(gè)環(huán)節(jié)眷柔,理由如下:
  • 后端不應(yīng)該先急著寫代碼,而是跟著模型原朝、前端頁(yè)面開始寫注釋來(lái)表明開發(fā)思路驯嘱,在備注中寫明這個(gè) API 接口應(yīng)該是怎樣的邏輯,這些會(huì)被代碼生成器作為注釋生成到代碼里面
  • API 的請(qǐng)求參數(shù)喳坠、響應(yīng)參數(shù)都會(huì)生成代碼
  • 寫完的 API 可以直接給前端開發(fā)初期聯(lián)調(diào)使用
  • 如果中間有某個(gè)環(huán)節(jié) API 寫不出來(lái)鞠评,那就說(shuō)明這里需要繼續(xù)溝通、協(xié)調(diào)壕鹉,盡可能在項(xiàng)目初期發(fā)現(xiàn)問(wèn)題
  • 然后代碼生成器根據(jù) API 生成前剃幌、后端大部分基礎(chǔ)代碼,開發(fā)人員再去完善細(xì)節(jié)

4.14 做好壓力測(cè)試

[圖片上傳失敗...(image-dd9cba-1654935459289)]

  • 不一定要強(qiáng)調(diào)測(cè)試結(jié)果要如何如何晾浴,但是至少要有數(shù)據(jù)负乡,作為初始基準(zhǔn)
  • 每一次底層框架升級(jí)、JDK 升級(jí)都會(huì)做相同條件的壓力測(cè)試脊凰,確保這次升級(jí)是否有必要抖棘,不要聽別人說(shuō)怎么怎么好

4.15 做好 A/B 測(cè)試

  • 微服務(wù)系統(tǒng)建議最好 A/B 測(cè)試,確保沒(méi)問(wèn)題,數(shù)據(jù)可行再發(fā)布

4.16 做好監(jiān)控

[圖片上傳失敗...(image-3d888c-1654935459289)]

  • 不管是單體钉答、微服務(wù)都要做好監(jiān)控
  • 首推 Prometheus

4.17 提早做用戶畫像、智能推薦

  • 小團(tuán)隊(duì)沒(méi)有過(guò)多服務(wù)器杈抢,可以定時(shí)日志下載到本地電腦做離線分析
  • 只有了解自己的客戶才能知道后續(xù)要往哪里走
  • 小團(tuán)隊(duì)方案:服務(wù)器調(diào)度任務(wù) > 服務(wù)器 coscmd 上傳日志 > 本地下載日志 > filebeat > kafka > Flink数尿、Spark > MySQL、ClickHouse

5. 基礎(chǔ)數(shù)據(jù)準(zhǔn)備(爬蟲)

5.1 Web 方向

[圖片上傳失敗...(image-932850-1654935459289)]

  • 抓包:Charles
  • 自動(dòng)化:Scrapy惶楼、Selenium

5.2 APP 方向

[圖片上傳失敗...(image-ae48ba-1654935459289)]

  • 安卓 ROOT:TWRP右蹦、Magisk、Move Certificates
  • 抓包:mitmproxy
  • 自動(dòng)化:Uiautomator2歼捐、Weditor何陆、AirTest

6. 項(xiàng)目管理

[圖片上傳失敗...(image-9a575b-1654935459289)]

6.1 敏捷開發(fā)方法

  • 大多數(shù)公司都談敏捷,但敏捷不是銀彈:敏捷方法論是無(wú)法直接轉(zhuǎn)換為技術(shù)生產(chǎn)力豹储,敏捷解決不了技術(shù)問(wèn)題贷盲,寫不出代碼。
  • 敏捷作用是:能增強(qiáng)團(tuán)隊(duì)效率剥扣,提早暴露問(wèn)題巩剖,從而降低開發(fā)成本,提高產(chǎn)品質(zhì)量的一種管理技術(shù)钠怯、一種團(tuán)隊(duì)文化佳魔。
  • 敏捷框架很多,沒(méi)有說(shuō)一定要照搬那些框架的規(guī)規(guī)矩矩晦炊,而是借鑒學(xué)習(xí)鞠鲜,能根據(jù)自己的團(tuán)隊(duì)進(jìn)行適配是最好的,抓住其管理本質(zhì)断国。
  • 敏捷開發(fā)誕生在 2001 年贤姆,其中有一個(gè)主張的 工作的軟件:高于詳盡的文檔
  • 在 2012 年后,Markdown 開始大面積流行之后稳衬,我個(gè)人是不認(rèn)可這個(gè)主張的庐氮。
  • 我認(rèn)為傳統(tǒng)的 word 文檔應(yīng)該盡可能避免,全部轉(zhuǎn)向 Markdown宋彼,轉(zhuǎn)向各類云協(xié)作軟件
  • 我個(gè)人不古板地傾向于任何敏捷框架
  • 讓客戶盡早介入弄砍,參與其中,看項(xiàng)目是否變形(只是有些甲方確實(shí)很蛋疼输涕,外行并且喜歡做爺音婶,不是認(rèn)真想做事的)
  • 敏捷開發(fā)適合溝通能力較強(qiáng)的成員,因?yàn)橹鲝埗鄿贤ɡ晨病f(xié)作衣式。悶聲寫代碼的其實(shí)并不是一個(gè)優(yōu)點(diǎn)。
  • 結(jié)合極限編程、Scrum碴卧、看板弱卡、精益等框架,我比較認(rèn)可點(diǎn)如下:
站立會(huì)議
編碼規(guī)范
迭代演示
定期匯報(bào)
任務(wù)看板
頭腦風(fēng)暴
回顧總結(jié)
消除浪費(fèi)
技術(shù)分享
統(tǒng)一協(xié)作語(yǔ)言(DDD)
座位集中住册,方便直接面對(duì)面溝通
用戶故事:做一位<XXX角色>婶博,我想要<XXX活動(dòng)>,以便于實(shí)現(xiàn)<XXX商業(yè)價(jià)值>
復(fù)雜業(yè)務(wù)荧飞、流程盡可能結(jié)對(duì)編程(兩人水平要差不多)
對(duì)新員工進(jìn)行 code review
攻關(guān)時(shí)刻可以考慮:租個(gè)小別墅封閉開發(fā) 2~3 周左右凡人,不以太長(zhǎng)。
  • 6.2 頭腦風(fēng)暴的時(shí)候需要注意:
中間不許評(píng)價(jià)
異想天開
越多越好
每個(gè)人都參與(但不是人越多就越好叹阔,有些人只會(huì)扯蛋的挠轴,做領(lǐng)導(dǎo)的需要直接當(dāng)面教訓(xùn),要嘛就是直接讓人滾動(dòng)耳幢。做領(lǐng)導(dǎo)沒(méi)魄力岸晦,影響團(tuán)隊(duì)整體氛圍就是領(lǐng)導(dǎo)的責(zé)任。)
  • 6.3 精益的消除浪費(fèi)說(shuō)明:
只有部分完成的工作:只有部分完成但沒(méi)有最終落地的工作睛藻。
未應(yīng)用特性:開發(fā)完成但沒(méi)有被客戶應(yīng)用的特性委煤。
額外過(guò)程:開發(fā)過(guò)程中不需要的流程和中間產(chǎn)物。
再次學(xué)習(xí):人員修档、環(huán)節(jié)變動(dòng)導(dǎo)致反復(fù)重新學(xué)習(xí)碧绞。
信息移交:隱性知識(shí)信息的傳遞,總是伴隨信息丟失吱窝。
任務(wù)切換:多任務(wù)工作會(huì)導(dǎo)致效率下降讥邻。
資源依賴:因任務(wù)或資源相互依賴而導(dǎo)致工作停滯。
系統(tǒng)缺陷:解決缺陷活動(dòng)本身就是浪費(fèi)院峡。
無(wú)效的會(huì)議:討論與其他人無(wú)關(guān)的事情兴使。

6.4 分工模式

  • 小企業(yè),我偏向垂直分工照激,也就是一個(gè)項(xiàng)目對(duì)應(yīng)一整個(gè)團(tuán)隊(duì)发魄,這個(gè)團(tuán)隊(duì)有產(chǎn)品、開發(fā)俩垃、測(cè)試励幼、運(yùn)維,他們需要坐一起口柳,全力為幾個(gè)項(xiàng)目服務(wù)苹粟。
  • 中、大型企業(yè)跃闹,我偏向垂直嵌削、水平兩者結(jié)合毛好,類似管理里面的輪值制度。
  • 可以有技術(shù)預(yù)研團(tuán)隊(duì)苛秕,有業(yè)務(wù)團(tuán)隊(duì)之分肌访。但是每個(gè)人都需要周期性輪換,做項(xiàng)目的時(shí)候以項(xiàng)目為核心艇劫,做預(yù)研以預(yù)研為核心吼驶。
  • 能在這個(gè)轉(zhuǎn)換過(guò)程中快速適應(yīng),學(xué)習(xí)能力強(qiáng)的就是最好的人員港准。
  • 不同人可能會(huì)擅長(zhǎng)不同的業(yè)務(wù)模型,也需要在過(guò)程中了解成員的想法咧欣。
  • 一些復(fù)雜的業(yè)務(wù)模型浅缸,需要能力較強(qiáng)的人來(lái)執(zhí)行,比如基礎(chǔ)架構(gòu)魄咕、會(huì)員中心衩椒、營(yíng)銷規(guī)則等

6.5 認(rèn)知、原則

[圖片上傳失敗...(image-c6a9d7-1654935459289)]

  • 5W2H
  • 5 Why
  • FMEA 方法
  • 木桶理論
  • 邏輯樹法
  • 麥肯錫7步分析法
  • 金字塔原理

6.6 工具

[圖片上傳失敗...(image-379e62-1654935459289)]
[圖片上傳失敗...(image-e35e84-1654935459289)]

  • TAPD + 企業(yè)微信(推薦)
  • 飛書一整套
  • 碼云一整套

推薦幾本書

[圖片上傳失敗...(image-4ab3ff-1654935459289)]

  • 這幾本書都是以人哮兰、技術(shù)角度進(jìn)行綜合探討毛萌,是我比較推薦的
  • 《架構(gòu)即未來(lái)》
  • 《軟件架構(gòu)師的12項(xiàng)修煉》
  • 《從零開始學(xué)架構(gòu):照著做,你也能成為架構(gòu)師》
  • 《系統(tǒng)架構(gòu)設(shè)計(jì):程序員向架構(gòu)師轉(zhuǎn)型之路》

下期預(yù)告

  • 下期我們將介紹《后端開發(fā)的思考喝滞、實(shí)踐》阁将,分別從以下 4 個(gè)方面進(jìn)行講解:
1. 后端行業(yè)中常見爭(zhēng)議
2. 后端企業(yè)級(jí)架構(gòu)標(biāo)準(zhǔn)
3. 各類數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)景
4. 如何挑選技術(shù)、框架
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末右遭,一起剝皮案震驚了整個(gè)濱河市做盅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窘哈,老刑警劉巖吹榴,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異滚婉,居然都是意外死亡图筹,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門让腹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)远剩,“玉大人,你說(shuō)我怎么就攤上這事骇窍∶袼蓿” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵像鸡,是天一觀的道長(zhǎng)活鹰。 經(jīng)常有香客問(wèn)我哈恰,道長(zhǎng),這世上最難降的妖魔是什么志群? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任着绷,我火速辦了婚禮,結(jié)果婚禮上锌云,老公的妹妹穿的比我還像新娘荠医。我一直安慰自己,他們只是感情好桑涎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布彬向。 她就那樣靜靜地躺著,像睡著了一般攻冷。 火紅的嫁衣襯著肌膚如雪娃胆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天等曼,我揣著相機(jī)與錄音里烦,去河邊找鬼。 笑死禁谦,一個(gè)胖子當(dāng)著我的面吹牛胁黑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播州泊,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼丧蘸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了遥皂?” 一聲冷哼從身側(cè)響起触趴,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎渴肉,沒(méi)想到半個(gè)月后冗懦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仇祭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年披蕉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乌奇。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡没讲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出礁苗,到底是詐尸還是另有隱情爬凑,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布试伙,位于F島的核電站嘁信,受9級(jí)特大地震影響于样,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜潘靖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一穿剖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卦溢,春花似錦糊余、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至宣决,卻和暖如春蘸劈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疲扎。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工昵时, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捷雕,地道東北人椒丧。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像救巷,于是被迫代替她去往敵國(guó)和親壶熏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容