第十三期 AMA,掘金團隊請來了天貓營銷平臺前端-- _耗子做了為期三天的 Ask Me Anything (AMA) 活動(已結束)。
我們在此精選了一些來自使用者的提問及 _耗子的回答。
關於 _耗子
下面內容來自他的自白
簡單地自我介紹一下:曾經的“古惑仔”,街頭混混,讀書時的學渣,沒上過正兒八經的大學。畢業後輾轉漂泊過多個城市,當過網管,做過印刷工、噴繪機修理工。後供職過奇虎 360、阿里天貓。自修了計算機應用、工商管理兩個學位。業餘愛好比較雜,涉獵過量子物理、宗教、藝術史,有一些很膚淺的瞭解。
說幾段跟前端稍微有點關係的工作以便大家瞭解:
- 360 移動搜尋前端負責人,實現過 3G 時代的秒開方案,推動 360 在工程上全面支援 https
- 聚划算智慧搭建平臺核心開發者,天貓精靈前端架構師,2017 雙十一主會場前端負責人,2018 爆款清單 PM, 目前負責天貓品牌營銷域相關業務
- 個人掘金主頁:juejin.im/user/580edb…
社群小夥伴精選提問--非技術類
網管-印刷工-噴繪機修理工-前端,可以分享下如何走上程式設計這條路,以及程式設計上對你影響最大的人是誰嗎? ─ @清蒸不是水煮
網管-印刷工-噴繪機修理工-前端,可以分享下如何走上程式設計這條路,以及程式設計上對你影響最大的人是誰嗎?
網管-印刷工-噴繪機修理工-前端,可以分享下如何走上程式設計這條路,以及程式設計上對你影響最大的人是誰嗎?
或許你會覺得我要發雞湯,但可能我發的會是毒雞湯。希望每個人看到我的回答後都能找到自己的成長之路。
我高中時學習不好,很長一段時間陷入到自暴自棄的狀態,也因此沒有拿到好的文憑,以至於找工作的時候處處碰壁。 很早的時候就對 web 開發興趣濃厚。從最早的個人主頁製作、QQ 空間特效程式碼、到之後的管理運營 BBS、部落格群。積累了一些前後端開發的知識。
我做得最對的事可能是逃離二三線城市,擠進北上廣吧。在技術領域內,只有一線和超一線城市,才會彙集最多的產業資源。包括公司、人才和技術。
我只能說趕上了一個前端高速發展的時代,受惠於行業帶來的紅利。但是,這樣的紅利期已經在迅速減弱,目前應界生想去一家好公司的難度已經比從前門檻高太多。
過去十年時間,整個行業向瀏覽器應用、移動端轉型,產生的一些新興技術領域,企業對前端、Android、iOS 等工種需求強烈,但這些領域大家都缺少技術經驗,企業不得不降低招聘要求,有個笑話不是說某企業要招 10 年以上 iOS 工作經驗嘛。
目前對於上述提到的領域,同樣水漲船高,因為這些領域技術趨近於成熟,發展也在放緩,所以並不是前人走過的路後人可以復刻。
可見的未來,比較稀缺的技術工種一定是在人工智慧、大資料、虛擬/增強/混合現實、區塊鏈(不是炒幣,那只是很小的一塊)等領域。但也可以看出,學習門檻也越來越高。
對我影響最大的人,其實有很多。經歷的幾家公司的領導都非常有魅力,給過我很多指導。只要用心,每個人身上都會有你值得學習的地方。
綜上所述,總結幾點:
- 選擇好的城市比選擇學校和專業更重要
- 欠缺的知識一定要抽時間補上
- 不要等一個技術濫大街了再開始瞭解,那時候已經缺少稀缺性
- 要相信正態分佈和迴歸平均,幸運不是常態,不幸也不是常態。不是隻要奮鬥就一定有收穫,但不努力一定沒有收穫。
- 相信頂端優勢、馬太效應和 80/20定律,資源總是向頭部傾斜,並且強者越強
- 三人行心有我師,見賢思齊,見不賢而改之
校招進入阿里等大廠的前端團隊需要達到什麼樣的水準 @Keen King
想問一下想校招進入阿里等大廠的前端團隊需要達到什麼樣的水準呀
發個我們天貓的 jd 吧,歡迎來投。 有興趣可以加我微信 7827648
0、2018 年雙十一又破歷史記錄,天貓雙十一已經成為阿里巴巴最重要的節日。毫無疑問電商是阿里的靈魂,天貓是電商的重要組成部分,我們團隊是天貓的前端核心團隊。
1、崗位描述:
1)業務領域 —— 建設天貓從消費者導購到品牌商家系統全鏈路各類產品,體驗每年全球矚目雙 11 狂歡節,加入盡情施展才華的舞臺; 2)技術驅動 —— 從極致的 Mobile 體驗、前端工程化開發、企業級中臺應用、視覺化程式設計、3D / AR 創新互動,到大規模 NodeJS 應用等等,擁有足夠的挑戰及機遇;
2、崗位要求:
1)精通各種前端技術(包括 HTML/CSS/JavaScript 等),熟悉 ES6 語法,具備跨終端( Mobile + PC )的前端開發能力,熟悉網路協議(HTTP / SSL),熟悉常見安全問題和對策; 2)熟悉前端工程化與模組化開發,並有實踐經驗(如 gulp.js / webpack / Vue.js / React等); 3)至少熟悉一門非前端的語言(如 Node.js / Java / PHP / C / C++ / Python / Ruby等),並有實踐經驗; 4)對前端技術有持續的熱情,良好的團隊協作能力,提升團隊研發效率,實現極致效能,通過創新互動優化產品體驗; 5)加分項(滿足其一即可):具備客戶端能力或者 Native & Web技術融合經驗;熟悉 Canvas 動效 & WebGL3D 以及各種感測器技術;複雜企業後臺應用開發經驗;資料視覺化產品設計開發經驗;大規模 / 高負載場景下 NodeJS 應用開發、運維經驗;良好的演算法背景,對機器學習有研究和專案實施經驗;有獨立的開源專案或者參與知名開源專案經驗;團隊管理能力;英語溝通能力;
時間是如何規劃的? ─ @Guo_1_9
時間是如何規劃的
很大的問題,無法很細地回答,推薦一本對我影響很大的書《把時間當朋友》,適合理工科背景的人讀。無論你如何看待李笑來,這本書都值得一看。
在招聘環節要求的幾年到幾年的工作經驗是否為硬性標準? ─ @洋芋君
您好,想向您瞭解一下,公司在招聘環節要求的幾年到幾年的工作經驗是否為硬性標準
看什麼公司,每家公司的準則都會有一定的彈操作性空間。如果非常厲害,都是可以特批的。
我們要理解公司為什麼要設定這樣的招聘門檻,比如 3 年以上工作經驗,希望得是什麼。有很多一年經驗混三年的,也有一年加班加出 3 倍經驗的。但大部分都是在平均水平。設這樣的要求是為了節約不必要的成本。
平時是怎麼學習的,前端學到最後,是不是要轉後端?─ @好好先森
大佬,想請教你,你平時是怎麼學習的,前端學到最後,是不是要轉後端,再才能做架構,或者管理,貌似很多管理和架構都是後端出身。
對於我來說,前端只是進入一個公司的敲門磚。如果後端再好點,可能就會換另一塊敲門磚。
在目前行業的發展狀態來說,分工精細化,企業選拔人才會要求在特定領域有非常的深度,而不是選擇一個啥都會點,啥也沒真的弄明白的庸才。
如果只是把前端當成一塊敲門磚的話,進入新的殿堂,應該去發現更多的東西,而不是還只抱著這塊磚。
對於我來說,我不喜歡把自己侷限在前端或後端,哪裡不會學哪裡。所有的一切前、後端說法,不過是別人安立的一個名相。
借金剛經一句話結尾:所謂 xx,即非 xx,是名 xx。
如何做到知識的沉澱?─ @Calpa
如何做到知識的沉澱?
1.首先學會自律; 2.學會畫腦圖; 3.寫成 PPT 或文章講給別人聽。這個很重要,整理的過程你會發現很多似懂非懂的細節; 4.多問問題幾個為什麼,往往稍微深入一些,你就發現已經達到了最前沿;
如何平衡老的專案?如何適應謝快節奏開發迭代的呢?─ @haorooms
您好,現在很多公司都在用敏捷開發,專案不停迭代。但是前端新技術層出不窮!你是如何將新技術更好的學習和融入到原來專案當中的? 如何平衡老的專案?如何適應謝快節奏開發迭代的呢? 還有,您在平時如何學習新技術及您做營銷廣告這塊,有什麼經驗分享嗎?
什麼叫新技術呢?太陽底下從來沒有什麼新鮮事。大部分的創新不過都是革新,要麼來源於別的語言、別的領域的泛式,要麼新的輪子。最近幾年有幾個算得上完全顛覆式的前端新產物?如果你覺得一件事物完全是劃時代的創新,之前完全沒有聽過的思路,我覺得大概率是還沒有接觸過同類的產品。
學習,一定要向上或者向下,沿著一條道路深入。比如你會了某個 A 框架,你不應該馬上去學同質的 B 框架。向上,瞭解基於 A 框架的上層建築,和在具體業務中的實踐,向下,瞭解 A 框架的底層原理。如果同質化的 BCD 框架都學,其實就沒太多成長意義
我們目前坐的飛機,都是差不多 30-40 年前研發的。越是線上生產環境,越是重要的產品,在技術嘗新上就會越趨於保守。
前端的文化一向比較激進,喜歡嘗試新產物,這特別好。但在新技術大量向團隊鋪開的時候,一定要先做好充分的試飛工作。先在一些新專案、小流量產品上做測試,積累充足的經驗,再有說服力去推廣。
公司不會給你獨立的時間重構老專案的,對技術的極致追求是很好的精神,但不要陷入自玩自 high。
何為前端架構師?需要具備哪些軟硬實力? ─ @PandaTsui
何為前端架構師?需要具備哪些軟硬實力?前端架構師的前景如何?
何為前端架構師? 答:就是你又要做前端,又要去做程式設計,你能組織好你的程式碼,就是在做架構。
需要具備哪些軟硬實力? 答:
- 瞭解前端域內所有問題,不一定知道具體的細節,但要知道問題方向在哪,能快速索引。
- 瞭解客戶端、前端、網路、服務端、資料庫、部署、安全全鏈路知識。
- 有經驗,瞭解業界最高水平現狀。
- 經常要解決一些你不知道該怎麼做,能不能做,可不可以做的問題
- 瞭解業務現狀、未來發展發向,技術上提前佈局
- 會畫圖(腦圖、泳道圖、流程圖、分層圖、依賴圖、業務圖、羅輯圖、balabala...)
前端架構師的前景如何? 答:就是個角色,歸根到底還是個前端。前景不在於做什麼工種,在於你做出什麼成績。
社群小夥伴精選提問--技術類
怎麼解決適配和迴歸的成本問題呢? ─ @白勝
專案中肯定會依賴許多底層公共模組或外部服務,如果底層做了修改,上層往往需要做些適配,甚至需要整體迴歸。問題是如果專案特別多,比如有 50 個,那怎麼解決適配和迴歸的成本問題呢~
這對熱門開源程式來說,都是要處理的問題。服務於公司內部的公共模組也一樣。
無非是要解決兩個問題:
1、 發現底層 bug 了,如何快速讓所有使用方快速升級修復 2、 底層重構了,怕影響線上所有業務
對於開源軟體來說,是沒有義務幫你解決問題1的。一般是官方發公告、郵件,通知修復。所以需要及時關注官方新聞。對於商業軟體,有義務及時通知客戶更新。 對於服務於公司內部產品線的底層技術,同樣有義務通知使用方,另外,可以通過一些熱更新、版本推送的技術解決部分 bug 修復。
對於 2,底層的重大升級,一定做好迴歸。儘可能小地影響所有業務。你題目中的 50 個專案假設,但實際中,真正活越的很可能只有 5 個。通知好所有使用方的負責人,幫需要升級的協助做好升級。剩下的維護期的殭屍專案,要確保使用的舊版本一直可用。
這時候就考驗一個技術設計者的功底了,最糟糕的版本就是 2.0 版,說明要對之前的推翻做破壞性升級。然後留下一個長尾的爛攤子尾大不掉。
總結:小變更主動更新,大變更被動升級,遵循版本號管理原則(如常用的 x.y.z semver 版本格式 semver.org/lang/zh-CN/…
請問如何解決token重新整理瞬間,已傳送的請求token失效的問題 ─ @張鯤鵬
請問如何解決token重新整理瞬間,已傳送的請求token失效的問題
這是個安全問題,如果不是非常必要的場景,就應該存在一個失效時間。 當然,有些場景的確要處理這個問題。比如我們團隊做的頁面搭建系統,使用者需要長時間本地操作,頁面沒有重新整理。當點選發布的時候,發現登入超時,要重填,一定會很崩潰。
這時候一般有幾種解法: 0. 當前頁彈出登入框,登入後不重新整理頁面。不推薦這種方式,有安全隱患
- 彈出新 tab 完成登入,這時候會重新整理 token
- 定期發心跳包,保活
從產品上看,最後一個方案使用者體驗最好
前端開發中有哪些需要注意的安全問題呢? -@禿-。。-黑汁黃燜Jimmy飯
請問前端開發中有哪些需要注意的安全問題呢? 和後端互動方面,有沒有什麼比較好的介面統一規範和返回碼等的規則?大廠裡和後端聯調的流程大概是什麼樣子的?沒有接觸過很想了解一下,我們小地方經常是後端說連一下他的內網地址,或者後端先推程式碼然後跑Jenkins,前端連伺服器地址除錯,感覺這樣不太規範也不方便。
請問前端開發中有哪些需要注意的安全問題呢?
答:主要注意 xss 指令碼注入、csrf 跨域攻擊、安全演算法洩露(如把加密方法放在前端)、點選欺騙、廣告劫持、使用者資料洩露(如在前端把完整使用者手機號擷取尾號顯示)、http 狀態下傳明文使用者密碼、非可靠的第三方 js 指令碼、jsonp 請求,另外 sql 注入、越權也要了解一下,雖然主要是後端的問題。 安全領域問題,一定要通盤考慮,容易存在的問題是前端不懂後端的一些入侵方式,客戶端不懂前端域的入侵方式。結果在雙方的邊界處容易造成安全的無人區。一個完美的攻擊構成,很多是綜合利用前端、客戶端、後端漏洞造成攻擊的, 安全的第一原則:不信任。正因為如此,信任的建立才非常可貴。凡是允許使用者輸入、url 訪問的地方,都不要掉以輕心。
和後端互動方面,有沒有什麼比較好的介面統一規範和返回碼等的規則? 答:介面統一規範業內近年比較流行的是 restful,但前提最好你的網站已經全站 https 化。http 環境下,由於運營商和中間人和閘道器裝置,受限於他們的技術眼界,部分非 GET、POST 以外的請求種類會被錯誤處理。 返回碼沒有標準,我一般推薦的格式是 interface Result {errCode: number, data: any, msg: string}。介面返回要注意返回頭,參見這篇文章 imququ.com/post/web-se… ,另外,返回頭不要配置成 access-control-allow-origin: *
大廠裡和後端聯調的流程大概是什麼樣子的?沒有接觸過很想了解一下,我們小地方經常是後端說連一下他的內網地址,或者後端先推程式碼然後跑Jenkins,前端連伺服器地址除錯,感覺這樣不太規範也不方便。 答:我們也沒有很規範(哭笑 ?)
本期 AMA 社群小夥伴提了許多實用問題,例如單頁面框架部署webserve和pm2那個效能,由於文章篇幅的原因不做摘錄,感謝?耗子認真地為掘金小夥伴解答了不少疑問。瀏覽更多的問答,可以到?耗子的 AMA 進行閱讀和討論。