大家好,未来的高级软件工程师!在过去的几个月里,我一直在撰写描述开发重要部分的简单文章。今天我就来说说我的想法吧!我想帮助你找到第一份工作。为此需要什么?为此,您需要获得经验。了解这些项目的组成、工程师的工作内容并推动信息技术世界向前发展。
怎么做?我需要写点东西。因此,作为本系列材料的一部分,我们将逐步编写我们自己的电报机器人(详细信息如下)。同时,我们将了解即使是新手 Java 开发人员也需要的技术堆栈。
目标
编写一个项目,该项目将结合使用数据库、创建我们需要的业务逻辑以及设置部署项目和测试它的工作。我们要写什么?如果你要写作,那么你需要写一些真正有用的东西,这样人们会对工作感兴趣,并且有人可以利用结果。根据这些数据,将编写一个可与 JavaRush 网站配合使用的电报机器人。这有用吗?毫无疑问!由于电报机器人编写起来并不困难,因此您可以快速获得有用的工作项目。开发时间
文章每周发布一次,因此如果有任何不清楚的地方,将有足够的时间来掌握/重复/写问题。第一篇文章将是我们将在项目中使用的理论基础。然后就只是练习了。MVP(最小可行产品)
什么是MVP?像往常一样,这个术语不是我们的,但您可以在wiki上找到合理的解释。我们引用: MVP是一个功能最少,但足以满足第一需求的产品。主要任务是接收反馈,为产品的进一步开发形成假设。 对于我们来说,这个描述非常适合。所有功能的快速描述: 作为 Telegram 用户,我希望能够以组的形式订阅新文章,并在新文章发布时收到通知。 我喜欢阅读成功故事组,它激励我继续学习并学习新的东西。我比较懒,不想每次都进去刷新页面。因此,作为一名程序员,我想让我的生活更轻松,并编写一个程序,可以在 Telegram 上向我发送一条消息,告知我有一篇新文章已发布。此外:这不是我跟踪的唯一群体。我来自哈尔科夫,所以我有兴趣阅读那里发表的文章。作为该产品的开发人员,我会对是否有人使用我的作品非常感兴趣,因此我们将为管理员添加功能,以便他们可以查看电报机器人的统计信息。是否有可能做到这一点?当然!如何?这就是我将在一系列文章中展示的内容。代码名称
每个很酷的项目都应该有一个代号。我们的也不例外,所以现在它会是这样的: JRTB(JavaRush Telegram Bot)。 以下将这样称呼。我们将讨论哪些主题?
数据库
您需要立即了解您无法在应用程序中存储状态(数据和信息)。数据需要存储在数据库中。由于培训中没有关于它的信息(据我记得:D),我将尽力填补我们需要的知识空白。我将尝试使数据库模式尽可能简单,以免造成混乱。这部分将包括:- 基于 MySQL 的 SQL 工作原理。
- MySQL Workbench 是一个使用 MySQL 的工具。
- 数据库版本控制。飞行路线和液体基地。
- 创建数据库模式。
- 创建数据库架构图。
git
已经有关于这个主题的文章。当然,如果没有版本控制系统,一切都将无法进行。要开始使用 JRTB,您需要了解 git。你可以自己做,或者你可以阅读我关于这个主题的文章: 如果您愿意,您还可以阅读有关分支策略的内容,但这里并不重要,可以跳过。梅文
这里我们将讨论装配系统,它的用途,我们如何使用它,需要注意什么,以及良好礼仪的规则。我们还将在这里讨论版本控制,以及我们具体如何做。码头工人
为了让我们的生活更简单、更轻松,让部署过程尽可能简单,我们将使用 Docker。为此,我们先来谈谈 Docker 是什么以及有哪些有用的命令。我想说的是,我在用户级别使用 Docker,可能不知道或无法做某事))因此,如果有人建议如何使 Docker 工作更好/更轻松,我只会很高兴。这部分将包括:- Docker 的理论与实践。
- 通过docker备份/恢复数据。
- 设置我们的项目,使其在 Docker 中运行。
bash 脚本
为了自动化工作,有时编写一两个脚本很有用。Bash 脚本是所有开发人员都在某种程度上理解的脚本,因为它们本质上是 Linux 中的命令行工作,只是保存在单独的文件中。创建应用程序
所有的驱动器都将在这里。根据之前的知识,我们将构建一个包含 telegram bot 对象的 Spring Boot 应用程序。我们要在这里做什么?- 创建应该存在的功能的完整描述。
- 简单描述什么是电报机器人。
- 创建 Spring Boot 应用程序。
- 使用 Lombok 的描述。
- 使用 UniRest 的说明。
- 命令模式的实现+为管理员命令创建您自己的注释。
- 使用 UniRest 创建用于处理 JavaRush 查询(例如组列表、组中的文章列表)的客户端。
- 测试。让我们编写所有可能的测试来覆盖我们的功能。
- 在 GitHub 上建立一个检查代码质量和自动构建的系统。
- 连接数据库以及数据库版本控制。
GO TO FULL VERSION