Open hylerrix opened 7 years ago
据说全栈路线图是这样的,详细地连 DevOps 都不得不被掩盖住一截。
全栈工程师,Full Stack Developer,常是一个较为敏感的话题,一如深度还是广度好,一如精读还是粗读好一样。你可以说,接下来步入的整个项目是一个实为 Node.JS 的伪全栈项目,但作为有志青年来讲,“全栈”足以时刻提醒自己是面向软件工程专业和互联网行业学习,找的是不去惯性局限自己视野的一股劲。毕竟:
「任何一个 Facebook 的问题,都不是别人的问题」
这次,利用 ThoughtWorks 校企实验室的团队项目机会,带来一个 React.js + Node.js 技术栈的全栈实战项目:基于番茄工作法的番茄时钟:“番茄post”。该项目将作为自己和团队的练手项目,并及时更新进度。同时,这一路走下去,也将是一场软件工程的项目实战,对理解软件开发流程模型很有帮助。
有了小产品理想,画大饼很简单,但要能够搭建一个足以依靠敏捷开发稳步推进的软件开发流程,以大学生的能力还不足以直接上手。这次,多亏了 ThoughtWorks IT 咨询师,同任我们实验室老师的 @TW李鹏 老师对功能分析的指导,让我们理解了项目前期对功能分析和设立多个目标里程碑的重要性并能予落实。引用老师的话来说,拆分项目里程碑,有如下优缺点。
这样带来的好处是: * 我们每个里程碑所需要考虑的问题变小,易于分析、思考和掌控 * 每个里程碑要学习的东西比较集中,不会迷失 * 每个里程碑结束,有一个完整可用的产品,能够产生价值,也能够给自己带来成就感 * 如果在假期中时间或者精力不够了,可以放弃后面的里程碑,至少可以做出功能较少但是可用的东西出来,而不是一个很大但是没法使用的半成品 带来的问题是: * 为了保证每个里程碑功能的完整,有时候需要在过程中添加一些额外的功能,而这些功能在最后可能会被丢弃,有额外的工作量 * 新的里程碑的功能可能会在之前的功能上修改,如何保证之前的功能不被破坏,需要一定的技巧
随着我们接下来对“番茄post”全栈项目的推进和文章总结,这将是一场程序员的技术战,也将是一场工程师的身心战,智慧与勇毅将带来最终的成果。
“番茄post” 基于番茄工作法,旨在向用户提供个性化、社区化的时间管理环境,提高工作效率,改善生活品质,经过功能拆解历程,它的前期版本将具有以下功能:
根据“有社区的番茄工作法软件”为目标同时列出的有添加番茄、暂停番茄等与前端视觉效果有关的功能并以为然作为重点,经过老师带领我们对产品需求进行的细细挖掘下发现,“番茄post”需要解决的核心需求点在于:
以上大部分强调的是,“番茄post”更偏向社交化时间管理,前期应削弱对番茄的前端功能效果实现而重在搭建能够发布番茄、社交激励的社区平台。
以下里程碑结合功能复杂度和技术难点进行前期划分。
平台开发环境第一性,提前了解将要使用的技术将决定架子的内在。考虑到平台多样性和团队精力的有限性,以下列出的开发环境将作为第一版出现。
最终,只需要能够运行出一个简单的 Hello World 页面即可。
最基本的功能是对番茄的“增删改查”,在这个里程碑中,我们先实现对番茄的发布,即增加到数据库中。制作番茄发布页面。
这一步,在我们将番茄及其相关信息更新到数据库后,要能够将数据读取出来并在前台展示,提供删除按钮并能删除成功。番茄的展示与删除的页面和番茄发布页面同为一个页面之下,名为用户个人主页页面。
之前的里程碑都在于搭建针对单独用户的核心功能,这一步来搭建用户平台。
这时,每一位用户都有自己的个人主页页面并能通过发布、删除番茄来更新自己的时间管理记录。番茄首页将着手打造番茄社交环境,用来展示所有已注册过的用户,提供社交链接。
这一步:关注他人。
正式上线至某 IP 地址或某域名下。
“番茄post”的里程碑写到这里,可以看到,还有很多细节没有深入讨论。在敏捷的软件开发流程下,鉴于我们开发者也一直在梳理需求且需求会随时回炉重塑,先开发出一个可用可见的真实产品出来再看进一步发展。
软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架,其中就包括增量模型这一软件开发模型,很符合这一次任务的开发流程,图例如下。
更多内容,持续更新中~。
Hello,我是韩亦乐,现任本科软工男一枚。软件工程专业的一路学习中,我有很多感悟,也享受持续分享的过程。如果想了解更多或能及时收到我的最新文章,欢迎订阅我的个人微信号:韩亦乐。我的简书个人主页中,有我的订阅号二维码和 Github 主页地址;[我的知乎主页]中也会坚持产出,欢迎关注。 本文内部编号经由我的 Github 相关仓库统一管理;本文可能发布在多个平台但仅在上述仓库中长期维护;本文同时采用【知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议】进行许可。
据说全栈路线图是这样的,详细地连 DevOps 都不得不被掩盖住一截。
全栈工程师,Full Stack Developer,常是一个较为敏感的话题,一如深度还是广度好,一如精读还是粗读好一样。你可以说,接下来步入的整个项目是一个实为 Node.JS 的伪全栈项目,但作为有志青年来讲,“全栈”足以时刻提醒自己是面向软件工程专业和互联网行业学习,找的是不去惯性局限自己视野的一股劲。毕竟:
这次,利用 ThoughtWorks 校企实验室的团队项目机会,带来一个 React.js + Node.js 技术栈的全栈实战项目:基于番茄工作法的番茄时钟:“番茄post”。该项目将作为自己和团队的练手项目,并及时更新进度。同时,这一路走下去,也将是一场软件工程的项目实战,对理解软件开发流程模型很有帮助。
有了小产品理想,画大饼很简单,但要能够搭建一个足以依靠敏捷开发稳步推进的软件开发流程,以大学生的能力还不足以直接上手。这次,多亏了 ThoughtWorks IT 咨询师,同任我们实验室老师的 @TW李鹏 老师对功能分析的指导,让我们理解了项目前期对功能分析和设立多个目标里程碑的重要性并能予落实。引用老师的话来说,拆分项目里程碑,有如下优缺点。
随着我们接下来对“番茄post”全栈项目的推进和文章总结,这将是一场程序员的技术战,也将是一场工程师的身心战,智慧与勇毅将带来最终的成果。
程序功能分析
“番茄post” 基于番茄工作法,旨在向用户提供个性化、社区化的时间管理环境,提高工作效率,改善生活品质,经过功能拆解历程,它的前期版本将具有以下功能:
功能拆解历程
根据“有社区的番茄工作法软件”为目标同时列出的有添加番茄、暂停番茄等与前端视觉效果有关的功能并以为然作为重点,经过老师带领我们对产品需求进行的细细挖掘下发现,“番茄post”需要解决的核心需求点在于:
以上大部分强调的是,“番茄post”更偏向社交化时间管理,前期应削弱对番茄的前端功能效果实现而重在搭建能够发布番茄、社交激励的社区平台。
以下里程碑结合功能复杂度和技术难点进行前期划分。
第一个里程碑:搭架子
平台开发环境第一性,提前了解将要使用的技术将决定架子的内在。考虑到平台多样性和团队精力的有限性,以下列出的开发环境将作为第一版出现。
最终,只需要能够运行出一个简单的 Hello World 页面即可。
验收条件
第二个里程碑:数据库搭建和番茄的发布及其页面
最基本的功能是对番茄的“增删改查”,在这个里程碑中,我们先实现对番茄的发布,即增加到数据库中。制作番茄发布页面。
验收条件
第三个里程碑:番茄的展示与删除及其页面
这一步,在我们将番茄及其相关信息更新到数据库后,要能够将数据读取出来并在前台展示,提供删除按钮并能删除成功。番茄的展示与删除的页面和番茄发布页面同为一个页面之下,名为用户个人主页页面。
验收条件
第四个里程碑:登录/注册功能及相关页面
之前的里程碑都在于搭建针对单独用户的核心功能,这一步来搭建用户平台。
验收条件
第五个里程碑:番茄首页
这时,每一位用户都有自己的个人主页页面并能通过发布、删除番茄来更新自己的时间管理记录。番茄首页将着手打造番茄社交环境,用来展示所有已注册过的用户,提供社交链接。
验收条件
第六个里程碑:关注他人与被他人关注
这一步:关注他人。
验收条件
第七个里程碑:番茄评论
验收条件
第八个里程碑:番茄网站上线
正式上线至某 IP 地址或某域名下。
验收条件
更多内容,尽请期待
“番茄post”的里程碑写到这里,可以看到,还有很多细节没有深入讨论。在敏捷的软件开发流程下,鉴于我们开发者也一直在梳理需求且需求会随时回炉重塑,先开发出一个可用可见的真实产品出来再看进一步发展。
更多内容,持续更新中~。