我最初开始使用一个小项目,编辑php文件,例如在记事本++中.过去很容易想到一个功能,并将其作为单独的文件添加到项目中.随着项目变得越来越大,我的生产力开始下降,因为我记不起我所做的所有功能,以及它们存储在哪里等等......然后,我添加了一个IDE(PhpEd)和SVN,然后注意到了大大提高了生产力.
我发现自己的工作效率再次降低(因为一切都变得太复杂了).这个项目大约有20个左右的文件 - > 100个文件,并且变得难以管理(即使使用IDE) .我想知道人们是否就如何再次提高生产率所做的建议.(下一个级别是什么?如果有的话)
关于如何进行程序设计的任何软件工具或技巧/至少可以使事物更容易可视化?
我知道没有银弹,但任何想法都会有所帮助.
例如,除了IDE/SVN之外,你们是否使用某些工具来度过这一天.另外,你是否以某种方式编写代码,以便将来不会出现问题?(详情请).
Pau*_*ulo 12
绘制和/或写出来.如果你说它"全在你脑中",那么请花一些时间远离编码并记录你的工作.这可以包括解释你为什么做某事的段落.
图表和其他视觉效果也将帮助您保持井井有条.
我发现一些程序员忽略了项目中的非技术因素.对于没有组的结构来指导它们的单独开发人员来说尤其如此.您的工作不仅仅是代码,您应该查看流程的所有方面.
永远不要为在记事本中编辑代码感到自豪!IDE节省您的时间并提高您的效率.当项目变大时,您应该关注项目管理并坚持高效的"流程模式",例如RUP(Rational Unified Process),EUP或OOSP.您的SVN是SCM的一部分.当然,模式中定义的活动要多得多.对于文件管理问题,您可以将它们分成不同的包并将它们保存在不同的位置.如果您对"软件工程"一无所知,可以参考Scott W Ambler或其他人撰写的有关SE(软件工程)的书籍.请记住,软件远不止代码!
一个优秀的开发人员知道开发比编程更多.一个伟大的开发人员知道开发比开发更多.作者:Scott W Ambler
测试驱动开发可能对您有用.
首先构建测试,然后编写代码以通过这些测试.
当您添加/更改任何代码时,请运行回归测试套件以确保您没有破坏某些内容.根据我的经验,这可以节省大量时间,特别是当应用程序的复杂性和大小增加时.
冷酷的事实是开发人员的效率会随着项目规模而下降.这已经数十年了.有一些方法可以帮助,但它们确实需要一些纪律.
最好的解决方案是进入更高的抽象级别.编写将用作构建块的例程,您可以将它们用作标准库或语言构造.记录其接口,并仅对接口进行编程.如果你觉得你需要知道你没有使用的例程是如何实现的,那么你要么使用它错误,要么没有足够的文档记录.添加到界面的速度很慢,删除任何内容的速度都很慢,请记住,更改它的元素会让你感觉很糟糕.
地方是你的朋友.你越专注于一个小区域,你就越好.接口编程有助于此.保持惯例的凝聚力有助于实现这一点,因此惯例一次只做一件事.
面向对象非常有用,因为它促进了上述两个方面.它促进了对接口的封装和编码,并将相关的代码片段组合在一起.
测试驱动的开发对于强制执行接口编程很有价值.根据接口编写测试,而不是基于实现.这具有良好的副作用,测试套件本身有助于定义界面.如果没有进行测试,则不要指望它.确保您可以轻松运行测试套件,并养成习惯.
重构是必要的.计划,特别是在改变任何事情时.你需要干净的代码.此外,您将不可避免地发现您已将功能放在错误的位置.
还要记住,这一切都不会完全解决问题.大型软件项目本质上很难.
我曾经在一个拥有大约一百万行代码(C#,C++)的项目上工作,而且它还在不断增长.
1)为了管理这样的代码库,svn存档的文件夹结构是以模仿我们产品的各种架构层的方式创建的.这样,通过存档找到我们的方式就变得更容易了.
2)我们也有自己的自定义构建工具.如果您拥有庞大的代码库,那么在您想要测试小功能时随时构建所有内容可能是不可行的.我们的自定义构建工具有很多选项,可以以任何粒度构建存档.
3)通常我观察到的是,如果你正确地获得了通用功能/助手,那么在它之上构建新东西变得更容易并且也避免了代码膨胀.
4)如果开发项目的开发人员数量更多,请设置wiki.如果做得好,Wiki文档很容易,搜索能力和帮助.
这就是我现在所能想到的.希望这可以帮助
| 归档时间: |
|
| 查看次数: |
866 次 |
| 最近记录: |