開發中的一些經驗總結

徵羽宮發表於2023-11-09
  1. git flow 工作流

    • master 主版本分支, 此分支上是最新程式碼
    • develop 開發版本分支, 但是不在這個分支上做開發, 此分支上是開發中的最新程式碼
    • feature 開發版本分支, 通常開發新功能時基於 develop 新建一個 feature 分支, 開發完成之後合併到 develop 上, 並進行刪除
    • release 預釋出分支, 基於 develop 分支建立, 用來進行測試的分支, 測試完成之後合併到 master
    • hotfix 分支, 緊急bug修復分支, 從 master 建立。
  2. RestFull

    • 請求方法
      • Post 新增
      • Put 更新
      • Get 查詢
      • Delete 刪除
    • 巢狀Api
      • 請求某篇文章的評論列表 GET /post/1/comment
      • 請求某篇文章的某個評論 GET /post/1/comment/1
      • 隱藏某篇文章的某個評論 PUT /post/1/comment/1/hidden
  3. 動態查詢引數

    • 查詢條件過濾 filter /post?filter[name]=test&filter[created_at_between]=2018-01-01,2018-12-31
    • 排序 sort /post?sort=-id,name
    • 包含關係 include /post?include=user,commentCount,commentExists
    • 選擇欄位 fields /post?include=user&fields[post]=id,name,info&fields[user]=id,name
  4. 異常處理機制

    • 框架服務異常, status 503 506 , code 為具體的錯誤型別. 比如 mysql 超時, redis 連不上, 簡訊驗證服務欠費, oss 賬號密碼錯誤之類的問題, api 介面維護等等
    • 請求處理異常, status 400 403 等等, code 為資源id , 比如 路由不存在, 控制器方法不存在, 資源不存在, 沒有許可權等等
    • 業務邏輯異常, 錯誤碼 500, code 為具體的錯誤型別, 比如 傳入引數校驗不透過
  5. 日誌處理

    • sql 查詢日誌, 僅開發環境, 記錄在 sql.log
    • 錯誤日誌, 記錄在 error.log
    • 使用者操作日誌, 記錄在資料庫
    • api 請求日誌, 每個請求有一個 request_id, 服務端在 header 加入 RequestId 欄位。 然後請求資訊記錄在檔案,檔名為 RequestId.
  6. 程式碼結構

    • 路由 控制器 模型 事件等等放在 laravel 預設的位置
    • 業務邏輯放在 Repositories 資料夾下, 每一個功能模組建立一個單獨的資料夾, 資料夾下又細分為 Contracts Services 兩個資料夾分別存放介面和實現。
    • 工具類放在 Util 資料夾中
    • 每個 interface 的所有方法都要編寫測試
  7. 如何保證 token 的安全性

    • token 中攜帶 signature, signature 能保證 token 不被篡改,如何保證的呢? signature 是隻有服務端才能生成和解密的一組加密字串,篡改後的 token 和 signature 會對不上。
    • token 有效期,不要設定永久的 token。
    • token 黑名單,使用者的 token 一旦重新整理, 之前的 token 需要加入黑名單無法再使用。
  1. 拆分元件的時機。

    • 複用類元件,頁面某一部分可能在很多頁面可以複用。
    • 模組類元件,頁面的某一部分和其他部分沒有聯絡或者聯絡很少, 可以抽象到幾個變數中。
  2. 同一型別的 store 可以因為模組的不同, 建立多個名稱空間下的 store。

  3. 元件可以從一個簡單的元件開始封裝高階的元件。

  4. 只在模組類元件使用 store。

面試的時候技術總監不在 (面試題有點意思,感覺一般人可能不太會做,我答完之後專程把技術總監喊了回來) ,然後在會議室寫的 。哈哈哈哈 這操作也沒誰了。:smile:
到家收到了offer,技術氛圍和薪資待遇都很滿意。哈哈哈哈 開心, 祝賀我吧 各位網路有緣人。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章