草庐IT

javascript - DevExpress 在 Javascript 重构方面走多远?

coder 2024-05-11 原文

一年多以前,我记得看过一位 DevExpress 传道者预览或至少在 Visual Studio shell 中推广丰富的 Javascript 重构(不仅仅是有限的智能感知),我记得 CodeRush/DevExpress 产品线的一部分。我很兴奋。

今天查看 (lmgtfy) 我只能找到非常非常有限的引用资料,只有产品描述中关于 beta 的一小段斜体字,没有视频,没有博客文章,没有社区动态。它被丢弃了吗?汽具?实现不力,他们甚至不提倡?

Javascript 可以说是有史以来最流行的编程语言,并且在过去 10 年中几乎每台机器上都有一个 VM,为什么编辑器支持如此差? (与 Java 和 C# 相比)?您会看到 ScottGu 之类的人吹嘘我们现在拥有 jQuery intellisense,但将其与 IDE 中丰富的 C# 支持相比,这是一个笑话。

有人曾经说过,由于有许多编写 Javascript 的风格,因此很难使用具有重构支持的丰富 IDE(超越智能感知),但是如果多个引擎可以解释/编译具有相同结果的 JS,那么肯定很难分析它以支持东西比如重命名变量、提取方法、移动到另一个命名空间(或它的 JS minic)等。我错了吗?

最佳答案

CodeRush 支持五十二种 JavaScript 重构:

  • 添加 block 分隔符
  • 添加参数
  • 打破争论
  • 分解参数
  • 有条件的案例
  • 组合条件(嵌套)
  • 组合条件(并行)
  • 压缩分配
  • 压缩成三元表达式
  • 连接字符串
  • 视情况而定
  • 创建多变量声明
  • 创建重载
  • 创建 Setter 方法
  • 创建语句
  • 展开作业
  • 展开三元表达式
  • 提取方法
  • 扁平化条件
  • For 到 ForEach
  • ForEach 到 For
  • 有条件地初始化
  • 内嵌最近的作业
  • 内联结果
  • 在线温度
  • 内联语句
  • 介绍本地
  • 引入本地(全部替换)
  • 引入结果变量
  • 阵容参数
  • 阵容参数
  • 将声明移近引用
  • 将初始化移至声明
  • 提升为参数
  • 删除 block 分隔符
  • 删除参数
  • 删除冗余条件
  • 重命名本地
  • 重新排序参数
  • 用查询替换 Temp
  • 替换为本地
  • 反向条件
  • 简化表达
  • 条件拆分
  • 拆分条件(和复制 else block )
  • 从声明中分离初始化
  • 拆分多变量声明
  • 拆分字符串
  • 拆分临时变量
  • 拆分声明
  • 扩大范围
  • 扩大范围(推广到领域)

还有八个消费优先声明和快速修复功能:

  • 添加契约(Contract)
  • 添加 Else 语句
  • 声明字段
  • 声明本地
  • 镜像代码
  • 反向循环
  • 旋转 90 度
  • 拼写检查器

此外,我们正在努力改进对 10.2 版本的重构支持。我们最近还改进了 Quick Nav,使导航到 JavaScript 函数就像在 C# 或 VB 中导航一样简单。此改进将在 10.2 中发布,但现在可以在每日构建中为 CodeRush 客户提供。

完全披露——我在 DevExpress 领导 CodeRush 团队。

关于javascript - DevExpress 在 Javascript 重构方面走多远?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2432256/

有关javascript - DevExpress 在 Javascript 重构方面走多远?的更多相关文章

  1. ruby-on-rails - 如何重构 "shared"方法? - 2

    我正在使用RubyonRails3.2.2,我想从我的模型/类中“提取”一些方法。也就是说,在不止一个类/模型中,我有一些方法(注意:方法与用户授权相关,并被命名为“CRUD方式”),这些方法实际上是相同的;所以我认为DRY方法是将这些方法放在“共享”模块或类似的东西中。实现该目标的常见且正确的方法是什么?例如,我应该将“共享”代码放在哪里(在哪些目录和文件中)?如何在我的类/模型中包含提到的方法?你有什么建议?注意:我正在寻找“RubyonRails制作东西的方式”。 最佳答案 一种流行的方法是使用ActiveSupport关注点

  2. ruby-on-rails - 在 haml View 中重构条件 - 2

    除了可访问性标准不鼓励使用这一事实指向当前页面的链接,我应该怎么做重构以下View代码?#navigation%ul.tabbed-ifcurrent_page?(new_profile_path)%li{:class=>"current_page_item"}=link_tot("new_profile"),new_profile_path-else%li=link_tot("new_profile"),new_profile_path-ifcurrent_page?(profiles_path)%li{:class=>"current_page_item"}=link_tot("p

  3. ruby-on-rails - 使用 javascript 更改数据方法不会更改 ajax 调用用户的什么方法? - 2

    我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的

  4. ruby - 需要重构为新的 Ruby 1.9 哈希语法 - 2

    这个问题在这里已经有了答案:HashsyntaxinRuby[duplicate](1个回答)关闭5年前。我有一个Recipe,其中包含以下未通过lint测试的代码:service'apache'dosupports:status=>true,:restart=>true,:reload=>trueend失败并出现错误:UsethenewRuby1.9hashsyntax.supports:status=>true,:restart=>true,:reload=>true不确定新语法是什么样的...有人可以帮忙吗?

  5. ruby - 重构条件变量赋值 - 2

    我正在做一个项目。目前我有一个相当大的条件语句,它根据一些输入参数为变量赋值。所以,我有这样的东西。ifsomeconditionx=somevalueelsifanotherconditionx=adifferentvalue...重构它的最佳方法是什么?我希望我最终会得到类似的东西x=somevalueifsomecondition||anothervalueifanothercondition这种事情有规律吗? 最佳答案 只需将赋值放在if之外即可。x=ifsomeconditionsomevalueelsifanotherc

  6. ruby - 在 Mechanize 中使用 JavaScript 单击链接 - 2

    我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan

  7. ruby - 重构 Ruby : Converting string array to int array - 2

    我正在重构一个西洋跳棋程序,我正在尝试将玩家移动请求(例如以“3、3、5、5”的形式)处理到一个int数组中。我有以下方法,但感觉不像我所知道的那样像Ruby:deftranslate_move_request_to_coordinates(move_request)return_array=[]coords_array=move_request.chomp.split(',')coords_array.each_with_indexdo|i,x|return_array[x]=i.to_iendreturn_arrayend我用它进行了以下RSpec测试。it"translatesa

  8. ruby - 如何重构这个 6 行方法以使其更具可读性? - 2

    我正试图在这里清理这个非常丑陋的方法,它迫切需要重构,但我不确定哪种结构最能做到这一点(即case语句,或者只是一个精心格式化的ifthen语句)乍一看,这似乎是一个理想的放置case语句的地方,带有一些放置得很好的when,但我的理解是case语句只能用于单个变量,而不是两个变量,以及使用散列或数组尝试这些语句的irb的各种摆弄在这里也没有太多说明。你会怎么做?在检查这样的多个bool值时,Ruby中是否有任何常见的技巧来避免这样的代码?defhas_just_one_kind_of_thing?(item,controller)if(controller=='foos'&&item

  9. javascript - jQuery 的 jquery-1.10.2.min.map 正在触发 404(未找到) - 2

    我看到有关未找到文件min.map的错误消息:GETjQuery'sjquery-1.10.2.min.mapistriggeringa404(NotFound)截图这是从哪里来的? 最佳答案 如果ChromeDevTools报告.map文件的404(可能是jquery-1.10.2.min.map、jquery.min.map或jquery-2.0.3.min.map,但任何事情都可能发生)首先要知道的是,这仅在使用DevTools时才会请求。您的用户不会遇到此404。现在您可以修复此问题或禁用sourcemap功能。修复:获取文

  10. ruby-on-rails - 我将 Rails3 与 tinymce 一起使用。如何呈现用户关闭浏览器javascript然后输入xss? - 2

    我有一个用Rails3编写的站点。我的帖子模型有一个名为“内容”的文本列。在帖子面板中,html表单使用tinymce将“content”列设置为textarea字段。在首页,因为使用了tinymce,post.html.erb的代码需要用这样的原始方法来实现。.好的,现在如果我关闭浏览器javascript,这个文本区域可以在没有tinymce的情况下输入,也许用户会输入任何xss,比如alert('xss');.我的前台会显示那个警告框。我尝试sanitize(@post.content)在posts_controller中,但sanitize方法将相互过滤tinymce样式。例如

随机推荐