Intellij IDEA 插件开发 --- 一次 JVM Crash 问题的解决 虽然今天遇到的不是一个有什么技术含量的问题,但是国内做这块的人太少了,觉得还是需要多分享分享,至少可以帮助新人走一些弯路,^_^ 前几天手贱升级了 macOS Sierra,本来看到 Intellij IDEA 在 macOS Sierra 下面只有一个触摸板异常灵活的问题,觉得 …
JVM 对 NoClassDefFoundError 的“缓存” 问题 今天在排查一个线上的问题,线上的一个应用在初始化一个类的静态字段的时候出现了 NoClassDefFoundError,并且在导致 NoClassDefFoundError 出现的根本原因消失后,后续再次尝试初始化这个类的时候, …
该死的 ^M ^M,神奇的字符!相信很多人写 Shell 脚本的时候都被这个字符坑过,我自己也至少被坑过两次。最近周围的好几个小伙伴又被 ^M 坑,花了好几个小时检查脚本的错误,结果发现是 ^M 导致的。所以写了这篇文章讲一下什么是 ^M,当 ^M 出现的时候一般会伴随着什么样的现象,出现了我 …
Intellij IDEA 的一些使用技巧 所有的这些功能都是在 Intellij IDEA 14 中测试的,其他的版本不一定适用 打开类的直接定位到某一行 在 Mac 下,IDEA 默认的打开类的快捷键是 Command+O,不过这个快捷键也有一些技巧。 第一个是可以在打开类的时候直接跳到某一行,比如下面这样: …
为什么我讨厌小米 「多看阅读」一直是我最喜欢的阅读器,没有之一,在多看阅读上买的书也不少了,绝佳的用户体验,「多看阅读」甩出豆瓣阅读、唐茶等 N 条街。 不过,今天在多看阅读上看书的时候,却弹出了这样的东西: 多看在读者阅读书籍的中间弹出了这样的东西,并且不止弹出了一次,过个几分钟又弹出一次。我觉 …
Guice 集合注入 Guice 的初学者在使用 Guice 往一个类中注入一个集合注入的时候,肯定有感觉到非常地不自然(这里的不自然我觉得一定程度上是不符合 Guice 给人的初印象),由于最近在项目中也在使用 Guice,所以在这里对 Guice 的集合注入做一个记录。 一、使用 Guice 的扩 …
利用 JUnit 的 Rule 对 Log4j 的输出进行测试 最近在写框架的测试代码的时候,有需求要对 Log4j 的输出进行测试(依赖 Log4j 的输出来进行测试,这一点本身可能得深思一下),之前也有对 stdout 和 stderr 进行测试,用了一个叫做 system-rule 的包: …
一些关于单元测试的思考 最近在开发公司的集成测试框架,有一些关于单元测试的体会,写一个博客记录一下想法。 为什么要写单元测试? 这个问题,已经有无数的关于技术的书、文章去阐述了,不断地强调单元测试的重要性。比如单元测试可以让你在软件开发的早期阶段发现 Bug,而不必到集成测试的时候才发现等等。不过,对于 …
关闭 Tomcat 的 TLD 扫描的功能 背景 Tomcat 作为 Servlet 规范的实现者,它在应用启动的时候会扫描 Jar 包里面的 .tld 文件,加载里面定义的标签库,但是,我们在开发的时候很多都不是采用 JSP 作为 Web 页面的模板的,很多都是使用 Velocity 之类的模板引擎,自然而然,为了加快应 …
Java 8 之 default method 如果进度正常,新版本的 Java,Java 8 将在三月份发布,Java 开发人员期待已久的 lambda 也将在 Java 8 中得到支持。目前,Java 8 的早期版本已经可以在 Java 的网站上下载到了,Intellij IDEA 也已经在其最新的版本支持了 Java …