編者按:本文通過邏輯思維,商業思維,設計思維三種維度來匹配你是否一位合格的前端工程師。因為前端工程師不僅僅是負責接資料,撈數據,做個回應等這些雜事,他們應該更加需要去跟後端工程師、設計、PM進行溝通。所以,團隊合作,協調配合等等都需要考慮代碼以外更多的事情。
如果你是一個天才工程師馬上可以離開),可以獨立完成一個很多事情,你可以是一個怪咖,因為我相信沒有一個人不會不佩服你。但現實歸現實,多數人都不是天才,而我們在職場上也不是單打獨斗,我們需要團隊合作,需要協調和配合,需要考慮除了代碼以外的更多事情。
前端工程師,也不僅僅只是負責接資料,撈數據,做個回應。當然只做這些也並沒有不對,但我們需要和後端工程師溝通,我們也需要和設計溝通,也需要和 PM 溝通,怎麼做才是對這三方都比較有好處?
邏輯思維
在開始寫某一段代碼的時候,想一下它會用在哪裡,會重復用嗎? 它以後會不會變,如果會變,那可以怎樣變?一般網頁結構的變化,雖然有很多但是也有一個根據,這個根據就是可以預先估計好的。沒有一個案子,是不會「不改」的,很多時候你都是要一邊做一邊改,甚至可能會來個乾坤大挪移。當真的需要發生變動和修改的時候,你有什麼對策?這些都是需要想好,並且建立在一個邏輯上。
通常專業的設計師,設計一個網頁的元素都是同質性很高,等比或對比的,所以代碼按理也是可以重復用的。所以為何你要學會用 CSS preprocessor (Sass,stylus,less),寫一個 Mixin 或一個變量,一開始用你會覺得很麻煩,但是用了你就回不去了,不但提高你的效率還提高了你的准確率。
工程師的世界就如武林,大家都各自修煉,每天都有新的祕籍,大家都很好奇跑去修煉一下,希望有天成為武林高手。這也是提升你見識和專業的潛動力,如果你沒有好奇心,看的和懂得東西太少,邏輯自然不會跟上時代。要保持不斷的學習,來磨練自己的邏輯思維。
邏輯思維某程度,就是你的程序專業能力,除了能寫出來還要可維護,可閱讀。當事情建立在一個很好的邏輯上,那麼出錯幾率就會比較低,和你工作的人也會比較愉快。
可以把一件事做的很好,那是師傅;可以把一件事做好和預測未來的事,那才是專家。
商業思維
PM、老板或者客戶,都會問你,「你需要多少時間」,如果說的太短,可能會做不完;如果說的太長,也不可能,這是一個怎麼回答怎麼死的問題。有時候,需要換一個立場,站在第三方的角度思考。我們的完成度,和他們的完成度可能是不一樣的。
我們把案子的細節分成兩種情況,一種是你已經有經驗,可以預估時間的;一種是你沒有做過或你很陌生的,你沒有時間估計的基礎。
那麼提出一個,他們可以最低接受的標准,例如一個 App 網站,最低標准需要一個首頁,和一個鏈接去下載 app 的 2 個按鈕,這些都是可以預估的。而剩下的,你需要 Research 一下,之後再給一個比較有根據的時間。估計一個案子需要多少時間做完,是非常非常的重要,因為你消耗的是一組人的時間,不是你自己的除非你自己一個人做,或者你是老板)。如果你估算錯了,後面就會延期,做不出來沒有很大的關系,最重要是把問題解決,提出你的解決方法,什麼樣的方法才可以達到解決問題的目的。
換一個立場提出解決方案,對事情是有幫助的,對公司或客戶是有幫助的,客戶不會在乎你解決不了手機網頁看不到 20 個欄位的 table 那個問題,但是客戶很樂意聽你說,這樣的 Table 不好看,可以換一個顯示的方法。客戶也不太在意你是用 Rails 還是 php有些是很在意,他們假裝他們懂),可以購物和發文就好。
前端工程師可能很容易接觸到客戶的投訴,所以有些東西沒有想好,就會很麻煩。做個網站,換作你是網友或客戶,你會滿意你自己做的網站嗎?
設計思維
很多時候,前端工程師本身也是設計師,但是也有很多是本身是前端工程師也是後端工程師,設計和前端是分割不開的。當然我這裡說的設計,不是真的要你弄一個畫面或完整的設計圖。
It’s not just what it looks like and feels like. Design is how it works. —Steve Jobs
前端的設計是指一個畫面或元素,如何被執行和創造,移動或消除,這個設計在不同的寬度和高度,不同的裝置看,效果是怎樣,考慮進去就是你的設計思維,怎麼把設計師的畫面弄成一個活生生的網頁,要用設計師的角度去思考,才能有辦法把設計圖的概念充分的表達出來。
話說早前,收到一個「設計圖」,上面有一個「X」,我問客戶這是什麼,他說是「回上一頁」,為何回上一頁是「X」,這不是一個 popup 也不是一個 modal,同時這個圖上還有很多不同顏色和大小的「X」,分別代表了「刪除」、「關閉」、「滑下」,這是一個不太合理的設計。
設計的思維,會直接影響你寫的代碼結構和網頁結構,因為你看不出設計的重點在哪裡,怎麼寫才可以達到設計師要求的效果,你沒有辦法好好的組織你的結構和元素,就無法好好把網頁拼湊出來。這不但大大降低了你的效率,做出來的東西也不會一致。可能一個網站,就出現幾種本該一樣,結果「很像」但是不一樣的按鈕,因為你用了幾個 class 和不同結構來做。你一開始就沒有好好思考設計。
你可以做什麼
沒事要練功,FB 逛幾分鐘就好,不需要留戀太久。
做好一個網站,自己玩一下,給你朋友玩一下,問一下他們的意見?多問幾個。
多看設計圖,看思考一下你會怎麼做。
本文出自:kimix 的博客