當我們沉浸在旺盛的需求之中時,整個人便會成為一台工作的機器,切著類似的頁面,寫著同樣的邏輯,重複著昨天或者上個月做的事情,時間久了,覺得膩味,沒有什麼創新,也沒有明顯的成長。用一句通俗的話來講:工作五年,後面四年重複著第一年的活兒。
很多人嘗試跳出這個怪圈,不過基於環境壓力和思維受阻,最後又不得不選擇放棄。今天想通過介紹如何高效有保障地開發乙個無線頁面來幫助大家找到突破口。
很多無線頁面的開發有兩種模式,一種是後台輸出 json 資料,前端根據資料來渲染頁面(同步模式);第二種是前端非同步載入後端資料然後渲染(非同步模式)。當然,兩種模式夾雜在一起也是存在的,這種情況一般會有乙個由前端控制的中間層提供同步資料和非同步資料。為了減少前後端的溝通成本,往往採用第二種模式。
拿到設計稿後,與後端同學約定介面格式,讓後端同學盡快提供 mock 資料,如果提供不了,便自己構造測試資料。接著回到自己的工位上切圖,切圖過程中會解決好響應式問題和相容性問題,待到後端產出真實資料時,更換 js 中的介面位址,聯調 ok 便發布頁面,大功告成!
整個流程很順暢,這對乙個工作了三四年的程式設計師來說,沒有任何壓力便完成甚至提前完成了任務。但是,回過頭來想一想,整個開發過程中我們留下了什麼?沉澱了什麼?
對於上面的開發流程,先提出幾個常見的問題:
上面提出的幾個問題,列的不全面。有一些可能是你經常碰到的,甚至有了成熟的解決方案,而也有一些問題可能是你從未考慮過的。
我們把整個前端開發流程做簡單切割:切圖、獲取資料、渲染、事件繫結、資料統計、頁面優化、監控。這種切割很暴力,也比較粗糙,不過它不妨礙我們在下面討論,作為前端工程師,除了完成日常需求外,還要做什麼?還能做什麼?
切圖隱約還記得三年前,我接了乙個無線頁面的外包活兒,頁面的結構很簡單,但我做的很糟糕。為了適配不同尺寸的機型,我寫了無數 media query,加上當時採用的 em 作單位,很多細節位置都沒控制好。
回到現在,已經有了很通用、主流的方案——使用 rem,動態計算 html 標籤的font-size
,思路很簡單,但是存在不少的坑,和一些較難理解的概念,google 搜尋下lib-flexible
能夠找到這些問題以及解決方案。不過我們切圖時還可以思考一些其他的問題:
以上問題,沒有哪乙個會讓人特別苦惱,但是堆積起來,卻讓我們的開發效率和開發體驗落後了好幾個檔次。這些問題並非無解,我們可以嘗試著幫助同事和團隊找到問題的答案,比如:
有些解決方案只需要幾行指令碼就能搞定,而有一些可能需要投入時間和精力。
獲取資料
可一旦與後端約定的介面有變動,本地 mock 資料也要跟著一起變動。這個問題有什麼好的處理方案?在團隊中,好的方案一定不是幾行文字的提示或指引,而是通過流程和監控來控制!
這裡提到的獲取資料,細想之下可不是什麼輕鬆的事情。有很多問題需要思考:
以上每個問題都有很多處理方案,而這些問題不僅僅是自己會遇到,身邊的同事也會遇到。如果可以站在團隊的角度去思考問題,很多思路會比較容易湧現出來,比如:
資料是最容易出問題的地方,每乙個介面請求都需要一大堆的邏輯處理異常。倘若介面格式、開發流程和前端模式都可以規範化,我們需要做的就剩下套公式,這種高效你能否想象?
渲染
var module = function在**中寫大量的字串模板不管乙個模組有多麼簡單,它基本都會包含以上步驟,倘若沒有用函式隔離每步操作的意圖,**會顯得十分散亂。我經常看到,有同學把「渲染」這一塊的**被放到「獲取資料」甚至是「初始化」中,這種程式結構顯然是不合理的。同時,也經常會看到渲染時,() ;
//初始化
module.prototype.init = function
() );
};//
繫結事件
module.prototype.bindevent = function
() ;
//獲取資料
module.prototype.fetchdata = function
(cb) ).then(
function
(data) ).
catch(function
() ).fin(
function
() );
};//
渲染資料
module.prototype.renderdata = function
(data) ;
//處理資料
module.prototype._resolvedata = function
() ;
//載入失敗
module.prototype._fetchdatafailed = function
() ;
以上,沒有哪一種是不正確的,我也沒有對哪一種寫法開噴的意圖。但是至少我們可以在多次程式設計經驗中提煉出一些有價值的內容:
有乙個可執行的編碼規範,加上適當合理的 code review,整個團隊**便會如出一轍。
以上問題,都有相當成熟的解決方案,那你們團隊呢?
當發現工作做起來索然無味的時候,我腦海中蹦出來的第乙個念頭是:最近是不是有點放縱了?
本文**我的個人部落格:
工作四年總結回想
2014年4月3號參加工作,今天是2018年3月16號,工作馬上要4年了 想想這四年,時光飛逝,我再也不是上學時只知道學習 懵懂無知只知道工作的女生了,這四年,各個方面都發生了很大的變化 2014年 4月開始正式工作,除了工作加班,週末空餘時間刷美劇,逛街吃飯玩,每個假期都會回老家陪爸媽 2015年...
在公司工作四年記
轉眼間來公司已經整整4年了。相比剛踏入社會,有很多的改變,無論是生活上還是技術上。剛進公司,恰適十週年慶,活動當晚獎勵 在公司10年以上的 8年以上的 5年以上的,都有大獎,無非是蘋果的ipad iphone以及現金。在我進公司前,全公司都是去國外旅遊的。對於加班,公司一向口中不提倡,實際要是做的事...
工作四年經驗總結
今年的年終總結做的比較遲,這個月發生了好多事 搬家 找工作 帶娃過年 肺炎疫情 科比離開,雖然一直堅信唯一不變的是變化,但當很多事情同時發生時,還是需要一點時間來適應。1 工作上 由於可控和不可控的一些因素,今年的兩個小目標都沒有實現,不想說太多,盡全力做最好的自己,來年繼續奮鬥,fire!2 生活...