SFW*_*olo 12 project-management
我几年前在CS毕业后,最近开始从事软件开发工作.我目前正在进行的项目是一个大型的正在进行的项目,它起源于90年代,混合了C,C++和Java.支持多种平台(UNIX,WIN等),使用的旧技术如CVS,以及某些领域的一些日期文档.
我的软件开发技能的范围源于上大学,因为我没有真正的世界经验.我觉得我在CS中有一个不错的基础,但我不得不感到有点不知所措.我很高兴能成为如此巨大的事物的一部分,但与此同时,我觉得要吸收很多信息.
我的同事一直很棒,回答了很多问题.我的雇主雇佣我知道我是入门级的.
我已经尝试过探索源代码并检查所有内容是如何构建的,但它的规模是我以前从未见过的.
在加入正在进行的大型项目时,更有经验的人如何定位自己?在让自己加快速度的过程中,您需要完成哪些常见任务?
好问题.我没有你的确切经验,但在这种情况下,我喜欢思考,"你怎么吃鲸鱼?" 答案是(可预见地)"一次咬一口".合理的人不会指望你立即掌握整个事情,但他们希望看到进步.也许大项目的一些小区域不太复杂,没有太多的依赖关系.努力理解其中一个,你就是一个"咬"(和/或"字节")更接近整个项目的专业知识.
熟悉所有现有文档,我会尝试全局了解.从字面上看.
我会用GrandPerspective Mac或WinDirStat在Windows上.它将为您提供有关项目文件结构的一些见解(有时它会提供有关代码结构的一些提示).有了这个,你可以向你的同事询问一些集群,他们做了什么,他们如何相互关联.
如果您要进行任何更改,这对于始终进行编译非常重要.在构建时执行测试总是一件好事,所以也要求它.如果有某种持续集成服务器就更好了.如果有,请查看其配置 - 弄清楚构建是如何完成的.如果没有CI服务器,但您已经掌握了如何构建项目的知识,请在本地计算机上创建这样的服务器,并将其显示给您的同事 - 他们应该爱上它.
这对Java项目尤其有用.这个工具做得很好.这将为您提供有关代码结构的更多详细信息,有时还会提供有关系统体系结 这种体验有时可能很难,你可以从这个工具中学到一个代码基本上是一个泥球大球 ;)
如果你很幸运,可能会有一些JUnit或CPPUnit测试.尝试理解这些测试正在做什么总是好的.这可能是进一步探索代码的良好起点.