2008-09-13 80 views
24

当您开始个人编程项目时,您的第一步是什么?我正试着开始一个只是一个想法的项目。我得到了很多这些东西,并且直接潜入代码中,过了一段时间后,完全失去了兴趣,或者忘记了项目。启动项目的最佳方式

当你开始时,你的第一步是什么?你计划完成这个项目吗?做一个图表?在纸上写一些代码?你如何以一种你知道你会成功的方式开始一个项目?

回答

16

唯一适用于我的方法是:创建它的某种可用的最小可能实现,然后使用它。

2

对于我自己的个人项目,我只是直接介入。当然,这些都还没有足够大,需要任何预先计划。如果这将是一个严重的项目或规模较大的项目,至少清除程序的每个部分需要做什么以及如何实现它的高层次总是一个好主意。

9

在我触摸键盘之前,我花了很多时间思考项目的各个方面。

我经历了什么我已经从以往项目的经验和它的各种类别(“技术”,“促销”等)

个人项目写下来或没有,我总是成立的源代码控制。 Git,Bazaar的Mercurial是源代码控制工具的例子,因为您不需要设置主服务器,所以它不具侵入性。只需输入一个简单的命令来创建项目,检查你的文件,提交。在未来,当你陷入困境,你的文件中的一个,你就可以“撤消”

我还设置了一个轻量级的客票系统来跟踪1.issues和2.ideas 的所谓“轻量级”我意味着如果使用这些列表维护两个文本文档适合您,那就够了。

希望这会有所帮助。

0

首先规划出最终申请的基本纲要。最重要的功能,基本的图形用户界面,程序流程等等。然后对其进行细化,以便在开始时不要花太多时间去除不必要的功能,并在第一个版本中添加您想要的内容。然后使用该大纲启动任务列表以创建应用程序的最小可能工作版本。然后添加额外的功能并使其充分发挥功能变得更加容易。

11

7 Habits of Highly Effective People,习惯2:从头脑开始。

对于任何项目,您都需要一个清晰的目标,您可以说“我完成了”的一点。一个明确的结果会给你方向。一旦你有了,你可以开始计划如何到达那里。项目的规模和复杂程度将决定您的计划需要多少细节,但总的来说,您会希望感觉自己的计划能够很有规律地反对您的计划。

我的下一步是勾画出需要的模块和每个模块之间的API的设计。如果API是干净的,那么模块可能是正确的。然后,我开始实施模块,随时测试。

1

这取决于项目 - 它有多大?

如果我正在编写下一个记事本克隆,我可能只是在潜入,如果我想推出我自己的操作系统,它会花费更多的非编码工作。

我喜欢做很多图表,我用于大多数开发的工具是干净的A4纸和铅笔。画出用户界面,工作流,基本类,以及如何存储任何数据 - 然后编码仅仅是一个计算机可读的方式来写你已经画了什么。

源代码管理方法SVN是一对击键/点击,所以开销很低,好处很高,它可以方便地尝试一些东西,如果它们不起作用就恢复到以前的状态。

然后,只需制作最基本的原型即可 - 一旦事情真的发生了,就会变得更加容易获得热情并增加更多。如果它是压倒性的,我会发现我认为这个问题在我脑海中解决了,那就够了。

0

我喜欢马克西米利安的回答..扩大一点,我的人项目开发解决我已经工作的东西。所以当我厌倦了重复的工作时,我会制作一个解决方案。然后使用它。如果它与我之前的一个项目类似,我会尽可能多地借用代码,并尝试提高我的工作水平,使它更专业。

融合使用源代码控制也很重要。花费2分钟来安装SVN。

2

和其他人一样,我的个人项目总是有:

  • 一个最终目标
  • 任务列表
  • 小可用单元
  • 源控制

作为额外的动力,我尝试使用以前从未使用过的技术。学习新东西通常成为我最大的动力。

2

简单 - 不要开始您可能会失去兴趣的所有项目。花更多时间来确保您在开始任何工作之前对自己想法做出承诺。

3

我同意的已经给的建议是:

  • 规划一个最小的实现,做的东西作为第一个完整的释放。
  • 有具体的目标,你想达到什么样的东西来比较你的进步。

我也建议对你有轻量化设计整体架构开始,所以你可以有一个路线图,如何建立你的产品

我发现很难开始构建某些东西,因为我对于它应该如何看待至少第一级分解的问题并不清楚。考虑一下除了功能之外你还需要什么:高性能,可扩展性场景,哪些?可用性目标?高可伸缩性?易于部署和安装?等等。问问自己:我需要构建哪些组件实现那些建筑特质?

不要误解我的意思,我是敏捷软件开发的强力支持者。你不需要花费很多时间来设计你的架构(因为它肯定会随着你的构建而发展,并且得到关于什么可行和什么不可行的反馈),但是有一个关于如何建立你的产品的蓝图在其架构应用于规划您的进度和设置现实目标

0

如果您的个人项目与现有的开源项目类似,您应该考虑为该项目做出贡献。几个小的贡献(错误修复等)是 比一半完成的项目更有价值。

3

定义项目的目标。听起来像你几乎完全在解决方案而不是问题。

程序对您或其他任何人都没有用,除非它解决了一些问题。编写代码来移动是非常棒的,但是在开始之后,您似乎会失去兴趣和焦点 - 因为您正在查看代码,而不是问题。

花点时间考虑是什么导致你写这段代码。思考其他人可能会如何发现相同的需求,什么样的途径可能会让他们遇到同样的挫折感,这是你努力解决的问题。

然后,找到其中一些人并提供您的(部分)解决方案,并且您会在其中产生兴趣和建议。

这会让你继续你的项目。同胞的兴趣,分享,甚至分歧 - 这是需要软件的人!不要创建寻找问题(人)的解决方案(软件)。你从你开始,满足你的需求或愿望,但专注于代码,并失去了项目的动力。

解决问题时,编程更有趣。但是你需要把问题保留在你面前。分享问题构建社区。这就是真正的全部,不是吗?

0

所有上述情况,但开始不断加强在地方规划.....

去一些工具 SmartSheet - 即使你是你自己的工作,你应该设置一些阶段和日期 来自www.yworks.com的yEd - 和Graphity

相关问题