Project management 当你';你突然被抛到一个大项目上?

Project management 当你';你突然被抛到一个大项目上?,project-management,Project Management,几年前从CS毕业后,我最近开始了软件开发的职业生涯。我现在的项目是一个大型的正在进行的项目,它起源于90年代,混合了C、C++和java。支持多种平台(UNIX、WIN等),使用CVS等较旧的技术,以及某些领域的一些过时文档 我的软件开发技能的程度源于上大学,因为我几乎没有实际经验。我觉得我在CS中有一个不错的基础,但我不能不觉得有点不知所措。我很兴奋能成为如此巨大的事情的一部分,但同时我觉得有很多信息需要吸收 我的同事都是很棒的人,他们回答了我很多问题。我的雇主雇佣我时知道我是入门级的 我试着

几年前从CS毕业后,我最近开始了软件开发的职业生涯。我现在的项目是一个大型的正在进行的项目,它起源于90年代,混合了C、C++和java。支持多种平台(UNIX、WIN等),使用CVS等较旧的技术,以及某些领域的一些过时文档

我的软件开发技能的程度源于上大学,因为我几乎没有实际经验。我觉得我在CS中有一个不错的基础,但我不能不觉得有点不知所措。我很兴奋能成为如此巨大的事情的一部分,但同时我觉得有很多信息需要吸收

我的同事都是很棒的人,他们回答了我很多问题。我的雇主雇佣我时知道我是入门级的

我试着翻遍了源代码,检查了所有的东西是如何构建的,但它的规模是我从未见过的


更有经验的人在加入一个正在进行的大型项目时如何定位自己?当你提高速度时,你通常做些什么?

好问题。我没有你的确切经验,但在这种情况下,我喜欢想,“你怎么吃鲸鱼?”答案是(可以预见)“一次咬一口”。通情达理的人不会期望你立即掌握整个事情,但他们希望看到进展。也许大型项目中有一些小的领域并不太复杂,没有太多的依赖关系。努力理解其中的一个,你就更接近于整个项目的专业知识。

熟悉所有现有文档,我会努力了解全局。真的

  • 生成源代码的一部分
我会在Mac或Windows上使用。它将为您提供一些关于项目文件结构的见解(有时它会提供一些关于代码结构的提示)。有了这些,你可以向你的同事询问一些集群,它们是做什么的,它们之间的关系如何

  • 了解如何构建项目
如果您要进行任何更改,那么让它一直编译是很重要的。在构建时执行测试总是一件好事,所以也要这样做。如果有某种服务器的话就更好了。如果有,请查看它的配置-了解构建是如何完成的。如果没有CI服务器,但您已经掌握了如何构建项目的知识,请在本地计算机上创建这样一个服务器,并将其展示给您的同事,他们应该会爱上它

  • 使用或类似工具浏览源代码
这对于Java项目尤其有用。这个工具做得很好。这将为您提供更多关于代码结构的详细信息,有时还会提供关于系统架构的详细信息。这种体验有时可能很难,您可以从这个工具中了解到,代码基本上是一个;)


  • 寻找测试,并探索它们

如果幸运的话,可能会有一些JUnit或CPP单元测试。了解这些测试在做什么总是好的。这可能是进一步探索代码的一个很好的起点。

我同意第一条评论,但我也认为您必须以某种方式学习和了解全局。您必须至少从代码跟踪主流

我的同事都是很棒的人 回答很多问题,我的 雇主雇用我时知道我是 入门级

你没什么可担心的,你的雇主知道你有什么能力,你的同事似乎很乐意帮助你——老实说,大多数开发人员都喜欢向别人解释事情

从我所看到的,真正需要6年以上的时间才能完全掌握一门语言,所以不要期望在一年内成为大师。。。甚至这些所谓的大师们每天都在学习新的语言

学习一个新的系统(大型)总是需要时间。。。。这些系统通常不是在两周内建成的,而是在多年之后建成的,所以不要期望完全理解它。你最终会发现每个部分都是一块一块地做什么的

我知道你的感受,因为我曾经有过这样的感觉…

“我参加了一个速读课程,在二十分钟内读了《战争与和平》。它涉及到俄罗斯。”(伍迪·艾伦)


我同意别人在我之前说的话。您需要一些工具来概述代码。我个人使用inFusion(),因为它还提供了除结构之外的其他有趣数据。

对我来说最有效的方法是从源代码管理中获取一个副本,目的是扔掉这个版本

然后尝试重构代码。如果您可以重构您知道将在稍后阶段处理的代码,那就更好了

这之所以有效,是因为:

  • 重构为您提供了一个目标。而“玩”一个“破坏”代码是伟大的-它是不集中的
  • 要重构代码,您必须真正理解代码
  • 重构后的代码在内存中保留的概念更少。如果你不理解一个庞大的代码库,那不是因为你是一名毕业生,而是因为没有人一次能保留超过7个(给出或获取一些)概念
  • 如果您遵循正确的重构准则,这意味着您将编写测试。尽管如此,请确保您将在您正在测试的模块上工作,因为编写测试可能非常耗时(尽管非常有益)
一定要在某个时候投资购买这本书:

但这些链接应该让您开始:

表明您的代码需要重构以及要使用什么重构(摘自重构-Martin Fowler)

代码气味的分类:


祝你好运

我几次都处于完全相同的境地