创建软件生态圈:MyBooks教程:概述

您好,欢迎访问MyBooks软件生态圈教程!

本教程将引导您使用“家庭图书馆目录”作为示例来创建软件生态圈。 我已经使用(或误用了)术语“软件生态圈”作为我们将用来创建应用程序的所有软件的包含概念。 我还没有找到一个更好的术语,虽然生态圈对不同的人意味着不同的事情,但是比尝试提出自己的术语要容易得多。 为什么要建家庭图书馆? 它很简单,当我进入书店I时,我需要一种方法来跟踪我图书馆中已有的东西。 是的,已经有可以执行此操作的应用程序,但是我也想同时创建一个软件生态系统教程。 这是一个非常简单的问题,该领域应该是可以普遍理解的。 我将其命名为“我的家庭图书馆目录MyBooks”,因为目前似乎没有使用🙂。

至于功能,这是我们将要完成的工作:

  • 将信息存储在云中。 (是的,我可以在专用服务器上执行此操作,但这不是那么有趣,不是吗?)
  • 具有Web应用程序界面(是的,iOS应用程序就足够了,但是请参阅第一个项目符号)功能应包括
  • 图书的CRUD操作(CRUD ==创建,读取,更新,删除)
  • 地点的CRUD操作(我有两套公寓,但我不确定哪本书在哪里)
  • 能够借出书籍。
  • 对书进行评分的能力。
  • 能够对一本书做笔记。
  • 允许同一本书的多个副本。
  • 能够搜索/过滤书籍:
  • 按作者
  • 按标题
  • 按评分
  • 按贷款状态
  • 按位置
  • 能够链接或标记同一本书的多个版本。 (对于不同的印刷品,ISBN通常是相同的,但是不同的版本具有不同的ISBN)
  • 有一个iOS应用程序。 除了Web应用程序界面之外,iOS应用程序的功能还应包括:
  • 扫描ISBN条形码。

该软件生态圈将由以下内容组成:

  • 云中的简单数据库
  • 基于云的Web服务,允许应用程序与数据交互
  • 面向最终用户的基于云的Web应用程序
  • 适用于我们最终用户的本地iOS应用程序

尽管我有一个计划,但[解决方案]总是有无数的路径,因此某些计划在技术上的路径可能会或可能不会被使用:

  • Google Cloud Platform
  • MySQL的
  • 红宝石
  • 反应
  • 迅速
  • 红宝石矿
  • MySQL工作台
  • 吉特
  • Node.js
  • npm

我不会深入研究每种技术,而只是建立一种建立软件生态圈的可行方法,并展示如何将各个部分组合在一起以提供完整的解决方案。

在开始之前,这里有一些我将要用做的决定的基础:

  • 安全至上。
  • 尽可能使用现有的库和技术。
  • 使它尽可能简单,但不要简单。
  • 为小规模发展,但为大规模计划。
  • 尽可能使用“最佳做法”。
  • 我将使用macOS作为开发环境。
  • 玩得开心🙂

以我的经验,“最佳实践”是一个不断变化的目标,并且通常特定于客户的现有流程,而该流程可能是“最佳”,也可能不是。 同样,“最佳”显然是暗示性的,并且是高度情境的。 除非您谈论的是vi vs emacs…否则,最好的情况显然是vi,而不是伪装成编辑器的过于复杂的应用程序😉。

另外,尽管我名义上与系统和语言无关,但实际上,我更喜欢macOS作为开发环境。 我是一个命令行类的人(除非我不是),而cygwin帮助使Windows更易于使用,但我发现在Unix环境中进行开发要简单得多。 此外,iOS开发人员仅是macOS🙂。

关于这一点的内容进行了概述,请在明天开始研究时调入!

—兰迪