送给2018年的后端开发人员

HowardHuang · · 2438 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
1_S7VjOUzpgIORXUIOa17UKg.jpeg

凡事得有个顺序与标杆,作为开发人员更不例外
可能你正处在其中的某一个阶段
宏观的审视自身的技能树,更是查漏补缺的一个好方法
送给努力奋斗的大家

1_WQviQNNE2cnhVAiQpIXkQg.png

让我们分解并解释下面部分中的每一步。

在我们开始之前,虽然我们没有在上面的路线图中列出HTML / CSS的知识,但建议您至少获得一些理解并知道如何编写一些基本的HTML / CSS。

第1步 - 学习语言

选择一种语言有很多选择。我已经将它们分成几类,以便您更容易决定。对于刚刚进入后端开发的初学者,我建议您选择任何脚本语言,因为它们有很多需求,它可以让您快速上手。如果您有一些前端知识,您可能会发现Node.js更容易,而且有一个很大的就业市场。

如果您已经在进行后端开发并且知道一些脚本语言,我建议您不要选择其他脚本语言并从“功能”或“多范例”部分中选择一些内容。例如,如果您已经在使用PHP或Node.js,请不要使用Python或Ruby,而是尝试使用Erlang或Golang。它肯定有助于扩展您的思维,并开辟新的视野。

第2步 - 练习你所学到的知识

没有比练习更好的学习方法。一旦您选择了语言并对概念有了基本的了解,就可以使用它们。尽可能多地制作小型应用程序。这里有一些想法可以帮助您入门

实现一些您在bash中使用的命令,例如尝试实现其功能 ls
编写一个命令,为您提供JSON格式的目录结构,例如jsonify dir-name,为您提供一个内部结构的JSON文件dir-name
编写一个从上一步读取JSON的命令,并创建目录结构
想想你每天做的一些任务,并尝试自动化

第3步 - 学习包管理器

一旦理解了语言的基础知识并制作了一些示例应用程序,就可以学习如何将包管理器用于您选择的语言。程序包管理器可帮助您在应用程序中使用外部库,并分发库以供其他人使用。

如果您选择PHP,您将需要学习Composer,Node.js有NPM或Yarn,Python有Pip,Ruby有RubyGems。无论您的选择是什么,请继续学习如何使用其包管理器。

第4步 - 标准和最佳实践

每种语言都有自己的标准和最佳做法。根据您选择的语言研究它们。例如,PHP具有PHP-FIG和PSR。使用Node.js,有许多不同的社区驱动指南,其他语言也是如此。

第5步 - 安全

请务必阅读有关安全性的最佳做法。阅读OWASP指南并了解不同的安全问题以及如何使用您选择的语言来避免它们。

第6步 - 练习

现在您已了解语言,标准和最佳实践的基础知识,安全性以及如何使用包管理器。现在继续创建一个包并将其分发给其他人使用,并确保遵循您迄今为止学到的标准和最佳实践。例如,如果您选择了PHP,您将在Packagist上发布它,如果您选择了Node.js,您将在Npm注册表中释放它,依此类推。

完成后,在Github上搜索一些项目并在某些项目中打开一些pull请求。一些想法:

1. 重构并实施您学到的最佳实践
2. 查看未解决的问题并尝试解决
3. 添加任何其他功能

第7步 - 了解测试

有几种不同的测试类型可供测试。了解这些类型的用途。但是现在了解如何在应用程序中编写单元测试和集成测试。此外,了解不同的测试术语,如模拟,存根等

第8步 - 实用

对于练习,请继续为您迄今为止所做的实际任务编写单元测试,尤其是您在步骤6中所做的工作。

还要学习并计算您编写的测试的覆盖范围。

第9步 - 了解关系数据库

了解如何在关系数据库中保存数据。在您选择要学习的工具之前,请先了解不同的数据库术语,例如键,索引,规范化,元组等。

这里有几种选择。但是,如果你学习一个,其他人应该相当容易。你想要学习的是MySQL,MariaDB(大部分是相同的,是MySQL的分支)和PostgreSQL。选择MySQL开始。

第10步 - 实用时间

是时候把你学到的所有东西都用到了。

使用您迄今为止学到的所有内容创建一个简单的应用程序。只需选择任何想法​​,可能会创建一个简单的博客应用程序并在其中实现以下功能

1. 用户帐户 - 注册和登录
2. 注册用户可以创建博客帖子
3. 用户应该能够查看他创建的所有博客帖子
4. 他们应该能够删除他们的博客文章
5. 确保用户只能看到他的个人博客帖子,而不能看到其他人的博文
6. 编写应用程序的单元/集成测试

您应该为查询应用索引。分析查询以确保使用索引

第11步 - 学习框架

根据项目和您选择的语言,您可能需要也可能不需要框架。每种语言都有几种不同的选择,请继续查看您所选语言的可用选项,并选择相关语言。

如果您选择了PHP,我会建议您使用Laravel或Symfony,对于微框架,请使用Lumen或Slim。如果你选择了Node.js,有几个不同的选项,但突出的是Express.js

第12步 - 实用时间

对于此步骤的实际操作,请转换您在步骤10中创建的应用程序,以使用您选择的框架。还要确保移植包括测试在内的所有内容。

第13步 - 学习NoSQL数据库

首先要了解它们是什么,它们与关系数据库的区别以及为什么需要它们。有几种不同的选择,研究有点看,并比较它们的功能和差异。您可以选择的一些常见选项是MongoDB,Cassandra,RethinkDB和Couchbase。如果你必须选择一个,请使用MongoDB。

第14步 - 缓存

了解如何在应用程序中实现应用程序级缓存。了解如何使用Redis或Memcached并在步骤12中构建的应用程序中实现缓存。

第15步 - 创建RESTful API

了解REST并学习如何制作RESTful API,并确保从Roy Fielding的原始论文中阅读有关REST的部分。如果他们说REST仅适用于HTTP API,请确保您能够与某人抗争。

第16步 - 了解不同的Auth方法

了解不同的身份验证和授权方法。你应该知道它们是什么,它们是如何不同的,何时更喜欢一个而不是另一个

1. OAuth - 开放式身份验证
2. 基本认证
3. 令牌认证
4. JWT - JSON Web令牌
5. OpenID的

第17步 - 消息代理

了解消息代理并了解何时以及为何使用它们。有多种选择,但突出的是RabbitMQ和Kafka。如果您想选择一个,请了解如何使用RabbitMQ。

第18步 - 搜索引擎

随着应用程序的增长,对关系数据库或NoSQL数据库的简单查询不会削减它,你将不得不求助于搜索引擎。有多种选择,每种选择都有自己的差异。

第19步 - 学习如何使用Docker

无论是复制与生产相同的环境,还是保持操作系统清洁或加快编码,测试或部署,Docker都可以为您的开发提供极大的便利。我将留下答案“你将如何帮助我”进行搜索。在此步骤中,继续学习如何使用Docker。

第20步 - 了解Web服务器

如果你已经走到这一步,你可能不得不在之前的步骤中解决服务器问题。此步骤主要是找出不同Web服务器之间的差异,了解限制和不同的可用配置选项以及如何最好地利用这些限制来编写应用程序。

第21步 - 了解如何使用Web套接字

虽然不是必需的,但在您的工具带中获得这些知识是有益的。了解如何使用Web套接字编写实时Web应用程序,并使用它进行一些示例应用程序。您可以在上面的博客应用程序中使用它来实现博客文章列表的实时更新。

第22步 - 学习GraphQL

了解如何使用GraphQL创建API。了解它与REST的不同之处以及它为何被称为REST 2.0。

第23步 - 查看图形数据库

图模型表示处理数据关系的一种非常灵活的方式,图形数据库提供快速有效的存储,检索和查询。了解如何使用Neo4j或OrientDB。

第24步 - 继续探索

一旦你开始学习和练习,你肯定会遇到我们未在本路线图中介绍的内容。只要保持开放的心态和健康的胃口,学习新事物。

记住,关键是尽可能多地练习。它在开始时会显得更加可怕,你可能觉得自己没有抓住任何东西,但这是正常的,随着时间的推移,你会觉得自己变得更好。

免费接口服务-------->http://100boot.cn/
免费小程序教程-------->http://100boot.cn/

欢迎关注IT实战联盟

326255-f67b0f0dd5fe5874.jpg

参考链接

原文地址---Modern Backend Developer in 2018


有疑问加站长微信联系

本文来自:简书

感谢作者:HowardHuang

查看原文:送给2018年的后端开发人员

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:812540095

2438 次点击  
加入收藏 微博
被以下专栏收入,发现更多相似内容
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传