Video thumbnail for 【如何设计负责一个项目?  How to design and lead a project?】

從零開始:完整專案負責人實戰指南 (設計、開發、部署、維護)

Summary

Language:

Quick Abstract

想成為獨當一面的項目負責人嗎?本影片分享如何從需求分析到上線維護,完整掌握專案流程,讓你不再只是聽命行事,而是能獨立負責整個專案,提升職場價值。無論你是程式設計師或其他領域的專業人士,都能從中學習到寶貴的經驗與技巧,成為更具競爭力的項目主導者。

  • 需求評估與確立:從銷售或內部需求中找出專案目標,並進行可行性評估。

  • 設計與討論:廣泛研究技術與架構,建立服務結構,確保團隊工作順利。

  • 開發階段:注重程式碼結構抽象化,避免過多巧合與固定參數,利於未來擴展。

  • 測試環境部署:確保各元件端口正確、URL統一,並驗證環境配置與所需腳本。

  • 上線維護:遵循DevOps流程,持續優化與更新,應對新需求。

影片將帶你了解專案各階段的注意事項,以及如何與客戶、前端、測試團隊等溝通協調,確保專案順利進行。學習如何制定API功能、設計資料庫、管理配置,並在各階段保持與團隊的有效溝通,避免潛在問題。從需求產生到上線維護,讓你全面掌握成為獨立項目負責人的必備技能與心法。

獨立負責一個完整項目:從需求到上線的全過程

為何製作此影片

這部影片是關於一個人如何能夠獨立並負責一個完整的項目。先說說為什麼會有這部影片。我是一名程式設計師,每天下班很早,然後就玩遊戲,上司不高興,覺得我應該增加工作量。於是他給了我一個非常完整的項目讓我來做,到現在已經做了一個月,差不多要完成了。我想和大家分享我是如何負責這個項目的,那就開始這部影片吧。

需求的來源

首先,當一個項目創建時,一開始肯定有需求。需求通常來自公司的銷售部門,或者公司內部有一些需求。例如,缺少一些需要實現的自然產品,或者在使用者現場使用時,可能缺少一些需要補充的功能,又或者下游公司有新的需求等等。

需求評估與確立目標

有了需求後,我們會對這個需求進行評估。如果認為可行,就會正式確立一個目標,決定這個事情真的要去做。確立目標後,會有一個大致的周期,然後這個項目就交給我這個負責人了。

項目涉及的人員

首先要確定與哪些人聯繫。我們要聯繫客戶端、前端、運營中心的工程師、測試室以及上下游相關人員。如果是一個人負責,那就得負責與所有這些人溝通。

項目步驟:設計與討論階段

接下來說說步驟。接手一個項目後,首先是設計和討論階段。在這個階段,方向要盡可能大,因為在初始設計時,只能做一個比較粗略的設計,很多細節其實並沒有考慮那麼多。在這個過程中,我們需要做研究,也就是說,要明確我們要做什麼,打算用什麼,或者能用什麼技術,如何證明用這個技術可以完成。需要用研究來向大家解釋清楚。

客戶端分析與服務結構搭建

作為負責人,主要責任是確保員工能正常工作。為了確保他們能工作,我們必須寫下客戶端的組織情況,然後建立整個服務結構。這樣其他人就能專注於業務的編寫,也就是我們需要為他們完成前端工作,讓其他人可以直接輸出業務。

具體設計內容

在這部分,我給大家舉一些簡單的例子。比如在項目裡經常需要調用第三方接口,發送HTTP請求時用哪個,它有一些標準的請求方式可以直接使用。或者如何實現gRPC,放在哪個項目裡。還有數據庫的連接,是用JDBC還是ORM框架。這些都是需要提前設計和寫好的。

API相關設計

項目要對外暴露哪些API,有沒有外部API,如何規劃暴露REST API以及如何實現。在項目裡,服務用NETDI還是Tomcat。還有很多事情需要處理,比如如何統一項目裡的異常,調用接口時錯誤碼的對應說明,過濾器和攔截器是什麼。這些都需要提前設計,只有這部分設計好了,寫業務的人才能來把業務輸出到代碼裡。

API功能確認

我們還需要確認API的功能,用來做什麼,會提供哪些參數。在實現功能時,這個邏輯必須和其他人討論,哪些邏輯自己做,哪些邏輯別人做,一開始就要劃分清楚,否則後期扯皮會很嚴重。

業務理解一致性

和客戶端、前端或第三方合作時,對同一業務的理解必須一致。對於某件事或某個狀態,大家的想法必須一致,否則後期使用或編程代碼時會有很多麻煩,這一步有很多坑,經常做這些事的人應該深有體會,這一步很麻煩。

數據庫設計

和API以及語言溝通好後,我們需要基於此設計數據庫。從需求到目標,再到周期,然後到負責人進行設計,設計階段就結束了,正式進入開發部分。

開發階段

開發階段其實是最重要的部分。對於工作三年的人來說,可能更關心如何實現功能以及怎麼做。但對於長期做這個的人來說,開發部分是最簡單的,只要有東西就能做。但這裡也有一些需要考慮的事情,大家要注意代碼的結構,必須遵循客戶端的設計或功能設計、業務設計,要做足夠的抽象。抽象完後,要確保這是一個原始方法,不要有太多巧合和固定參數,這些會大大影響項目未來的擴展和功能升級的工作量。

開發中的注意事項

開發過程中,不能一直開發,必須開發一部分測試一部分,即使不測試,也要和其他人對齊,也就是和其他人連接。否則開發方向有問題,影響會很嚴重。開發時一定要和上層溝通,避免這種問題。

部署階段

開發階段結束後,就到了部署階段。這裡的部署不是正式環境的部署,只是在測試環境搭建一套用來和大家連接。這部分有很多事情,雖然很多不需要我們自己做,但為了確保沒有遺漏,我們還是得自己做。比如在NGX中,要確保每個組件的端口正確,URL必須統一,網絡轉發時才不會有問題。還有安裝步驟,哪些數據庫和哪些表對應,這些都要做好並確認。

安裝腳本與環境配置

要知道安裝腳本是怎麼回事,可能寫不出來,但要能看懂。之前我也發過一個視頻,專門解釋如何理解腳本文件,這很重要,因為必須知道項目安裝時做了什麼,才能知道某件事做沒做,或者應不應該做。還要驗證DAW shell中的環境配置,也就是Compose文件,這個文件大家也必須會用,它有一些參數我們需要知道,因為別人可能不會告訴我們詳細信息,只是把東西放上去或者放一些基本參數,有時不符合我們的要求。

其他部署注意事項

要確保需要的腳本存在,有些功能需要用腳本實現。還要確保使用的庫存在,一些C文件,比如GNI,要確保它們的路徑正確,因為不同項目,這個操作也挺麻煩的。

配置管理

部署後要詳細管理配置,哪些配置自己寫,哪些配置運營人員寫。比如IP、端口等只能由運營人員寫,因為我們不清楚網絡環境,只能靠他們幫助實現。雖然不知道現場網絡情況,但必須知道組件之間的關係以及組件之間的網絡情況,哪些組件在一個網絡,哪些不在,組件和物理結構的關係,也就是如何部署在物理機上,也必須清楚。哪些組件要放在一起,哪些可以分開,都要確認,否則部署後功能會受限。

項目啟動

最後是項目啟動,啟動參數怎麼設置,要做什麼樣的配置,這可以根據大家的習慣或者寫的項目自己決定。

測試環境搭建與連接

這就是我們搭建測試環境的過程。在連接過程中,其實會對細節做很多修改。這對應我一開始說的,在設計階段方向為什麼要大,因為很多事情一開始可能想到了,但在逐漸開發或匹配過程中可能會改變,所以在細節部分,只能通過連接來調整。沒有人能從一開始就設計得非常好,只能設計得比較穩定,沒有大錯,但肯定不能完全設計好,這和個人能力無關,是開發的模式。

審核與正式提案

完成連接後,需要審核。這一步是把我們的成果展示給上司或其他人看,看這個東西能不能通過。通過後,就做正式提案。正式提案也有點麻煩,會有點亂,因為測試中會有很多事情,甚至在這一步還會修改,但已經很大致完成了,因為整體框架已經OK,只是這裡怎麼改的問題。

性能測試與上線

正式測試時,還需要做性能測試,因為性能測試肯定不能在現場進行,需要搭建一個大的資源環境自己進行性能測試。如果這些都通過了,就到了最後一步,也就是上線。成功上線後進行維護,在維護過程中,達到標準的DevOps流程。DevOps就是如果有新需求就寫,寫完就部署,部署完就測試,如果沒部署就測試,這就是DevOps的流程。

總結

這就是我和大家分享的如何獨立負責一個項目,以及會經歷什麼,會有哪些階段,每個階段需要做什麼,做的時候需要注意什麼。謝謝大家觀看!

Was this summary helpful?