这个问题可能很难客观地回答,但对我来说很相关,我会尽量具体化,读到最后。
我同时进行 Web 开发(前端)和桌面开发(.NET)。我有大型项目的经验,主要是作为产品/客户所有者。
一个大型项目从编写基本文档开始,大致分为以下步骤:
- 商业愿景——我们最终想要得到什么以及为什么?
- 高级需求——一堆大特性
- 最小可行产品 - 从无法发布产品的功能列表中选择
- 应用架构设计和技术栈选择
- 通用界面设计理念和品牌
- 所选特征的规格——分解,特征的功能逻辑,每个特征的详细描述,考虑到用户的方便性
- 为开发人员设置任务,开始开发,原型设计
总的来说,要开始写任何东西,需要大量的工作,最好是一个十人的团队,至少需要 2 周。
通常对于单身人士来说是这样的——“让我们屏蔽一些界面,在代码中写下每个元素的行为,然后你就完成了。” 理解你要做什么和你在代码中写什么的过程同时发生,甚至代码跑在理解之前,结果是“随机开发”,然后要么是客户大吃一惊的眼睛”小心你想要的”,或者理解“一切都需要重写”。
也就是说,我看到了两个极端:完整的开发周期和生产中的错误。对于需要将项目从订单到发布的孤独的开发人员来说,中庸之道在哪里?问题总是一样的:在尽可能短的时间内开发人员的最佳效率。
问题如下:比如我一个人,比如有一个具体的口头任务“写另一个Telegram客户端”并且有对栈的理解,比如“.NET WPF + MVVM”,虽然这个在这个问题的背景下并不重要。然后什么?专业人士是怎么做的?
在你的情况下,你需要开始做——写作。
通常,我害怕开始复杂的大项目,因为它们……复杂。因此,我先看看其他人的大概项目,看看它们是如何实现的,然后根据我所看到的开始编写架构。之后,根据我所写内容的大小,我将其分解为更小的任务。相信我,它真的很有帮助,而且通过将大项目分解为点或任务来完成它会更容易。然后,当出现问题时,我开始更仔细地分析这个项目。
当然,有必要处理技术(正如您在问题中所写),并且在开始时,但您不需要抓住您知道的第一个技术。也许它不是很适合这项任务,你可以获得坚固的拐杖和棍子。
因此,总结我的整个答案,我建议你比较,阅读,看看别人是如何实现的,把它分解成小任务,然后按任务开始做一个大项目。你会看到,这不会很难:)
这是我经验中的一个例子,我希望你觉得它有用;)
免责声明:这里没有“正确”的答案。每个人都会有自己的。
然而,“bad-baked and in production”是一种更有前途的方法,因为。“实践是真理的主要标准。” 理论家将在云端设计他的镂空城堡,而实践者将遇到困难,已经遇到现实,它将指导他。
第二个方面——编写代码本质上与编写文档没有太大区别。还有那个那个 - 设计。在此过程中,那里和那里的改变是可能的。如果你从一般到具体编写代码,你将能够最大限度地减少“惊讶的大眼睛”和“一切都需要重写”的理解。
第三个方面——你不会从头到尾一个人写项目吧?您将拥有用户、赞助商、投资者和同事、社区等等。您越早吸引他们并让他们保持兴趣,他们以后可以为您提供的帮助就越大。详细的 TOR 可以吸引投资者,好的 MVP 可以吸引用户。
至于单独工作,这也是个人的,但主要问题通常是动机。为自己写文档并不是一件坏事(它有助于把所有东西都放在架子上,仔细检查自己,事实上,就像橡皮鸭调试一样),但它很快就会变得乏味,并且跟着它变成在厨房里费力的工作. 当你有一些东西可以使用、吹嘘并尽早呈现为“成就”时,持续设定和实现 MVP 目标会更有成效。实现的每一个小目标都是继续前进的动力。