前端側重於人機互動和使用者體驗,後端側重於業務邏輯和大規模資料處理。理論上,面向使用者的產品裡,所有問題(包括產品、設計、後端、甚至看不見的問題)的表現形式,都會暴露在前端,而只有部分問題(資料問題、計算問題、安全問題等)暴露在後端,這就意味著前端起到了至關重要的承載和連線作用。
前端技術的更新日新月異;前端框架的技術選型百家爭鳴;視覺審美的潮流不斷更替;視覺化效果酷炫無比;使用者的運營體系逐漸精細化;適老化、無障礙化、青少年人群的訴求浮出水面;智慧裝置的升級和適配無窮無盡。所有的這一切,對前端領域和前端同學就一個要求:要折騰,愛折騰,反覆折騰。
一般在做需求評審時,PRD裡只有互動稿,尚未有視覺稿。需要在評審結束並達成一致後,再輸出視覺稿。
1、需求分析:需求點逐一討論、需求合理性、互動評審、邏輯梳理,以及可能遺漏的部分。
提示:邏輯梳理的過程很花時間,貫穿開發始末。
2、涉及渠道/環境:
渠道和環境,往往是需求盲點,也是影響技術選型和開發進度的關鍵因素。
3、可行性分析:是否有技術上的實現難點,是否有其他的依賴條件。
資料來源:哪些是調介面,哪些是做成可設定,哪些是前端寫死;可設定的部分,是前端讀取,還是介面讀取然後返給前端。提示:可設定的靈活性與風險正相關。
異常流設計:容錯、容災、兜底、降級、回退機制、風險可控。prd一般只寫了正常流的邏輯,異常流往往需要研發同學配合做全盤考慮。
6、需求變更:如有需求不明確、改需求、加需求、砍需求、加時間、改時間、加人力等等,需要提前預判風險。
1、進度跟進:視覺稿是分批交付,還是一次性給到?這是要首先考慮的。
按照歷史經驗,前端專案進度的延誤,有一半的概率依賴於視覺稿的進度;因為一個新頁面的開發,前端有30%~50%的工作在做頁面構建。
2、視覺稿的檔案格式:
備註:Sketch 是Mac平臺獨有的原型設計軟體,最為知名和常見。Figma 是最近比較火的全平臺原型設計軟體,有取代 Sketch 的趨勢。
【劃重點】交付視覺稿時,需要視覺同學輸出「帶尺寸標註」的視覺規範檔案。
3、檢查需求:是否覆蓋需求和互動設計中的全部設計點。
4、檢查視覺規範:
5、哪些圖是前端構建,哪些圖是寫死圖片資源,哪些是可設定;可設定的圖中,需要把每個元素做拆解,這個元素是合併到背景圖中,還是單獨切圖,還是讀取資料。
6、切圖格式:png(透明格式)、jpg
切圖的圖片大小,不要太大。行動端的大圖(比如幕簾彈窗的背景圖)建議不超過50kb,小圖建議不超過20kb。圖片在上傳之前,可以先在 https://tinypng.com/ 上進行壓縮。
7、複雜圖形、動畫的實現難度和實現方式,技術評估。詳見接下來要講的「技術選型」。
1、排期一般包含這幾個要素:
2、評估排期時,要根據視覺稿排期,不要根據互動稿排期。這是首先要強調的。一個新頁面的開發,前端有30%~50%的工作在做頁面構建。 只看互動稿的話,無法評估真實的開發工作量。
3、前端開發工作包括:概要設計、視覺構建、邏輯程式碼、前後端聯調、自測、轉體驗。每一項都要單獨拆解後評估時間,加在一起就是整體的排期。
4、排期時,要考慮其它的依賴因素:比如視覺稿延期、需求不明確、介面進度、測試進度,當然最重要的是上線進度。緊急專案,經常是根據上線時間倒推開發排期。
5、即將進入開發階段後,與測試部門協調測試資源,確認轉測時間;大型專案&重點專案,需要在需求評審階段,提前知會測試部門,讓其預留時間。
6、如果自己有在並行開發其他專案,則排期時需要給自己預留 buffer。並行開發兩個專案是家常便飯;但,這個專案在測試時,往往很難抽身去做別的專案,因為會一直被測試童鞋牽制。
7、開發排期:如果開發排期有變更,需要立即周知其他相關人員,尤其是要評估測試排期的風險。測試排期比開發排期 更難變更。
技術選型千變萬化,百家爭鳴。這裡需要列出你所在部門的常用技術選型,並非市面上的技術棧羅列。
1、頁面開發框架:
(1)多端頁面:(小程式原生頁面、H5)
注2:有些業務,一開始只做H5,後來迭代時,要求做小程式原生頁面。這一點也要納入需求評估。
(2)H5頁面:Vue.js 框架、React 框架
(3)App端:
(4)B端開發,UI框架:
(5)Node.js後端開發框架:
2、CSS前處理器:SASS
3、複雜圖形、動畫的實現難度和實現方式,技術評估:
gif 動圖:儘量不用。因為檔案太大,且效果模糊。
Canvas:Canvas 動畫、小程式分享圖採用 Canvas 繪製
遊戲框架:Cocos 引擎
1、程式碼設計:
(1)目錄結構設計、程式碼風格
(2)公共元件、工具類設計:確保可複用、高內聚低耦合的原則。哪些可以複用京喜平臺的公共元件,哪些需要自己單獨寫 components、utils。
(3)彈窗設計:如果一個頁面有多個彈窗,建議先設計一個抽象的彈窗基礎類別。設計彈窗時,需要考慮的是:
2、視覺構建:
(1)後端在開發介面時,前端做視覺構建;視覺構建完成後,前端根據介面檔案的定義,通過 mock 資料的方式調介面,寫前端邏輯;待介面開發完成後,可進入前後端聯調階段。
(2)建議前端童鞋學會自己切圖,可控程度更高,也能減少溝通成本。學會基本的 PS、Sketch操作就行,做一名合格的前端切圖仔。
(3)對於規則的樣式和動畫,建議用程式碼實現,而不是圖片。圖片會降低頁面的開啟效能,且大屏都顯示效果比較模糊。
(4)切圖的尺寸要求:100%寬度以 750px 為準。
(5)畫素級還原視覺稿:推薦使用 Snipaste 截圖軟體,按F1截圖,F2貼圖,然後調整貼圖的透明度為50%,將貼圖與前端頁面進行畫素級比對。
3、業務邏輯實現:
(1)建議先用思維導圖,梳理業務邏輯,再著手寫程式碼。思維導圖有利於理清邏輯、事後覆盤、高效給他人講解,一目瞭然。重要的是思想,而不是用哪一款工具更酷。
(2)在呼叫介面時,要明確前端自己的安全邊界:假設介面欄位異常時,前端需要有自己的降級措施,不能完全依賴和信任欄位,導致讓頁面直接白屏、互動異常、甚至掛掉。
(3)除了完成產品要求的業務邏輯之外,還要時刻考慮異常流的設計和容災。
(4)很多前端童鞋在做需求時,有個習慣是不喜歡細看prd,只對著互動稿和視覺稿進行開發。這樣做雖然省事,但有三道手續不能少:
4、非功能性需求。業務程式碼寫完後,還有很多細節需要打磨。比如:
5、程式碼提交:
6、自測:
1、在真機體驗,而不是在模擬器上。最好是 iOS和 Android 都要對比體驗。
2、體驗時,記錄整理各種 todolist:
程式碼 review 可以在測試期間進行。
review順序:
視覺走查 可以在測試期間進行。
視覺童鞋都有畫素眼,即便是一兩個畫素的區別,他們都能瞧出來。所以,建議前端童鞋加強自測,努力做到畫素級還原視覺稿。
推薦前端童鞋使用 Snipaste 截圖軟體,按F1截圖,F2貼圖,然後調整貼圖的透明度為50%,將貼圖與前端頁面進行畫素級比對。
1、建議加強自測質量。進入測試階段後,測試童鞋會進行一輪冒煙測試,如果質量不合格,將會被打回,這就很尷尬了。
2、整理自測、測試、釋出時需要的主流程checkList,每次迭代時都能用上。
轉測郵件的基本元素,包括但不僅限於:
3、測試童鞋提的bug單,開發同學需要在 XX 小時內處理完成,否則會被QA催。
4、需要控制bug單數量,否則會被追責覆盤。同類問題,建議測試童鞋合併到同一個bug單中。
5、測試管理系統 是所有人處理bug 流程的平臺,不是讓測試童鞋隨便記錄個人問題的。所以要提醒測試童鞋,明確該問題是bug,再提單;不是bug,要麼不提,要麼在溝通後駁回。
1、前端程式碼倉庫 git 分支規範:
2、Commit Message 的格式,只允許使用以下10種標識,最常見的是 feat和 fix :
3、業務分支,命名規範:(建議一定加上日期)
前端入門核心知識點
<header>
、<article>
、<footer>
等。<audio>
、<video>
ES6語法:嚴格模式、箭頭函數、Promise、Symbol資料型別、Set 和Map資料結構
ES6轉ES5
JS資料型別轉換、隱式型別轉換
內建物件及其方法
陣列的各種方法:map、filter、every、reduce等
事件機制、原型繼承、立即執行函數
DOM操作、虛擬 DOM 的 diff 演演算法
BOM瀏覽器操作
事件冒泡機制:捕獲階段、目標階段、冒泡階段。
非同步程式設計:Ajax、Promise、async await
SessionStorage和LocalStorage、Cookie
迭代器Iterator和生成器Generator
Web Socket
非同步程式設計
單執行緒
Canvas影象繪製
svg 動畫
多端自適應佈局
SPA單頁應用
PWA(Progressive Web App):小程式的鼻祖
每個框架和工具,都有自己的約束、價值和最佳實踐。
對比:
在vue 中,幾乎給你想要的全部給你了;而react 追求的更多的是自力更生。
補充:知識庫框架,首先推薦 Vuepress 和 Docusaurus,功能強大,成熟穩定。
Flutter(最近比較火):Flutter 的Dart開發語言,可以編譯為 ARM 64、x86 和 JavaScript 程式碼
ReactNative(逐漸沒落):App、Web端
Taro:小程式、H5
Electron 非常流行,也被大量公司使用,也有很多成功軟體,比如 VS Code、Facebook Messager、Twitch、Microsoft Teams 等。Electron 雖然上手容易,但問題也很明顯,就是慢、吃記憶體和大,Electron 吃記憶體是因為打包的 Chromium 吃內容,同時一個 Hello World 編譯後就要 120M+ 。
VS Code、chrome、小程式開發者工具,本質上都是執行的 chrome 核心。所以你會發現,這三個軟體都很佔記憶體,都很卡。我將其稱之為「前端頭痛三劍客」。
Next.js (基於React.js)
Nuxt.js (基於Vue.js)
控制檯的瀑布圖 Waterfall
控制檯的 performance工具:日常開發過程中觀察分析執行時的效能表現
控制檯的 LightHouse :跑分、輸出效能報告,分析效能
WebPageTest網站:評估網站效能
Performance 這個API:實時動態測量效能
1、Airbnb JavaScript Style Guide:
2、clean code JavaScript:
墨刀:原型設計工具。網址:https://modao.cc/
藍湖:一款產品檔案和設計圖的線上共同作業平臺。網址:https://lanhuapp.com
PxCook(畫素大廚):高效易用的自動標註工具。軟體下載連結:https://www.fancynode.com.cn/pxcook
即時設計、稿定、master go
飛書-思維筆記
從上面的流程圖中可以看出,產品經理的交付物是什麼?是prd嗎?顯然不是。
產品經理的工作跟設計師、工程師非常不同。人們對工程師的期望是交付有效的程式碼,對設計師的期望是交付視覺稿。而對於產品經理來說,只交付一份prd是不夠的。
產品經理要負責跟進整個產品週期,包括上線後的頁面效果和資料表現。編寫需求規範是一種溝通和推動專案的手段,但規範本身並沒有內在的價值。很多產品經理並不藉助prd來交流他們的想法,他們可以用談話,還可以把想法畫在白板上。也有一些產品經理雖然寫了規範,但卻沒有參照執行。
1、雖然我們絕大多數時間耗在業務開發上,但仍需要積累其他方面的沉澱,做多一些有趣的、可持續的事情,比如分享總結、基礎能力建設、研發效能提升、技術運營建設、技術沉澱等。
2、學會提問。我們日常在提出問題和解決問題時,經常容易陷入X-Y問題,導致目標不明確、思路不清晰、溝通效率低下,甚至在一個完全錯誤的方向上浪費大量的資源、時間和精力。無論是在尋求幫助的人身上,還是在提供幫助的人身上,都有所體現。
在面對一個問題時,要理解這句話的意圖、事實、情緒、期待。學會提問,學會答疑,都是一種智慧。參考提問的智慧 。
3、全流程跟進,持續交付,創造業務價值。
4、前端的本質是連結商業、設計、計算能力,為使用者提供專業的人機互動體驗。
5、產品能力和技術能力是:判斷資訊,抓住要點,整合有限的資源,把自己的價值打包成一個產品進行交付,並獲得回報。
6、部門體系的角色有很多:運營、產品、視覺、開發、測試、架構師、leader、行銷、資料分析、運維等。有些工作不是「做或者不做」的問題,而是程度的問題。在注意邊界的前提下,主動承擔、全盤思考、多一份同理心,這是能力和責任逐漸增強的體現。
7、謙遜、尊重和信任,是協同作戰和良性合作的基礎。
8、組織內,人與人的關係應該是怎樣的?有人認為是管理與被管理的關係,有人認為是合作關係。而我認為,組織內的關係是奉獻關係。沒有奉獻作為基礎,組織關係是不成立的。組織內的人與人之間是相互付出的關係,部門與部門是相互付出的關係,上級與下級之間是相互付出的關係,在這樣的相互奉獻關係中,組織才會真正地存在並行揮作用。
奉獻關係所產生的基本現象是:每個處於流程上的人更關心他能夠為下一個工序做什麼樣的貢獻;每個部門都關心自己如何調整才能夠與其他部門有和諧的介面;下級會關注自己怎樣配合才能夠為上級提供支援,而上級會要求自己為下級解決問題並提供幫助。
能力很重要,而付出更重要。
9、優秀的人有幾個特性:敏感、不能忍、有動手優化的能力。
10、前端側重於人機互動和使用者體驗,後端側重於業務邏輯和大規模資料處理。理論上,面向使用者的產品裡,所有問題(包括產品、設計、後端、甚至看不見的問題)的表現形式,都會暴露在前端,而只有部分問題(資料問題、計算問題、安全問題等)暴露在後端,這就意味著前端起到了至關重要的承載和連線作用。
11、前端技術的更新日新月異;前端框架的技術選型層出不窮;視覺審美的潮流不斷更替;視覺化效果酷炫無比;使用者的運營體系逐漸精細化;適老化、無障礙化、青少年人群的訴求浮出水面;智慧裝置的升級和適配無窮無盡。所有的這一切,對前端領域和前端同學就一個要求:要折騰,愛折騰,反覆折騰。