git flow 工作流
- master 主版本分支, 此分支上是最新程式碼
- develop 開發版本分支, 但是不在這個分支上做開發, 此分支上是開發中的最新程式碼
- feature 開發版本分支, 通常開發新功能時基於 develop 新建一個 feature 分支, 開發完成之後合併到 develop 上, 並進行刪除
- release 預釋出分支, 基於 develop 分支建立, 用來進行測試的分支, 測試完成之後合併到 master
- hotfix 分支, 緊急bug修復分支, 從 master 建立。
RestFull
- 請求方法
- Post 新增
- Put 更新
- Get 查詢
- Delete 刪除
- 巢狀Api
- 請求某篇文章的評論列表 GET /post/1/comment
- 請求某篇文章的某個評論 GET /post/1/comment/1
- 隱藏某篇文章的某個評論 PUT /post/1/comment/1/hidden
- 請求方法
動態查詢引數
- 查詢條件過濾 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
異常處理機制
- 框架服務異常, status 503 506 , code 為具體的錯誤型別. 比如 mysql 超時, redis 連不上, 簡訊驗證服務欠費, oss 賬號密碼錯誤之類的問題, api 介面維護等等
- 請求處理異常, status 400 403 等等, code 為資源id , 比如 路由不存在, 控制器方法不存在, 資源不存在, 沒有許可權等等
- 業務邏輯異常, 錯誤碼 500, code 為具體的錯誤型別, 比如 傳入引數校驗不透過
日誌處理
- sql 查詢日誌, 僅開發環境, 記錄在 sql.log
- 錯誤日誌, 記錄在 error.log
- 使用者操作日誌, 記錄在資料庫
- api 請求日誌, 每個請求有一個 request_id, 服務端在 header 加入 RequestId 欄位。 然後請求資訊記錄在檔案,檔名為 RequestId.
程式碼結構
- 路由 控制器 模型 事件等等放在 laravel 預設的位置
- 業務邏輯放在 Repositories 資料夾下, 每一個功能模組建立一個單獨的資料夾, 資料夾下又細分為 Contracts Services 兩個資料夾分別存放介面和實現。
- 工具類放在 Util 資料夾中
- 每個 interface 的所有方法都要編寫測試
如何保證 token 的安全性
- token 中攜帶 signature, signature 能保證 token 不被篡改,如何保證的呢? signature 是隻有服務端才能生成和解密的一組加密字串,篡改後的 token 和 signature 會對不上。
- token 有效期,不要設定永久的 token。
- token 黑名單,使用者的 token 一旦重新整理, 之前的 token 需要加入黑名單無法再使用。
拆分元件的時機。
- 複用類元件,頁面某一部分可能在很多頁面可以複用。
- 模組類元件,頁面的某一部分和其他部分沒有聯絡或者聯絡很少, 可以抽象到幾個變數中。
同一型別的 store 可以因為模組的不同, 建立多個名稱空間下的 store。
元件可以從一個簡單的元件開始封裝高階的元件。
只在模組類元件使用 store。
面試的時候技術總監不在 (面試題有點意思,感覺一般人可能不太會做,我答完之後專程把技術總監喊了回來) ,然後在會議室寫的 。哈哈哈哈 這操作也沒誰了。
到家收到了offer,技術氛圍和薪資待遇都很滿意。哈哈哈哈 開心, 祝賀我吧 各位網路有緣人。
本作品採用《CC 協議》,轉載必須註明作者和本文連結