制作应用程序的开发生命周期?

Posted

技术标签:

【中文标题】制作应用程序的开发生命周期?【英文标题】:Development life-cycle for making an application? 【发布时间】:2010-04-26 21:22:54 【问题描述】:

我有一个想法,我想把它做成一个应用程序(我有 C/C++、C# 和 Java 编程背景,所以为了交叉编译,我将在 QT Creator 中进行开发)。所以现在我问你们高级开发人员,接下来我应该怎么做?我知道所有好的程序都来自一个想法。那我该怎么办? UI原型?然后开发代码?是否有一个应用程序开发的循环?我的意思不是这个问题是主观的或争论的

【问题讨论】:

我知道如果没有它,它会因为“主观或争论”而关闭。 “专业经验”不是怎么可能是主观的? 那为什么标签已经可用了。标签不是我创建的,是别人制作的。 【参考方案1】:

好吧,从经验丰富的开发人员的角度来看,我工作过的大多数公司至少都遵循某种流程驱动的方法。我见过的开源项目可以有很大的不同,从临时到极度流程驱动。不过总的来说,至少在企业界,即使是在小型项目中,以下方法对我和我合作过的团队来说效果很好。当然,有许多变体,使用不同的范例,但总的来说,这些是我在大多数范例中看到的步骤类型(我确信我已经留下了一些基本步骤):

首先,请妥善处理您的要求。如果您的用户不确定自己到底想要什么,那么@Michael Herold 从 UI 原型开始的方法绝对是一个很好的建议。您可能还想采用某种迭代方法,例如 Agile/Scrum。 接下来,定义某种类型的高级架构,该架构应该足够灵活以实现您的目标。你的应用程序会是客户端-服务器吗?它需要一个数据库吗?多线程?多个进程?如果其中任何一个是“是”,那么这些线程/进程将如何通信。回答上述问题后绘制框图。 如果您的项目是中等大小或更大的,您可能还想绘制一些类或 UML 类型的图表。考虑一下您需要什么样的课程以及它们之间的关系。 如果您想尝试Test Driven Development 方法,现在可能是将您的需求转化为单元测试的好时机。 一旦您对要解决的问题以及将如何解决问题有了很好的了解,您就可以开始编写解决方案了。

有些方法是迭代的,例如Incremental Development 或Agile/Scrum。在敏捷/Scrum 中,您的迭代将非常快,就像每隔几周就会经历一个完整的周期。在增量开发中,周期通常更长:数月甚至数年。在 Scrum 和增量开发中,要记住的主要一点是,在每次迭代结束时,您都希望有一个可用的软件(即使它没有做太多事情)。这有助于保持真实或潜在客户甚至开发人员的兴趣。

无论您采用何种方法,您越早、越频繁地让您的用户(或潜在用户)参与进来,无论是通过查看 UI 原型,还是通过 Usability Testing,都越好。

【讨论】:

【参考方案2】:

我会说这取决于应用程序的主要部分是什么。大部分工作将来自设计用户界面(即“令人惊叹的因素”来自哪里?)还是主要是数据操作或其他一些“繁重的工作”(即这些是我的结果简单的用户界面)?

如果应用程序旨在让人们“惊叹”,那么对用户界面进行原型设计并获得对它的意见会大有帮助。这可以在开始编写代码之前完成,然后可以在收到反馈时应用增量更新。在您寻求反馈时,您可以开始编写应用程序的其余部分,因此每个部分都在继续进行,而无需等待其中一个。

好消息是,如果做得正确,这两件事应该完全(或几乎完全)解耦并相互独立。

最后一点:通过对用户界面进行原型设计,它可能有助于巩固您的想法,从而简化用户界面背后的代码设计。不同的方法适用于不同的人,但根据我的经验,对界面进行原型设计非常有用。

【讨论】:

【参考方案3】:

继续努力。卡在里面就行了。

尝试将事物设计得灵活,这样当您意识到自己走错了路时,您就可以轻松地重构事物。将您的 UI、业务逻辑和数据层分开,以便您稍后在确切了解它必须做什么时轻松地重新设计 UI 等。

总是很难知道从哪里开始,所以我能给出的最好建议就是仔细考虑,挑一点,然后开始工作。预计您将不得不重构甚至重写一些位 - 不要害怕这一点,这很正常。但是你可以坐在那里永远循环试图决定先做哪一点,甚至永远不会开始。你先做哪一点并不重要,只要你有一个整体计划,以便你实施的所有部分最终都能连贯地结合在一起。

(我并不是建议你在没有先设计或原型设计任何东西的情况下就搞得一团糟。只是开发新应用程序最困难的部分之一是决定从哪里开始。在某些时候,你只是必须冒险并开始游泳)

【讨论】:

以上是关于制作应用程序的开发生命周期?的主要内容,如果未能解决你的问题,请参考以下文章

Mac Catalyst 应用程序如何处理生命周期转换?

WePY开发小程序:生命周期

转载小程序: 微信小程序开发---应用与页面的生命周期

微信小程序开发-生命周期

如何使用 Flutter 处理应用程序生命周期(在 Android 和 iOS 上)?

理解mpvue的生命周期