【編者按】本文作者為 OneAPM 工程師李哲糖驴,文章主要介紹前端知識對于編程的必要性。
這里說的前端知識是比較通俗的前端知識贮缕,包括網(wǎng)頁,桌面或移動端程序的界面俺榆,命令行程序的提示等等感昼,即和用戶進行交互的那一部分。我的工作經(jīng)歷中罐脊,很多人是不在乎這一部分的定嗓,更有很多人覺得這個很 low,在年初的時候萍桌,還聽到一位這樣說宵溅,“前端無非就是 Copy Paste”,在前端技術發(fā)展這么迅猛的現(xiàn)在上炎,還能說出這樣的話层玲,可見這個人的眼界是多么的狹小了,連沖他苦笑的時間都騰不出來反症。
由于工作內(nèi)容的關系辛块,大部分情況都是在 Linux 的虛擬終端下,也就是敲擊鍵盤輸入各種命令铅碍,等著系統(tǒng)的反饋润绵。我使用過很多更好用的命令行程序的替代品,比如 top 命令的替代 htop胞谈,看看 top 和 htop 的區(qū)別吧尘盼,很明顯 htop 要更好用。
虛擬終端用了那么多年,也沒有什么實質上的改進径密,只是多了幾種 shell 的變種午阵,比如 zsh,fish 等等。實際上有很多人在做這方面的嘗試底桂,原因也就是現(xiàn)在的虛擬終端太難用了植袍。讓我們看看 black-screen 是什么樣子的。black-screen 基于 electron 開發(fā)籽懦,也就是 github atom 的底層引擎于个。做的還不是完全兼容,能滿足一般使用吧暮顺。
即使在虛擬終端這個領域,大家都在追求友好的界面設計捶码,以及交互的友好贷笛。如果你認為 black-screen 沒有什么技術含量的話,那就大錯特錯了宙项,一個頁面里渲染那么多的內(nèi)容乏苦,如何提升渲染的性能,是一個很大的難題尤筐,github 對 electron 有很多的優(yōu)化汇荐,都是在如何渲染字符上下的功夫,可 github 的技術實力盆繁,相比微軟還是差了一大截掀淘,微軟的 VSCode 同樣基于 electron,但是啟動速度油昂,運行速度都甩出 github 的 atom 幾條街革娄。有點扯遠了,O(∩_∩)O~冕碟。
前面兩個例子可能有人沒有辦法理解拦惋,這和前端有什么關系?從我使用這兩個工具的感覺是安寺,他們更加好用厕妖,與原來的 top 和 terminal 來對比的話,我發(fā)現(xiàn)他的界面漂亮挑庶,使用起來簡單言秸,出了錯誤的時候提示比較友好,比如 black-screen 在執(zhí)行了一個長時間運行未立即返回運行結果的命令時迎捺,它會顯示一個滾動的進度條举畸,而傳統(tǒng)的終端就是停在那里,也不知道它是不是已經(jīng)僵死了凳枝。
現(xiàn)在通常意義上的前端抄沮,就是 HTML,CSS,JavaScript 了合是,還有無數(shù)的前端框架,對于非專職的前端工程師來說锭环,僅僅需要懂些基本的 HTML聪全,CSS,以及一些 CSS 框架就可以了辅辩,比如 Twitter 的 Bootstrap难礼,在真正的前端工程師看來,這些都是小菜一碟玫锋,而對于一個只搞后端的工程師來講蛾茉,那真是全世界最難的事了,他們看不起前端撩鹿,卻又做不出來谦炬。缺少界面,你做的工具就沒有辦法用节沦,界面難用键思,工具也就很難用,雖然里面的代碼可能寫的很棒甫贯。
拿我們用了一年的 OpenTSDB 說吧吼鳞,那個界面真是讓人想死的心都有,動不動就是直接報錯叫搁,雖然是好東西赔桌,可是這臉面真是不能恭維。對比一下它和Grafana渴逻。
其實也不用做這么好看惨奕,但是最起碼是可用的仿贬,看起來是整整齊齊的,就像命令行的幫助文檔那樣墓贿,雖然是基于字符的茧泪,但是一看就是認認真真的做出來的,像 OpenTSDB 那個明顯是出來糊弄事兒的聋袋。
這個都比 OpenTSDB 的界面好
說點歷史問題吧,最早的程序員根本不分前后端幽勒,VB嗜侮,Delphi 的 C/S 時代,界面就是妥妥拽拽,寫任何程序都是要自己做界面的锈颗;后來到了 B/S 時代顷霹,做網(wǎng)頁的稱為美工,終于提取出這樣一個工種击吱,還需要懂 PS 切圖淋淀,又出來一個 Dreamweaver,也是想拖拖拽拽的解決問題覆醇。再到后來朵纷,網(wǎng)頁前端越來越復雜,像 Java 社區(qū)出的 JSF 永脓,還有 HTML5 崛起前的那兩年袍辞,Adobe 的 Flex,AIR常摧,很多工作流軟件就是用這兩項技術做的搅吁,以及 Java 從誕生起最雞肋功能 — JavaFX。那個時候落午,真正用軟件的人少似芝,其實也是人們不會用,因為界面上也就是前端了板甘,沒有人用的明白党瓮,太復雜。直到最近五年盐类,到了每個人都會用軟件的時代寞奸,技術雖然是進步了,但是讓人們在跳,從小孩到老人都能去用這些軟件的根本原因不僅僅是技術進步枪萄,更重要的是界面的交互設計進步了,它讓每個人都能很簡單的學會如何操作猫妙。
現(xiàn)在到了大數(shù)據(jù)的時代瓷翻,存儲數(shù)據(jù)是一個要解決的問題,從數(shù)據(jù)中發(fā)現(xiàn)價值是另一個要解決問題割坠,而數(shù)據(jù)可視化可淺顯的歸為前端工作齐帚,畢竟是要從數(shù)據(jù)中“看到”價值,當然彼哼,這部分工作只是懂前端知識是不夠的对妄,所以如果大數(shù)據(jù)工程師能夠懂得如何將數(shù)據(jù)可視化出來,也許更能體現(xiàn)他們的價值敢朱,而不僅僅是把那些大數(shù)據(jù)的組件玩的滾瓜爛熟剪菱,卻不能“看到”什么東西摩瞎。
前端已然發(fā)展成為一個和大數(shù)據(jù)一樣熱門的職業(yè)了,雖然你可能不是一個前端工程師孝常,但是稍微學一點旗们,不要讓時代把你給落下了。
OneAPM Browser Insight 是一個基于真實用戶的 Web 前端性能監(jiān)控平臺构灸,能幫助大家定位網(wǎng)站性能瓶頸上渴,實現(xiàn)網(wǎng)站加速效果可視化;支持瀏覽器冻押、微信驰贷、App 瀏覽 HTML 和 HTML5 頁面盛嘿。想閱讀更多技術文章洛巢,請訪問 OneAPM 官方技術博客。