6

这里的评论让我思考。如果您是一名新开发人员,没有导师,也没有人为您的项目进行协作;一个工具,在这种情况下是ReSharper ,是否能够发挥这种作用?它是否需要另一个工具或过程、系统或人来完成此任务。

我无法很快找到一个开发伙伴,而且我担心 StackOverFlow 会在我用完无知的问题之前很久就禁止我。就我而言, ReSharperStyleCopReFlector等工具能否发挥重要作用。

ReSharpers案例中,重构功能是否真的从学习的角度发挥作用,或者仅仅是*poof*您的代码更好,几乎没有机会了解为什么我应该提取该方法存根?

我非常想达到我能够在这里回答尽可能多的问题的地步。

祝您有美好的一天,感谢您的宝贵时间。


根据迄今为止的答案进行编辑:

因此,如果答案是否定的,它不会完成这些事情,而且我不会很快得到一个真正的 人,任何人都可以提供替代方案吗?

谢谢你!

4

14 回答 14

5

我会说不。ReSharper 通常会为您提供更改某些内容的选项(例如“作为扩展方法调用”),然后如果您接受它,它会为您提供将其更改回来的选项。

当您知道要更改代码时,这很好,但它并不能说明您为什么要更改它。有一些建议更“明显好”,但距离拥有导师还有很长的路要走。

不要误会我的意思:ReSharper 是一个很棒的工具,它可能会为您节省大量时间,但它可能不会改进您的设计和实施技能。它将帮助您更快地掌握这些技能。

不过,不要担心在这里问很多问题——我们喜欢它:)

于 2009-02-12T21:24:13.027 回答
5

好吧,它并不能帮助您编写更智能或设计更好的代码。但它确实可以帮助您清理杂乱的代码并帮助您坚持一些最佳实践。但是您应该知道,某些设置默认情况下并不好。例如,它给了我关于如何使用 'var' 而不是它的真实类型的提示。在许多情况下,我认为这不合适。

例如,您可以将 resharper 与 fxcop 结合使用。这样它可以保持你的风格干净。对于其他指导类型的事情,我会推荐“Uncle bob”的“干净代码”副本。那本书让你真正思考函数应该做什么。

然后你应该进入架构并阅读一些关于它的文档。没有工具可以检查您是否正确执行了这些操作。

导师仍然是改进代码的最佳方式,但 resharper 和 fxcop 将使您能够根据约定编写更简洁的代码。因此,当老年人检查您的代码时,他们会说“WTF”是一回事:)

于 2009-02-12T21:26:39.790 回答
3

ReSharper 不能替代真人。

替代方案:结识其他开发人员、加入用户组、参加极客午餐、Code Camp、网络。

小团体聚在一起后,安排出去喝啤酒,聊会儿商店。喝几杯啤酒就能学到很多东西,真是太棒了。

于 2009-02-12T22:29:21.653 回答
2

我的意见是:见 jon skeet 的回答

如果 resharper 可以回答关于 SO 的问题,它会告诉你同样的事情

于 2009-02-12T21:25:46.593 回答
2

我想说 resharper 永远不会取代让另一个开发人员指导你的经验,但你会从 resharper 中学到很多东西。如果你没有导师可以学习,另一个可以教你很多东西的工具是一个名为 NDepend 的应用程序。NDepend 将分析您的代码并提出重构建议,并向您展示可以在哪些方面做得更好。

我建议您同时使用这两种工具,您将学到一些非常有价值的课程!祝你好运!

于 2009-02-12T21:55:30.160 回答
1

在重构方面,Resharper 和你一样好。如果您不知道为什么要提取方法或其他什么,那么您只会在错误的地方和错误的原因中进行操作。它不会使事情变得更可维护或可扩展或任何其他伟大的承诺。你必须知道你在做什么。

于 2009-02-12T21:22:36.977 回答
1

Resharper 是一个很棒的工具。当我第一次开始使用它时,Resharper 引起了我的注意,有很多我不知道的事情。

使用了几个星期后,并没有什么新发现。从那时起,它就成为了一种生产力工具。

于 2009-02-12T21:24:55.770 回答
1

ReSharper 永远无法取代专业人士,毫无疑问,它是一个很棒的工具,但我的建议是,给自己找一个导师。

于 2009-02-12T21:26:48.590 回答
1

我同意所有关于人类比工具更好的说法。也就是说:我仍然会使用任何您可以使用的静态或动态代码检查工具。阅读每条警告并尝试了解它产生的原因。然后修复它。理解和尝试学习是第一位的。

还投资一些书籍。在 SO 上可以找到一长串建议。

于 2009-02-12T21:49:00.657 回答
1

我有点不同意这里的很多答案。Resharper 可以帮助您发展您的编程技能。它通常会建议您编写的代码的替代方案。程序员仍然可以决定哪种替代方案更好,但是查看替代方案然后在线研究它们可能是一个很好的学习工具。

这当然是不够的。如果你不能和工作中的人一起工作,我会在网上找人合作。开始阅读开源项目的代码,如果你发现一些你认为你可以贡献的东西!这是获得反馈的好方法。

于 2009-02-12T21:50:52.447 回答
1

它不会像其他程序员一样好,但它会比没有好得多,特别是如果你是该语言的新手。那里有很多糟糕的代码,其中很多将至少部分由 StyleCop/FxCop 修复。这是朝着正确方向迈出的一步。

除此之外,我会尝试参与一些小型开源项目,或者至少阅读一些开源代码,看看其他人是如何做事的。您也可以尝试参加用户群聚餐。

对于您的特殊情况:我认为您已经通过思考和关心此类事情并参与诸如 SO、阅读书籍和博客之类的地方而领先于普通开发人员。如果你是唯一的开发人员,你可能会花更多时间来设计你正在构建的东西。

我和你处于同样的位置,所以我知道考虑“落后”是什么感觉,因为你无法向任何人学习,但这就是互联网的用途:) 如果我们一起工作,我们至少可以部分取代失踪的团队成员

于 2009-02-12T22:46:03.283 回答
0

我无法想象一个软件工具怎么可能取代一个真正的人作为老师。虽然我个人对您提到的工具没有任何经验,但我无法想象一个软件工具可以像人类一样解释某事,或者可以接近预测您可能遇到的每一个问题.

当我身边没有开发人员时,我发现与任何愿意倾听的人交谈会很有帮助。通常,说话的行为可以帮助我了解一些事情。

于 2009-02-12T21:23:01.517 回答
0

快速回答,没有。它不是人工智能,也远不及真正的联合程序员所能提供的。

我每天都使用 ReSharper,没有它就活不下去。但是我的程序员同事对 ReSharper 无法做到的事情提供了更多的洞察力。

于 2009-02-12T21:25:15.240 回答
0

任何工具都无法为您提供重大问题的答案。(我应该使用线程池还是创建自己的线程池?我应该使用监视器还是互斥体?等等)

尽管如此,很少有人有机会与真正有天赋的导师一起工作,有些人仍然设法成为了不起的开发人员。

于 2009-02-12T21:45:18.343 回答