1. 程式人生 > 實用技巧 >前端開發如何快速瞭解新業務

前端開發如何快速瞭解新業務

最近接觸新業務較多,關於瞭解新業務有一點感想,總結如下:

1.比了解新業務程式碼更重要的是要了解新業務,比了解新業務更重要的是業務意識
2.如果是業務開發,畢業前三年更應該關注於技術以及技術細節,三到五年技術業務並重,五年以後業務為主

以下是關於如何快速熟悉新業務的一些經驗之談.

工具

工欲善其事,必先利其器。

Chrome 多使用者模式

方便多個 (大於兩個) 使用者切換 (管理員/使用者/各種角色)

業務資料庫許可權 (生產環境)

最好能夠擁有線上資料庫許可權,擁有最真實的資料,人往往會對不合理假資料本能排斥。

資料庫是瞭解業務最快的方式

日誌系統 (或者 APM)

在需要了解某個業務細節時,可以利用日誌系統

  1. 在前端進行頁面互動,找出關鍵請求
  2. 找出關鍵請求的 requestId (sessionId/transactionId/logId/trackId 等各種名字)
  3. 根據 requestId 在日誌系統(或者 APM) 中找到對應的 SQL/redis-command/requests (主要是 SQL)

如果沒有requestId怎麼辦?

那隻能仔細去看程式碼了

程式碼倉庫

孫子兵法雲: 上兵伐謀,其次伐交,其次伐兵,其下攻城。

在熟悉新業務時,最上者點來點去熟悉系統,其次與他人交流,其次點頁面查 SQL,最下看程式碼。

程式碼以伺服器端程式碼為主,快速瀏覽以下檔案:

  1. router: 用以定位業務細節的具體邏輯
  2. 業務邏輯層: 根據 router 點進來後的具體業務邏輯,由於層層巢狀,可能需要點上幾十次。瞭解程式碼的具體組織結構,當有需要時再去深入瞭解
  3. constant:瞭解業務中各種資源的型別,狀態,狀態機,以及與資料庫欄位的對應 (資料庫可能儲存為 enum, 也有可能是 int)。其中代表的資料比這些資料在編碼中怎麼用更為重要,當然兩者緊密相連

關於 constant,最好使用 enum 而非數字維護.

瞭解業務

瞭解業務型別

你現在負責的業務的使用者是誰?

  • 有可能是面向各個離散的無相互關聯的C端使用者
  • 也有可能是服務於各大企業 (組織/機構) 的 B 端使用者。
  • 也有可能是服務於廣大公司內同事,比如給運維使用的運維平臺,給銷售使用的 CRM,給 QA 的測試平臺,還有 MIS,OA 等等此類
  • 還有可能是使用者服務,訂單服務,資料服務,商品服務等

不同的業務型別就有不同的工作重心,比如 toB 莊重,toC 活潑,對內能看就行...

你現在負責的業務如何來錢

這也是一個關鍵問題

瞭解系統

瞭解該業務所涉及到的核心繫統,與業務型別相關。我簡單分為兩類

  • 前臺系統:面向使用者,toC 面向廣大使用者,toB 面向企業與企業員工,toB 面向使用者
  • 後臺系統:面向管理員,就是常說的後臺管理系統

熟悉系統主要流程並實操

瞭解使用者的高頻操作,主要途徑點點點和不懂就問。有些高頻操作,需要後臺管理員以及各個角色配合,這時可以在多使用者的 Chrome 中進行操作

  • 比如知乎的提問,答題,評論,點贊到後臺的帖子管理封禁等
  • OA 系統的流程發起,以及各個角色的審批
  • CRM 的商機,訂單,工單操作

瞭解系統邊界

由於微服務的流行,新業務的所有資料有可能來自於基礎服務。在熟悉業務過程中,有必要了解哪些資料自己維護,哪些維護在公有服務

  • 使用者資料由業務內維護還是使用者服務
  • 訂單資料由業務內維護還是訂單服務
  • 諸如此類

瞭解邊界系統

即以上所述的使用者服務系統或者訂單服務系統。瞭解常用的表,有必要時可以申請資料庫許可權

瞭解使用者以及許可權 (使用者/管理員/角色/企業)

瞭解業務內有什麼許可權,以及每個許可權組成的角色。

可以模糊分為以下幾個表,需要重點關注

  1. permission: 許可權表
  2. role: 角色表
  3. user: 使用者表
  4. organization: 企業/機構表

另外還需要了解使用者登入以及註冊過程,有沒有第三方登入,以及 toB 方的自家使用者系統的接入

瞭解資料

比如何查 SQL 更重要的是資料本身,有必要時可以記住,比如:

  1. 大客戶 id 以及 name
  2. 深度使用者的 id 以及 name
  3. 主要資源/內容的 id
  4. 主要資源/內容的 status/type (參照 enum/constant 檔案)

以下是常見的一些資料以及 SQL 操作,主要針對一些常量與主要業務

-- 瞭解使用者量,必要時可以記住...
select count(*) from users wehre is_deleted = false

-- 瞭解某項業務的欄位
\d business
select * from business order by id limit 1

-- 瞭解目前為止該業務有多少量資料
select count(*) from business

-- 瞭解某項業務的各個狀態,以及分佈
select status, count(*) from business group by status order by count desc

-- 瞭解某項業務的各個型別,以及分佈
select type, count(*) from business group by type order by count desc

資料系統

如果對系統接入了 GA/神策/GrowingIO 等資料統計系統,進入系統瞭解並記住重要資料,瞭解使用者對系統的使用深度以及常見業務的使用情況。

如果沒有接入資料系統怎麼辦? 參考上一條,手動查 SQL

最後

我在工作之餘整理了一份大廠常見的前端面試題,其中包含HTML、CSS、JavaScript、服務端與網路、Vue、瀏覽器等等,免費分享給大家,還在持續整理收集整理中,有需要的朋友點選這裡免費領取題目+解析PDF。

篇幅有限,僅展示部分內容

希望大家明年的金三銀四面試順利,拿下自己心儀的offer!