你是否頭疼於,天天作不完的需求和改不完的bug?html
你是否發愁,天天擼業務代碼,是否能得到技術成長?前端
而追求成就感的你是否想過,你所編寫的一行行代碼,是在反覆的變化中迅速成爲遺留代碼,仍是助公司插上騰飛的翅膀,在你死我活的戰場上脫穎而出?vue
所以本文會將業務和前端關聯起來討論,探討業務發展的不一樣時期,前端所能作的一些事情,既能解業務的困擾,也讓前端同窗們擺脫碼工、切圖仔的定位。react
千言萬語不如一張圖,全文完。 算法
大誤,仍是得詳細說說。小程序
在業務的初始階段,在市場定位、用戶訴求、產品邏輯已經明確的前提下,此時業務的核心訴求是 『儘快上線』,進行快速驗證和產品迭代,固然,質量還得能過得去。 因此此時技術同窗的方案側重點是:後端
先說『快』,在這種狀況下,什麼vue/react都見鬼去,老夫只用jQuery一把梭! 這是反面案例,這樣就只能重構火葬場了,項目上線完就打包行李滾蛋……瀏覽器
此時的快,指的是 儘量複用集團/業內成熟的方案、架構,按捺住本身從新造輪子的躁動不安的心情。 這又涉及到一個問題:如何選擇一個靠譜的方案?這是一個能夠另開文章的話題,但先在此簡單說說 根據我我的的經驗,主要從穩定性、可擴展性、性能去考慮。安全
穩定性 如何去評估?若是一個項目能作到這幾項,我是比較放心的。性能優化
可擴展性 如何評估?主要是指可否根據業務or已有技術方案,自定義部份內容。
性能問題,短時間容易被人忽視,由於能跑就行,但一旦埋下隱患,往後有坑就極難解決。容易出現性能問題的地方有:代碼構建、長列表/表格滾動、大數據圖表、複雜動畫、3D全景渲染等,若是所作的業務涉及到這幾個方面,選擇方案的時候就要特別注意性能。
若是實在圖省事兒,create-react-app、umi開箱即用來一套就完事兒了。
『爽』 這個字個人理解是,一款新產品出現,必定須要在用戶體驗or交互上有絕對領先對手的地方。
一個我始終記憶猶新的例子,就是喬布斯發佈第一款iPhone時,演示滑動列表時全場的驚呼,一個喬布斯的哥們說:當你滑動頁面的時候我就溼了。
另外一個前端領域的例子,就是Ant Design。AntD被普遍使用,很大一部分緣由是其出色的視覺設計和動效。至今爲止,AntD的官網介紹上仍然說這是一個設計體系。因此我以爲,一款新產品,除了提供剛需價值,最好在美觀和易用上領先對手一大步,雖然主要仍是看設計師和產品的功底,但前端同窗的實現上至少不能拖後腿,不能加載太慢、滾動太卡。
藍海市場、剛需產品也許不那麼看重這一點,但有的藍海門檻較低,很快就會轉變爲紅海。
還值得一提的是,帳戶體系的建設,包括打通三方登陸、免登等(客戶端登陸態透傳到h5),網上很多資料,我實在沒這方面經驗,就不在此多嘴了。
OK,假設產品如期上線,數據蹭蹭上漲,看起來一切都很完美。 而後問題就來了,業務開始擴張,公司新招了100個運營和10個PD,你會發現需求忽然就翻了10倍。這個時候咱們怎麼辦?
答案只有一個:提(jia)效(ren)。因此這個時期的核心是:
提效最簡單的辦法是加人,但問題是,100個運營好找,100個能寫出靠譜代碼的前端很差找,有的時候改別人的代碼,比重寫一遍更麻煩。看過《人月神話》的同窗都知道,加人帶來的效率提高是有瓶頸的,人平均效率會隨着人數增長而降低。
此時就須要考慮經過技術手段提效,沉澱基礎研發體系,包括:
除了技術手段,人員的技術成長也很重要,畢竟技術方案是由人來執行的,我的以爲經常使用的方式有:
固然,還有一個提效的神技,就是——砍需求。
砍需求也是一門技術活兒,有的高級工程師用嘴就將需求解了。但不是每一個團隊都採用放權式管理(此處感謝個人歷任老闆們),給你足夠的權力本身砍需求和排期; 有的公司採用的是集權式管理,只有前端leader可以砍需求和進行任務分配,也使得很多同窗這方面能力沒成長起來。
那麼需求到底怎麼砍?聽我簡單說一下,歡迎更好的套路。
通常一個重要的、合理的需求都能比較好回答上面這些的問題。其中第三點,數聽說話,也對公司的數據化能力提出了要求。
另外一個不能忽視的是,如何變得更『穩』,由於你們都很急,一急就容易出線上故障,而後時間都花在處理故障上了,而後時間就更急,一個快速腐化的死循環,而後你能怎麼辦呢?只能以猝死明志啊……常見的有如下幾種方法:
以上這些問題解決了,前端同窗也就算是又快又穩地幫業務度過了快速發展期,迎來業務的精耕細做期。
俗話說得好:攻城容易守成難,但如今攻城也不那麼容易了。如今新興的獨角獸,背後都有AT的影子,例如ofo和摩拜,雙方都極難一會兒摁死對方。而是互拼內力,最後極可能落得兩敗俱傷。這個時候咱們就須要穩中求快。
前兩個階段的C端場景看起來和前端關係更加緊密,那麼這個階段和前端有什麼關係呢?我以爲能作的事情有:
中後臺系統的構建。 將運營們的工做線上化,同時減小部分手工操做,達到效率的提高。 雖說運營們一般excel用得虎虎生風,但有容易出錯、貪腐較多的問題,想一想ofo被曝貪腐嚴重的新聞。 在很多缺前端的公司,這部分一般也由後端用jQuery一把梭。但後端擼出來系統,一般都欠缺交互意識(無導航、報錯信息等設計)、擼不出稍微複雜的佈局(見過被float和flex難住的)、缺乏動效、SPA 等,作出來的系統真的差很多,都9012年了,仍是讓專人來幹這活吧。記得加上水印,包括明水印和暗水印,便於公司時候追責,間接防止公司機密外泄。
大數據可視化。 不只僅是消費者端頁面的訪問數據,還有更深層次的公司運營數據。例如ofo能夠實時跟蹤自行車的損壞率、監控車輛密集程度等,從而指揮調度車的調度,達到車輛投放和使用率的最佳匹配。雖然這事兒吧,核心仍是數據同窗產出數據的準確性,但前端同窗的配合是不可或缺的。 常見的能夠用來作這事兒的有Echarts、HighCharts、G2等等,雖然咱們基本不可能再重複自研一套,但取其精華,快速賦能業務,就是業務前端的價值所在。
平臺化。 此處其實指的是大中臺、小前臺的概念。由於咱們每每已經積累了一批中後臺系統,但如何使同一個系統更快支撐新的業務、砍掉/合併重複功能的中後臺系統,也是輔助業務的一種手段。
ABTest。 根據以前的經驗,電商不一樣行業的不一樣人羣,對於交互設計的偏好真的就不同,有的喜歡大圖,有的喜歡小圖。所以經過ABTest方案,對人羣進行千人千面的細分展示,對業務也是能夠稍微有必定的提高。
容器技術(hybrid & 內核)& 極致性能。 其實也就這麼提一下,由於對於大多數公司,真沒有深刻追求瀏覽器內核提高的價值和可能性。 hybrid方案是有必要的,但應該在急劇擴張時期就作得差很少了。 極致性能也屬於比較炫技的東西了(已經作到1~2s頁面可交互的前提下),短時間內沒有特別大的必要,但在追求極致性能的過程當中,迫使相關同窗深刻了解容器技術、服務端、網關、cdn等底層,並推進相關方升級,通過長時間的積累,帶來人力儲備和技術儲備的提高。
基本上作完上面那些東西,公司的業務進入一個穩定的時期,就是處處看看有什麼新的東西能夠作了。(固然仍是可能有各類各樣蛋碎的改版) 核心
實在不知道前端還有什麼新的東西好關注的了,硬掰不出來,就這樣吧,歡迎指點。
讀完本文,相信你已經找到了前面三個問題的答案,可以再也不被一堆需求推着走,也可以再也不只擼業務代碼,孕育出屬於大家團隊的技術方案而得到技術上的提高,最重要的是找到本身的一身本領在這個商業世界中的價值,不忘極客夢,技術改變世界,rock the world。
免責免撕聲明:本文是我的的一些總結和思考,筆者的業務經驗有大流量產品、大型營銷活動、各種中後臺項目,基礎技術產品也搞過,但終究經驗有限,不免有錯漏,歡迎指正和補充。