担心发布一个业余项目-如何克服?[关闭]


37

我不知道这个问题是否与软件开发完全相关,但我还是尝试一下:

像很多程序员一样,我喜欢从事业余项目。有时候,看似好的主意结果并不是那么好,所以我放弃了这个项目。但是有时候,项目会产生一些有用的东西。所以,我可以将其发布,然后发布给全世界,对吗?

错误。不知何故,我似乎无法执行此步骤。我担心我的代码不够好,我总会想到次优的事物和可以添加的功能。因此,我什么也不释放,我失去了兴趣,并一度放弃了该项目。

这正常吗?您如何克服这种情况?


11
好吧,对您来说已经足够了,“他们”可以免费获得它,那么他们为什么要抱怨?
约阿希姆·绍尔

42
“我担心我的代码不够好”-如果您回顾昨天所做的事情,并且对此感到满意,那么您就没有改进。
罗杰·利普斯科姆

9
如果它可以正常工作并且不是完全的意大利面条,则将其释放。以我的经验,所有代码都会受到批评,要习惯它。微软发布了用于合并到Linux中的全部代码。我似乎记得它被送回去整理,最后只剩下一半的行。我每天都看我的代码,然后想:“天哪。我写了吗?Doh!
Jaydee 2012年

4
没有人们的抨击,它永远不会变得更好。去吧!
斯科特·威尔逊

4
你希望!如果有人甚至注意到您已经发布了一些代码,您应该认为自己很幸运:)
Benjol 2012年

Answers:


51

首先,请记住:送货是一项功能。放出一些不完美的东西总比不放任何东西要好。

要注意的另一件事是这些是Hobby项目。如果您没有按时完成任务或失去兴趣,这没什么大不了的。毕竟,您正在做这个项目很有趣。


23

把它放在那里。

使用诸如GitHubBitbucket之类的社交编码网站进行此操作并不难。您将要使用的大部分内容可能不会被大量使用,但这没关系。在这些社交编码网站中,这几乎是很正常的事情,许多项目被放弃(甚至是一些有用的项目)。但是最重​​要的是,其他人可以摘走您剩下的(如果您拥有许可的许可证)。

即使您的东西可能不会被其他任何人使用,为什么仍然应该将其淘汰还有几个好处:

  • 您将学习使用版本控制,这是许多程序员都不知道的方式,这使您更容易上手
  • 人们可能会为您指出问题;您有所有机会学习如何以不同的方式做事
  • 您将拥有一份在线工作资料集,非常适合作为简历的补充

3
“人们可能会为您指出问题” +1,这是将代码作为开放源代码提供的巨大好处。
安德鲁·汤普森


6

基本上,我不会担心人们是否喜欢我的代码。如果它对人们有用,请以免费许可证发布它,但是他们发现错误,不理想的解决方案并且需要更多功能,因此他们可以自行修复。使用GPL或LGPL还可以使您找到这些修复程序,并且如果发现它们有用/合适,则可以自己应用它们。


5

很抱歉,您所做的与您应该做的完全相反!

尽快发布它,听取人们的反馈,然后基于此实现新功能。并非相反!


只有在尝试优化可用性时才如此。行动党显然在努力使街头信誉最大化,或至少使尴尬最小化。
卡勒布(Caleb)2012年

2
@Caleb:总是如此。我们的目标始终是交付产品,永远不要编写代码!
Thomas Bonini 2012年

别忘了,版本控制使人们可以看到代码中的改进。看到某人开始使用错误的代码,但能够将其塑造成一个漂亮的示例,这表明a)他们可以学习,b)他们愿意改进旧代码而不是忽略它
Aren 2012年6

4

你要失去什么?

您也可以安慰一下,除非它真的很好或者填补了一个新的市场,否则无论如何它都不会被注意到。

而且,如果您获得负面反馈-这是学习的机会。请不要浪费它。


“无论如何它可能不会被注意到”。不幸的是,非常正确。
user16764 2012年

3

完全正常,在软件以外的任何领域也是如此。确保它在几种不同的环境中构建,编写自述文件并将其扔到github / codeplex / etc中。第一次解决这个问题是克服焦虑的唯一方法。

第二,第三和第n次是乐趣所在!


1

这是发布未完成的软件的原因之一:开始建立社区。如果您希望您的项目成为有用的开源工具,则需要其他开发人员。吸引他们的一种方法是尽早发布它,然后继续(公开)进行改进。不要秘密添加这些功能-在Github页上或任何地方公开进行操作。这会在历史中产生活动。

其他开发人员不想从事一个显然被放弃的项目。因此,在公开场合进行开发工作表现出积极的,持续的兴趣。值得故意保留一些功能,以便您可以在公共场合添加它们。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.