我开始研究一个相当复杂的软件。这是一个个人项目,但我仍然付出了很多努力。 现在,我习惯于处理其他人的解决方案/设计或者以非常可控的方式发展的项目。
这一次,我开始两次编写基础知识,我很快就发现自己陷入困境。所以我休息了一下,决定在编写单行之前写下完整的解决方案。我所做的(按顺序)是:
现在,我整个部分的速度都很慢。我已经建立了一个个人维基,我用它来编写这些规范,但我很清楚我缺乏经验和明确的方法论。
我知道软件设计是一个非常复杂的主题,并且已经写了很多关于它的书籍,但我希望你能分享你的经验/建议/方法。
在处理个人,中型项目时,您在开始编码之前指定了什么?怎么样?
提前致谢
答案 0 :(得分:11)
有很多人比我更有经验来帮助你详细说明,但我认为总有一点值得记住。
你不需要第一次100%完美。事实上,如果你的目标是你甚至可能永远不会完成。实际情况是,在您构建系统一次之前,您将无法完全理解设计。
刚开始,继续前进,保持单元测试覆盖率的顶部,并且当您更好地理解系统及其复杂性时,逐步重构以改进它。
答案 1 :(得分:6)
在处理个人,中型项目时,您在开始编码之前指定了什么?
我指定功能规范:
为了风险管理,我会补充一点,我想开发的一些内容暗示使用了一些我不熟悉的软件;为了最大限度地降低与此相关的风险,我还做了一些小小的原型设计。
如何?
我用笔写了一篇功能规范。我写的一些内容是高级(业务级“愿景”文档),有些是较低级别的,更像是设计(一些UI细节)。有时我停下来并且对如何组织它感到困惑,但接着继续,推断每个页面对每个主题都或多或少有凝聚力,以后我可以解释如何组织页面(很像你的wiki,也许)。
我事先并没有指定软件架构:
我确实对该架构有理论上的理由,但我没有记录这些原因:
如果(仅当)我不是唯一的开发人员,那么我认为值得记录架构及其基本原理。
我上面所说的关于软件架构的内容也适用于软件处理的数据。
至于测试,我稍微编码然后测试它;或编写测试,然后编写将通过该测试的功能。我没有做“大爆炸整合”,即没有任何测试就写了几个月。
我的流程中最大的弱点之一(或者缺少的东西)是提前估算工作量,然后根据估算跟踪实施情况......这是这个'个人之间的差异之一'项目流程与付费项目,我会为其他商业人士做。我怀疑这是否合适:如果估算是商业上的最佳实践,那么也许我应该在个人项目中做到这一点。
答案 2 :(得分:4)
基本上,屏幕。它们是用户和软件之间的接口。因此,我尝试确定每个用例(用户将搜索我的产品 - 用户将向其球童添加产品 - 用户将检查其球童)并为每个用户创建一系列屏幕。
祝福。
答案 3 :(得分:3)
我发现一张白纸和一支笔是最好的起点:
不要花费超过半小时的时间,不要陷入过多的文档或前期设计中。一旦你对你想要的方式有一个模糊的想法,就开始编码。随着您的继续开发,您会感觉代码是否足够好。如果你不开心,想想你不喜欢什么,并重新考虑这些课程。经常很快地重构,越早越好。如果某事不“感觉正确”,那可能不是。
答案 4 :(得分:3)
答案 5 :(得分:1)
我将从最小的实现开始,并在每次迭代中添加更多功能。