小公司的前端應該怎麼做?

發表於2016-05-13

前言

近期工作生活比較漂泊,從上海換到了成都,這個是以家庭為單位的重大決定,離開一線城市對於職業生涯和技術前沿來說是有一定問題的,但是出於房價考慮(主要是買不起房子)與生活舒適度來說,回蓉似乎是一個比較好的選擇,何況成都的網際網路也還行。

隨著能力的提升,負責的工作種類會逐漸增多,考慮的方向也會有所不同,這個時候不太會有太多單獨的知識點成為阻礙了,工作中碰到的問題要麼太“大”,總結起來費力,要麼太“小”,不適合單獨整理成文,這種現象反而造成了一段時期的部落格空白期,總的來說就是又開始懶了,思維又開始懈怠,人又開始想待在安逸區了。

因為開始懶了,所以沒能學習到新知識,自然出不了新文;因為開始懶了不願意再對工作中的問題一個個深入研究、深入挖掘自然出不了新文。

所以人還是得不停的鞭笞自己啊,不能讓自己陷入“瞎忙”的境地,得有效的利用時間,才能走的更遠!!!

現在我在一家小公司做前端,因為公司以及職位的變化,對於在小公司如何做前端有一些心得,拿出來與各位做個分享,希望對處於小公司的前端有一定用處,也鞭笞自己重新學習總結。

什麼是優秀的前端團隊?

團隊初期缺什麼

在公司中,層級越高對業務關注比例越高,反而不太關注個人成長,所以評價一個leader是以團隊為單位,團隊成員比他強是應該的;對於個人來說的話,要多關注自身能力成長,然後能力匹配自己的職位,甚至超出自己的職位,這樣的團隊的話,戰鬥力是比較強的。

主管(包括前端主管)設定目標必須可量化 ,比如你做一個業務,kpi是多少,那麼技術就需要考慮如何才能達成,細化到研發甚至前端層級,就是所謂技術kpi了。

比如,今年H5站想達到單日平均出票量10000,那麼這個就是業務目標,需要消化分到各個業務團隊,可以是:

① SEO優化

② SEM優化

③ 營銷廣告

④ 微信&支付寶&手機百度流量接入(微信錢包是十分優秀的流量入口,可以極大程度的增加流量)

⑤ 實地推廣

……

以上當然只能解決部分問題,具體到前端,可能我們就要從頁面轉換率入手,建立訂單漏斗模型,做效能優化,做互動優化,每一個具體的層面都需要轉化目標。

這些都是直接可量化的東西,因為當前業務已經到了一個瓶頸,或者公司已經到了一個瓶頸,業務上就需要做不停的嘗試,對應到技術就是需要你快速迭代,低成本迭代,不斷的容錯試錯。

這個時候就會提出很多問題:

第一是你的團隊在類似高壓下會不會主動加班去實現公司的目標、個人的kpi。

第二是你的團隊在這輪高壓拼搏後有沒有留下什麼東西?

根據之前經驗,沒有團隊可以無休止的承受高壓加班的壓力

以之前攜程無線高壓迭代的經歷來說,就算是那麼優秀的團隊事實上到後期也是疲憊不堪,疲憊的時候容易犯錯,亢龍有悔,盈不可久。

第三是如何幫助新人快速的融入團隊,如何讓1+1=2。

我們都清楚,好的專案絕不是堆人可以堆出來的,如何讓一個專案可以分解到各個人手中,如何讓良莠不齊的同事可以更好的協作,這個是我們需要考慮的。

要解決這些問題是要靠平時的積累,具體體現到前端是:

1 在不停的迭代中,你的業務流程是不是最優(產品到設計到前端到最終上線流程)
2 在不停的迭代中,是否沉澱出來了公共服務與工具化服務

好的前端是什麼樣的

首先,好的前端是一定願意加班的,同時,好的前端是會找辦法讓團隊少加班的。

和一些朋友做過交流,很多好的點子,改善工作效率的點子都是幾個人討論後私下晚上搞出來,然後反覆實踐用於生產的。

一般來說業務kpi對於能力強的朋友來說不會太難,所以對他們的期待也會更多:

有強烈的意識,能深刻了解到當前專案效能的缺陷,開發效率低下的原因,並會找尋處理辦法

很多團隊在快速迭代中會開始“欠賬”,時間久了就不願意還,問題的存在擱置需要想辦法去解決,團隊成員是看得到問題的,沒人說,沒人做是因為知道那是坑,你如果能解決的話,一到二次便能提升自己在團隊中的位置。

好的前端應該有良好的架構設計能力

首先,好的前端能向人清晰有條理的描述自己的技術方案,並且讓人聽得懂!

然後架構設計能滿足長久的需求發展,就算業務頻道擴大了10倍,使用者量增加了100倍,也不會有根本的變動。

好的前端應該具有良好的交流能力

對內,好的前端需要了解團隊成員的性格與能力,做出適當的任務分配分解;對外,需要搶佔業務還不能產生利益衝突,這類人是專案推進的主力。

小公司的前端應該怎麼做

不是所有的小公司都這樣,但是我見過的小公司的前端都在撲業務,並且疲於奔命,這個是個惡性迴圈,第一次做業務:

加班趕業務-業務結束輕鬆一週-加班趕迭代-業務結束輕鬆一週-加班新業務-業務結束輕鬆下……

偶爾你會問這些朋友為什麼沒有什麼積累,得到的答案基本是一致的,忙啊!他們忙起來的時候是真的很忙,但是第二次如果依舊這麼忙的話就有問題,第三次還這樣就是團隊不健康了,一個好的做法是:

① 完成前後分離,這步做不到,後面也不用做了
② 形成幾套UI庫
③ 根據業務形態,形成公共業務
④ 前端重複工作工具化
⑤ 形成優化體系
⑥ 形成統計體系
⑦ 建立頁面轉化漏斗模型
⑧ 做ABTesting方案
……

首先,無論出於什麼考慮,前後一定要做分離,如果有SEO需求,那麼再後續推進nodeJS方案,畢竟現在不給錢想排前面還是很難,SEO基本沒意義。

其實,小公司有很多坑可以佔住,這個會幫助你建立團隊威望,下面我舉幾個細節點說一說。

UI庫

UI庫的形成與UI庫的多少將決定你後續專案重複工作量的多少,這個UI庫需要注意幾點:

① UI是否可重用

② UI是否可定製

比如讓很多朋友去做這個時間選擇器,做出來就真的是時間選擇器,如果讓他換成城市選擇器,就全傻眼了:

③ UI是否可拆分,可聚合

還是以上面UI為例,這個元件事實上是一個聚合元件,由一個select元件與一個彈出層元件組成,你的UI是不是可拆分是評價他質量的一個很大考慮點。

……

公共服務

公共服務可以說成一個大一點的“UI元件”,但是他是與業務相關的,UI來說一般不會與業務產生耦合,以上面的日期選擇器來說,無論他裝的是日期還是區域都是可以的,並且不應該請求服務,他是純淨的UI元件。

而公共服務是不純淨的是一定與業務相關的,移動端比較常見的公共服務是:

passport

包含登入註冊、個人資料管理,甚至包含一些認證相關的,與公司賬號相關的操作,登入註冊是各種活動,各種業務頻道都可能會使用的業務,這種東西是必須服務化的,但是很多小公司都沒做。

因為公共的特點,頁面設計最好中性一點,其中幾個常用的頁面,比如登入需要包含以下設計

① 樣式可定製化(彈出層、獨立頁面什麼的都是常事)

② 回退可定製,其實所有的公共服務回退按鈕都是需要定製的,登入成功去哪個URL登入失敗去哪個URL,點選瀏覽器回退去哪個URL都得約定,少一個都不是公共服務

③ 單點登入,事實上初期根本用不到什麼單點登入,甚至大家都不是跨域的,所以後續需要再支援即可

還有很多與passport一樣的公共業務,比如:

① 錢包服務,包括使用者支付訂單相關管理

② 城市列表,這個要考慮引數如何傳遞

③ 反饋系統

④ 公司介紹

除了面向C端的公共頁面服務,還會有面向B端的統計平臺相關。

前端工具化

靜態資源處理

評價一個前端團隊是否優秀成熟的評判多以團隊工具化的程度,一個簡單的例子是:

① 你們前端靜態資源是如何組織的、如何打包的

② 你們前端靜態資源是如何解決快取的(比較好的方案是MD5)

上面兩點可以使用grunt/gulp一類的構建工具輕鬆做到,如果有公共框架檔案還會需要引入種子檔案的概念

跨域問題

另外,所有前端團隊都會遇到跨域問題,特別是前後分離後,伺服器端只提供API介面,前端程式碼隨便在哪都能執行,那麼這個時候你是怎麼做呢?

① 使用fiddler&charles做代理

② 提供測試伺服器

③ 支援jsonp跨域

④ 支援cors跨域

那麼這些方案,哪種最適合團隊,哪種成本最低(一般來說是代理),是我們需要考慮的

tips:我之前使用fiddler,現在換mac了使用charles,兩款工具十分優秀,正則一塊的處理很好,推薦使用

移動端適配

從後端轉到前端的同學一般在業務邏輯上有一些天生的優勢,但是往往在CSS一塊比較弱,如何在開發人員無感的情況下引入rem,如何與現有機制無縫的使用less,如何處理單頁應用中css的汙染,這個是框架底層需要考慮的。

模組化&元件化開發

團隊上規模後,如何使用模組化開發處理協作問題;業務程式碼複雜度上升後,如何使用元件化程式設計思維簡單開發複雜度,這些需要應用到專案實踐中,並且路徑是可複製的;

一些優化手段,也需要工具化,框架化,讓開發人員無感。

前後端協作

前端與伺服器端,開發速度未必同步,事實上很多時候都不是同步的,在已經約定了介面格式的情況下,介面還沒有寫好,但是前端依然能寫互動,團隊是如何寫這種假資料,這個方面實現會大大的提升工作效率。

訂單下降分析

如果在某一個時間段,全站的流量或者全站的訂單量下降了,你如何跟蹤這次下降的原因,如何最大程度上避免下次出現類似的現象,這個時候資料統計會避免我們成為瞎子,所以得儘快建立統計平臺,轉換率模型。

快速迭代,通過迭代來優化產品,但是如果每一個迭代都完全顛覆了之前的設計,很多時候公司就是原地踏步,每邁出一步你要清晰的知道前一個版本哪裡出了問題,針對問題做優化,而不是頻繁改版。

這次改版後,你如何知道這次優化就比上一次的好,而不是其它因素造成,ABTesting方案應該是每一個成熟團隊必須的,持續優化這些都是建立在有效的資料監控與意見反饋機制上的,我們不能做完網站變成瞎子。

結語

因為很久沒有寫部落格了,又因為最近剛好來到了小團隊,有一些想法以水文的形式發出來與各位討論,希望對各位有用。

誠然,對於一個前端來說,要推動上述工作還是有一點難度的,但並不是不可能,前端對自己的定位要變,從前端工程師到軟體工程師。

我常常聽到很多前端自己都在質疑自己,或者就是膨脹到覺得自己團隊沒有什麼可以做了,那麼這個時候可以考慮下:

你們團隊的自動化、安全性已經到位了嗎,效率就真的完全沒有上升空間了?

前端的重視程度需要你我一併努力,在大公司做前端難,在小公司做前端更難,你我共勉,最後補充下為什麼回成都,以及回來的一些感受。

從一線城市到二線城市

幾年前,懷著想學點新東西的想法,我來到了上海,在這邊也確實學到了很多東西,關於學習有幾個必要條件:

① 好的專案

② 好的團隊

③ 加班總結

很多時候不是一些朋友不努力,但是PV上億的專案國內真的不多,創業團隊這種機會就更少,所以根本沒有這種機會,這個時候看人家做的很多優化就是看熱鬧,似乎懂得了什麼,其實什麼都沒懂。

就算是攜程最好的時光,依舊有很多團隊沒有跟上好時候,比如不在無線的團隊,那麼無線團隊的經驗包,如果不是真正好學的人是接收不了的,就算我處於無線團隊,native團隊中很多經驗包都是遺漏狀態,而且無論怎麼打聽都是打聽不出來的,就比如native資源更新機制,我就前前後後關注了兩年,從各處零碎的得到了很多知識,現在看來依舊不夠系統,不可謂不遺憾。

又比如有一次攜程全站出現了一個重大BUG,因為是server端的問題,自己當時目光短淺沒有去深入,到現在想深入都沒有案例了,只能說機會稍縱即逝啊!!

所以就算後來進入百度瞭解到了fis的好,但是真正想去深入的話怎麼都摸不著門道,只能學習一些思想走;這個也是一個框架成型後如果後面的人來維護怎麼都維護不好的原因,因為他們找不著精髓,後來的人甚至會噴框架的各種不好,自己卻找不出方案。

這個就是一線城市的一大好處:

一線城市,具有好專案(PV過億),好團隊的機會要好很多,只要你努力上進,就能收穫很大的經驗包。

這就意味著,只要你願意學,就一定可以收穫很大的經驗禮包,這裡有很多熱心的大神,願意與你討論,願意與你分享,而你的分享也會帶給你快樂與成就感。

另外,外面的薪酬包也要比二線城市大得多,就我而言,回成都薪酬包只有原來的70%不到,如果這次沒回成都的話,待遇應該會有長足的漲幅,但是最後還是選擇的歸蓉。

關於機會好的偽命題

很多人到一線城市打拼是覺得那裡機會好,事實上這是一個偽命題(在我看來),不可否認沿海的機會很多,但真心說不上好。

職場這個東西真心不好說,你能力強需要人賞識你,你上去了還得你的老闆上去,你老闆上去了,還得你老闆的老闆也上去了,如果中間有一個老闆失勢了,那麼新的老闆可能會洗牌,情況好的話你留下,並且依舊令人尊敬,但是更多的情況是可能你得捲鋪蓋走人,網際網路離職率高不是開玩笑的。

能力強不等於職位高,因為一般來說你的能力還沒有那麼強,能玩轉公司的畢竟是少數,搞技術的更多的情況還是比較實在,想安安靜靜寫程式碼,很少搞政治鬥爭,又心高氣傲,又比較脆弱,面對不合理的KPI,或者被產品無限制的坑,是非常容易離職的。

外面優秀的人扎堆,所以真的機會只是相對的,你如果抱著學習收穫經驗包的想法出來會收穫很大,如果你經驗包已經夠了,想更往上發展,那麼這個是很難的,因為管理或者交流未必是開發擅長的。

再往上會關注業務發展,關注KPI,需要大量的產品知識,自己甚至會成為產品,這個時候搞技術的時間就會相對變少,但技術不好又很難讓技術員工服眾,光是技術好又上不去,竟然有點矛盾。

我身邊就有幾個人出去做CTO,結果團隊剛剛上軌道就被掃地出門了……

另外,就是外面leader很辛苦,特別是團隊上升期,好的leader會陪著團隊加班,會很晚,我們之前好的老闆(35歲左右)都是陪著團隊加班的,總之錢不好賺,如果leader偷懶,幾年下來可能會廢掉,被淘汰掉,這個中年危機是不可忽視的。

雖然如此,一線城市的機會和成功的機率依舊比二線城市好得多,而你願意拼搏,善於思考,是可以發展的很好的,那麼我們為什麼要去二線城市呢?

為什麼去二線

去二線城市主要原因就是房價貴,房價太貴,同樣的錢可以在成都買三套房子了,而且一線城市買的房子很偏遠,上班得一個多小時,下班又得一個多小時,這樣來說是相當令人疲憊的。

然後外面工作節奏太緊張,甚至已經緊張到沒有生活了,有追求的人995是常態,996也是有可能的,這個會不斷的透支你的身體,年輕點還好,稍微上點年紀,有了家庭的話就不行了,會考慮的更多了。

比如在一線城市落戶的條件比較苛刻,小孩教育問題、父母養老問題都是你需要考慮的,想著想著,就會有一個想法,要不回老家算了,又不是找不到工作,於是就回來了。。。。。。

回成都後的感覺

回成都後,第二天便出差去北京,整個清明節都在加班,完了回成都也一直在加班,尼瑪這邊的工作強度一點也不比一線城市低啊!!!

但是,週末可以過得很愜意,一個月老媽也會來一次做些好吃的給我們吃,這種幸福感和歸屬感是外面沒有的。

今天,我8點就下班,在軟體園區信步而走,走了10多分鐘,然後坐著公交車20分鐘回家了,這種感覺還是很不錯的。。。。。。

二線城市依舊會面臨外面的各種挑戰,不想面對依舊上不去,在哪都是面對,那就回老家面對咯。。。。。。

相關文章