如何讓後端開發高質完成前端的工作?

  • 【後端開發】指本來專門負責業務/邏輯層的開發人員,多以 Java、.Net 等技能為看家本領。

  • 其中【前端的工作】是指將交互稿和視覺稿(圖片)轉換成頁面 Demo 或者視圖層的過程。

  • 【高質】指的是按照前端的開發質量要求,高品質還原交互視覺效果,極少線上 bug。

幾個問題:

  1. 你認為是否可行?

  2. 如果可行,會有哪些困難,如何克服?

  3. 可以執行的話,又該如何保證質量?

  4. 可以從那些方面保證後端開發在其中得到發展和肯定?

求指點,接受批鬥……


這個問題其實是讓前端開發工作如何做到邊際成本遞減,這裡的成本是開發一個功能投入的前端工程師的專業性來衡量的,而不是獲得用戶的成本。所需前端工程師的專業性越低,後端工程師越有可能參與。

個人認為這是一個可行的目標,只不過阻力太大。下面結合自己在知乎短暫實驗的經驗(經驗並非來自前端),大膽暢想一下。

1. 首先,要求流程上的每個環節對邊際成本有清晰的認識,對達到邊際成本遞減的目標達成一致。任何一個流程不配合,其他流程降低成本的努力可能就付之東流。在實施上必須有管理層配合,能夠立項效果最好;

2. 第二步,是統一交互模式。通常交互模式決定了前端的核心的框架,比如表單提交還是 AJAX, 頁面局部刷新還是全局刷新,對話框採用 Apply 模式還是立即生效模式等等。你們的產品經理和交互設計師必須知道這些約定,並且保證在日後的迭代過程中保持一致,不能隨意變化;

3. 第三步,設計封裝性、復用性良好、松耦合的組件框架,並且建立一套全團隊認可的組件庫。要達到 PM、設計師、工程師都知道每一個新功能是否會在組件庫里增加新組件,尤其是基本組件(指不能僅通過組合開發出來的組件),增加多少。組件的增加可以用來衡量你們開發的邊際成本。同時,組件庫要成為 PM 和設計師設計新功能的第一素材庫;

4. 當一個新功能沒有新增基本組件時,那麼開發工作就變成了搭積木。後端工程師都是擅長多語言和重構的人,只要前面提到的組件框架設計水平有保證就行;

5. 讓後端工程師能夠獨立組合出新組件,甚至能夠開發出新的基本組件,就讓其技能達到了發展和肯定。

其實可以看出來,後端參與前端開發並高質量的完成任務,對後端的要求並不高,對前端架構本身、項目管理、PM 和設計師的要求倒是蠻高的。


開2份工資。


1. 可行

2. 瀏覽器優化經驗,css熟悉程度,debug方式,js語法和坑

3. 多加培訓,提早模塊化和框架化,減少轉型的難度,不過這個對之前的工作需要很多

4. 可以提升UX/UI/UE的經驗,了解用戶習慣。好的工程師還是需要一些審美能力。


曾經我做過一套erp項目,只有二個前端工程師,一個我老大,一個我,把設計稿封裝成js調用的組件,並且實現mvvm模式,即dom和js聯動。

然後後端開發,只用把sql拼到xml里,把js當java寫就好了。

但是,這僅限於一套長時間(半年以上),整頁風格基本一樣、不用SEO的內部功能性網站。

然後現在在的公司,較大(國內top5),後端基本都會前端工作,用bootstrap做內部管理頁面是很正常的。

但是上線需要出自ue、ui人員的內容,那還是讓專業前端來吧。

摺疊我。


唉,讓前端的日子怎麼混啊。實際來講是可行的,不過有個效率的問題。實際看業務吧,如果前端複雜,讓後端去切圖去處理瀏覽器兼容是一件很痛苦的事,恐怕前端開發會佔後端一半以上的時間。這部分工作交給專業的前端來做,效率無疑會大大提高。一個合格前端或者一個的重構+一個JSer就能解決很多多問題,解放後端。看需求自己衡量吧。


為什麼不可行?別說後端干前端,你讓前端去干後端、干安全、干運營、干數據挖掘等研究什麼的,哪有一個優秀的前端拿不下來的?(同樣,一個不優秀的後端我不覺得他能幹好前端)只要你給夠他時間去學習探索。

那麼關鍵是什麼呢?效率啊效率啊,社會分工為的啥,不就是專業細分效率高么,咱們別開歷史的倒車了好吧。

-------------------------------------------------------------------------------------------------------------------

好吧,再來有圖有真相

一個後端寫的前端表單,當然我覺得他可以寫得更好看一點,不過最多由負分變為0分,不可能再高了。

再來看一個前端寫的東西

Makisu ~ CSS 3D Dropdown Concept


參考bootstrap思路和rails-bootstrap gem .不解釋,這問題有點越界


在一個寫技術stack是以.NET MVC為基礎的公司做front-end developer,說一說體驗。

首先,高質完成是不可能的。

寫後端的人大抵是學不來或者不屑於搞html,css的,col-lg col-md col-xs都不仔細看,隨手亂寫節本。

既然高質量是不可能的,那麼我的任務就是保證大多數簡單重複的組件可以不用我一次一次改。

- 比如設計搞中重複出現的簡單組件,你可以寫好固定的可復用組件,比如kendo裡面的template。項目中用到的notification,我已經把所有交互和樣式寫好,封裝到template裡面,後端只需要傳入exception 或者feedback的字元串就可以,這樣就保證了前端組件script的質量。

- 比較靈活,不能封裝到template的,也要寫好公用css,比如header這類的。否則後端為了定位element,有的用padding, 有的用margin,還有的用left right,後期設計改了,你改樣式不就哭死了。

最後,前端工程師要遠離.NET公司

理由,

- 你只能寫寫HTML CSS JQUERY,而且.NET公司大多不重視設計,他們招個『美工』,順便就把頁面css寫了。當年在微軟當UX designer intern就是這樣。除非你想成為css specialist,不過這還得看公司,看看公司在不在乎了,絕大多公司不在乎。

- 前後端分離才是響應web {a}.0,a &>=3的王道,寫個node.js 這樣的proxy server,弄弄前端項目搭建什麼的,你要是弄個.NET,能讓你只寫個controller?

- 我再過一段時間,學學react和相關的技術棧就跳槽了,好歹也是有個IT學位,刷過不少簡單和中等難度的leetcode的人。


1. 定義好標準實用的借口

2. 寫好業務邏輯

3. 寫好事物控制

4. 寫好日誌記錄

5. 寫好介面安全

6. 寫好異常處理, 並友好的反饋給前端

7. 為大並發做好準備

歡迎訪問 [前後端完全分離初探](前後端完全分離初探 // Arccode"s blog)


隨便玩玩可以,要是像你說的要求這麼高就沒有辦法,除非人家主觀上對這有興趣。再者把人家安排到前端的職位上。

掌握技能的熟練度跟使用時間有關係,是一加一大於二還是顧此失彼這個不同人有不同的答案。最好還是要尊重當事人的主觀意願。

如果真的開始幹了就不要停,讓人好有積累的過程。主觀上喜歡搞的就不需要操心他怎麼克服了,他自有辦法。


推薦閱讀:

前端開發現在都在用什麼系統和相應IDE?
react 中inline-block的間距去哪了?
web前端如何學習github上的項目?
開發人員可以分為哪幾類?
支持ie8的mvvm框架比較?

TAG:前端開發 | 前端工程師 | 後端工程師 |