设计器工具会降低编程体验吗?[关闭]


10

我最近一直在浏览,特别是在一些可用的MS工具上,并且我注意到对设计器工具和向导的关注很大。不仅用于UI开发,而且还用于所有内容。

  • 实体框架具有建模者
  • RIA Services具有DomainService向导
  • 工作流让整个工作流设计师感到烦恼...(我不知道,还没有真正使用过它)

还有更多,但我想您会明白的。有很多设计器工具。使用其中一些,我发现:

它们使规定用例之外的事情复杂化

(即所有技术演示视频)

我最近一直在评估其中的一些技术,然后尝试与它们一起工作,最终不得不剖析设计师,建模者和向导为我所做的事情……否则,当我不得不尝试做时,我会迷失方向任何创造出来的东西。

最终情况是,我必须使用工具或对其输出进行足够的争用,以至于我自己不用工具就可以完成整个工作,并且对发生的事情有了更深刻的了解。我发现Silverlight设计器和RIA服务域服务向导特别激怒。

我发现自己在问:“如果我必须弄清楚它的内部工作原理或重写其输出的一半以使用它,该工具有什么用?”

他们没有那么快

这些工具的卖点是提高生产率,并且该点可能会随着时间的推移而改变,并且不一定适用于UI设计师(尽管在某些情况下它仍然适用->我正在为您提供Silverlight设计师) 。我发现我可以以比设计者中任何东西拖放,调整大小,移动快得多的速度破解某些代码。

UI妨碍了模型

也许这只是我一个人,但是当我使用类似UML设计工具的东西时,我最终花了更多的时间来布置所有内容,以使我的线条不会交叉,因此我可以在屏幕上看到所有内容,而不是对自己的模型进行建模正在努力实现。

他们没意思

我编码为生的一半原因是我享受它。单击复选框并选择组合框,然后修复出现的所有问题,这并不有趣。

我似乎并不孤单

社区似乎也不想要这些工具。目前,我能想到的最好的示例是Entity Framework Code-First。

所以我问:

  1. 设计工具是否真的提高了生产率?
  2. 他们是有趣的杀手吗?
  3. “社区” 实际上是在寻求更多的设计师工具,还是供应商只是以为我们是?

Answers:


7

我的猜测是,好的设计工具确实可以提高生产力,并且不会取而代之。但是,这只是一个猜测,因为我还没有遇到好的设计工具。

我个人没有要求设计工具。


2
+1我绝对喜欢“还需要一个好的设计工具”。尽管我可能添加了“比眼球之间的灰白色更好”。
肯·亨德森

2
+1向导仅在您执行的操作适合他们所体现的模型时才有用。因为我主要是为了做奇怪的事情而得到报酬,所以他们通常只会妨碍他们。我曾经真正喜欢过的唯一设计工具是(为Microsoft的非狂热者带来震撼)在MS Access中使用图形数据库和查询生成器。它之所以有效,是因为关系数据库和SQL在概念上都非常简单且定义明确,因此设计工具几乎可以处理您想做的所有事情。
鲍勃·墨菲

您为帮助您完成任务而构建的任何东西都是“好的设计工具”。这包括您的编辑器,编译器,调试器,个人库等。大多数“付费软件”的问题在于它对每个人都必须足够通用,因此通常无法很好地解决问题。而且,他们从不费心去使它发挥出色!请遵循Unix哲学。我不想成为MS围墙花园工具包中的一员。
Spencer Rathbun 2012年

4
  1. 我认为这可能取决于。如果您是一个没有经验的开发人员,那么使用设计工具可能比输入它更有效率。我可以肯定的是,在VB6初期,使用设计师的工作效率要比手工提高要高得多。要考虑的另一件事是该技术(至少是IDE展示它的方式)如何使其适合手工编辑。VB6和.NET WinForms当然不是(或者您可能不想手动编辑“生成的”代码文件(或其中的一部分)。对于WPF和ASP.NET,我认为经验不足的开发人员将从设计师,但很快就可以直接编辑XAML / ASP。一旦知道要做什么,直接编辑标记肯定会更快。回想起EF v1.0,

  2. 取决于标记是否有趣。WPF和ASP(.NET)可能很有趣。VB6 / WinForms-不,不需要编辑生成的代码部分。

  3. 我认为社区没有明确地这样做。尽管当学习新东西时,设计人员可以使学习中的学习变得容易。


2

像往常一样,这取决于

当我第一次使用Web服务进行调查时,Java有50页的教程,而.NET有向导。猜猜哪一个被使用了?


1

同样,这里没有设计工具。

我在纸上设计了数据库ERD,并编写了一个发布“ create table”语句的部署程序,这样我就可以随意擦除和重建。还有助于数据库版本控制。

我发现11x17(A3)纸张可能是设计非常复杂的系统的好地方。得到一个好的橡皮和铅笔(我更喜欢Staedtler)。


1

从供应商的角度来看,所有这些精美的设计器工具似乎都具有类似于折扣/免费学生许可证的目的。这个想法是让您以最小的努力和成本创建一些东西。一旦投入,他们就会押注您将学习使用他们的工具来扩展技能,而不是去学习别人的工具。

这并不是说这些工具没有合法的生产用途。它应该是有价值的检查生成的代码,并从中吸取教训。不幸的是,正如肯·亨德森(Ken Henderson)所指出的那样,该代码通常是不可读的,而不是您希望用作将来工作的模板的代码。我想起了《WCF服务编程》中的几节,作者在其中解释了如何手动编写代码或由Visual Studio生成代码。不可避免地,生成的选项需要一个后续部分来删除多余的代码。


0

设计工具是否真的提高了生产率?

只要您的项目简单且对他们来说不太复杂,它们就可以。我的经验是,您尝试实施/解决现实世界中的问题时会碰壁。

他们是有趣的杀手吗?

WF(工作流)和WPF在VS 2008每30分钟崩溃时会很有趣,但也很杀手。

“社区”实际上是在寻求更多的设计师工具,还是供应商只是以为我们是?

MS最近发布的许多工具似乎都是为了保留开发人员而进行的绝望尝试。现在,智能手机市场的战斗正在继续。谁会赢得开发人员,MS,Google或Apple的青睐?


0

一直以来都是这样,甚至在我们过去用来区分只知道如何单击向导的开发人员和知道向导会生成什么代码并可以针对极端情况进行修改的开发人员时,都是如此。

您拥有更多的工具,向导和设计师全部在后台进行工作,以防止您从尖锐的领域中脱颖而出,这对于那些不想知道或没有广度的开发人员来说是一个好处。经验或技巧以了解生成的代码。我想您想要计算机为您做的事情与您自己需要做的事情之间有一个最佳的选择,因为替代方法是完全基于将块拖放到表单上来编程语言。(我曾经在一个特定于域的环境中工作过,我不想使用它!)

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.