我想知道,当你是自己的老板时,你们是如何开发大型应用程序的。对我自己来说,我一直在用艰苦的方式学习耐心和希望的必要性。我一直致力于实现一个应用程序(以链接到数据库的一系列脚本的形式),该应用程序结合使用Wikilinks和文章文本/内容的知识对Wikipedia文章进行集群。我已经做了两年了,还没有结果。
我似乎不能得到任何结果,因为我不断地重新设计我的脚本和数据库,因为算法的本质(伪代码,理论算法)或形式(脚本,线程,数据库表,实用算法)的变化。基本上,我发现自己不断地从实现过程中发现的错误中学习;魔鬼在细节中,答案似乎也是如此。
无论如何,每次我重新设计脚本或表或其他东西时,我都需要丢弃所有的文档和脚本。我现在可以毫无畏惧地做到这一点,但这让我讨厌编程(我讨厌细节)。
我觉得重新设计是必由之路,因为我从长远考虑,我希望快速学习,但我想知道你们是否有类似的编程经验,或者你们是否真的需要或选择从上一个(如凤凰)的死亡中走出一个更好的脚本。
对我来说最困难的部分是整理我的文档,因为我花在文档上的时间比编码更多;我使用文档作为讨论问题和考虑解决方案的手段;我使用它来制定可实现的解决方案。如果只是对我来说,我不会介意刮掉它,但我总是把它写得就像是在下周发表一样,因为在开发脚本的同时,我也在寻求发展自己;我也像你们中的那些参与这个网站的人一样,尝试与他人分享我的知识或智慧。
无论如何,在过去的两个月里,我一直在全速开发,重新设计了无数的论文、脚本、表格等;我的耐心正在下降,因为我寻求结果。
有什么策略,有什么帮助,有什么经验或轶事要分享吗?
发布于 2008-12-30 02:49:56
记录开发日志;这是与自己讨论细节的地方,在纸上解决问题,绘制文档,记录当前和未来的问题,提醒自己已经尝试过什么和还需要尝试什么,等等。记住“下一件事”是什么也是一个好主意,这样当你有时间去做的时候,你就不会浪费时间去记住/复习它。注明每个条目的日期。
我已经在一些长期的,有时令人沮丧的,一个人的项目中使用了这种方法,持续时间从几个月到几年不等,它帮助我保持专注,它帮助我避免多次尝试某事。
它还消除了记录所有内容的内部压力,这可能对您有很大的好处。
这样想:对你所做的事情给自己做的笔记对你很有用,但是为第三方准备的详细文档是在浪费你的时间。
也许这会帮助你的OCD文档神经元闭嘴,这样你就可以完全解决问题,然后记录工作解决方案-而不是不断地重新记录最新的原型。
发布于 2008-12-30 02:53:49
编程中一个很好的座右铭是“愿意并乐于扔掉所有东西至少一次”,通常是更多。我目前正在为一个新的操作系统从头开始编写一个完整的shell,我即将完全废弃部分设计,我不喜欢我处理内置命令和可加载模块化命令的方式。
听起来像是你一头扎进水里,头先上..很高兴能写出一些代码。据我所知,你确实花了一些时间在伪代码上(我甚至用了一个大的干抹板)来确定你的代码的结构。但代码无法在上述结构的根本性变化中幸存下来。
也许有一些很好的理由可以解释为什么你完全孤立地工作。如果可能的话,就像其他人建议的那样,让其他人来理解你希望实现的最终结果,并敲定一个新的设计。请记住,你的应用程序已经被证明是相当易变的,新的设计不应该因为一些改变而让你丢弃所有东西。
我认为你也是所谓过早优化的牺牲品。试着把一些有用的东西放在一起,即使它非常低效和笨拙,然后真正花一些时间看看如何改进。这一步几乎是一种新设计的先驱,可以在未来经历根本性的变化。如果你不能引入其他人,那么你当前所犯错误的工作模型几乎和另一个合作者一样好。
发布于 2008-12-30 02:42:53
既然你是单独工作,试着从其他人那里获得反馈,这些人足够了解你想要做什么。你会对其他人能想出的东西感到惊讶。
当为薪酬工作时,这会稍微容易一些,因为你必须得到客户的接受,这并不像你目前的情况那样开放。
https://stackoverflow.com/questions/399380
复制相似问题