LLLeon / Blog

LLLeon 的部落格
15 stars 4 forks source link

后端 Web 开发升级打怪手册 #14

Open LLLeon opened 6 years ago

LLLeon commented 6 years ago

这篇文章 由浅入深系统的介绍了后端开发者进行 Web 开发的学习路线。原文对每条内容都有解释,建议看原文。这里是为了看着方便,便于对自己学习内容进行查漏补缺,对关键内容简单进行了翻译整理。

backend_roadmap

  1. 语言:学习一门编程语言,如 Python、Ruby、Golang、Rust 等等等等。
  2. 练习:用这门语言练习做一些小工具,比如实现一些命令、读取目录并以 JSON 展示啦等等。
  3. 包管理:学习对应语言的包管理工具,如 Node.js 的 NPM 或 Yarn。
  4. 最佳实践:遵循该语言的标准进行最佳实践。
  5. 安全:学习安全方面的知识,阅读 OWASP 教程。理解不同的安全问题,以及怎样避免它们。
  6. 练习:运用以上技能进行练习,可以在 GitHub 上找一些开源库,试着用你学到的最佳实践来重构、解决别人提出的问题,或者增加一些新功能,进行 PR。
  7. 测试:学习进行单元测试、集成测试、mock 测试、stubs 等。
  8. 练习:对以上做过的项目写单元测试进行练习。并学习计算测试的覆盖率。
  9. SQL 数据库:学习如何把数据持久化到关系型数据库,如 MySQL。
  10. 练习:可以写一个博客,用以上所学添加各种功能。
  11. 框架:学习一个 Web 框架。
  12. 练习:用框架把前面所学、所写来实现一遍。
  13. NoSQL 数据库:首先理解什么是非关系型数据库,它们与关系型数据库的区别,以及为什么需要它们。再去学习如 MongoDB 等数据库。
  14. 缓存:学习怎样实现应用层缓存。理解怎样使用 Redis 或 Memcached 并在之前做的应用中实现缓存。
  15. RESTful API:理解 REST 并学习如何创建 RESTful API,并阅读 Roy Fielding 的原始论文。当别人说 REST 就是写 HTTP API 时你可以反驳他。
  16. Auth:学习不同的身份验证和授权方式。理解它们是什么,它们有什么区别,以及何时使用哪个更好。大概有这几种:Oauth、Basic Authentication、Token、JWT 以及 OpenID。
  17. Message Brokers:学习消息代理中间件并理解何时以及为什么要用它们。可以学习 RabbitMQ 或 Kafka,首选 RabbitMQ。
  18. 搜索引擎:当你的应用数据量上来后,简单地查询数据库就不能满足性能需求,这时就需要用到搜索引擎了。
  19. Docker:学习 Docker 是什么、为什么要使用它以及如何使用它。
  20. Web 服务器:找出不同 Web 服务器之间的差异,了解限制和不同的可用配置选项以及如何最好地利用这些限制来编写应用程序。
  21. Web-Socket:虽然不是必需的,但在你的工具带中获得这些知识是有益的。了解如何使用 Web 套接字编写实时 Web 应用程序,并使用它进行一些示例应用程序。可以在上面的博客应用中使用它来实现博客文章列表的实时更新。
  22. GraphQL:学习它与 REST 有何不同,以及它为什么被称为 REST 2.0。
  23. 图形数据库:图形 models 是表示处理数据关系的一种非常灵活的方式,图形数据库提供快速有效的存储、检索和查询。可以学习如:Neo4j 或 OrientDB。
  24. 继续探索:保持开放的心态,持续学习新事物。最关键的是尽可能多地练习。刚开始时会显得很可怕,你可能觉得自己没有学到任何东西,但这是正常的,随着时间的推移,你会觉得自己变得更好。