【轉】什麼是後臺開發?

軟件應用程序就像冰山同樣。用戶看到的只是應用程序的一部分——在大多數狀況下——應用程序的最大部分是看不到的。這就是使人難以捉摸又神祕的「後端」。前端

在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,容許你在系統的用戶界面部分中建立能夠被視爲業務邏輯的大部份內容。

  此外,隨着愈來愈多的團隊採用敏捷方法,個體程序員被要求不只僅能工做於他們的專業領域,由於任務被分配給團隊遠超過我的。

  我認爲成爲一個全棧開發人員是有用的——而且你應該充分了解軟件的每一個層次發生了什麼——但我不認爲「專業化」全棧開發人員是頂好的主意,由於這不是一個專業領域。

  基本上,你應該專一於獲取你可能會用到的最多見的技術棧的普遍知識,但你應該選擇一個或兩個主要的專業,而後朝着選擇的方向真正地去深刻鑽研。

  全部軟件開發人員都應該知道如何建立用戶界面,所使用的框架的基礎,如何從應用程序中存儲和檢索數據庫中的數據,甚至瞭解基礎設施如何支持軟件,他們不須要成爲全部全部這些領域的專家,由於這些領域不但至關大並且在不斷擴大。

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

  而後,你仍然能夠稱本身爲「全棧」,但實際上,對於團隊而言,你這樣的人才更加有用得多。

 

 

【轉自】https://blog.csdn.net/BloodyMandoo/article/details/62891807

相關文章
相關標籤/搜索