如何更快地在Visual Studio中编写代码?

17
每当我开始一个新的软件项目时,我会花费很多时间在开始阶段绘制类图和其他流程图,以规划应用程序的工作方式。这部分需要大量思考和测试。但是在某个特定的时刻,当一切都规划好了,我就不需要再去过多思考,只需要编写代码即可。
IntelliSense绝对是个救星,还可以通过按下TAB键自动从中生成代码。但现在我想知道:人们使用哪些其他技术或工具来尽可能快地将他们脑海中的代码转化为屏幕上的代码?

16
打字比闪电还快。 - Natrium
11
直译:不要复制/粘贴更多内容:这表明你的编程水平很差。基于复制/粘贴的编程是不好的。如果你通过复制/粘贴比编写代码和使用集成开发环境建议更快,那么你的速度还不够快,也没有编写足够的代码。简化翻译:不要过于依赖复制粘贴来编程,这意味着你的编程能力不够强。复制粘贴的编程方式不好。如果你只有通过复制粘贴才能编写得更快,而不能自己编写代码或者使用集成开发工具提供的建议,那么就说明你不够快,也没有写足够的代码。 - helios
6
我只是开玩笑,伙计们。认真点。 :) - user151323
16
在Firefox中关闭SO标签页有助于我更快地编码... - Jla
2
关闭Firefox会使一切更快。 - Filip Ekberg
显示剩余7条评论
15个回答

26

我非常喜欢使用Resharper提高工作效率——特别是如果你掌握了所有功能和键盘快捷方式,那么它的效用将更加明显。


2
ReSharper是第一生产力提升工具! - bitbonk
1
虽然还有其他产品可用(例如CodeRush和Resharper!),但我不认为它们比其他产品更好,但有些人更喜欢其中的一种。因人而异。 :) - ZombieSheep
世界上的人可以分为两种:那些讨厌 Resharper 的人和那些离不开它的人...我属于第一组。 - unknown
1
@opc 我会说世界分为实用主义者和教条主义者,这样你也可以涵盖非程序员。 - Rob Fonseca-Ensor

10
  1. 正如其他人所提到的,使用Resharper或类似工具。

  2. 学习键盘快捷键并使用它们。在VS中,几乎每个操作都有一个键盘快捷键等效项,您掌握的越多,就不必在菜单中翻找时间越少。这对于使用Resharper同样重要。

  3. 注意任何需要等待的事情。您正在等待构建完成吗?从您的解决方案中删除您不在工作的项目并引用它们的程序集。如果需要,您始终可以将它们添加回来。您正在等待运行单元测试吗?也许您可以将测试分段成一组在每天运行几次和在每次提交之前运行的一组。您正在等待应用程序每次测试时启动吗?也许您可以定义一个构建配置,该配置排除与您目前正在处理的功能无关的启动代码。

  4. 获得一个固态硬盘并将操作系统和开发工具安装在上面。增加机器内存。

  5. 一个简单的提示,以应对复制和粘贴代码的乏味之处: 不要复制和粘贴代码。我相信,在某些情况下,复制和粘贴代码是可以接受的,甚至是必要的,但如果它是您日常工作流程的一部分,您需要停下来并修复它。如果超过一个人提出此建议,我甚至都不会提到这一点。


1
删除项目可以增加一个加1。在VS中,构建时间可能是一个重要障碍。 - Dave Sims
正如陀思妥耶夫斯基所观察到的,人是一种可以适应任何事物的动物。这可以成为一个巨大的优势,但也意味着我们经常忘记,我们甚至可以改变那些困扰我们的事情。作为程序员,我们必须记住,不断探索和发现新的解决方案是取得成功的关键。 - Robert Rossney

9
我不想打开整个CodeRush和Refactor!/ Resharper的话题,但像这样一个优秀的重构工具可能会极大地帮助。我已经使用CodeRush和Refactor!一年多了,现在编写健壮和可维护的代码所需的时间比几年前短得多。
当然,有一个学习曲线,但仅仅几周后就能获得巨大的好处。

3
很遗憾对于圣战,我是一个实用主义者,并会告诉大家:自己试用一周Resharper和Coderush,选择最适合自己的使用...不使用任何一个都是唯一错误的选择。 - Rob Fonseca-Ensor
1
我的意思正是如此。我尝试过Resharper,但发现它不适合我,但我知道有很多快乐的用户。如果产品没有好处,两家公司都无法生存。 :) - ZombieSheep
我同时使用两者。经过一些调整,它们可以很好地配合使用。 如果你曾经使用过这两个,你就会知道它们有一定的重叠,但每一个的总体感觉完全不同,它们相互补充得非常好。 - Sky Sanders

9
使您的环境更快响应。
慢电脑、IDE、构建、可以自动化的重复任务会严重影响速度。
点滴之间都很重要。即使是在控制面板=>键盘属性中增加“重复速率”也有所帮助。

2
在开始使用新电脑时,我首先要做的事情就是将重复率最大化,并将重复延迟设置为最小值。这样可以提高工作效率。 - Tarydon
我发现快速的硬盘在这里起到了最大的作用。 - Rob Fonseca-Ensor
最近我升级了我的开发笔记本电脑,使用了runcore 64g SSD。200/100的读写速度让所有操作都更快了! - Matt Kocaj
1
你们输入了多少个重复的字符? - davidtbernal
@notJim,它正在滚动,速度明显加快。 - Arnis Lapsa

5
你可以使用建模工具,如Enterprise Architect来绘制类/序列图,然后生成代码。

1
这可以节省许多繁琐的打字时间,甚至可以为您生成骨架方法。它使UML更加有用,因为您可以将代码/UML含义链接在一起,随着代码的更改,工具可以更新您的UML以匹配,而UMl不会像其他文档一样过时。 - Mr. Boy

5
我不想成为提出这个问题的人,也不是Linux迷,但我在几个月前尝试了一个叫做ViEmu的插件。学习所有命令以及如何链接它们需要花费至少一个月的时间,但现在,我重构代码时的速度已经快了5-10倍。
很难解释它如何工作,但当你遇到一些棘手和重复的文本编辑任务时,你可以最大限度地利用它,比如说你有20行代码,需要从变量名中删除中间驼峰式单词。就是那种情况。
ViEmu的链接在这里 - http://www.viemu.com/ 希望对你有所帮助。

我喜欢 ViEmu。在 Visual Studio 中拥有命令/编辑模式大大加快了我的编程速度。 - robber.baron

2

很不幸,对我来说这只是智能感知,尽管我倾向于重新绑定许多键盘快捷键来帮助。上下文菜单(我的键盘没有上下文菜单按钮)是我最常用的之一,用于添加参考等。

我不久前确实读到过一款针对游戏玩家的“神经头带”。它被设计成可以进行训练,以便他们可以想“前进”和“开火”,而不是按W + Mouse1,并声称可以增加反应时间。我怀疑它还无法进行足够的训练,但如果像这样的技术可以用于您想“实现基类Foo并添加方法Bar()”,并且代码在VS中生成,那将是令人惊奇的 :) 不幸的是,它还有一段路要走,我可以想象出太多破碎的构建导致“咖啡”的结果...


2

1
你有想过为经常要做的事情创建和使用代码片段吗?这些可以节省真正的时间,因为你只需要把它们直接放进去,可以轻松地重构其中使用的变量。

1

毫无疑问,我是一个怪人,但对于桌面应用程序(而非Web),这就是我的做法。我认为几乎任何应用程序都只是一个被吹嘘的编辑器。也就是说,它有一个需要持久化的数据结构和一个UI,让用户将信息放入该数据结构中并取出。

对于数据结构,保持简单、简单、简单。我认为它只是一个信息存储库,尽可能少地冗余。我不想建立数据结构,其存在的目的是成为底层数据的可见表现形式,例如树控件等,因为那样需要与底层数据保持一致,并涉及如何保持冗余数据一致的所有问题。(例如:对于图形,不要“构建”它,而要“绘制”它。)如果我无法避免创建冗余数据结构,我会尽可能远离通知式编程,试图使冗余数据结构保持紧密一致。许多错误列表和性能问题都源于此。相反,我更喜欢松散耦合,其中可以容忍一定程度的不一致,并由定期运行的进程管理变化。

对于用户界面,我一直是面向对象编程(OOP)和模型-视图-控制器(MVC)风格的支持者,直到1986年我发现了this。现在我已经被它宠坏了,可以在比通常的控件事件处理风格更短的时间内编写复杂的用户界面,并且当需求变化时修改它们也非常容易。但到目前为止,我可能只有全球三个人使用它,因为它绝对不是主流。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接