我如何判断一个项目是否特别复杂,或者我刚开始才很慢?


16

我在大型项目上进展不大。源头是巨大的,有许多层物体,通心粉代码,多重继承的双钻石图,原始作者离开时冻结的半生不熟的功能,而且没人知道为什么如此设计很多东西。

我想任何有能力的程序员都会遇到一些麻烦,要想尽一切办法解决错误,完成未完成的工作并添加新功能。但是,我怀疑我会比典型的程序员慢。

我如何判断消息来源是否异常糟糕,我是否做到了任何人都能做到的,而消息来源对于这样的项目来说是典型的,而我只是机智或技能不足?


11
了解他人的代码是一种移情。忘记了要走多快,也忘记了编写代码的人一堆笨拙的东西。弄清楚这是一项灵活性练习。假设消息来源异常糟糕,并且您的技能过高,请重新开始工作,并停止在这些愚蠢的论坛上乱搞。这也适用于我...我有纠缠的代码。
Dan Rosenstark 2010年

2
当所说的人是老板,老板的兄弟,老板的老板或老板的侄子等时,尤其要忘记“什么……”!
DarenW 2010年

2
啊,缺少“为什么”。当记住它们时,请记住将它们放入。

@DarenW-这是意大利面条代码,而不是通心粉代码:D(对不起,我必须这样做)。
Jas 2010年

1
@Jas谷歌通心粉代码...还有更多类型的面食不仅仅是面条;-)
于尔根A.艾哈德

Answers:


6

决定该问题的唯一方法是招募更多的程序员来解决同一问题,然后看看他们的表现是否更好。

当然,这几乎是不切实际的,任务已经落到了您的善行上,并提供了您正在竭尽所能的方法,研究您的知识在哪些方面失败了。打破复杂性困扰您的地方,并让任何关心您进度的人知道。 我就不用担心并坚持下去。


16

首先,我不会花太多时间担心您可能“机智低落或技能不足”。有些项目很难掌握,大型项目通常需要一些时间才能快速掌握。认为自己“愚蠢”或没有完成任务不会以任何方式帮助您。

听起来您需要代码方面的帮助,因此请考虑您的资源。您可以使用原始编码器吗?如果它们可用,它们可能是很好的信息资源。有哪些可用的文档?如果缺少文档,请拿出笔记本并开始创建自己的个人文档。

这里的一个大想法是,您应该期望这个过程会花费一些时间,并且您花费在精神上殴打自己的时间越少,您就越需要精力来分析代码并加以解决。祝好运!


5
+1可能需要6个月以上的时间才能真正开始了解足以精通这些系统的一些复杂系统。即使代码库是“好的”,不同的开发人员和团队也会有不同的风格,有时花点时间才能弄清楚。
瑞安·海斯

3
@Ryan,之后的6个月,您自己就成为了问题的一部分:)
Benjol 2010年

@Benjol是的,我去过那里。
瑞安·海斯

FWIW,当我去过这条船时(几次!),我发现经常休息一下比只坐着钻研代码更有帮助。稍事休息时,起床并从计算机上移开。伸展一下,看着窗外,想一想刚才看过的东西,然后再回头看一下。YMMV,但是当我这样做时,我发现自己取得了更好的进步。祝好运!
TMN 2010年

+1用于创建您自己的个人文档。当我进行这项工作时,我发现做很多笔记(无论是在代码中还是在纸上)和绘制很多图表(在当时通常只对我有意义)。所有这些的另一个优点是您可以自己增强概念。
Andy Hunt

6

见过学习曲线。 学习库尔斯

理论认为,起步确实需要时间。诀窍是快速通过升压点。如果您经常遇到困难,请向经理寻求帮助,或者至少让他/她了解您所遇到的问题。只要您可以按计划进行就可以了。


2

一次解剖一次

您的情况很普遍,“难以控制”时间需要时间,就像其他人已经提到的那样。

我发现的是,如果您一次“解决”一个问题,那么不管项目有多复杂,您都可以解决。您只需要对此保持逻辑。

首先说一个按钮,深入研究源代码,放置断点,然后逐步查看发生了什么。您需要完成两件事:

  • 高级概述。
  • 实现上述所需功能的具体细节。
  • 一旦理解了其中的一部分,就可以对其进行重构。

“一次一件”可能会在其他项目上起作用,但是它有很多派生自其他类的类,朋友类,指向彼此内部的指针,只有很少一部分可以独立理解。
DarenW 2010年

我确信它是一个复杂的迷宫(随着时间的流逝而逐渐增长的东西)。但是,如果您从一个功能开始,您是否告诉我您无法从头到尾追踪它?
2010年

事实证明,跟踪数据流或用户单击按钮时的事件序列是不可能的。
DarenW

1

如何采取不同的看法:您需要了解有关此代码的哪些信息,您有办法对其进行衡量吗?例如,如果您尝试修复错误,则可能需要与尝试将代码从一种语言迁移到另一种语言(例如,从VBScript到C#)进行不同的尝试。如果您试图使所有要求脱离当前代码,那可能要花一些时间,尽管我怀疑大多数人都会遇到这种问题。


我喜欢这个评论。一个人应该有一个特定的目标,并努力实现这一目标。否则,您会迷失其中-非常像地图一样。
NoChance 2011年

1

在学习新知识的同时,许多学生会认为:“该死,这对我来说很难。我不知道如果我笨。”
之前去更远的地方,保证自己,你是不是愚蠢的,有些事情是很难的。…

亚伦·希勒格萨斯先生说的很聪明。

你不傻,不慢,也不熟练。我在同一条船上,我担任了一个新角色,现有的代码库非常庞大,并且显示出反复开发过度的迹象,花了我数周的时间才能达到使我什至感觉得到的状态接近全速。想象该项目就像学习一门全新的语言,这不是一overnight而就的,而是需要耐心。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.