什麼是後端開發?

2017-03-11    分類:WEB開發、程式設計開發、首頁精華0人評論發表於2017-03-11

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

軟體應用程式就像冰山一樣。使用者看到的只是應用程式的一部分——在大多數情況下——應用程式的最大部分是看不到的。這就是令人難以捉摸又神祕的“後端”。

在Web開發的篇章中,我們主要討論Web開發,因為它涉及與終端使用者的直接互動——我們可以稱之為“前端Web開發”。

在大多數應用中,非使用者介面程式碼比使用者介面程式碼多得多。複雜系統是在後臺發生的各種使其工作的邏輯。

我們需要儲存和檢索資料,需要遵循業務邏輯和規則,並且需要對結果進行預測。所有這一切都發生在幕後。

後端開發人員是這樣的開發人員。

後端開發究竟是什麼?

這篇文章的目的在於,我將會考慮後端開發是一種不涉及建立生成使用者介面的開發。這可能包括後端Web開發,可能也涉及編寫API,建立庫或和沒有使用者介面或甚至科學程式設計系統的系統元件一起工作。

在現實中,即使前端開發獲得了大部分的榮耀,但是世界上存在的大多數程式碼(可以說是最有用的程式碼)是終端使用者從來不會看到的後端程式碼。

簡單來說,後端開發就是開發人員編寫的不能直接看到的程式碼。

後端開發人員做什麼?

根據正在處理的應用程式的大小和範圍,後端開發人員要做的事情有很大的不同。在我是一個後端開發人員時,我做了很多工作,工作於應用程式中的業務邏輯,以及從前端提取和檢索資料。

在Web開發世界中,大多數後端開發人員從事於構建他們正在工作的應用程式背後的實際邏輯。

通常,前端開發人員構建使用者介面,而後端開發人員編寫程式碼,使其工作。

例如,前端開發人員在應用程式中建立一個介面,上面有一個按鈕,按下按鈕來獲取客戶的資料。

後端開發人員寫可使得按鈕工作的程式碼,通過指出從資料庫中提取哪些資料並將其傳回到前端(並最終顯示在那裡)。

後端開發人員也可能會大量參與系統架構,決定如何組織系統的邏輯,以便能夠正常維護和執行。

他可能會參與構建框架或系統架構,以便於更容易編寫程式。後端開發人員比前端開發人員花費更多的時間在實現演算法和解決問題上。

我一直都很喜歡後端開發工作,因為它更像一個挑戰。

這並不是說前端開發人員不解決難題,但通常前端開發工作更多的是關於建立使用者介面和與之相關的內容,而不是實現實際的業務邏輯,使應用程式工作。

後端開發的主要技術和技能

前端開發人員需要知道一系列用於建立使用者介面的工具,而後端開發人員通常使用的是一套完全不同的工具和技能,以便於高效地完成他們的工作。

後端開發人員所需的一個重要技能與SQL和資料庫有關。大多數後端系統需要連線到儲存應用程式資料的資料庫。

後端開發人員通常的工作是從資料庫或其他資料來源寫入、讀取和處理資料,因此擁有SQL等技能會非常重要。後端開發人員——至少對於Web開發——也需要擅長他們正在使用的技術棧的伺服器端語言。

例如,雖然前端Web開發人員更多地專注於HTML,CSS和JavaScript,而後端開發人員需要更多地瞭解PHP Web框架,Ruby on Rails,ASP.NET MVC或任何正用於構建應用程式的伺服器端Web開發框架。

最後,我想說,後端開發人員需要更多地瞭解應用程式架構,因為大多數情況下,後端開發人員需要去構建應用程式的體系結構和內部設計。

一個好的後端開發人員得知道如何使用各種框架和庫,如何將它們整合到應用程式中,以及如何構建程式碼和業務邏輯,用一種使系統更易於維護的方式。

如果你喜歡設計應用程式的基礎設施,實現演算法和邏輯,以及工作於資料,那麼你可能會喜歡成為一名後端開發人員。

關於全棧開發人員?

我曾想為全棧開發人員另起一篇文章,但後來想到,既然已經涵蓋了Web開發和後端開發,那麼延伸開去談論全棧開發更為理所當然,因為全棧開發剛好涉及了前端和後端開發。

實際上,全棧開發包括處理系統或軟體開發堆疊的所有元件和層。它甚至可能涉及瞭解伺服器硬體和架構,或者被認為是DevOps。

今天,越來越多的軟體開發職位在尋找能夠進行全棧開發的開發人員,因為對於軟體開發人員來說能夠工作於涉及的整個技術棧是很有價值的,而不是將前端開發與後端開發兵分兩路。

一部分原因是現在越來越多的應用程式模糊了前端和後端開發之間的界限。

許多流行的JavaScript框架,如Angular,允許你在系統的使用者介面部分中建立可以被視為業務邏輯的大部分內容。

此外,隨著越來越多的團隊採用敏捷方法,個體程式設計師被要求不僅僅能工作於他們的專業領域,因為任務被分配給團隊遠超過個人。

我認為成為一個全棧開發人員是有用的——並且你應該充分了解軟體的每個層次發生了什麼——但我不認為“專業化”全棧開發人員是頂好的主意,因為這不是一個專業領域。

基本上,你應該專注於獲取你可能會用到的最常見的技術棧的廣泛知識,但你應該選擇一個或兩個主要的專業,然後朝著選擇的方向真正地去深入鑽研。

所有軟體開發人員都應該知道如何建立使用者介面,所使用的框架的基礎,如何從應用程式中儲存和檢索資料庫中的資料,甚至瞭解基礎設施如何支援軟體,他們不需要成為所有所有這些領域的專家,因為這些領域不但相當大而且在不斷擴大。

具備技術堆疊中通用和有效的所有知識或一些領域中的專業化知識或許要好得多。

然後,你仍然可以稱自己為“全棧”,但實際上,對於團隊而言,你這樣的人才更加有用得多。

譯文連結:http://www.codeceo.com/article/what-is-backend-development.html
英文原文:What Is Back-End Development?
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章