本文翻譯自國外論壇 medium,原文地址:https://medium.com/@pradeesh-kumar/how-to-become-a-good-backend-engineer-9da75202a104
讓我們一起看看國外開發(fā)者認(rèn)為優(yōu)秀后端工程師需要掌握哪些技能。
誰是后端工程師?
本質(zhì)上,軟件開發(fā)有兩個(gè)要素:前端和后端。當(dāng)訪問者登陸網(wǎng)站時(shí),他們會(huì)看到 UI 與之交互,即前端。前端與用戶交互,收集輸入,然后將其傳遞給后端進(jìn)行進(jìn)一步處理。后端處理從前端收到的請求,并將結(jié)果返回給前端,顯示在UI中。
前端工程師需要 HTML、CSS、Js、設(shè)計(jì)、圖形等 UI/UX 開發(fā)知識(shí),而后端開發(fā)人員需要 Java、Python 和 Javascript 等編程語言以及框架、工具和數(shù)據(jù)庫的知識(shí)。
如何成為一名優(yōu)秀的后端工程師?
后端開發(fā)人員的角色是專注于構(gòu)建架構(gòu)等組件,以及編寫與網(wǎng)站、數(shù)據(jù)庫、消息代理、安全等其他系統(tǒng)交互的代碼。
1. 編程語言
選擇一種編程語言并掌握它。學(xué)習(xí)編程語言的所有基本庫和框架。 Java、Python 和 JS 等編程語言現(xiàn)在很流行。深入了解最基本的編程功能,如基本結(jié)構(gòu)、oops、基本數(shù)據(jù)容器(如列表、隊(duì)列、堆棧、映射/字典和線程編程等)。
博主作為一名 Java 開發(fā)工程師,當(dāng)然是推薦大家從 Java 入門啦。學(xué)習(xí)完了 Java 語言后,在學(xué)習(xí) Python、Php、JavaScript等都是非常 easy 的??。
2. 數(shù)據(jù)結(jié)構(gòu)與算法
大多數(shù)人在最初階段忽略了這一點(diǎn),后來遭受了損失。永遠(yuǎn)不要犯這個(gè)錯(cuò)誤!了解數(shù)據(jù)結(jié)構(gòu)和算法可以使您的基礎(chǔ)更牢固,并幫助您了解其他大型系統(tǒng)的內(nèi)部工作方式。學(xué)習(xí)基本的數(shù)據(jù)結(jié)構(gòu)和算法,例如堆棧、隊(duì)列、鏈表、樹、圖、散列、排序和搜索算法。
數(shù)據(jù)結(jié)構(gòu)和算法非常重要!數(shù)據(jù)結(jié)構(gòu)和算法非常重要!數(shù)據(jù)結(jié)構(gòu)和算法非常重要!(重要的事情說三篇?。?/p>
3.數(shù)據(jù)庫
后端系統(tǒng)最基本的功能是保存和檢索用戶數(shù)據(jù)。有幾種類型的數(shù)據(jù)庫可用于根據(jù)需求和領(lǐng)域來持久化數(shù)據(jù)。學(xué)習(xí)關(guān)系數(shù)據(jù)庫,如 Postgresql、Mysql 或 Oracle。此外,學(xué)習(xí)數(shù)據(jù)庫概念,如規(guī)范化、索引、連接、查詢優(yōu)化、ACID、事務(wù)、對象關(guān)系映射、縮放等。
如今,由于 NoSQL 的簡單性和擴(kuò)展能力,大多數(shù)項(xiàng)目都使用 NoSQL 而不是 RDBMS。學(xué)習(xí)一種或多種NoSql數(shù)據(jù)庫,如MongoDB、Couchbase DB等。
NoSql 數(shù)據(jù)庫中流行的還有 Redis,博主這里補(bǔ)一句。
4.框架和庫
根據(jù)您選擇的語言學(xué)習(xí)流行的框架。 Java 最流行的框架是 Spring 框架。有一些流行的庫可用于執(zhí)行最常見的操作和實(shí)用程序。例如,base64 編碼、驗(yàn)證、字符串實(shí)用程序等。不要重新發(fā)明輪子。庫可幫助您避免使用大量樣板代碼,并讓您只專注于使用較少代碼的業(yè)務(wù)邏輯。
5.容器化
容器化就是將您的軟件代碼與運(yùn)行代碼所需的操作系統(tǒng)庫和依賴項(xiàng)打包在一起,以創(chuàng)建一個(gè)稱為容器的單一輕量級(jí)可執(zhí)行文件,該容器可在任何基礎(chǔ)架構(gòu)上一致運(yùn)行。學(xué)習(xí) Docker 和 Kubernetes。它們是用于容器化應(yīng)用程序的最流行的工具。
容器化已經(jīng)成為了應(yīng)用程序發(fā)布部署的新技術(shù)。多學(xué)習(xí)容器相關(guān)的知識(shí)才能適應(yīng)當(dāng)前技術(shù)發(fā)展趨勢。
6. 開發(fā)運(yùn)營
DevOps 是當(dāng)今必備的一項(xiàng)技能。 DevOps 就是創(chuàng)建基礎(chǔ)設(shè)施,例如計(jì)算機(jī)、基礎(chǔ)設(shè)施、網(wǎng)絡(luò)、服務(wù)器和數(shù)據(jù)庫,將它們連接在一起并在基礎(chǔ)設(shè)施中運(yùn)行您的應(yīng)用程序。
以下是百度對于 DevOps 的說明:
DevOps(Development和Operations的組合詞)是一組過程、方法與系統(tǒng)的統(tǒng)稱,用于促進(jìn)開發(fā)(應(yīng)用程序/軟件工程)、技術(shù)運(yùn)營和質(zhì)量保障(QA)部門之間的溝通、協(xié)作與整合。
它是一種重視“軟件開發(fā)人員(Dev)”和“IT運(yùn)維技術(shù)人員(Ops)”之間溝通合作的文化、運(yùn)動(dòng)或慣例。透過自動(dòng)化“軟件交付”和“架構(gòu)變更”的流程,來使得構(gòu)建、測試、發(fā)布軟件能夠更加地快捷、頻繁和可靠。
它的出現(xiàn)是由于軟件行業(yè)日益清晰地認(rèn)識(shí)到:為了按時(shí)交付軟件產(chǎn)品和服務(wù),開發(fā)和運(yùn)維工作必須緊密合作。
簡答來說 DevOps 幫助軟件開發(fā)部署更加自動(dòng)化,提升交付效率。
7.網(wǎng)絡(luò)
對網(wǎng)絡(luò)的了解使您可以創(chuàng)建有效且安全的通信渠道來在系統(tǒng)之間傳輸數(shù)據(jù)。學(xué)習(xí) Web 服務(wù)器、TCP 與 UDP、HTTP 協(xié)議、WebSockets、gRPC、TLS、NAT、代理和反向代理以及負(fù)載平衡器。
網(wǎng)絡(luò)編程相比系統(tǒng)編程而言,博主覺得是更有意思的。在分布式系統(tǒng)中,如果了解網(wǎng)絡(luò)編程相關(guān)知識(shí),那么對于分布式系統(tǒng)之間如何進(jìn)行協(xié)調(diào)通信、實(shí)現(xiàn)原理也就更加容易理解。
8.異步處理
有時(shí)用戶不需要立即對輸入數(shù)據(jù)執(zhí)行操作。我們可以將輸入排隊(duì)等待稍后處理,并在準(zhǔn)備就緒后將結(jié)果通知給用戶。這種處理稱為異步處理。了解基本的發(fā)布者-訂閱者模型、隊(duì)列和主題、apache active-MQ、Kafka 等。
隊(duì)列除了異步處理的作用,還有流量削峰峰、代碼解耦的作用。
9. 安全和加密
隨著網(wǎng)絡(luò)攻擊和惡意軟件風(fēng)險(xiǎn)的增加,安全編碼實(shí)踐是開發(fā)人員必須了解的關(guān)鍵。學(xué)習(xí)和了解最常見的安全風(fēng)險(xiǎn),例如 SQL 注入、中間人攻擊、身份驗(yàn)證失敗等。此外,了解如何通過清理輸入數(shù)據(jù)、傳輸時(shí)加密數(shù)據(jù)和強(qiáng)身份驗(yàn)證來保護(hù)您的應(yīng)用程序來緩解這些風(fēng)險(xiǎn)和授權(quán)。
10. GitHub 上的個(gè)人項(xiàng)目
使用您學(xué)到的技能創(chuàng)建個(gè)人項(xiàng)目將幫助您更深入地了解它。學(xué)習(xí)框架/技術(shù)堆棧不同于通過組合所有技術(shù)堆棧來構(gòu)建實(shí)際應(yīng)用程序。您可能會(huì)遇到錯(cuò)誤,并有機(jī)會(huì)了解并修復(fù)此類錯(cuò)誤。它還將使您隨時(shí)了解最新技術(shù)。繼續(xù)開發(fā)個(gè)人項(xiàng)目并在您的 LinkedIn 個(gè)人資料和簡歷中提及它們,這有助于招聘經(jīng)理了解您的編碼標(biāo)準(zhǔn)和技術(shù)技能。
說到 GitHub 博主就有話要說了,作為開源時(shí)代的參與者,個(gè)人項(xiàng)目能提升自我價(jià)值,深度參與開源世界,也有助于他人了解自己。這里推薦一波博主的開源項(xiàng)目??,感興趣的朋友關(guān)注博主,點(diǎn)個(gè) Star:
-
waynboot-mall:一套全部開源的微商城項(xiàng)目,包含商城前臺(tái)、運(yùn)營后臺(tái)以及后端接口。
源碼地址:https://github.com/wayn111/waynboot-mall
-
newbee-mall-pro:該項(xiàng)目是newbee-mall商城的pro版本實(shí)現(xiàn)了推薦系統(tǒng)、生產(chǎn)可用的秒殺、優(yōu)惠卷專區(qū),滑塊驗(yàn)證碼,支付寶支付,中文分詞檢索等高級(jí)功能。
源碼地址:https://github.com/wayn111/newbee-mall-pro
-
crowd-admin:一個(gè)基于 Spring Boot、Shiro、Redis/ehcache、Mybatis 的通用后臺(tái)權(quán)限管理系統(tǒng)。
源碼地址:https://github.com/wayn111/crowd-admin文章來源:http://www.zghlxwxcb.cn/news/detail-437669.html
最后感謝大家閱讀,希望這篇文章能為你提供價(jià)值。公眾號(hào)【waynblog】每周分享技術(shù)干貨、開源項(xiàng)目、實(shí)戰(zhàn)經(jīng)驗(yàn)、高效開發(fā)工具等,您的關(guān)注將是我的更新動(dòng)力??。文章來源地址http://www.zghlxwxcb.cn/news/detail-437669.html
到了這里,關(guān)于怎樣成為優(yōu)秀的后端工程師的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!