怎样搭建轻量级架构-敏捷开发普及篇

搭建轻量级的架构。没有轻量级的开发原则是不行的。

传统的软件project理论是统一软件过程。统一软件过程说的简单点就是沟通。建模,开发,维护。

大家注意,这是一个一次性的过程,也就是每一个阶段必需要力求具体,确认功能的务必完好。然后一次性搞定。

所以依照传统的project理论,开发反而是一个可控性最高的阶段,依据前期“超级完好”的模型,程序猿全然是流水线工人。俗称码农!

假设依照这样的project理论去开发软件,两方在前期要耗费巨大的精力去建模。并且也不能保证在真正开发时。不会超出建模的范围。所以项目成功的几率微乎其微!

软件统一过程,根本目的是要控制项目的风险。

它的理论基础是严格隔离开发过程中的每一个阶段,确保每一个阶段的风险都可控,这样项目本身就成功了。

可是软件的过程是基于人的过程,比如沟通环节涉及业务人员和需求人员,建模须要设计人员等等。

软件统一过程就要求全部的參与人员都极具专业化,在过程中,不犯不论什么错误。确保每一个环节都正确。

在真实的情况下。这根本是不可能的。!

请回顾一下你们公司的产品狗,前前后后改动需求的次数!

所以非常多人吐槽:软件统一过程。它不是想要生产成功的项目。而是要成产完美的文档!哈哈!

大江东去,浪淘沙,多少软件公司。唯剩文档。

基于统一软件过程的不靠谱。出现了一种软件project理论:敏捷开发。非常熟悉对不正确,但我保证你并不了解它。

让我们慢慢道来。

敏捷开发是一种软件project理论,并没有实际的方法。如今支持敏捷开发的方法有非常多,最有名的是【迭代开发(Scrum)】和【极限开发(XP)】。

极限开发(XP)就是你久闻的两个程序猿手牵手开发,一个写代码,一个看着写代码!。这尼玛在我大天朝根本不靠谱,大天朝的开发者有些还兼任前台的,非常忙好不好。

迭代开发(Scrum)倒是非常流行,可能非常多开发者不知道这个词。可是已经在用这样的方法论了。

我推崇的就是迭代开发。至于迭代开发的理论自行去百度,我不喜欢讲百度百科的东西。老方法,用简单的话来说说迭代开发吧。

功能非常大怎么办

按迭代开发的理论来讲。就是功能粒度最小化。

比方上期说的导入导出。就做一个xls,迅速增量更新给用户,看用户的反馈来决定下一步的开发。

需求没全然确定怎么办

相同需求粒度最小化。然后进行开发,而不是坐等需求彻底完好。

比方开发一个BI功能,有一个基础的需求,那就动手開始做。一次一次的迭代增量开发,终于形成完好的BI功能。

而不是直接花费几个月做完!做完后,产品狗跟你说。不是这种.....

迭代开发也就这两个重点吧。至于其它的站立会议,都是确保方法论可以实行下去的手段而已。

我觉得迭代开发非常符合现代开发的思想,有例如以下的长处:

1.能够以最小成本兼容“烂需求”

你肯定遇到过产品狗,昨天还在说须要某某功能。今天尼玛就全然变了!!

2. 最快出现软件雏形,让客户产生软件认知

大多数需求,都是客户看到雏形才知道下一步的需求。非常多人埋怨公司的老板对软件一手遮天。说什么就是什么,我倒觉得,假设开发者高速的通过软件雏形进行有效化的引导。情况可能会不一样!

3. 程序猿地位提高了

我一直的观点是,程序猿事实上是最前线的!

每次迭代都是程序猿来直接面对用户...

并且不论什么功能的第一个版本号,基本上不会删了重做。

你做的什么样子,客户就觉得这个功能该是什么样子。比产品狗的权利可大多了!

当然,迭代开发也有缺点。假设开发者把握不住迭代的重点,那么每次迭代都有可能成为“烂需求”。!

所以软件统一过程就黑敏捷开发:你们是在给客户做玩具,不是做软件!。黑出翔,有木有.....

本章到此结束,下一章,我们讲讲述真正在开发中,涉及的代码组织。以及单元測试等问题,敬请期待。

假设您对我的文章有兴趣,请关注我的微信公众号。谢谢。

时间: 2024-10-17 23:38:15

怎样搭建轻量级架构-敏捷开发普及篇的相关文章

如何搭建轻量级架构-更新部署篇

搞定了前期所有的问题,你的平台架构也在慢慢完善中...余下的就是更新部署方面的问题了. 大家都知道,平台运行需要一个运行环境.抛开操作系统以及服务器这方面的安装,平台本身运行就需要数据库,数据等需要初始化. 平台的打包我们之前有讲过Maven,使用Maven可以自动化构建你的项目,本篇不再多讲. 而关于数据库以及相关数据的配置,在部署时是一件很麻烦琐碎的工作. 需要创建每一个表的结构以及索引,如果更新时,还要通过软件比对数据库差异,生成更新SQL... 通常在部署时,都没有开发人员在场,一旦出了

如何搭建轻量级架构-辅助工具篇

我们要搭建轻量级的架构,首先要确保有一套轻量高效的"辅助工具",确保平台架构可以正常推进. 项目的"辅助工具"包括协作平台,管理工具. 首先来说说 项目协作工具 比较老旧的团队协作,都是枯燥的会议记录,列表式的Task,还有附件形式的项目文档... 很多公司总是想通过这些方式来把控项目,认为有"协作平台"就能为项目带来便利. 然而真实的结果呢?? 由于其枯燥性,"协作平台"仅仅变成了形式主义,最后反而成了项目的累赘. 那么,如

怎样搭建轻量级架构-辅助工具篇

我们要搭建轻量级的架构,首先要确保有一套轻量高效的"辅助工具",确保平台架构能够正常推进. 项目的"辅助工具"包含协作平台,管理工具. 首先来说说 项目协作工具 比較老旧的团队协作,都是枯燥的会议记录.列表式的Task,还有附件形式的项目文档... 非常多公司总是想通过这些方式来把控项目,觉得有"协作平台"就能为项目带来便利. 然而真实的结果呢?? 因为其枯燥性,"协作平台"只变成了形式主义,最后反而成了项目的累赘. 那么,怎

如何搭建轻量级架构

一直专注于构建高效的开发平台,在这方面颇有一些心得.今天就和大家聊聊关于平台架构的一些话题. 何为平台?从狭隘的角度来看,有二个方面: 1. 提供可扩展的开发 2. 提供基础功能,例如:查询,导入导出,打印,BI,工作流,表单,数据权限等. 好的平台,不仅仅要满足这两个硬条件,更要在软实力上有亮点,如项目管理,实施方面都极具效率性,便捷性.我称这种特性为"轻量级". 相反,很多企业,在软件开发的过程中,都过于"重量级".如此久而久之,导致整个团队以及平台的"

如何搭建轻量级架构-代码组织篇

很多程序员看到标题,估计心里一愣:一个组织代码,有什么可讲的,无非是公司网址倒着写,外加命名规范,最多分模块管理而已!怎么这都能忽悠一篇文章来? 代码组织确实是一件简单的事情,但是如果我说的"代码组织"不仅仅限于这些内容呢... 大家都知道Web项目的架构,文件很琐碎.一个模块前台包含JS,CSS,HTML文件,后台还有模块的逻辑处理类,实体的数据库访问类,以及实体本身. 如果这个模块需要打印,还要有打印的模板文件! 如果这个模块还有一些关联数据,比如学员的学分数据等等. 算下来,一个

怎样搭建轻量级架构-代码组织篇

非常多程序猿看到标题,预计心里一愣:一个组织代码,有什么可讲的,无非是公司网址倒着写,外加命名规范,最多分模块管理而已!怎么这都能忽悠一篇文章来? 代码组织确实是一件简单的事情.可是假设我说的"代码组织"不只限于这些内容呢... 大家都知道Web项目的架构,文件非常琐碎.一个模块前台包括JS,CSS,HTML文件,后台还有模块的逻辑处理类,实体的数据库訪问类.以及实体本身. 假设这个模块须要打印,还要有打印的模板文件! 假设这个模块另一些关联数据,比方学员的学分数据等等. 算下来.一个

java架构师 - 开发技能篇

00 JDK常见数据结构 https://www.cnblogs.com/lizhuxin/p/10745199.html 01 java中IO.NIO https://www.cnblogs.com/lizhuxin/p/10745212.html 02 java多线程基础 https://www.cnblogs.com/lizhuxin/p/10745216.html 03 java线程安全与通讯 https://www.cnblogs.com/lizhuxin/p/10745229.htm

敏捷开发小结(原创)

本小结来自于我在公司的敏捷开发实践中总结而来,记录下来,如果有疏漏或者不正确的地方,欢迎批评指正. 所谓的敏捷开发是相当于瀑布式开发而言的,传统的瀑布式开发严格遵循预先计划的需求.分析.设计.编码.测试的步骤进行的,每个阶段都有每个阶段对应的文档:其主要问题是严格的分级导致的自由度降低,导致后期需求的变化难以调整或者代价高昂: 敏捷开发以用户的需求为核心,采用迭代增量.循序渐进的方式进行开发:项目在构建初期就被分为多个子项目,每个子项目可以独立运行和交互,在此过程中软件一直处于可运行状态:每个子

如何基于阿里云搭建适合初创企业的轻量级架构?

摘要: 在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重要.本文主要介绍基于阿里云搭建适合项目初期的后端架构 ----基于阿里云搭建的适合初创企业的轻量级架构 前言在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重要.本文主要介绍基于阿里云搭建适合项目初期的后端架构,至于细节操作不作描述,比如nginx配置优