我最初是从一个小项目开始的,用notepad++编辑php文件之类的。过去很容易想到一个特性,并将其作为一个单独的文件添加到项目中。随着项目变得越来越大,我的工作效率开始下降,因为我不能记住我做的所有函数,以及它们存储在哪里等。然后,我添加了集成开发环境(PhpEd)和SVN,然后注意到工作效率有了很大的提高。
我发现自己的生产力再次减慢(因为一切都变得太复杂了).The项目已经从大约20个文件--> 100个文件,变得难以在我的头脑中管理所有文件(甚至使用集成开发环境)。我想知道人们是否有关于我可以做些什么来再次提高生产力的建议。(下一级是什么?如果有的话)
有没有软件工具或小贴士教你如何进行程序设计/至少让事情变得更直观?
我知道没有什么灵丹妙药,但任何想法都会有所帮助。
例如,除了IDE/SVN之外,你们还会使用某些工具来打发时间吗?另外,你是否以某种方式编写代码,这样这在将来就不会成为问题了?(请详细说明)。
发布于 2009-09-18 14:11:19
冷酷的事实是,开发人员的效率将随着项目规模的下降而下降。这一点早在几十年前就已经知道了。有一些方法可以帮助你,但它们确实需要一些纪律。
最好的解决方案是进入更高的抽象级别。编写将用作构建块的例程,您可以将其作为标准库或语言构造来使用。记录它们的接口,并且只对接口进行编程。如果你曾经觉得你需要知道你没有在工作的例程是如何实现的,你要么使用错误了,要么没有对接口进行足够的文档记录。缓慢地添加到界面,缓慢地删除任何东西,并记住,改变它的元素可能会严重影响你。
地点是你的朋友。你越能专注于一小块地方,你就会过得越好。对接口进行编程有助于实现这一点。保持例程的内聚性有助于实现这一点,因此例程一次只做一件事。
面向对象是非常有用的,因为它促进了以上两个方面的发展。它促进了接口的封装和编码,并将相关的代码片段组合在一起。
测试驱动的开发对于强制对接口进行编程很有价值。基于接口编写测试,而不是基于实现。这有一个很好的副作用,那就是测试套件本身有助于定义接口。如果它没有被测试过,你就不能指望它。确保你可以轻松地运行测试套件,并养成这个习惯。
重构将是必要的。做好计划,尤其是在改变任何事情的时候。你需要干净的代码。此外,您将不可避免地发现将功能放在了错误的位置。
还要记住,所有这些都不会完全解决问题。大型软件项目本质上是困难的。
发布于 2009-07-01 03:49:28
绘制和/或写出它。如果你说“一切都在你的脑海中”,那么从编码中抽出一些时间来记录你的工作。这可以包括解释你为什么要做某事的段落。
图表和其他视觉效果也可以帮助你保持条理清晰。
我发现一些程序员忽略了项目中的非技术因素。对于没有团队结构来指导他们的开发人员来说,这一点尤其正确。您的工作不仅仅是代码,您应该查看流程的各个方面。
发布于 2009-07-01 03:47:25
永远不要以在记事本中编辑代码为荣!IDE可以节省您的时间,提高您的效率。当项目变得很大时,你应该注意项目管理,并坚持一个有效的“过程模式”,如RUP (Rational Unified Process),EUP或OOSP。你的SVN是供应链管理的一部分。当然,对于文件管理问题,在Pattern.As中定义的活动要多得多,您可以将它们划分为不同的包,并将它们保存在不同的位置。如果你对“软件工程”没有任何概念,你可以参考一些Scott W Ambler或其他人写的关于SE(软件工程)的书。记住,软件远不止是代码!
一个优秀的开发人员知道,除了编程之外,还有更多的事情要做。一个伟大的开发者知道开发比开发更重要。 By Scott W Ambler
https://stackoverflow.com/questions/1067160
复制相似问题