创建软件生态圈: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🙂。
关于这一点的内容进行了概述,请在明天开始研究时调入!
—兰迪