API,身份驗證,設計模式,MVC,緩存,Cookie,會話(huà),JSON,端點,服務器,托管,CRUD。這些單詞對您來說很熟悉嗎(ma)?
如果是,那麽您肯定是後端開(kāi)發人員(yuán)或在應用程序的後端部分(fēn)工(gōng)作。
客戶經常低估了後端開(kāi)發人員(yuán)的工(gōng)作,尤其是那些隻對前端部分(fēn)印象深刻并且對後端編碼一(yī)無所知(zhī)的客戶。客戶永遠無法獲得後端編碼部分(fēn)所涉及的複雜(zá)性。
您可以詢問開(kāi)發人員(yuán),他們将讓您知(zhī)道有時候用最少的代碼很難連接4-5個表,他們在實現API時會遇到什麽樣的困難,何時需要考慮所有情況當涉及到動态網址。
想象一(yī)下(xià)您正在構建一(yī)個電(diàn)子商(shāng)務站點的場景,并且您需要處理一(yī)個複雜(zá)的查詢,在該查詢中(zhōng),您必須爲将要在您的網站上購物(wù)的客戶計算價格。如果使用=而不是==會發生(shēng)什麽。當然,整個結果會有所不同,客戶可能會獲得利益,或者他/她可能會損失很多錢。後端的一(yī)個小(xiǎo)錯誤會産生(shēng)很多錯誤,并且可能會造成巨大(dà)損失。
後端開(kāi)發涉及處理很多複雜(zá)的東西。爲了使應用程序更高效,開(kāi)發人員(yuán)在處理應用程序的後端部分(fēn)時需要真正專注于邏輯和代碼優化。
當團隊對于項目來說很小(xiǎo)時,開(kāi)發人員(yuán)不會将重點放(fàng)在良好的編碼實踐上,但是當團隊和應用程序增長時,最好遵循整個團隊的最佳編碼實踐。
今天,在此博客中(zhōng),我(wǒ)(wǒ)們将從後端開(kāi)發人員(yuán)的角度分(fēn)享一(yī)些良好的編碼實踐,這對于在微服務或網格體(tǐ)系結構環境中(zhōng)工(gōng)作的開(kāi)發人員(yuán)而言非常有用。
1.完善您的核心技能
當涉及到應用程序的後端部分(fēn)時,這是最重要的技能。您應該至少具有服務器端語言(例如Java,C/C++,PHP,C#等)的工(gōng)作知(zhī)識。您使用這些語言的能力越強,開(kāi)發應用程序就越容易。
另外(wài),您應該在數據庫方面有紮實的基礎。後端開(kāi)發人員(yuán)處理數據庫中(zhōng)保存的大(dà)量數據。他們在日常工(gōng)作中(zhōng)對它運行多個查詢。因此,最好會用一(yī)些數據庫,例如MySQL,SQL Server,MongoDB和PostgreSQL。它們都有類似的概念将數據存儲在行和列中(zhōng),但是所有數據庫都有一(yī)些區别。在開(kāi)始構建應用程序之前,最好對這些數據庫有一(yī)定的了解。
後端開(kāi)發人員(yuán)的另一(yī)個重要技能是JSON和/或XML API的知(zhī)識。許多應用程序需要以JSON的形式檢索數據并連接到應用程序編程接口(API)。API中(zhōng)用于數據檢索的最流行的格式是JSON格式和XML。了解API和這些格式的知(zhī)識将使您的後端開(kāi)發過程變得更加輕松。
2.驗證輸入和處理錯誤
如果您要編寫後端代碼超過幾個月,那麽您可能會聽(tīng)到高級工(gōng)程師說過“永不信任您的用戶”一(yī)詞。作爲後端開(kāi)發人員(yuán),請确保您永遠不要信任用戶提交的數據。當應用程序在服務器上發布時,黑客可能會嘗試侵入系統。
爲了确保系統的安全性,最好驗證輸入到系統中(zhōng)的輸入。現在的問題是如何驗證輸入到系統中(zhōng)的輸入?
您可以在兩個級别上驗證輸入
API網關:這可以通過策略來完成,主要是通用驗證,架構,格式。
微服務:這涉及檢查實體(tǐ)的存在。您可以将開(kāi)發堆棧的庫用于微服務中(zhōng)的輸入驗證。
完成輸入和錯誤的驗證後,您需要負責正确處理它。您需要在微服務/網格體(tǐ)系結構中(zhōng)仔細進行操作,因爲這些組件在這些類型的系統中(zhōng)是相互連接的。如果其中(zhōng)一(yī)項服務崩潰,則整個系統可能會受到影響。在這種情況下(xià),您可能必須進行大(dà)量的故障排除。
您應該了解在服務器上發生(shēng)錯誤時生(shēng)成的HTTP錯誤代碼。要處理這些錯誤,請返回響應而不會導緻服務崩潰。正确的輸入驗證和錯誤處理不會對服務器造成任何影響。它還将減少對軟件進行故障排除的需要
3.遵循關注點分(fēn)離(lí)
您如何組織代碼?
您如何構造代碼?
您爲代碼的可維護性做什麽?
上述問題的好答案之一(yī)是在代碼中(zhōng)使用關注點分(fēn)離(lí)。作爲後端開(kāi)發人員(yuán),如果您在軟件體(tǐ)系結構中(zhōng)遵循此概念,那麽肯定會節省您在代碼可維護性方面花費(fèi)的大(dà)量時間和精力。
關注點分(fēn)離(lí)将整個計算機程序劃分(fēn)爲不同的部分(fēn)或不同的模塊,以更好地組織代碼。這提高了代碼的可讀性,并使其他開(kāi)發人員(yuán)在應用程序上進行協作變得更加容易。
您可以遵循任何設計模式來構造代碼。針對Web應用程序的一(yī)種流行的是MVC框架。在軟件體(tǐ)系結構中(zhōng)實施這種良好實踐對整個團隊确實很有幫助。它減少了代碼的學習曲線,并在應用程序開(kāi)發期間提高了團隊的整體(tǐ)速度和效率。
4.實施運行狀況檢查端點和日志(zhì)記錄
運行狀況檢查隻是意味着監視系統的服務。我(wǒ)(wǒ)們确保數據庫正常工(gōng)作,并且服務在整個系統中(zhōng)運行順暢。如果發現錯誤或問題,則有助于解決軟件中(zhōng)的問題。如果運行狀況檢查失敗,則您的軟件服務可能會終止。因此,讓我(wǒ)(wǒ)們讨論一(yī)些在系統中(zhōng)實施良好運行狀況檢查的方法。
TCP運行狀況檢查:這是一(yī)項基本的運行狀況檢查,可确保服務已啓動并正在運行。此運行狀況檢查通過TCP完成,并且不監視服務級别的運行狀況。大(dà)多數雲平台都有自己的解決方案來實施此運行狀況檢查。
服務級别的運行狀況檢查:服務級别的運行狀況檢查是運行狀況檢查的高級級别。它驗證了預期的輸出并确保服務運行順暢。
日志(zhì)記錄:這裏我(wǒ)(wǒ)們關注的是日志(zhì)操作,例如數據庫查詢,請求和對集中(zhōng)式日志(zhì)接收器的響應。爲此,您可以使用某些日志(zhì)記錄庫或日志(zhì)管理工(gōng)具。
5.爲您的服務實施版本控制
随着時間的流逝,您的應用程序需要頻(pín)繁更改。爲了有效地處理這些更改,您需要在當前版本仍在系統中(zhōng)運行時實施和測試該應用程序。讓我(wǒ)(wǒ)們讨論對服務進行版本控制的兩種方法。
網址:例如“ /users/v2.1/{id}”
标頭:包含在标頭中(zhōng)的“ X版本:2.1”。
以下(xià)是URL版本控制方法的示例。
6.自動執行重複性任務
劇本總是一(yī)樣,但人類卻不一(yī)樣
作爲後端開(kāi)發人員(yuán),您可能在日常工(gōng)作中(zhōng)遇到了一(yī)些重複性的任務。學習自動化。不要浪費(fèi)您的時間一(yī)次又(yòu)一(yī)次地做同樣的事情。使事情自動化将使您的生(shēng)活更輕松,并且您不必一(yī)遍又(yòu)一(yī)遍地鍵入相同的命令。
7.編寫測試用例和文檔
如果您編寫測試用例,則在進入實際的編碼部分(fēn)之前,無疑可以幫助您規劃和可視化最終産品。您無需在代碼庫中(zhōng)進行頻(pín)繁的更改,從而提高了工(gōng)作效率。此外(wài),測試用例将幫助您确定在代碼庫中(zhōng)所做的更改對下(xià)遊的影響,尤其是在應用程序擴展時。
測試驅動開(kāi)發(TDD):這是在開(kāi)始進行實際編碼之前編寫測試用例的好方法之一(yī)。TDD有很多好處,但也有一(yī)些缺點。這會花費(fèi)很多時間。如果服務很關鍵,請詳細說明測試用例。
您使用的語言提供了許多測試框架。您可以從鏈接檢查出的JavaScript測試框架8個有用的測試工(gōng)具,庫,以及框架的開(kāi)發作出反應。
當團隊和應用程序很小(xiǎo)時,開(kāi)發人員(yuán)不會理解代碼文檔部分(fēn)的重要性。在大(dà)多數初創公司中(zhōng),他們不維護正在使用的應用程序的文檔。他們的主要重點是快速構建和運輸産品。
編寫代碼文檔非常重要。它可以幫助整個團隊正确理解代碼并順利地構建軟件,而無需任何麻煩。因此,最好找到一(yī)種最适合您的團隊編寫代碼文檔的方法。查看Postman的鏈接API文檔,以了解編寫API文檔的各種方法。