我在阿里這仨月


Alibaba 試用期是三個月,轉眼三個月過去了,也到了轉正述職的時間。回想這三個月做過的事情,很多很雜,但還是有重點。

本文談一談工作中遇到的各種場景,需要用到的一些前端知識,以及我對前端進階學習的一點思考。

一、漫談

剛入職不久阿里巴巴就上市了,這是件振奮人心的事情。實際上在正式入職之前,我就已經在淘寶UED實習了三個月,所以這邊的工作環境和開發流程都比較熟悉了。

在工作中,遇到了很多這樣的場景:

1. 線上 bug 處理

運營:“嘿,小胡子,有客戶反饋這個提交表單的頁面中,上傳圖片預覽總是失敗,麻煩你跟進下這個case~”。
小胡子哥:“哦,好的!”

這個時候手頭可能有很多工作,但記住一個原則,線上問題的優先級是最高的,“客戶第一”是阿里也是所有公司必須秉承的一個價值觀理念。

打開瀏覽器,發現我這邊並沒有圖片上傳預覽失敗的問題,我納悶了良久,期間讓用戶嘗試換瀏覽器、電腦,未果,最后不得不遠程連接客戶的電腦,查看問題。(最后定位原因為某個地區的 CDN 出了問題)

2. 網站改版(前端開發流程)

老大:“小胡子,以后你就負責這兩條業務線了哈~”。
小胡子哥:“嗯”。
某天,運營:“網站上線幾個新增功能,之前的流程需要優化,本次將對 xx網站改版,幾哩吧啦幾哩吧啦..... 小胡子啊,幾哩吧啦幾哩吧啦.....”。
小胡子哥:“這個需求前端實現成本太高,是不是可以這樣;這個地方的修改,幾哩吧啦幾哩吧啦.....好的!”。

一個大的需求過來,一般會經過多次評審。剛開始是產品GG和運營MM們互噴口水,噴完了PRM評審也就完了,那么這個時候一般就確定要做什么啦,然后會把前端、視覺、開發等同學都叫過去參加交互評審,交互評審敲定之后,視覺同學就回去畫圖啦,這個時候后端同學會去准備數據,前端同學會跟視覺MM聯系緊密,形影不離。

視覺稿設計完了之后,前端就正式投入開發了。剛開始會面臨一個問題,前后端的接口誰來擬訂?

后端數據還在准備中,如果后端擬訂接口,則剛開始后端需要模擬數據,此時接口地址和前端開發環境還不在一個域下,取數據存在跨域問題,如果先改成 jsonp 的接口,開發完畢再改成 json 接口,那么后續程序也需要跟着一起改動。如果前端擬訂接口,則前端需要在本地 mock 數據,若開發完畢時后端數據依然沒有准備好,那么聯調又是一個麻煩事兒,可能后端還得模擬一次數據,這樣前端后端都實現了依次數據模擬,重復工作,冗余。慶幸的是我們有數據接口擬訂的工具,這個工具可以將接口信息以文檔形式沉淀,並且提供了可跨域訪問的 mock 數據,接口的修改也變得異常方便。

好,既然有工具,那我就辛苦點吧~ 寫好數據接口,交給后端同學 review,然后開始切圖(做業務嘛,唉…)公司內部使用的前端框架叫做 KISSY,目前已經升級到 5.0,而使用比較多的還是 1.4.x 版本。這是個啥玩意兒呢,很多公司沒有自己的框架,於是便使用 JQ 開發,這個 KISSY 也是一樣的,他就是公司的 JQuery,不過框架對業務更加有親和力,KISSY 提供了數量龐大的組件和插件,易用性很強,但學習有一定的門檻。

使用 KISSY 完成業務邏輯的開發。我們會將代碼發布到 CDN 上,這點我需要得瑟下,阿里的前端發布系統真是好用到了極致!因為 HTML 部分是后端管的,我們開發好 HTML/CSS/JS 之后,會將 HTML 交給后端同學,同時將靜態資源 (CSS/JS/IMG) 發布到線上,圖片可以直接上傳,CSS和JS在本地打包之后,push 到倉庫,系統會自動完成 CDN 部署,一般前端的改動在兩分鍾之內就能在線上見效,一天發布幾十個版本毫無壓力,不像某度公司,膽戰心驚的排着長隊發布一個小小的改動,發布的時候還擔心別人搶先上線,自己又得 merge 代碼(去年在百度實習情況還是這樣,不知道如今改善了多少)。

待后端同學也開發完畢后,我們會把測試MM叫到旁邊,讓她們幫着測試系統bug,這個時候也可以把運營MM叫過來一起測試,修完 bug 就可以正式上線了。

所以在阿里,前端資源是提早上線的,完了后端代碼才會上。上面所說皆為 PC 端的開發流程,Mobile 端還是有很大差異,這里就不細說了。

3. 需求的變更

小胡子哥正在得瑟順利的完成了一個項目的開發,可是此時,運營MM跑過來說:“某個功能因為xx原因本期不能上線了,需要等到V2版本再發,需要前端協助刪除xx模塊。”
小胡子尋思着,皺了皺眉頭。運營MM含情脈脈的對視着小胡子,小胡子說:“那,好吧,改完之后需求還變么?”
運營MM點了點頭,然后又搖了搖頭。
小胡子心想:“媽蛋”。

然后繼續上述流程。

那些還沒有出過校門的童鞋們,看到這里,你是不是對公司項目的開發有了大概的了解呢?以上的三個場景是十分常見的,但是在公司絕不僅僅只干這些事情。

在這三個月里,我參與了一個前端自動化檢測工具的開發,完成了前后端的改造。所用到的技術嘛,稍微列一列:

  • websocket 實時通訊
  • scss/less css預處理語言
  • grunt/gulp 打包工具
  • MVC 分離思想
  • Promise 異步編程框架
  • Middleware 中間件的編寫
  • Express Node的框架

涉及到的技術點,很多很多,這些只是一個項目中用到的部分內容。前端,暗藏無數殺機,如果對基礎東西掌握不牢靠,你會發現別人三小時搞定的事情,到你這里就得三天,因為你一直在踩坑!

二、前端進階的思考

很多優秀的前端同學,在學到一定水平之后,會感覺學到盡頭了,每天愁着怎么去學習新知識,學習什么新知識。也有很多同學,學習的重點跟工作后的從事內容偏差頗大。所以我想着能不能在這方面跟大家交流一下,一起探討。

我在微博上也提出了這樣的問題。很多同學學習沒有規律,今天來點這個明天來點那個,學完之后感覺自己都懂了,但沒有太多的平台/工具來檢測自己所學是不是到位,然后突然某一天問道,下一步我該學啥?

每個人成長都有一個過程,在這個過程中,我們會經歷多次蛻變。踏過前端門檻之后,下一步要想的事情是進階,提升自己的技能。

在進階方面,我問個簡單的問題:git,你熟練么?

前端發布資源到 CDN 采用的就是 git,諸如 add commit diff log status tag remote push merge 等等,這些 git 常用命令,你是否都熟悉了?git 的版本管理有哪些思路,比如線上出現了 bug,你會如何處理程序,新建分支開發?在原有基礎上開發?如何管理版本?等等。

很多知識是需要花費大量的時間學習的,比如 backbone, JQuery源碼分析, MVVM, 設計模式, HTTP協議, 響應式, 異步編程, 模塊化, websocket, DOM監控, 本地儲存, 瀏覽器渲染原理等等,平時學習的時候可以把這些關鍵字枚舉下,然后針對每個關鍵字延伸學習。

延伸學習的方式很簡單,google 一個關鍵詞你能看到十幾篇優秀的博文,再這些博文中尋找新的關鍵字,直到整個大知識點得到突破。我一直都是這么學習的。

三、小結

好吧,嘰哩咕嚕又扯了一堆,阿里巴巴是個不錯的公司,如果想過來的話,可以聯系我喲~ 學習是件長久並且艱苦的事情,收拾好心情,先睡個好覺,明天搞起吧!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM