读者 Joe Bob 向我发送了指向 IxEdit 的链接,并询问我对它的看法。 我之前从未听说过它,所以我去查看了一下。 他们有一个六分钟的视频可以解释得很好。 简而言之,它是一个用于在网站上创建交互式内容的 GUI 编辑器。 点击一个元素,告诉它你希望它如何运作。 可以将其视为 jQuery 的 CSS 编辑器(它使用 jQuery 和 jQuery UI 来实现其功能)。
我的想法:哇,这太酷了。 但我可能永远不会使用它。
我不会使用它的事实与产品的质量无关。 这与它超出了我的抽象点有关。 如果我要编写一些页面交互,例如选项卡区域或点击此滑动向下,我宁愿自己用 jQuery 编写。 但这有点荒谬,不是吗? jQuery 本身就是 JavaScript 的抽象。 当我编写 $(“#thingy”).slideDown(); 时,有很多我几乎不理解的事情正在发生。 我离“从头编写”还差得很远。
更进一步,该代码最终是由 Web 服务器提供的。 我当然没有编写该代码。 该 Web 服务器运行在操作系统上。 操作系统运行在更低级别的代码上。 在该电路板和我的 slideDown 动画之间有很多步骤。 每个人都在链条的某个地方停止。
“那适合新手,而不是**真正的**开发人员。”
“我**自己**从头编写代码!”
“我喜欢了解我的代码在**做什么**。”
我认为这些都是有缺陷的陈述。 当我们说或思考这些事情时,我们实际上是在说“这超出了我的抽象点”。
您的抽象点是您感觉在日常工作中完成任务最舒适的抽象级别。 它可能是使用 Dreamweaver 中的设计视图并在 IxEdit 中添加交互。 它可能是用汇编语言编写。 没有任何一种比另一种“更好”。 它只是您当前的舒适度所在,更重要的是,使用您需要的工具以合理的速度完成任务。
并且在团队合作时,还有一个更重要的点
整个团队都能胜任的抽象点。
有时这是由团队决定的,有时是由团队成员选择的……有时甚至没有明确选择。
我对很多事情都有同样的感觉。 这也关乎放弃控制。 使用 Dreamweaver 的设计视图时,我总是感觉它在自行决定很多事情。 我不喜欢的事情,所以又回到了代码视图。
但我喜欢 jQuery 之类的东西,它们似乎以可控的方式给了你更多控制权。 即使我无法指定 slideDown() 方法的确切运动,但我可以控制很多其他事情。 如果你用普通的 JavaScript 来做的话,创建这些东西会很痛苦。
但回到 Dreamweaver:自己键入 HTML 和 CSS 并不痛苦,有时键入它比切换 30 个单选按钮、下拉菜单和颜色选择器要快。
我同意 Paul 的观点。 通常自己编写代码比对大多数事情使用 GUI 更容易。 我认为,对 jQuery 效果使用 GUI 应用程序有点过于抽象了。 但该应用程序听起来确实令人印象深刻。
我对该工具也有同样的感觉,我不喜欢那三句话。 但我不会用“抽象点”来分析它。
我认为 IxEdit 在你不知道如何使用 jQuery 时更容易使用。 事实上,如果你不知道 jQuery API,那么“猜测”你应该编写“$(“#thingy”).slideDown();”(你的示例)并不是很“直观”。
另一方面,当你了解如何使用 jQuery 时,“$(“#thingy”).slideDown();” 速度更快,因为你需要做的事情更少。
所以没有简单和困难的解决方案,这仅仅取决于上下文。 我会建议那些未来五年将致力于 JavaScript 的人学习 jQuery,而我会建议那些只是想偶尔编写一些快速 JavaScript 代码的人使用 IxEdit。
请注意,这与“命令行或 GUI”是同一个问题。 当你了解命令行集时,命令通常更快,但当你不知道时,GUI 通常更容易,因为它(至少应该是)直观的。
哦,这甚至不是一个只与计算机相关的问题!
想象一下,你朋友的朋友住在波兰,只会说波兰语,并且会和你共度一个下午。 你可能不会为了这件事而去学波兰语。 在一张纸上或用手在空中画画来与他交流可能更容易。 但如果你打算在波兰生活接下来的十年,学习波兰语可能是更好的选择。
哦,我忘记提到的是,这种问题**最大的错误**是认为 DOS 的“命令行”或早期 MAC/OS 的“GUI”是需要选择的并发范式! 同时拥有两者才是正确的解决方案,你可以用 GUI 来做“你不知道的事情”,用命令行来做“你知道的事情”。
终于有一个术语可以解释这种,嗯,抽象。 我看到很多人使用工具来完成工作,对此我没有任何异议,但我自己永远不会使用它们。 当某些事情发展到你不编写任何代码的地步时,我根本无法让这种控制权远离我。
我确实使用 jQuery,但那是因为学习复杂的 JavaScript 需要花费太长时间。 现在我不使用 CSS 框架,因为我认为自己在编写自己的 CSS 方面非常专业,并且有自己的个人框架。
感谢 Chris 的这篇文章。
随着时间的推移,这个点会越来越高。
在未来的某个时刻,所有的人只需要在一个文本框中输入他们想要什么样的网站以及什么功能,点击提交按钮,并在几毫秒内,瞧,它创建了完美的设计而不是设计师,编写了最新的代码而不是编码人员,并将其发布到全世界的网络上。
我认为它不会永远向上移动。 即使有可能编写一个程序,每次都能给你提供完美的代码,仍然会有人将他们的“抽象点”设置得更低。
有些人就是喜欢自己编写代码。
是的,“真正的程序员使用”和“真正的开发人员使用”的论点经常被提出,但你说的对,他们确实使用了预构建的代码(对于操作系统、服务器,甚至他们使用的语言都是通过他们没有编写的源代码构建的)。 人们只是喜欢对自己的工作有一定的控制权,并且可能还有一种自豪感,因为他们知道自己可以在没有太多帮助的情况下做到这一点。
IxEdit 工具看起来非常有用,但我担心的是代码效率。 对于大多数所见即所得编辑器来说,它们生成的代码效率低下,有时不可靠或难以维护。
我明白所见即所得工具的存在是因为有很多制作网站的人,但没有多少人了解如何自己编写干净、可维护的代码。 我认为所见即所得工具是人们不懂得如何使用良好的编码技术构建网站和 Web 应用程序这一真正问题的糟糕解决方案。 它们通常是一种拐杖,最终会阻碍学习,这对任何人都没有好处。
IxEdit 非常棒,但上手有点复杂。 类似于 http://css3please.com/ 的东西会更酷,你可以在浏览器中直接编辑和复制粘贴。
我喜欢你的风格,Chris。 观点非常好。
当然,Chris 的观点很好。
此工具的最佳用途是简化它,然后提供给客户。
我实际上大约在半年以前就看到了这个……奇怪的是它仍然处于公开测试阶段。 我以为他们现在应该开始收费了。
当我第一次看到它时,我根本不懂 jQuery 或 javascript,我心想“哇,我可以在不自己编码的情况下做一些事情!” 但后来我去读了一堆书,看了很多教程,现在可以编写自己的 jQuery 垃圾了。 现在我永远不会使用它,因为你的“抽象点级别”。
我既觉得这对不知道的人来说很酷,又觉得它会阻止人们真正学习如何自己动手做,这一点很糟糕。
看来我同时可以欣赏和不喜欢一样东西。
顺便说一句,因为上面有人提到了 Dreamweaver……我不再使用它了(Go NetBeans!),但我很好奇人们是否还在使用设计视图?
克里斯,你的观点非常好。我自己也不是 jQuery 的忠实用户,所以这个工具我非常想尝试一下。
我认为,很多时候,因为我们以某种特定的方式做事,并且有我们自己的流程,所以我们倾向于将其强加于他人,并且希望其他人按照我们的方式做事。就像那句老话,“要么按我的方式,要么滚蛋”。
最终,一切都归结于什么对每个人真正有效。今天真是一个很棒的想法,我会认真思考。
恕我直言(如果我确实有不同意见的话),但我已经厌倦了人们为了显得与时俱进而抛出的那些愚蠢的术语,例如:Web 2.0、开放网络、创意人士等等。现在这个新的“抽象点”直接落入了这个垃圾袋。
这是什么鬼?用简单、正常的名称命名事物,并遵循 KISS 原则。与其说“抽象点”,不如直接说“……你目前舒适的程度”。
这应该不难,而且显然不需要任何修饰就能理解。
——
那个 IxEdit 看起来很酷,不确定我是否会使用它。声音听起来像语音合成程序,而不是真人,哈哈。
再见。
哦,还要往垃圾袋里加“角色”(Persona)¬¬,真的吗?
我在 Script & Style 上看到 IxEdit 后也查看了一下。但我也有所犹豫。
当我刚开始学习 HTML 时,我曾经使用 imageready 来制作 HTML 以及模板的图形切片。
当出现错误时,我完全无能为力,因为我根本不理解自己在搞什么。
我对 IxEdit 的感觉也是如此。如果某些东西不起作用、出现问题或需要自定义,而 IxEdit 无法修复或生成它,那么我就会完全依赖它,因为我不了解它如何或为何工作。
当我第一次开始学习 html 和 css 时,我非常依赖 Dreamweaver 和设计视图。我记得我艰难地学习了所有浏览器的不一致性,以及当出现问题时那种无助的感觉。然而,这是一种很好的学习方式。我会有一个代码库,尝试修复它,进行实验,在这个过程中我学会了如何自己编写代码。所以我不后悔使用 Dreamweaver,它是一个很棒的起点,但我现在对手工编写代码感到更加舒适,而且速度更快,尤其是在使用 css 时。
我目前正在学习 jQuery,我认为这个小程序可以帮助我快速入门。我可以创建一些东西,拥有一个代码库,查看它是如何完成的,并在过程中学习如何编写代码,然后稍后再考虑最佳实践等等。最难的部分基本上是学习逻辑和语法。一旦我掌握了这一点,所有知识都在扩展。
我同意编写 jQuery 代码的人不应该看不起使用 IxEdit 的人,就像纯 JavaScript 开发人员不应该看不起 jQuery 用户一样。
但我略微不同意“两者之间没有优劣之分”的说法。对我来说,这与了解代码的功能无关,而是让代码完全按照你的意愿执行。在每一层抽象中,你都会放弃一些控制权;从这个意义上说,纯 JavaScript 比 IxEdit “更好”。
基本上,我的意思是,有抱负的开发者不应该因为使用抽象层而感到难过,但他们应该努力将自己的“抽象点”向前推进到最有利于他们的位置(在灵活性和效率方面,包括时间效率)。
各位,为自己的代码感到自豪当然很好,但是当人力资源部门向你发送隐私政策或类似内容时,将其粘贴到 Dreamweaver 中会容易得多。Dreamweaver(cs3 及更高版本)从 Word 文档生成的代码很干净,我不必花费时间键入 p、ul、li 或任何其他基本的 html 标签。
嗯,我认为 IxEdit(以及所有其他“GUI”)对于 jQuery 世界的新手来说非常棒。我的意思是……我本人也是 jQuery 的新手,所以当我不用每次都去谷歌或其他地方搜索 10 行代码片段来显示/隐藏某些东西时,它真的很有帮助。
但我认为它应该只被新手使用,而那些整天使用 jQuery 的人,它就不方便了。所以,当你学会了 jQuery(等等)的基础知识后,你的速度就会快 100 倍。
但感谢克里斯这篇关于这个主题的小“评论”和你的想法!
啊哈,这太棒了,我以前没见过这种类型的工具。
在我们的代码中创建 DOM 集成很酷。
感谢与我们分享。
@Chris – IxEdit 对我来说是**完美的解决方案**。非常感谢!
抽象点!我喜欢这个概念性的讨论。我喜欢“思考”。看起来人们都被分散了注意力。这篇文章不是关于这个工具,而是关于“抽象点”这个概念。
写这样一篇文章真是个不错的改变!继续努力!
我不确定我是否完全同意你的结论。不重复造轮子(使用 jQuery 与 JavaScript)和使用一个为你编写代码的工具之间是有区别的。
很难说这里有什么区别,但我认为它在于我们进步的方式。一个新手程序员可能会从 IxEdit 开始,然后在理解了关键概念后转向 jQuery。另一方面,我预计另一种类型的新手程序员会从纯 JavaScript 开始,一旦他们理解了关键概念,就会为了不重复造轮子而转向 jQuery。
无论哪种方式,jQuery 都是目的地。也许它是没有抽象和过度抽象之间的最佳点。你怎么认为?
克里斯……又一篇很棒的文章。感谢分享!
我认为,仅仅对抽象感到舒适与抽象实现提供与先前抽象相同的控制粒度之间存在很大区别。
例如,我使用 Python 或 Java 而不是 C 进行编程。我对此感到舒适,因为我始终知道如果 Python 或 Java 无法满足我的所有需求,我可以回退到 C。除此之外,我使用 Django 而不是纯 Python,因为 Django 本身并没有什么特别之处。它是一个简单的框架,可以简化常见任务。
我属于“我想知道我的代码在做什么”这一类人,但在深入研究之前,我通常会详细审查所选抽象。例如,我不会使用 Delphi,也不会使用 RunRev、REALbasic 或 Visual Basic。所有这些的共同点是它们都是对机器语言(从很宽泛的意义上讲)的专有抽象。即使它们都可能比其他任何东西都更好,你也依赖于唯一的开发者不断更新和修复他们的语言。如果我的一个欣欣向荣的业务依赖于这些实现,而开发者明天就不在了,我将不得不把 n 个应用程序转录到另一个合适的实现中。
所以,即使这个应用程序可以做馅饼,我仍然会担心它明天可能得不到支持。即使这个应用程序确实写到了 jQuery,想想浏览生成的代码吧。在用户没有给出非常明确的指示的情况下,生成代码非常困难。这可能导致非常混乱的代码,而且很多时候,它确实很混乱。所以,再说一次,我属于“了解正在发生的事情”这一类人,因为我不想在未来做比我预计要做的更多的事情。
这很像人们误用“专业”一词,而他们真正想表达的意思是“复杂”。
以下是我的一些想法。我认为在某些方面,一个可能比另一个更好。例如,从潜在收入的角度来看,如果你的舒适度处于“高抽象级别”,那么你不太可能进行微观管理。这意味着你可以有效地将工作委托给你的下属。在更短的时间内完成更多工作。但是,如果你不能轻松地进行委托,并且需要检查每一项工作的细枝末节,那么你在给定的时间段内完成的工作就会减少。因此,你的收入也会减少。
这当然只是从金钱的角度来看。
有人可能会说,“需要检查每一项工作的细枝末节”的人的薪酬会更高,从而使他们能够赚取与委托工作的人一样多,甚至更多。
这真的很有趣,有两个方面(我都没有完全理解)。
1.
一个人使用他们感到舒适的工具可以发挥最佳水平。每个工具都有一个抽象点,而这个点在哪里部分决定了为什么它对某人来说感觉舒适。
在其他条件相同的情况下,你认为两个喜欢在不同抽象点工作的人是否会产生质量相同的作品?并且由于不同的抽象级别决定了作品的风格和特征,解决方案是否会不同?
那么,某个特定的抽象点是否只适用于某个项目,因为正在做这个项目的人对此感到舒适?或者项目类型决定了抽象点?
2.
另一个问题可能已经存在很久了:开发者作为一个整体,是否正在通过增加自动化来让自己变得过时?(我想这更适用于程序员而不是设计师)
但答案必须是否定的。仅仅因为大型房屋建筑公司可以在各地建造相同的房屋,并不意味着建筑行业就没有结构工程师(他们在较低的抽象级别工作)的用武之地,因为在建筑的其他领域,建筑师们总是在不断突破界限。
抽象点击中了我!这是一个很棒的概念/术语——不仅仅是“舒适区”——尽管这显然是其最终效果。它概括了我们体验技术的本质。艾萨克·牛顿在宣称他“站在巨人的肩膀上”时开始了这一过程。我认为我们每天都在运用同样的概念,从基本的物理定律、电子、比特、代码、html、jQuery等,抽象级别不断提高。未来还会有更多,随着标准的扩展和通过更简单的方法实现预期的目标,编写代码的需求将会减少。