在不一樣的開發開發不一樣複雜程度的項目,一直想寫一篇項目開發中的一些我的總結以及經驗分享,本文主要講述咱們做爲前端開發在項目中須要注意的點以及一些我的的經驗之談。前端
每一個公司都有本身的開發流程,在流程中須要注意的事項有不少,尤爲面對較爲複雜的項目,一個不注意,可能就會給本身挖坑,例如:對需求解讀的不完全,致使時間預估嚴重不夠等,所以,每一個環節都建議你們嚴謹認真,切不可粗枝大葉,一年之中,一個失誤就有可能讓你一個季度或者一年的努力白費,下面我羅列下我的認爲每一個環節須要注意的事項。vue
背景
、做用
、價值
以及具體所須要作的事,瞭解每一個需求背後的背景、價值等有助於你培養對產品的大局觀
,瞭解需求的詳細內容,有助於你更好的把控這個需求,掌握其所需的工做量和難度以及風險。技術方案儘量的詳盡,讓人直觀的能瞭解到你對這個業務的總體設計、分層、封裝等。技術方案是在不斷完善的,所以開發的同時,也儘量的去同步更新你的詳細技術方案,以便於在代碼檢視的時候去爲同事講述。我的認爲前端的技術方案設計應該包含如下幾點:node
開發中一些經驗之談:react
先充分解讀需求和ui
,在腦子裏有個大體的圖;項目開發的目錄結構相當重要,我的習慣喜歡將目錄跟路由掛鉤,目錄結構直觀能看出路由規劃,所以在開發前,我的會先根據ui設計建立頁面的總體目錄結構,根據總體結構來設計路由。後端
項目中時常會有許多枚舉變量,例如狀態、類型等,我的建議將這些狀態定義成有意義的枚舉變量再進行使用,不要直接拿來用,防止過段時間回過頭來看代碼時,一臉茫然,在定義枚舉時,建議簡單枚舉平鋪定義,針對一個類型枚舉過多的狀況可使用map,例如:api
const TYPE_ENUMS_MAP = {
going: 1,
willBegin: 2,
finished: 3,
...
};
// 少許時,平鋪定義;
const WORK_HAS_FINISHED = 1;
複製代碼
當下前端開發開發,一般都會使用vue、react,使用組件化的開發方式,我的建議合理把握組件拆封的顆粒度,不用過小,也不能太大,過小可能致使傳參的層級過多,太大可能致使單個組件或者頁面內容太多,不利於維護或者複用,合理把握顆粒度,合理規劃目錄,遇到模塊內幾個頁面通用的組件提取爲模塊組件,遇到可能全局都會用到的組件提取爲全局組件,頁面私有的組件放在頁面目錄下,設爲普通頁面組件,合理的顆粒度劃分,合理的存放結構有助於你代碼的合理複用和維護。markdown
mock開發是高效聯調的必要條件,後端接口未徹底開發完成前,咱們能夠利用mock平臺先使用mock接口調試代碼,我的推薦公司部署yapi平臺。此前,須要先後端先定義和約定好接口入參和反參的結構,這一步很重要,必定要在開發前提早讓後端同窗錄入接口並check接口的可用性和合理性,再投入開發,開發時,爲了不接口路徑的替換,咱們一般會給腳手架提供mock環境,mock環境下接口走mock代理到mock平臺(yapi),這裏有兩種方法來區分路徑:組件化
1. 經過環境變量來區分接口路徑:
const serviceConf = {
url: '/user/getUserInfo',
mockUrl: 'http://mock.yapi.com/10/user/getUserInfo',
};
2. 經過代理的方式:
配置接口代理(以yapi爲例,yapi的接口規則, https://yapi.dev.com/{項目編號}/{接口相對路徑}):
mock.conf.js:
module.exports = {
100: [
'/user/getUserInfo',
]
}
配置完代理配置,再動態的讀取代理配置,生成接口代理傳入腳手架的proxy中。該方法的好處是不會將調試的
mock代碼打入最後的包中,相比於第一種方式更合理。
此外,爲了能動態響應配置的變動,咱們可使用nodeMon來監聽咱們的配置並動態的重啓項目;
nodemon --watch mockProxy.conf.js --exec .....
複製代碼