假设您必须完全自行开发中等大小的软件。就像是您要完成的个人项目一样。
您将使用什么方法/工具来定义需要开发,学习的内容以及对系统及其详细内容有全局了解的全局?
基本上是为了保持自己的步调而不会迷路。
假设您必须完全自行开发中等大小的软件。就像是您要完成的个人项目一样。
您将使用什么方法/工具来定义需要开发,学习的内容以及对系统及其详细内容有全局了解的全局?
基本上是为了保持自己的步调而不会迷路。
Answers:
它可能会轻易增长,超出您的注意力范围。不是跨度,而是广度。
很难一次考虑太多元素。
然后...变成了回归过山车。
您所做的一切都会破坏以前的工作,而回滚则无济于事。
为了避免这种情况,您应该积极测试回归。
自动地。(否则您将无法做到并保持理智)
测试会给您的能量增加很大的压力。
如果项目全部关于UI ...您可能会敬酒:
面向UI的项目的未经测试的最新想法让
一位亲戚有空余时间,并且喜欢单击鼠标作为UI测试员。
我在这里想“少年”。
其他事宜:
如果您习惯并喜欢某种版本控制,请使用它。现在
开始学习一个会分散你的注意力。
作图出你的想法,正如已经指出的那样,可能会有帮助。
我使用了Freemind,CMaps,XMind,yEd,graphviz等。
XMind不太有意义:
铅笔和笔记本仍然在我的前十名中得分很高:
我做了很多小图。
作为最后的选择,您可以随时为自己的消费准备PowerPoint:)
精通编程。
识字编程的实践者可以被视为散文学家,其主要关注点是对风格的阐述和卓越。这样的作者手头有同义词库,仔细选择变量的名称并解释每个变量的含义。他或她努力开发一个易于理解的程序,因为它的概念是以对人类最有利的顺序引入的,并使用了相互加强的正式和非正式方法的混合物。
如果您正在撰写有关项目的论文(或书籍,报告或文档),那么您往往会继续执行任务。
首先概述您的工作:用例概述,版本1,版本2,版本n。写下用例的摘要。优先考虑它们。让他们进入冲刺和发布。
每个发行版都有一个用例视图,逻辑视图,处理视图,组件视图,部署视图。对于sprint,请详细说明用例。发布HTML文档以显示要执行的操作。在详细说明了sprint的用例之后,编写逻辑模型。编写代码来支持这一点。编写处理文档。编写代码以支持它。创建模块。编写组件视图文档。编写测试和支持文档。将冲刺结果作为HTML文档发布。
对每个冲刺重复一次。不时查看和编辑您的文档。
有很多识字的编程工具。他们可以帮助您产生一个源文件,该源文件可以从一个文本中创建文档和代码。
如果您想写下您的想法,可以使用思维导图工具,例如XMind或FreeMind。两种工具都是免费的(对于XMind个人而言),它们在集思广益和组织思想时非常有用。这些工具的作用就是让您忘记某些东西的机会更少。
在开始我的上一个个人项目之前,我亲自使用过Freemind。我本身没有特别的方法论。我只是每两天进行一次为时一个小时的会议,提出自己的想法。我认为,安排头脑风暴会议可以帮助我更好地了解问题所在,不重要内容,但在后续版本中可能有用,等等。
在我的第一次提交代码时,我还将头脑风暴文件保存在了源代码存储库中(我使用bitbucket),并用最新的思想更新了该文件。
像对待真正的软件项目一样对待它(因为它是一个)。因为开发人员的数量是一,所以只有几处改变。您仍然需要源代码控制。您仍然需要一种组织功能的方法,以添加要修复的错误。您仍然需要自动测试来检查您是否没有在代码中创建回归。您还应该有一种自动方式来编译代码(如有必要),运行测试并查看报告。
正如您所描述的,我正在从事一个个人项目。我正在使用Git,Redmine,JUnit和Jenkins来满足我描述的所有类别。我的工作流程是:
保持所有内容的管理和组织与许多开发人员一样重要。对于许多开发人员,您需要进行组织,以便将信息传播给每个人。当只有您时,您已经拥有了所有信息,但是记住系统的每个部分都很困难。托管系统使您的工作更加轻松,您可以专注于手头的任务。
工具:
控制版本系统(即使您是车库或家用个人PC中唯一的开发人员):GIT,Mercurial,Tourtoise
即使您具有IDE(Scintilla,Vim,记事本),突出显示源代码的编辑器
现实世界的黑板,白板,某些东西根本不适合您的Designer Tools应用程序。
设计工具:Rational Rose,Umbrello,(UML,ER,)Visio,或诸如Power Point,Corel Draw,Open Office Draw之类的“开发人员设计工具差”
文本/源代码文本比较工具,例如WinMerge
这取决于您如何区分和处理不同的任务,因为您需要查看开发过程的每个步骤。
我认为工具只有在您已经知道如何使用它们的情况下才有用,而最严重的错误之一就是学习工具的工作原理,而不是学习如何使用它。
首先,在我看来,您必须写下您希望软件能够完成的工作,特别是不能执行的工作。这是关键点。下一步是将最终系统划分为较低的子系统,从而使构建过程更加容易。最后但并非最不重要的一点是,您需要选择工具。基本上,一个好的IDE,一个VCS和一个数据建模器。您可以添加许多其他工具来提供帮助,但请注意不要误入歧途。
好吧,开始似乎没有那么吸引人,但是随着时间的流逝,过程会变得很有趣。