java
また技術キャッチアップ用のプロジェクト作りました。今回使いたかったのは以下の4つ: spring-boot v2.0(リリース前) spring-webflux v5.0(リリース前) selenide v4.5 checker framework v2.2 Springは5.0リリース前にマイルストーン版を使って感覚を見…
メモ。公式ドキュメントにはv1の作り方しか書いてないのだが、v2も別のドキュメント読み解けばちゃんと作れるよ、ということを教えてもらった。 https://github.com/spotbugs/spotbugs-archetype/pull/7#issuecomment-320870124
前回のエントリでの宣言通り、本日のJJUG CCCでセッション発表してきました。発表のスライドと動画が後日、下記会社のアカウントから共有されると思います。公開されたらこの記事で紹介します。 Worksapplications presentations WAP!TechTalks - YouTube 昼…
最近ブログ熱が下がっていたのと、SpotBugsの中の人になってドキュメントとかいろいろ触っていたのとで更新が途絶えていました。 そろそろSpotBugs 3.1.0−RC2を出せるのではと思いますので、そのうち試してください。 なおJava8対応強化だけであればリリース…
MSAは理屈が多く、手を動かさないとわからないことが多すぎるので作りました。 GitHub - KengoTODA/brownie: A distributed video converter ついでに非同期I/OとサーバサイドReactiveを学ぶためにVert.xとRxJavaを採用しています。Spring Framework 5は別で…
自分にとっての新技術を試すための個人プロジェクトでVert.xを使っているのだが、PostgresクライアントがTechnical Previewになったのでオンメモリに乗せていたデータをpostgresに乗せるようにしたところ、2重3重のネストがコードに現れるようになった。 本…
Findbugs is really good solution to improve quality of code As an author of findbugs-slf4j, I really love Findbugs. It lets us find problems by static bytecode analysis. This tool improves quality of each module, reduce reproducing known b…
社内勉強会向けに作成したエラーログと例外の扱いについて説明したスライドを、Speakerdeckで公開しました。一部社内特化部分(ログレベルポリシーやMSA向けMDC使用法 など)を削除して、口頭で補足した部分を補っています。 これらの理想的な使い方はシステ…
社内勉強会向けに作成したコード内コメントとJavadocの書き方についてのスライドを、Speaker DeckとSliDeckで公開しました。 このスライドは概要とメリットについてざっくり説明し理解と学習の動機を作ることを目的としていますが、これは日本ないし中国の大…
現時点でRC2まで出ています。 Release19 · google/guava Wiki · GitHub 個人的に興味深いのはCharMatcherにファクトリメソッドが導入された理由。staticフィールドだとクラス初期化時に初期化されなければならないが、ファクトリメソッドならメソッド実行時…
今日、拙作findbugs-slf4jのGitHub Pageを作りました。このブログではこのプロジェクトについて日本語で紹介したいと思います。 概要 拙作PMDプラグインをもとに、2012年8月から実装を開始したfindbugsプラグイン SLF4J利用時のよくあるトラブルを未然に防ぎ…
In China mainland, default repositories are not so useful because of bad network latency. Instead of them, we should use following mirrors for better productivity. Maven central 开源中国 Maven 库 gem RubyGems 镜像 - 淘宝网 npm 淘宝 NPM 镜像
Guavaのテストコードを読んでいたらTruthというtesting frameworkが使われていることに気づき、最新の個人プロジェクトで使ってみました。まだアルファ版ですし、自分でも使い続けるかどうか微妙なところですが、試用記録として利点をまとめます。 なお著者…
一時期はメソッド名は動詞で始まらなければならないと言われていましたが、昨今ではJava標準APIでも動詞ではないメソッド名が散見されます。本エントリではその傾向をまとめます。 of, from(from, of, valueOf, fromString, fromNullable etc.) fromやofは…
JavaのStreamで末尾再帰するというアイデアが今読んでるFunctional Programming in Javaで紹介されていた。 The Pragmatic Bookshelf | Functional Programming in Java agiledeveloper: Functional Programming in Java is quite Approachable 動かしてみた…
Netty http://netty.io/ http://netty.io/wiki/index.html http://netty.io/wiki/user-guide-for-5.x.html http://netty.io/wiki/developer-guide.html Vert.x http://vertx.io/ http://vertx.io/docs.html http://vertx.io/manual.html Related Java NIO Bu…
replace Optional with java.util.Optional replace import com.google.common.base.Optional; with import java.util.Optional; replace Optional.fromNull() with Optional.ofNull() replace Optional.absent() with Optional.empty() replace Optional.tr…
これはJ2EE Advent Calendarの25日目の記事です。昨日の記事はnobuokaさんによるJava Persistence API (JPA) 実践入門でした! 本記事の趣旨は、developerWorksのクラスローダーとJ2EEパッケージング戦略を理解するに書いてあることをコードで確かめようとい…
When you implement executable jar, there is some good libraries and Maven plugins to implement. I will list them and explain how to use. args4j args4j is a good library to parse command line argument. It is more modern than commons-cli, an…
「Javaってこれがめんどうだよねー」「あ、それGuavaでマシになりますよ」というやりとりが多い気がするので代表例をいくつか書いてみる。気になった方は公式ドキュメントをぜひ。 便利系Map 2キー使って1要素を特定するMap 複数の値を持ちうるMap 完全に同…
Now FindBugs 3.0-SNAPSHOT depends on SNAPSHOTs which is not hosted on Maven repository. To build, we have to execute install:install-file manually. $ git clone https://code.google.com/p/skypencil-findbugs/ $ cd findbugs/findbugs $ git chec…
スキルの低い人が生産性における問題ならその人を何とかするのが根本解決だよねと話したら、人に強要することなんてできないじゃないですかーという反応をいただいた。 これはすごく的を射たもので、チームを引っ張ってモノづくりをするうえで・チームを引っ…
UserValue is a good way to mark local variable. By this marking, you can chase item or classify type of item. To use operand stack, your detector should extend OprandStackDetector or its subclass. OprandStackDetector OpcodeStackDetector#ge…
前回残したTODOの消化。 今の理解が正しいなら、各BasicBlockごとにFactを計算しておいてあとでmeetさせるという話になるので、この辺りのロジックを読めば決着は付くだろう。 結論から言うと、当時の理解は正しかった。 ただすべてのBasicBlockのFactを計算…
端午节3連休中に調べたことのメモ。たぶんこれで@WillCloseと@WilCloseWhenClosedをサポートするdetectorが実装できるはず。 資源が確実に開放されるかを調べるDetectorを実装するときなど、ありうる処理の流れを列挙してその全てに対して正しい処理が行われ…
すみません、この前のエントリでSLF4JというかJavaのロギングがとてもややこしいものだという印象を残してしまったようです。そんなことないので、ログ出力の使い方についてさくっと説明することで誤解を解きたいと思います。 SLF4Jでログを出すのは、たった…
2020-07-22更新: 以下の投稿で情報をアップデートしています。 https://blog.kengo-toda.jp/entry/2020/07/21/223136 いつも購読させていただいている id:teppeis さんのブックマークに以下のエントリが流れてきて、なるほどこいつはたしかに厄介だと思いま…
Today I released findbugs-slf4j version 1.0.1, since I got a bug report. Now that ClassNotFoundException problem has been fixed. Getting feedback is always great experience. I am very happy :) To use latest version, what you have to do is …
Interests FireFox OS Currently I do not like Android and iOS, so I hope that this OS (or Ubuntu) become popular and make the market actively. But they would be minor... Outputs This week is long holiday (the head of lunar new year), so I d…
I deployed jsr305-maven-plugin to the Sonatype repository. It will be deployed to Maven central soon. If you need more information about this plugin, please check this article.