我正在接管别人的代码。有什么好方法可以学习程序员尽快完成的工作?我一直在运行它,踩过它看着callstack。我还能做什么?
抱歉,我忘了提及,但文档很少,我一直在努力修复简单的问题。谢谢!
答案 0 :(得分:10)
设置记录以观察发生的事情的顺序。
请在此处阅读:Hired as a developer to maintain and update current code base, no docs!
答案 1 :(得分:6)
开始编写单元测试,因为这会让你使用他的类/方法,你会做两件事,学习它,找到错误或准备工具以防出现错误。
答案 2 :(得分:5)
修复一个简单的问题。
编辑: 然后解决更大的问题,并开始编写您理解的领域的文档和单元测试。建立在这些领域,有一天你可能会理解整个系统。
答案 3 :(得分:5)
通常最好的方法是开始处理修复小错误的代码。花在它上面的真实时间是学习代码库的唯一方法。学习代码库没有神奇的方法。这将需要数周,数月或可能数年,具体取决于复杂程度。然而,对于大多数通用业务系统而言,增加时间约为6个月的代码知识,6个月的行业知识分开,以真正理解所有这些知识。
答案 4 :(得分:4)
文档?读取代码本身,而不是在调试器中运行?
除此之外,你正在做我想做的事。
答案 5 :(得分:2)
如何快速了解别人的代码,没有灵丹妙药。特别是如果它充满黑客并且没有可用的文档。
您应该尝试了解类结构,并使用调试器帮助执行软件的正常流程。
不要跳过太多代码部分“哦,我想我知道这部分的作用”。不,你没有。您会对我们在代码中找到的“创新”感到惊讶。
答案 6 :(得分:1)
记录可以很好地查看代码的作用。
如果您有版本控制系统,您可以查看程序员对代码片段所做的更改,浏览一些历史记录。
我觉得有时候尝试理解程序员的代码风格很有用,这有助于我理解他如何思考问题并解决问题。
答案 7 :(得分:1)
我要做的第一件事就是看一下最简单的对话框及其代码,主要是分析编码风格,看看开发人员更喜欢如何安排代码。
一旦你知道了编码风格,并且大致知道文件中存在的所有内容(或者如果随意放置内容 - 即使这有助于了解),也可以更轻松地完成所有其他工作。
答案 8 :(得分:1)
如果可以(与最终用户或其他必须使用其代码的开发人员),请与其他人的代码的用户交谈。这将让你对其他人的代码质量有所了解 - 它是仅仅发布了一些错误还是需要6个月的修改来实现它?开发人员是否小心翼翼地制作一个精美的应用程序,还是一团糟?这应该会让你知道是否需要稍微调整一下代码或者开始替换它的大块。
答案 9 :(得分:1)
我喜欢开始在代码的方法中添加测试,如果它们还没有。弄清楚如何覆盖代码可以让您深入了解代码路径,预期输出应该是什么等等......
答案 10 :(得分:1)
其他人所说的一切都是准确的学习编码器所做的事情。
另一种看待它的方法是学习程序本身。像用户一样深入了解应用程序,并了解程序本身的功能。一旦你彻底理解了最终系统,就可以更容易地弄清楚它的编写方式和原因。
答案 11 :(得分:1)
我开始的第一个地方是数据库。
根据我的经验,理解数据模型是在您完成代码时为您提供上下文的关键。 (这假设数据模型不是通用键值通用实体表)
答案 12 :(得分:0)
我发现在我开始修复bug /修改它之前我不会完全学习代码。如果原始程序员仍在那里,那么在实现它们之前讨论这些变化会有所帮助。
答案 13 :(得分:0)
记录你对课程,功能等方面的了解也不会有什么坏处,只有下一个人(或其他人被雇用同样的东西)。
此外,当我之前完成此操作时,我发现最好在尝试理解代码之前使用该程序。可能听起来很明显,但在此之后,你所看到的更多内容才有意义。正如其他人所建议的那样,单元测试也可能以同样的方式提供帮助。 (当你有足够的信心进行重构时也很有帮助。)
答案 14 :(得分:0)
有助于我更快学习系统的一件事就是自己编写文档。
答案 15 :(得分:0)
我想知道代码的作用,编写高级别解决的问题是一个好的开始。有了这个,那么在精神上,在高层次上也可以设想如何使用所使用的类型工具来解决这样的问题。
从那时起,查看代码将具有一定的意义,它将有助于实现原始开发人员的思想。此外,当你迷路时,你会很快发现。
我也相信代码应该记录自己,因为我的经验大多数时候是代码之外的文档,大多数时候与代码不同步,可能会产生误导。所以这里和那里有一些评论,类标题,方法评论也应该有所帮助。
我第一次继承另一个人的代码,两天后我患了偏头痛,我是个噩梦。
所以玩得开心。
答案 16 :(得分:0)
我去年大部分时间都在处理从别人那里继承的代码。没有文档和系统的大量内容没有记录在任何地方,而是在客户端。对我而言,关键在于尽可能多地提出问题并从每个可用来源收集信息。我建议您随时编译自己的文档。
许多人可能会说不重写代码,但如果代码评论不当或编码(不是自我记录),这通常是最好的方法。对于我努力解决的代码,它通常是最好的解决方案。
另一个有用的事情是在你开始之前的某种标准文件。标准文档将帮助您破译代码或使代码符合规范并使其更易于理解。