我正在努力决定是否要改变IDE,因为我已经阅读了关于NetBeans和IntelliJ的一些有希望的内容,但是我有两个相互关联的(也许是愚蠢的)问题:
发布于 2016-11-15 05:29:20
假设所有3个IDE都使用相同的代码(Java),那么最终的应用程序有什么区别吗?换句话说,IDE的包是以不同的方式获得最后的应用程序,还是添加了各种水印/签名文件?
IDE !=编译器
有些IDE的内置编译器可以生成可执行文件,但大多数IDE的编译器都使用您安装的编译器。艾德的是被美化的文本编辑。他们甚至只关心您的编译器,因为他们希望在您键入代码时为您完成代码。
如果您生成相同的源代码,并且使用相同的编译器,那么如果您使用NetBeans、IntelliJ、Eclipse、Vi、Emacs或windows编写代码,那么假设您知道如何使用像素来实现ascii,这并不重要。
我经常通过阅读智能开发人员的源代码来学习新的编程技术和工具。有没有方法通过分析Java应用程序的源代码来识别某个应用程序是用哪个IDE构建的?例如包含“使用NetBeans 8.0.2构建的”或类似的文件,在某个地方?
不是的。如果有的话就不应该有了。源以编译器(或解释器)为目标。的目标人类。最好是怀疑IntelliJ被使用了,因为您知道Joe编写了代码,而且Joe喜欢IntelliJ。
发布于 2016-11-15 05:44:43
多年来,我一直在与允许每个开发人员选择使用哪个IDE、IntelliJ、NetBeans、Eclipse的团队一起工作。
构建(在我们的例子中)是由Gradle、Maven或Ant使用Jenkins或循环CI完成的。IDE甚至不存在于构建实例中。
这应该会让人知道IDE如何独立于结果产品。我们每天都用不同的IDE编辑相同的文件和项目。现在主要使用Netbeans和IntelliJ。一段时间前,日食的受欢迎程度下降了。有些代码有时也是用我们最喜欢的文本编辑器完成的。
我们遇到的主要问题是,在.gitignore中放置哪些文件或路径,哪些插件可以使用。对于IDE如何对Glassfish进行自动部署(这是所涉及的三个应用服务器中最古怪的),存在差异。Tomcat和Jetty没有产生那么多的问题。
基于接收其他公司的几个项目,通过查看源存储库,通常可以很容易地判断IDE使用的是什么,这仅仅是因为人们并不总是替换默认的许可证头和.gitignore (或等效的)他们的所有配置和自动化文件。当他们做.gitignore这些文件,好吧,我们可以读取.gitignore文件,看看它们是什么。人们通常会留下他们活动的痕迹。
发布于 2016-11-15 07:03:10
如前所述,IDE不是编译器。编译器不是编译后的应用程序的打包工具,打包工具可能包括也可能不包括安装程序生成器。
特别是在Java中,所有3种程序都是不同的应用程序(尽管IDE可能附带编译器和/或打包工具和/或安装程序构建器)。
Netbeans和IntelliJ默认使用行业标准第三方编译器,默认情况下使用构建和打包工具,在默认情况下使用相同的工具。
因此,将打包应用程序区分为使用其中一种或另一种创建的唯一方法是与每个人使用的某些代码生成模式密切相关,这些模式可能会导致特定的类组、方法和变量名,而且只有在实际使用这些特定生成器的情况下才能工作。
即使如此,它们中的一个生成的代码也可以在另一个中进行进一步编辑。
https://softwareengineering.stackexchange.com/questions/336070
复制相似问题