7.4 KiB
title | localeTitle |
---|---|
Learn How to Plan Your Future Project | 学习如何规划未来的项目 |
一盎司的准备值得一磅治疗。这在医学上是正确的,这在软件开发中肯定是正确的。
这是一个结构化的10步工作流程,将指导您完成应用规划流程,目的是避免编写大量不必要的代码。
我们将共同制定一个简单的“待办事项”单页网络应用程序。我们还计划为未来的移动应用程序提供API后端。
1)创建我们的Trello板
Trello是一种有趣,免费的方式,可以将您的计划和开发过程分解为可以跟踪的小任务。
这就是我们的Trello板最终会是什么样子 。我更喜欢将我的任务分成3列(取决于项目的复杂性):
- 待办事项 - 剩下要做的事情
- 正在进行 - 人们正在进行的任务
- 完成 - 完成并准备好进行测试的任务
2)编写用户故事
以下是一些示例用户故事。这些将指导我们如何思考应用程序的特性和功能。请注意,它们都遵循类似的结构:作为一个人,我可以[做某事]。
- 作为登录用户,我可以看到我的待办事项列表。
- 作为登录用户,我可以添加新的待办事项。
- 作为登录用户,我可以删除待办事项(仅限我的待办事项 - 而不是其他用户)。
- 作为登录用户,我可以完成待办事项(只有我的待办事项 - 而不是其他用户)。
- 作为匿名用户,我可以注册新帐户,恢复密码或使用现有帐户登录应用程序。
3)创建我们的用例模型
我们的用例模型将帮助我们可视化我们的用户故事,以便我们更好地了解如何实现它们。
![匿名用户案例图
4)创建我们的活动图
我们的活动图将显示用户可以通过我们的应用程序采取的不同路径。
用户访问我们的待办事项应用程序。
-
如果用户未登录,她将看到我们的登录页面。
-
如果她已有帐户,则可以登录。
-
如果她有帐户,但忘记了密码,她可以恢复密码。
-
如果她没有帐户,她可以创建一个帐户。
-
“创建帐户”和“恢复密码”都需要电子邮件验证。用户只有在确认了自己的电子邮件地址后才能登录我们的应用程序。
-
如果她已登录,她将看到她的待办事项列表(如果她尚未添加任何待办事项,则可以为空)。
-
登录用户:
-
能够看到她的任务列表
-
能够将列表中的任务标记为已完成
-
能够在她的任务列表中搜索
-
能够从她的列表中删除任务
-
可以退出。
-
-
用户可以随时退出应用程序。
5)创建我们的模型
我们的模型显示了我们的应用程序应该是什么样子。迭代一个模型比在工作代码上这样做要快得多。
6)为我们的项目选择合适的技术
因为这是一个单页面应用程序,我们将严重依赖 - 或者在这种情况下专门 - 依赖于JavaScript。让我们使用最流行的JavaScript堆栈之一:MEAN堆栈。 MEAN堆栈的一大好处是它的所有组件都是免费和开源的。还有大量资源可用于学习MEAN堆栈,并在您不可避免地遇到错误时进行调试。
您可以在不到一小时的时间内在云端启动并运行MEAN堆栈开发环境 ,免费。
以下是我们将使用的组件:
- MongoDB用于我们的数据库
- Node.js和Express.js用于实现我们的API
- AngularJS ,以及用于客户端应用程序的HTML和CSS(以及Bootstrap)
- Mongoose将我们的应用程序连接到MongoDB
7)设计我们的数据库模式
即使对于我们的简单应用程序,设计数据库模式也是值得的。
我们将有两个集合:我们的“用户”集合将存储我们的用户数据,而我们的“ToDo”集合将容纳我们需要完成的任务。一个用户可以在她的待办事项列表中拥有零个,一个或多个任务,因此我们的两个集合之间将存在一对多(1:m)的关系。
8)定义我们的用例
- 与删除帐户的用户相关的待办事项会发生什么?当用户删除她的帐户时,还应删除与该用户相关的待办事项。
- 如果没有附加到确认的用户,则无法添加任何待办事项。
- 待办事项只能由其所有者删除。
- 没有用户可以添加空用户名或密码。
- 没有待办事项可以添加空任务。
要记住的事情:
- 当用户删除她的帐户时,使用Mongoose中间件删除依赖文档,例如待办事项。
- 在模型上使用Mongoose验证规则以防止将空字段添加到我们的数据库中。
9)设计和测试我们的API
我使用了一个名为Apiary的免费产品来记录我们的API 。
这是我用来创建这个简单的BluePrint的语法。
我建议你创建一个帐户并开始玩它。如果您将GitHub帐户与Apiary链接,您可以确保您的文档始终保持最新。您还可以直观地测试数据,而无需实际访问API端点。如果您更喜欢从命令行测试API,下面是一个如何执行此操作的示例 。
之后,一旦您使用Node.js和Express.js实现了API,您只需要在Apiary中设置您的URL。然后你就可以开始测试你的电话了。我们当前的主机网址( http://fcctodoapp.apiblueprint.org/ )将替换为您的API网址。
10)开始编写代码!
这是有趣的部分,它将占用您项目的大部分时间。如果您需要帮助,请加入我们并学习编码。