Atitit ide之道 开发工具之道 attilax著 v2 s22.docx Atitit ide开发工具之道 attilax总结 1. 代码编辑器功能 3 1.1. 关键词颜色 3 1.2.

Atitit ide之道 开发工具之道 attilaxv2 s22.docx Atitit ide开发工具之道 attilax总结

1. 代码编辑器功能 3

1.1. 关键词颜色   3

1.2. 代码提示 3

1.3. Outline文件结构查看器 3

1.4. 格式化工具 3

2. 调试器 单步 以及console 4

3. 工程管理 4

4. 4

5. 高级特性 4

5.1. 源码管理集成  4

5.2. 增量编译 4

5.3. 同一函数选择高亮 同名函数高亮显示 4

5.4. 配置文件等的编辑器功能 4

5.5. Javadoc提示框显示 5

5.6. 重构 5

5.7. 代码分析工具 5

5.8. 微软在做了众多改进后却删减了一个相当重要的特性——5

5.9. 函数功能列表 outline 结构 5

5.10. Quickfix 提示 5

5.11. 主题,黑暗主题 5

5.12. 通知中心 5

5.13. 搜索定位功能(类,方法,属性选择) 5

5.14. Call Hierarchy调用参数信息提示 6

5.15. 可视菜单设计器 6

5.16. 自动的国际化、可视本地化 6

6. 代码度量 7

6.1. 类数量度量,方法数量度量 7

6.2. 代码行数统计 7

6.3. 类与方法命名 单词 统计 度量 7

7. 质量控制 7

7.1. 类似于Findbugs 可扩展检查工具 7

7.2. Java代码质量检测评估工具 - 轻轻草原 - ITeye技术网站.htm 7

8. 部署 打包 7

9. Uml设计工具 8

10. 数据库工具 8

10.1. Uml 8

10.2. Web service 8

10.3. 数据可视化 8

10.4. Report 8

10.5. Db支持op 8

10.6. 查询构建器 8

10.7. Remote debug 8

10.8. debugging api包一个gui就够了 8

10.9. expression evaluation 8

10.10. Java Compiler API 9

10.11. Ide每部分代码数统计 10

11. 参考 12

11.1. Visual C++ 2010新特性:IDE五大改进-IT168 技术开发专区.html 12

11.2. 12

11.3. paip.vs2010新特性.txt - attilax的专栏 - 博客频道 - CSDN.NET.html 12

11.4. 图文详解:深度剖析Visual Studio2012的九大新特性_vs2012_百度贴吧.html 12

11.5. VS 2013 IDE 编辑器的一些新功能 - gzwxn的个人空间 - 开源中国社区.html 12

11.6. 微软官方:Visual Studio 2015 RTM IDE 新功能概览 – 美Win.html 12

11.7. 盘点VS2015 预览版的5个新特性-CSDN.NET.html 12

11.8. 12

11.9. 12

11.10. 12

11.11. NetBeans IDE 6.0 中的 UI 设计.html 12

11.12. NetBeans 6.7 M3值得关注的新特性 - 51CTO.COM.html 13

11.13. NetBeans 6.9新特性 - chszs的专栏 - 博客频道 - CSDN.NET.html 13

11.14. NetBeans IDE 7.1 有什么新特性_Linux伊甸园开源社区-24小时滚动更新开源资讯,全年无休!.html 13

11.15. NetBeans7.4 正式版发布 - 开源中国社区.html 13

11.16. NetBeans IDE 8.0 新特性一览 13

11.17. 13

11.18. Oracle JDeveloper ADF 11g 技术预览版新特性.html 13

11.19. 13

11.20. 13

 

1. 代码编辑器功能

1.1. 关键词颜色

 

集成开发环境,调试器,验证器和其他工具。我认为这是平局,但是这里有一些工具给 Node.js 些许优势:NPM-包管理器。 NPM 允许你安装和管理依赖,设置配置变量,定义脚本和其他。

 

1.2. 代码提示

1.3. Outline文件结构查看器

1.4. 格式化工具

 

2. 调试器 单步 以及console

3. 工程管理

4.  

5. 高级特性

5.1. 源码管理集成

5.2. 增量编译

5.3. 同一函数选择高亮 同名函数高亮显示

同名函数高亮显示功能,选中一个函数名,在同页中所有这个函数名出现的地方会高亮显示

5.4. 配置文件等的编辑器功能

编辑器,以便更好地支持JDK8中的配置文件、Lambdas

5.5. Javadoc提示框显示

5.6. 重构

5.7. 代码分析工具

5.8. 微软在做了众多改进后却删减了一个相当重要的特性——

!根据微软的报告,因为只有很少的的用户使用过宏,所以Visual Studio 2012 中并不会默认引入宏,但Visual Studio 2012将可以通过扩展包引入自定义功能。

5.9. 函数功能列表 outline 结构

5.10. Quickfix 提示

使用灯炮提示快速寻找并修正问题,并且改良了错误列表

5.11. 主题,黑暗主题

5.12. 通知中心

5.13. 搜索定位功能(类,方法,属性选择)

  新的“定位到”功能。选择菜单“编辑”中的“定位到”,该功能可以帮助您更有效的搜索文件或符号。根据您输入的字符串实时搜索到相应的结果,将您的输入字符串与项目中的符号和文件对照匹配。此功能还适用于 C# 和 Visual Basic 文件,并且可进行扩展。

5.14. Call Hierarchy调用参数信息提示

 

Call Hierarchy选项,如下图:


点击后会打开一个试图,该试图可以方便看出该方法在那些地方被用到,传入的是什么参数,并且可以很快定位在引用的地方,对于一个代码行数比较多的文件,可以提高开发效

对于某些函数体较大的函数来说,想轻松地确认参数在函数内部的使用情况是件比较麻烦的事情。这时可以将光标置于参数名上,再按组合键“Ctrl+Shif+空格”,参数被使用的地方会被高亮显示。

5.15. 可视菜单设计器

5.16. 自动的国际化、可视本地化

 

6. 代码度量

6.1. 类数量度量,方法数量度量

6.2. 代码行数统计

6.3. 类与方法命名 单词 统计 度量

7. 质量控制

7.1. 类似于Findbugs 可扩展检查工具

7.2. Java代码质量检测评估工具 - 轻轻草原 - ITeye技术网站.htm

8. 部署 打包

 

Patch打包工具

Class搜索在dir中的jar文件。。

核心class生成检查工具(制定核心package目录)。。非核心的可以不生成,有err

扫描源码,列出需要的jar包 ,缺失的jar

项目每日备份工具(包括代码,数据库)

开发工具启动器

 

 

 

 

9. Uml设计工具

10. 数据库工具

10.1. Uml

10.2. Web service

10.3. 数据可视化

10.4. Report

10.5. Db支持op

10.6. 查询构建器

查询构建器可以在联机或脱机模式下以图表方式构建简单的 SQL 查询。

 

 

10.7. Remote debug

,attach上去调

 

10.8. debugging api包一个gui就够了

 

10.9. expression evaluation

这种黑魔法一样的东西(仅针对编译型语言这么说,解释型应该会容易很多),当初应该花了大量的精力开发;

 

作者::  ★(attilax)>>>   绰号:老哇的爪子  全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊  汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

 

10.10. Java Compiler API

 

 

 我主要关注的是编译器,所以下面就编译器与IDE多聊几句。

当然,现实中开发一个IDE还真的有可能得去实现源语言的编译器。

上面提到的SharpDevelop/MonoDevelop,目前新的版本已经改为基于微软的Roslyn编译器来提供C#支持,语法高亮、错误提示、智能提示等都做得很好了。但其早期版本其实非常弱,只有所谓“语法高亮”,可以参考这个文档。后来为了实现智能提示等功能总算决定实现个真正的C# parser。不过它并没有基于任何现成的编译器来支持IDE功能,而是自己写了一个,上面的书中第12章就是介绍这个parser的,不过写得有点乱嗯。

Eclipse的Java开发环境(JDT)为例,它要实现准确的语法高亮和语法错误提示,就得按照Java语法实现一个完整的parser;它要实现实时的语义错误提示,就得按照Java语义实现一个完整的语义分析器,而且为了良好的用户体验,它可能要内建更多的对错误模式的检查和提示。做到这里,离一个完整的Java源码编译器也就只剩一个很简单直观的代码生成器(code generator)了。于是Eclipse做了ECJ——Eclipse Compiler for Java,整合在Eclipse JDT中。
在此基础上,Eclipse JDT还有项目模型,将项目里的各种资源都用一个统一的模型管理起来,从workspace到project、package、file然后里面的class/interface这样一直下去。在class/interface层面上这个模型用的就是ECJ的AST。

其实如果有一个现成的对IDE支持良好的编译器的话,实现一个IDE就不必费那么多事自己去写编译器。但是Eclipse诞生时,主流的Java源码编译器javac并不开源,而IBM当时主流的Java源码编译器Jikes是用C++写的,要整合在用Java写的Eclipse里不太方便,所以才要自己写。
有了这个编译器之后,Eclipse倒是可以做许多“非常规”的事情。例如说它可以为有错误的源码文件生成Class文件,而且这个Class文件可以一直执行到源码里有错的地方然后抛出异常——这种事情javac就不太可能会去做。

后来javac开源了,而且开放出许多便于IDE实现自身功能的API出来(例如Java Compiler API),后来的Netbeans就干脆直接用javac来实现语法高亮、报错等各种功能了。背后的故事可以参考这篇博文:NetBeans IDE 6.0

而一个反例就是微软的Visual Studio里的C++支持。Visual C++自身是个优秀的优化编译器,但它的前端部分(词法/语法/语义分析+中间代码生成)的历史非常非常“久远”,原始设计并未考虑支持IDE的功能,所以Visual Studio IDE里的C++支持其实用的是另一套完全不同的C++ parser(购买自EDG),既增加了复杂度又无法保证两套parser之间完全的兼容性。
当然微软也早就意识到了这个问题。近来,随着对C++14的支持,微软大幅更新了其Visual C++编译器的前端(参考Rejuvenating the Microsoft C/C++ Compiler),按照这个路子走下去的话,在IDE里替换掉EDG的C++ parser改为直接用Visual C++自己的,兴许也是可能的未来。

 

 

10.11. Ide每部分代码数统计

分类

包含内容

源码行数

Code Analysis

代码模型、分析和生成相关

123957

IDE

IDE程序和界面相关

62940

Visual Editor

可视化编辑器

30760

Text Editor

文本编辑器

20264

Tools

版本控制和帮助等辅助工具

11556

Language

语言绑定,包括C#,VB等

9292

Debugger

调试器

9238

Framework

Asp.Net Mvc等框架支持

8513

Misc

杂项

2289

Builder

构建和MsBuild相关

1774

Data

数据库支持

1396

对应的图表:

项目分析

可见整个IDE最复杂的部分在于代码模型的处理,代码数量几乎是第二名(IDE)的两倍之多,占整个项目代码的比例也接近 50% 了。我没有进一步分析,不过大概可以想象,代码编辑时的文本着色、语法提示、代码生成、辅助分析、重构等功能应该都与此相关。如果真的想自己写一个IDE的话,这一部分肯定是个难啃的硬骨头。

参考资料

IDE的现实分析 - 对“开发一个IDE难度有多大”问题的回答 _ Shuhari的博客.html

开发一个IDE难度多大_ - 编程 - 知乎.html

 

 

11. 参考

11.1. Visual C++ 2010新特性:IDE五大改进-IT168 技术开发专区.html

11.2.  

11.3. paip.vs2010新特性.txt - attilax的专栏 - 博客频道 - CSDN.NET.html

11.4. 图文详解:深度剖析Visual Studio2012的九大新特性_vs2012_百度贴吧.html

11.5. VS 2013 IDE 编辑器的一些新功能 - gzwxn的个人空间 - 开源中国社区.html

11.6. 微软官方:Visual Studio 2015 RTM IDE 新功能概览 – 美Win.html

11.7. 盘点VS2015 预览版的5个新特性-CSDN.NET.html

11.8.  

11.9.  

11.10.  

11.11. NetBeans IDE 6.0 中的 UI 设计.html

11.12. NetBeans 6.7 M3值得关注的新特性 - 51CTO.COM.html

11.13. NetBeans 6.9新特性 - chszs的专栏 - 博客频道 - CSDN.NET.html

11.14. NetBeans IDE 7.1 有什么新特性_Linux伊甸园开源社区-24小时滚动更新开源资讯,全年无休!.html

11.15. NetBeans7.4 正式版发布 - 开源中国社区.html

11.16. NetBeans IDE 8.0 新特性一览

11.17.  

11.18. Oracle JDeveloper ADF 11g 技术预览版新特性.html

11.19.  

11.20.  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值