软件开发最佳实践_最佳软件开发方法

软件开发最佳实践

今天,谈论进行大型设计(BDUF)听起来有点荒谬,对吗 谁会这样做 那不是Craft.io,是吗

但是,过去将其视为规范。 编写需求文档,绘制架构图和非常低级的细节图是正确的选择。 好吧,这就是非常聪明的人在1968年北约软件工程会议上提出的建议,它为NASA和美国国防部工作。 我确定他们知道自己在做什么,并且如果它对他们有用,那么它将肯定适用于我们的小型CRUD应用程序或一页 站。 然后它发生了。 它成为一种宗教,在随后的几十年中,大多数项目都是这样发展的。

不,但是现在不行。 我们已经吸取了教训,对吗我们不会再犯此错误。
在观看了一些会议和InfoQ的演讲后,我们了解到这不是一件好事。 我们还读了一些书,我们应该做TDD 。 设计应来自测试。
当然,我们也应该采用敏捷方法。 让我们开始采用Scrum 。 有很多关于它的书籍,认证,甚至是专门针对它的整个会议。 当然,我们应该采用TDD Scrum,因为这是管理和开发软件的最佳方法。 哦,那这些精益的东西呢消除浪费,限制进行中的工作, 系统思考 , 约束理论 , 看板 。 我听说它对丰田确实非常有效,所以我们也应该这样做。 为什么耶稣,你就是不明白。 当然,这是管理和开发软件的最佳方法。 天哪,我怎么会忘记有人还告诉我,我确实应该与客户交谈。

我们应该真正讨论需求,以便我们可以更好地理解应该构建的内容。 您在使用BDD吗没有!!! 哇! 没有这些,您如何开发软件为什么要使用它答案很简单。 这是管理和开发软件的最佳方法。 不要告诉我您认为BDD是一种测试工具。 你昨天是如此。 那是第一版。 BDD版本三全是关于沟通的。 关于正确完成软件开发。 是的,我知道这听起来有些陌生,但显然我们应该与人交谈。 天哪,我们在地球上怎么没想到呢这些年来我们是如何开发软件的如果您不使用BDD,则说明您做错了。 为什么因为那是管理和开发软件的最佳方法。 h!

外进TDD,内外TDD,ATDD,经典TDD, 伦敦学校TDD 真您还在讨论吗不要告诉我我们您仍在编写测试。 什么您为什么要浪费时间编写单元测试它不再有意义。 您应该峰值并稳定下来 。 如果您不知道自己在做什么或要去哪里怎么办如果您只想探索您的选择怎么办为什么要编写测试知道了 有人告诉您这是管理和开发软件的最佳方法。 不,算了 单元测试是针对失败者的。 我们编写小型服务,并对其进行监控。 如果它们是错误的,我们将其丢弃并重新编写。 那是管理和开发软件的最佳方法。

建筑和设计模式什么是谁我爷爷 废。 那是针对80年代和90年代的程序员的。 在现实世界中,我们的设计源自测试。 不,笨 不使用普通的TDD。 天哪,你住哪个星球我们使用TDD就像您是故意的那样 。 我们使用这项技术和PRESTO,无论项目有多少开发人员,团队和设计技能,设计都会在项目的整个生命周期中很好地出现和发展。 每个人都能看到代码的气味,对吗

那DDD呢域驱动是什么不,从未听说过。 嗯..等等 我想我早在几年前就已经听说过有关它的信息,但是它可能并不足够重要,否则今天我们会有更多的人说DDD是管理和开发软件的最佳方法。
不 不不不不。 不,我没有听到。 离开这里。 您只是说您仍在使用面向对象的语言吗静态类型 不,对不起 这次谈话浪费了我的时间。 正是由于像您这样的人,我们的行业才变得如此糟糕。 使对话变得更糟的唯一方法是,如果您告诉我仍在使用关系数据库。 您是否没有听说过函数式编程是必须做的事情,只是阻碍了80年代和90年代的程序员使用关系数据库。 功能语言 , NoSQL数据库 …与我重复。 功能语言,NoSQL数据库。 真是个傻瓜包。

啊,想成为一个聪明的驴子是的,函数式编程很早就出现在50年代,而60年代和70年代的开发人员更喜欢使用OO。 但是你不知道为什么,是吗你呢他们之所以使用OO,是因为他们是一群嬉皮士,没有认真对待任何事情。 他们就是那种去伍德斯托克 ,对LSD很高的人,之后又有脑损伤。 不,不要认真对待整个面向对象的东西。 我们现在终于回到现实。 函数式编程和NoSQL数据库无疑是软件开发的最佳方法。

教条主义,宗教,情境,好奇心,询问思想和实用主义

在总结之前,我只想澄清一点,我绝不是在批评上述某些方法论,技术或技巧背后的任何人或一群人。 这些人在思考,实践和分享他们自己的想法方面做得非常出色,他们如何更好地完成软件开发,为此,我们所有人都应该感激不尽。 他们的贡献无疑使我们的行业变得更好。

我主要的批评是关于绝大多数开发人员对所有这些事情的React。 这不仅是因为某人在某处写了一本书,录制了一段视频或在会议上发表了关于在任何情况下都能使事情正确的事情。 很多时候,我们只是因为倡导它的人相对知名而对问题不屑一顾。 我们无法理解应该最适合某个方法论,技术或技术的环境。 由于害怕被同事嘲笑,我们常常无法运用自己的判断。 我们应该停止对事物持教条和宗教信仰。 这只会导致愚蠢的决定。 为了做某件事而做某事,或者因为别人这样说而做,这简直是错误和愚蠢的。

做一个好的开发者意味着要好奇,好奇和务实。 从来没有宗教信仰。 从不教条。 好奇意味着我们应该渴望学习上面提到的所有内容以及更多内容。 探究性意味着我们应该调查和质疑我们学到的所有东西。 务实意味着我们应该为工作选择合适的工具,包括技术,方法论或技术。

上下文很重要。

每当您看到有人说我们应该做某事或不应该做某事时,请问他们为什么。 向他们询问他们试图做什么(或不做什么)的背景。

软件开发不同于生产汽车。 一旦汽车准备好了,您就不会回到制造商那里,要求他们添加另一个车轮或将发动机放在其他地方。 为昂贵的硬件开发软件与开发具有两个页面的简单Web应用程序不一样。 硬件具有您需要进行编码的规范。 通常,您甚至无法访问硬件,因为它尚未构建。

对于所有应用程序而言,生产中的错误所付出的代价并不相同。 交 络或烹饪 站中的一些错误的成本可能与每天处理数百万笔交易的交易或财务系统中的一些错误的成本非常不同。 与一个小团队一起工作,每个人都在同一地点并易于访问客户,这与在5个国家和不同时区拥有10多个团队的项目进行工作截然不同。

尽可能多地阅读和学习。 但是,不要以为您阅读或观看的所有内容都适用于每种情况。 做出明智的决定并信任您的直觉。

坏消息是,没有最佳的软件开发方法。 我们最多可以说的是,某些技术,方法论和技术更适合于特定环境。

如果您真的在总体上寻求最佳的软件开发方法,我希望您不要对此感到沮丧和好运。 如果您找到它,请告诉我们。 了解不同的方法总是很有趣。 也许独角兽确实存在。 谁知道

参考:来自Crafts Software博客的JCG合作伙伴 Sandro Mancuso 的最佳软件开发方法 。

翻译自: https://www.javacodegeeks.com/2012/08/best-approach-to-software-development.html

软件开发最佳实践

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树桌面应用开发Tkinter209014 人正在系统学习中 相关资源:聪聪识字(趣味儿童识字软件)V1.2.1.0中文官方安装版-其它代码类…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年4月8日
下一篇 2020年4月9日

相关推荐