如何看待前端

作者:搞前端的李蚊子

www.cnblogs.com/Smiled/p/8377188.html

技術方面:

第一階段(新手村)

一個前端初學者必須所掌握的核心技能HTML,CSS,JavaScript,這三項是前端最底層的技術支持了,如果你看幾年前的回答應該還會有一項jquery,但我個人覺得現階段的前端圈jquery可以不作爲必備技能,雖然Jquery對新人很友好,但現在mvvm框架滿天飛Vue, Angular,React三分天下,用起來要比直接操作dom的jquery舒服很多,當然在這個階段是打基礎的階段框架,類庫什麼的可以往後靠。原生Js永遠都是重中之重,只會用框架不懂底層原理永遠達不到精通,推薦紅寶書Javascript高級程序設計,喫透紅寶書打牢基礎再去學習其他框架,媽媽就再也不用擔心你的學習。接下來還有一項額外的技能PhotoShop,要知道ps可以不用去做,但必須要會,而且在一些小公司裏UI只會丟給你一個PSD,沒有什麼Sketch之類的東西,也沒人幫你切圖,這些都需要你自己來處理,所以ps是額外的必備技能。

第二階段(副本開啓)

進入告訴成長階段,開始打怪升級,這個階段的時間持續最長,在這期間你需要爬無數的坑,積累各種失敗的經驗,一關一關的往下刷,關於HTML和CSS你需要知道各種UI框架的使用,如BootStrap,ElementUI……,關於不同圖片的格式標準,瀏覽器的兼容性,移動和pc端的區別,響應式佈局,flex佈局,柵格佈局,對設計審美的提升…等關於提高你頁面開發效率的各種技能,UI框架這一塊比較雜選自己感興趣的看看就好。

Js方面這時候已經可以開始挑一種主流框架進行學習了,前面提到的Vue, Angular,React都是不錯的選擇, 並且對面向對象編程,對象封裝,原型繼承,閉包,同步異步差異,等一系列的js進階知識應該進行深入瞭解,同時對es6標準也需要了解,可以參考阮一峯老師的es6入門,書中包含了es6的各種新特性,默認參數,模版表達式,多行字符串,拆包表達式,改進的對象表達式,箭頭函數 =&>,Promise,塊級作用域的let和const,class類,模塊化等常用特性.可以做到自己封裝組件,編寫維護性高,可讀性強的代碼. 而且在平時需要多看別人寫的代碼,汲取別人的優點,並且閱讀大量的技術文獻,最重要的是要總結自己的問題,比如說你遇到一個bug,迷迷糊糊的就解決了,下一次你又遇到相同的問題,這個時候有沒有對之前問題進行總結的效果就看出來了.

第三階段及更高級

瞭解各種設計模式,看得懂各種框架源碼,前後端通喫,可以自己手寫js框架…好吧,我還沒到這個階段就不寫了…

工作上:

一個完整的的工作流程應該是:

立項–項目研討–需求確認----產品出原型----後臺開發同時設計師拿到原型進行UI設計–前端開始開發–測試提bug–改bug–重複n次–產品驗收

上面只是一套籠統的流程,至少在前端這方面我們需要做的有梳理業務邏輯並理解業務邏輯,這對你後面的開發很有用處,同時根據需求進行應用技術的選擇,項目結構的劃分,需求模塊的劃分,完整項目的搭建,當然現在有很多可以自動化構建工具可以節省你很多時間, 現在的前端開發已經不再僅僅只是靜態網頁的開發了,日新月異的前端技術已經讓前端代碼的邏輯和交互效果越來越複雜,更加的不易於管理,模塊化開發和預處理框架把項目分成若干個小模塊,增加了最後發佈的困難,沒有一個統一的標準,讓前端的項目結構千奇百怪。前端自動化構建在整個項目開發中越來越重要,但新手入門還是應該去嘗試自己一點一點的去構建一個項目,等你多做幾個項目覺得每次都這樣重複好煩,自然而然的就入了自動化構建的坑,畢竟這樣能讓你更深刻的理解,爲什麼要使用自動化構建……比如我們主棧是vue,我們最常用的就是vue-cli,自動化工具有很多選擇如Bower、Gulp、Grunt、node、yeoman,我們應該根據需求選擇最適合自己的去研究。

溝通

前端是團隊裏最應該學會溝通的人,界面有問題需要和UI溝通,數據有問題需要和後臺溝通,功能有問題需要和產品溝通,測試的時候給你提bug你還需要和測試溝通……emmm心累

溝通ui

前端是最接近用戶的人,用戶對一個網站,軟件最直觀的感受是反映到前端的,可能你會說最直觀的不應該是UI設計師麼,你要知道我是前端我爲設計師代言!!!

和UI的溝通,在工作中我們不應該是被動的實現UI的設計,而是應該合理化的提出自己的想法,不然日後返工浪費的是雙方的時間,比如最開始剛來公司的時候,項目裏對一些小圖標的圖片還在使用雪碧圖,但很明顯隨着瀏覽器的支持越來越好,svg和字體圖標慢慢佔據主流,我在阿里巴巴圖標庫建了一個項目把UI也拉了進來,UI把他用到的圖標直接添加進項目,前端直接從項目生成字體圖標引入到項目,絕逼要比自己慢慢切圖,扣圖標,合併雪碧圖要省事的多,而且用起來也特別爽,想改顏色就改顏色。再比如你需要做一個圖表,用到了echarts,你完全可以讓UI基於echarts去設計樣式,而不是讓他在那裏自由發揮,因爲你永遠不知道設計師的腦子裏裝了多少創意,這樣節省的是兩個人的時間,不會出現他做好樣式而你實現不了的尷尬。

溝通產品

一般來說程序員和產品經理之間是最難溝通的,只有相殺沒有相愛,畢竟子曾經曰過:’這個需求很簡單,怎麼實現我不管,明天上線!’,

下面引用lensuntop的一篇文章,我覺得寫的非常好

記得有一個段子:

產品汪:程序猿,我們來實現一個緊急需求?

程序猿:請說。

產品汪:請根據手機殼的顏色,來實現APP啓動的顏色。

程序猿已經在風中凌亂。。。

從這個段子中多少能折射出產品和技術之間的各種激情“火花”。產品經理眼中簡單的需求,而在我們看來是不可能實現的。而程序員也無法理解產品經理爲什麼要實現這樣的需求。那麼,站在一個程序員的角度應該怎麼樣和產品經理溝通呢?

1.深刻理解需求,清楚需求的動機和緣由
我們程序員一定會在問,產品經理爲什麼想要根據手機殼的顏色來動態實現APP啓動時的顏色。既然想聽解析,那就先別急着說出自己的結論——技術上無法實現!既然有疑問,那就先將自己的疑問解決。

2.換位思考
產品有產品的角度。作爲程序員我們追求的是什麼?邏輯正確,更快,更容易擴展。產品追求的是什麼?說實話,我自己沒有深刻去思考過這個問題。站在一個慣性的角度思考可以想到:一個產品爲什麼存在,他的存在能解決什麼問題,他的用戶體驗好不好。這些纔是決定一個產品的核心價值。畢竟工作性質影響了一個人的思維邏輯,所以這時候,我們能站在一個產品的角度去思考每一個需求,便顯得尤其重要。

3.不放過每一個細節
作爲程序員想必對這句話都是深深認同的。因爲一個標點符號或者類型的錯誤,會導致一個自己意想不到的bug。產品經理在設計一個產品的時候,都是從大方向去想問題的,大方向沒有錯就行了,細節脫離不了大方向。這是他們想的。但是對於程序來說,卻萬萬不能。因爲一個細節的邏輯往往決定了整個大方向。舉個例子:有一個需求,用戶的作品需要提交審覈,經過審覈纔可以讓所有人看到。當產品經理交這個需求給你的時候,你能察覺到什麼問題了嗎?這裏面有幾個細節:1.用戶提交審覈後,用戶可以不可以再編輯作品;2.作品是否會多次審覈;3.需不需要記錄審覈歷史;4.用戶作品是否需要有版本的控制,如要產生版本,版本又是如何產生的;5.審覈通過後,用戶可以不可以再修改作品,若不可以,那麼是不是其他人就看不見用戶作品…話說回來這只是一個簡單的邏輯需求!但是涉及的細節卻是太多太多。我們往往在編碼的時候寫不下去,就是因爲給的需求太模糊,沒有細化到點上。

4.換一種方式說“不能實現”
不能實現,這句話想必我們都是經常說。但是直接對產品經理說,沒準會讓產品經理抓狂。因爲我們會讓他們覺得他們提出的任何需求,我們都不能實現。但是事實並非如此,因爲不能實現是有條件的,比如時間不夠。所以我們要先認同產品經理的觀點(“能實現”),再提出自己實現他的需求的條件是什麼。因爲現實產品經理也不會經常犯傻,經常提出一些不合理的需求,但是面對需求,我們需要評估實現的時間,而且這個時間不是那麼容易評估準確的。

5.當遇到不合理的需求時,積極尋求替換方案
就拿段子裏面的需求來說,讓我們提供幾種APP皮膚給用戶進行選擇,肯定比原先的需求容易實現,而且也更加符合人性化。說另外一個故事,有家智能家居的公司,要實現廚房水龍頭,根據人聲說水溫幾度,就可以達到幾度。換個角度想,你會感覺出40度和45度水的溫差嗎?而且根據人聲判斷,這又涉及到聲音識別系統,你要兼容多少種語言?其實我就覺得左右切換就挺智能的,完全沒有必要搞的那麼複雜。所以程序員要找到一種更好更容易實現的方法。別給產品經理的想當然自亂陣腳。

6.必須遵循文檔精神
在開發的時候,我們往往會另外與產品經理進行細節化的討論。但是這種討論結果,我們並沒有記錄到產品原型裏面或者需求列表裏面。但是過了幾個月後,我們自己往往會忘記我們當初爲什麼會討論出這樣或者那樣的一個細節。所以一切的需求必須是根據的。從另一方面來說,也保障了雙方的利益,別等到出問題的時候,不知道是誰的責任,而在這一方面,程序員往往很喫虧。

7.對自己的程序有一顆藝術的心
有人說過,當需求影響到代碼擴展性的時候,會首先砍需求,而不是改代碼!在一定程度上,我是認同這句話的。在我看來,程序是一件思想上的作品,要達到藝術的境界,從功能、體驗和邏輯上都必須是合情合理的。就像一件藝術品一樣,看起來是渾然天成的!因爲一件看起來很“醜陋”作品,一定是不符合人的邏輯和習慣的。

寫到最後,感覺繞回到程序員自身了。其實跟產品經理溝通,最重要的是要明白到:我們是在解決問題,而不是在製造問題!主要抱着這個核心,一切問題迎刃而解

一般來說和後臺溝通沒那麼多的麻煩,約定好規則後,一般來說你們是通過api來溝通的,但當你調試接口時,出現一些未知的,你感覺不是自己問題的時候,及時的溝通後臺是最明智的。

責任劃分

相信大家在這一點上都深有感觸,因爲前端是最後一關,所有的需求都是在前端手裏變成一個具體的產品的,這樣也就導致你很容易變成背鍋俠,導致項目延期的情況有很多種,設計圖不及時,後臺數據出現問題,產品臨時改需求,如果你不能證明是這些問題導致項目延期,這個鍋你必背無疑,唯一的方法就是–à口頭確認–à發email到責任人確認–à通知上級,千萬不要覺得這個麻煩,出問題的時候會比這個更麻煩的,

寫不動了,以上就是個人爬坑後對前端的一些理解(ps:雖然我還在坑裏),也算對自己工作的一個總結吧,寫的比較絮叨,不喜勿噴,最後祝大家2018升職加薪,找到女朋友!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章