一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

想成為現(xiàn)代后端開發(fā)工程師嗎?24步就可以搞定!

馬哥Linux運維 ? 來源:未知 ? 作者:胡薇 ? 2018-05-02 17:02 ? 次閱讀

今天的網(wǎng)站開發(fā)已經(jīng)大不同以往,有很多的東西會對進入此領(lǐng)域的人造成困惑,這就是我們寫這系列文章的原因——給大家指導(dǎo)如何在開發(fā)過程中勝任特定的角色。

大約1周以前,我們發(fā)布了一篇名為“現(xiàn)代前端開發(fā)--2018”,同時我們承諾了會發(fā)布一篇“后端以及開發(fā)運維路線圖”。兌現(xiàn)這一承諾,這篇文章就是關(guān)于現(xiàn)代后端開發(fā)者的。如果你還沒有查看過前端開發(fā)路線圖,可以去瞧瞧先。

在此之前,后端路線圖就是簡單粗暴的給出了你需要掌握的技術(shù),而沒有清晰的方向以及學(xué)習(xí)的合理順序。我們像前端一樣以循序漸進的方式重繪了后端路線圖,希望給你更好的指導(dǎo)。

言歸正傳,我們開始吧。詳細的路線圖在下面的圖片中,同時我會逐步的詳細講解。

下面的章節(jié),我們將之分解開來逐步講解。

開始之前,雖然我們沒有將HTML/CSS列舉在路線圖中,但是我們還是建議用戶具備基礎(chǔ)的HTML/CSS技能,至少能夠?qū)懸恍┗镜腍TML/CSS。

1. 學(xué)習(xí)一門語言

語言的選擇有很多種,為了方便您的選擇,我將它們進行了分類。對于剛接觸后端開發(fā)的新手,我強烈建議你們選擇一門腳本語言,因為它們的需求很多且上手較快。最好的選擇當(dāng)然是Python,它的需求正在急速增長,有大量的職位可供選擇。

2. 學(xué)以致用

最后的學(xué)習(xí)方法就是動手實踐。一旦你選擇了語言,然后對其有了基本的了解,開始使用它。運用它進行盡可能多的練習(xí),寫一些小程序練手,熟悉它。下面是一些小例子,可以幫助你開始。

* 實現(xiàn)一些bash中你常用的命令, 比如ls的功能

* 寫一個從reddit的/r/programming頻道抓取數(shù)據(jù)并將之保存為JSON格式的小程序

* 寫一個程序?qū)⒛夸浗Y(jié)構(gòu)保存為JSON文件。

* 根據(jù)上面生成的JSON文件,生成目錄結(jié)構(gòu)。

* 想想日常工作中的任務(wù),嘗試將之自動化。

3. 學(xué)習(xí)包管理器

一旦你了解了語言的基礎(chǔ),同時用它寫過些示例程序,接著學(xué)習(xí)該語言的包管理器。包管理器可以幫助你使用第三方庫,同時你也可以通過它發(fā)布自己的庫以供他人使用。

假設(shè)你選擇的是Python,你應(yīng)該已經(jīng)學(xué)習(xí)了Pip。Node.js有NPM或Yarn、PHP有Composer,Ruby有RubyGems。無論你選擇了什么,進一步去學(xué)習(xí)它的包管理。

4. 規(guī)范以及最佳實踐

每一種語言有其規(guī)范以及最佳實踐。你需要掌握這個東西。比如Python有PEP8跟Google Python代碼規(guī)范。Node.js各社區(qū)有不同的規(guī)范。其他語言的狀況也大同小異。

5. 安全

務(wù)必要掌握安全最佳實踐。讀讀OWASP指南,了解不同的安全問題,同時要知道如果避免這類問題。(你選擇的語言)

6. 實踐

現(xiàn)在你已經(jīng)掌握了語言基礎(chǔ),最佳實踐,安全相關(guān)以及包管理,你可以去開發(fā)自己的庫供他人使用了。如果你用Python,你需要發(fā)布在Pypi,如果是Node.js,你需要發(fā)布在Npm。

到此,你可以在Github上找一些項目,參與進去。

* 重構(gòu),實現(xiàn)你學(xué)到的最佳實踐

* 修復(fù)已知的問題

* 添加新的功能

7. 測試

測試分很多種,要了解每一種測試的類型以及其目的。但是現(xiàn)在,首先學(xué)習(xí)單元測試以及綜合測試,應(yīng)用在你的程序中。此外,還要了解不同的測試術(shù)語,比如mocks,stubs等等。

8. 實踐-測試

為你所寫的所有程序編寫單元測試,特別是在Github上參與的項目。

同時,學(xué)習(xí)覆蓋率的概念,計算測試代碼的覆蓋率。

9. 關(guān)系型數(shù)據(jù)庫

學(xué)習(xí)利用關(guān)系型數(shù)據(jù)庫保存你的數(shù)據(jù)。在學(xué)習(xí)之前,首先掌握數(shù)據(jù)庫相關(guān)的術(shù)語。比如: keys,indexes,normalization,tuples等。

可供選擇的數(shù)據(jù)庫很多,你只需要掌握一個,其他的也會變得很簡單。流行的有MySQL,MariaDB(MySQL分支,與之非常相似),PostgreSQL。推薦選擇MySQL開始。

10. 動手時間 - 實踐

到了將所學(xué)融合的時候了。

創(chuàng)建一個簡單的應(yīng)用,運用你所學(xué)的一切。實現(xiàn)一個想法,可能是創(chuàng)建一個簡單的博客站點,實現(xiàn)一下的特性:

* 賬戶系統(tǒng)——注冊&登陸

* 注冊用戶可以創(chuàng)建blog

* 用戶可以查看自己創(chuàng)建的所有的blog

* 用戶可以刪除自己發(fā)布的blog

* 保證用戶只能看到自己發(fā)布的blog,不能看其他人的

* 為應(yīng)用編寫單元/綜合測試

* 為查詢創(chuàng)建索引。分析查詢,確保索引生效

11. 學(xué)習(xí)一個框架

根據(jù)你的項目類型以及你的語言的不同,你可能會需要一個框架輔助開發(fā)。(也可能不需要)。每種語言都有不同的選擇,選擇一個合適的即可。

如果你選擇了Python,建議你選擇Django,對于微框架,建議Flask。

對于Node.js,最知名的框架是Express.js。

12. 實踐-框架

利用選擇的框架重構(gòu)你的博客應(yīng)用。不要忘記了集成測試代碼進來。

13. 學(xué)習(xí)NoSQL(not only SQL)數(shù)據(jù)庫

首先了解什么是NoSQL,以及它們與關(guān)系型數(shù)據(jù)庫的差別,同時為什么需要它們。NoSQL數(shù)據(jù)庫也有多種選擇,了解并比較它們之間的特性以及不同之處。常用的有MongoDB,Cassandra,RethinkDB,Couchbase。建議選擇MongoDB開始。

14. 緩存

學(xué)習(xí)如何在你的程序中實現(xiàn)應(yīng)用級的緩存。了解如何利用Redis或Memcached實現(xiàn)緩存,同時在你的博客應(yīng)用中實現(xiàn)緩存功能。

15. 創(chuàng)建RESTful APIs

了解REST,學(xué)習(xí)如何編寫RESTful APIs,閱讀關(guān)于REST的白皮書。(By Roy Fielding)。理解REST不僅僅是HTTP APIs。

16. 學(xué)習(xí)不同的認證方法

學(xué)習(xí)不同的認證以及認證方式。你需要明白它們是什么,它們的不同點,以及它們適用的場景。

* OAuth--Open Authentication

* Basic Authentication

* Token Authentication

* JWT--JSON Web Tokens

* OpenID

17. 消息代理

學(xué)習(xí)消息代碼,了解什么時候以及為什么使用它們。有很多可供選擇,最知名的是RabbitMQ & Kafka。建議從RabbitMQ開始學(xué)習(xí)。

18. 搜索引擎

隨著應(yīng)用程序規(guī)模的增長,簡單的查詢已經(jīng)無法滿足要求。這個時候,你需要用到搜索引擎。同樣有多種選擇,每一種有自己的特點。

19. 學(xué)習(xí)使用Docker(容器)

Docker可以為你的開發(fā)提供巨大的便利。它可以讓你的開發(fā)環(huán)境與生產(chǎn)環(huán)境保持一致,可以讓你的系統(tǒng)保持干凈,可以加速你的編碼,可以測試部署。Docker的好處,請自行g(shù)oogle。從現(xiàn)在開始,學(xué)習(xí)Docker。

20. Web服務(wù)器的知識

到了這個時候,你可能已經(jīng)處理過服務(wù)器相關(guān)的問題。這一步驟主要是了解不同的服務(wù)器之間的差異,局限,以及不同的調(diào)優(yōu)方法。

21. 學(xué)習(xí)Web Sockets

雖然不是必須,但是具備Web Sockets的技能是有好處的。學(xué)習(xí)編寫實時的web應(yīng)用??梢栽诓┛蛻?yīng)用中,實現(xiàn)即時更新blog列表。

22. 學(xué)習(xí)GraphQL

學(xué)習(xí)GraphQl的APIs。了解它與REST的不同,然后為什么它被稱之為REST 2.0。

23. 研究Graph數(shù)據(jù)庫

Graph模型具備非常好的靈活性——在處理數(shù)據(jù)間的關(guān)系的時候。Graph數(shù)據(jù)庫提供高速&高效的存取以及查詢。學(xué)習(xí)了解Neo4j或者OrientDB。

24. 不停探索

在你的學(xué)習(xí)以及實踐過程中,肯定會碰到路線圖里沒有提及的東西。你只需要保持開放以及饑渴去學(xué)習(xí)新的東西。

時刻謹記,學(xué)習(xí)的關(guān)鍵是實踐。多動手!剛開始的時候,你可能會感覺不大好,隨著你的堅持以及時間的推移,你會變得越來越好。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • HTML
    +關(guān)注

    關(guān)注

    0

    文章

    278

    瀏覽量

    39757
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4822

    瀏覽量

    85876

原文標題:24步成為后端開發(fā)工程師(2018版)

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    問,成為硬件工程師需要幾只手?#硬件工程師 #YXC晶振 #揚興科技 #搞笑

    硬件工程師
    揚興科技
    發(fā)布于 :2025年04月25日 17:15:37

    如何成為一名合格的KaihongOS南向驅(qū)動開發(fā)工程師

    如何成為一名合格的南向驅(qū)動開發(fā)工程師 1. 我需要具備哪些方面的知識? KaihongOS南向適配的方向分為:驅(qū)動開發(fā)、內(nèi)核開發(fā)。根據(jù)適
    發(fā)表于 04-23 08:02

    如何成為一名合格的KaihongOS北向應(yīng)用開發(fā)工程師

    :參加相關(guān)的培訓(xùn)、研討會或會議,不斷提升自己的技能。 10. 獲得認證 專業(yè)認證:如果可能,獲取相關(guān)的專業(yè)認證,這可以增加你的可信度和市場競爭力。 成為一名合格的北向應(yīng)用開發(fā)工程師
    發(fā)表于 04-23 06:46

    如何成為一名嵌入式軟件工程師

    如何成為一名嵌入式軟件工程師? 01明確崗位的角色與定位 嵌入式軟件工程師主要負責(zé)開發(fā)運行在特定硬件平臺上的軟件,這些軟件通常與硬件緊密集成,以實現(xiàn)特定的功能。 不僅需要精通編程語言
    發(fā)表于 04-15 14:37

    硬件工程師:回答我!#回答我 #硬件工程師 #YXC晶振 #揚興科技

    硬件工程師
    揚興科技
    發(fā)布于 :2025年03月25日 18:46:59

    一招拿捏電子工程師#被AI拿捏了 #電子工程師 #電子電工

    電子工程師
    安泰小課堂
    發(fā)布于 :2025年03月25日 17:30:51

    如何成為嵌入式開發(fā)工程師?

    如何成為嵌入式開發(fā)工程師? 成為嵌入式開發(fā)工程師通常需要掌握一系列技能和知識,并且在實踐中不斷積
    發(fā)表于 02-19 10:39

    如何成為一名合格的南向驅(qū)動開發(fā)工程師

    基于組件化的驅(qū)動模型,KaihongOS為開發(fā)者提供更精細化的驅(qū)動管理,在支持的組件化拆分驅(qū)動模塊的基礎(chǔ)上,實現(xiàn)了編譯效率優(yōu)化、南向適配解耦。使南向適配工程師可以將精力放在驅(qū)動與硬件的交互的同時
    發(fā)表于 01-10 10:06

    如何成為一名合格的北向應(yīng)用開發(fā)工程師

    自己的技能。 10. 獲得認證 專業(yè)認證 :如果可能,獲取相關(guān)的專業(yè)認證,這可以增加你的可信度和市場競爭力。 成為一名合格的北向應(yīng)用開發(fā)工程師需要時間和努力,通過不斷學(xué)習(xí)和實踐,你將能
    發(fā)表于 01-10 10:00

    為什么嵌入式驅(qū)動開發(fā)工程師可以拿高薪?

    為什么嵌入式驅(qū)動開發(fā)工程師可以拿高薪? 嵌入式驅(qū)動開發(fā),屬于需求量大、薪資斷崖式升高的熱門崗位,在市場的發(fā)展驅(qū)動下成為“風(fēng)口”。從市場的整
    發(fā)表于 01-07 16:56

    嵌入式工程師常用的開發(fā)工具有哪些?

    工具。 一、集成開發(fā)環(huán)境(IDE) IDE是嵌入式開發(fā)的核心工具之一。例如 Keil MDK,它支持多種微控制器架構(gòu),提供了強大的代碼編輯、編譯、調(diào)試功能。工程師可以在一個集成的
    發(fā)表于 12-20 15:29

    求LORA技術(shù)開發(fā)工程師合作

    求LORA技術(shù)開發(fā)工程師合作
    發(fā)表于 09-02 10:21

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件工程師是軟件開發(fā)領(lǐng)域中的一種專業(yè)工程師
    發(fā)表于 05-16 11:00