日々常々

ふつうのプログラマがあたりまえにしたいこと。

Java

finalを付けるのをやめてみた

Javaの話ね。バージョンは8以降の実質的final(effectively final)があるものとします。7以前は匿名クラス(この呼び方は 匿名クラスとかローカルクラスとか参照)でローカル変数を使うにはfinalが必要なので文脈変わります。 前提の整理 final は色々なと…

配列引数と可変長引数のクラスファイルでの違い

明日の関ジャバの資料作ってたら気になったので。(全く関係ない) javac 11.0.4 可変長引数のメソッドを持つVaragsクラスとそれを呼び出すInvokerクラスがあってさ。 class Varargs { static void methodX(Object... args) {} static void methodY(Object[]…

SpringBootでのRestTemplateのタイムアウト設定

spring-boot:2.1.7.RELEASE spring-web:5.1.9.RELEASE Short Answer RestTemplateBuilder restTemplateBuilder = ... RestTemplate restTemplate = restTemplateBuilder .setConnectTimeout(Duration.ofSeconds(3)) .setReadTimeout(Duration.ofSeconds(3)) …

nullが嫌い

消したつももりだった下書きが残ってたっぽいので公開しちゃう。なお2015-05-10に書いたもののようです。当時のブログを見ると、Optionalでなんか盛り上がった頃みたい。 ということで以下は編集せずそのまま投稿ー。 前置き nullを安易に使わない 派生のポ…

ArrayListじゃなくListを使うという話

具象型ではなく抽象型で扱え、インタフェースを使え、みたいなお話に対して。 前置き Javaの話。他の言語だと話は変わります。 「こうするのが絶対的に正解」と言うものではありません。私の現在の選択の説明です。明日になったら違うこと言ってるかも。 主…

JavaBeansって言葉に煩わされない

JavaBeansって言葉を目にして、ふと検索してみたらあまりに酷かったので書いておこうかと。対象は「JavaBeansってなんだろ?」と思ってしまった初学者さん。でもそんな人って私のブログ読むんだろうか…… 今後は「このエントリ参照」にするつもりで書いてみる…

どこでモックを使おうか

モッククラスを使うべきか否か から一歩踏み出してみましょう。 モックを使う選択をした。そこはゴールではありません。 お題 RestTemplate を使用して外部サービスを呼び出す場合を考えてください。 ここでの「外部サービス」はネットワーク越しにアクセス…

モッククラスを使うべきか否か

元ネタ: モッククラス、下から見るか?横から見るか? モッククラスを使うべきか否か、というネタを拾ったので書いてみます。これまでにモックについて殆ど書いてないことに気づいて驚きつつ。 Short Answer 「モックに何をさせたいの?」 質問に質問で返す…

Javaエンジニアからみた最近のJava事情

5/9(水) 大正GeekNight Vol.1で話しました。 https://taisho-geek.connpass.com/event/85508/ 4ヶ月前のスライドです。 Javaのサポートについては続報も出てきていますし、思い込みで騒がないのが吉です。 いよいよ今月本命のJava11がリリースですね。どうな…

「あるエンジニアがプログラムを紡いでいく様を見てみる」ライブコーディング・リプレイ

あるエンジニアがプログラムを紡いでいく様を見てみるでしたライブコーディングで言ったことや言わなかったことを書いてみます。 意識してるのは「コードをどまんなかに」です。 speakerdeck.com ……あ、このスライドのブログ書き忘れてた。 スライド中の「え…

Javaアプリケーションを作るときにまずやってること

DevLOVE関西で実験的なイベントをさせてもらいました。 devlove-kansai.doorkeeper.jp このイベントのおかげで、自分がアプリケーション作るときに最初にどうしてるかを確認できたので晒してみます。誰かの役に立つかどうかは知らない。あ、Macです。ある程…

Spring Boot Gradle Pluginの話(Spring Boot 1.5.x & Gradle 4.5)

Spring Boot 1.5.x とGradle 4.5 の話です。Spring Boot 2.0とGradle4.6が出たので、埋葬がてら書いておきます。 どんな感じで要らない話になったのかは最後に書いてます。 Spring Boot Gradle Pluginの機能 67. Spring Boot Gradle plugin たいだい*1 だい…

SpringBoot2.0がリリースされたのでバージョンアップしてみた

spring.io 待望のSpringBoot2.0がリリースされました。 ので早速バージョンアップだー。 やったことといえば、 build.gradle のビルドスクリプトプラグインのバージョンアップだけ。 Spring Boot Gradle Plugin Reference Guide に書いてる通りですね。 - id…

"ふつうのJavaコーディング"を話しました

2017/5/20にあったJJUG CCC 2017 Springで登壇させていただきました。 8回目の参加です。 毎回パワーアップしているなーと言うのは前回のブログでも書きましたが、今回は目に見えて参加人数が増えたんだなーと体感しました。 入れないセッションもありました…

Java本格入門を読みました

ゴールデンウィークの間に圧倒的成長をしたい若手プログラマさんに丁度いいんじゃないでしょうか。 Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで作者: 谷本心,阪本雄一郎,岡田拓也,秋葉誠,村田賢一郎,アクロクエストテ…

DIコンテナのインジェクション方法の使い分けについて

DIコンテナを使う時にどのインジェクションを使うかって話です。 たぶん誰かがどこかで同じようなことを書いているだろうけれど、気にせず書くよ。 「他の誰かが書いている」なんてのを書かない理由にしてると何も書けなくなるし。 コンテナ DIコンテナのこ…

多くの人は忘れてるCoinの一つ

Java SE 7がリリースされたのは2011年7月。 さらに、パブリックアップデートが2015年4月で終了している子です。 5年も経てば一定の評価はできるでしょう。 さて、以下のコードをコンパイルしたらどうなるか。 void method() { try { throw new Exception(); …

#jjug_ccc 2016 FallでJUnit5の話をしてきた

今年の目標を「1ヶ月に1エントリ以上のペースでブログを書く」にします。 これで9エントリになるので後3ですね。2012年12月は1ヶ月で34エントリ書いてるので、今の私と彼が同一人物なら余裕なはず。 さて、2016-12-03のJJUG CCC 2016 Fallで話させてもらいま…

JaCoCoとMavenと何か

JaCoCoとMavenでカバレッジを取ろうってやつ。 Java: 1.8.0_102 Maven: 3.3.9 JaCoCo: 0.7.6.201602180812 いろいろ地味に古いけど気にしない。 普通の手順 設定 丁寧な解説ありますけど、もっと雑なの。 pom.xmlのproject/build/pluginsに入れるだけ。 <plugin> <groupId>org</groupid></plugin>…

「Javaの新定石」でJava EEについて書きました(WEB+DB PRESS vol.94)

WEB+DB PRESS Vol.94作者: 藤原俊一郎,朽木拓,八木俊広,吉田太一郎,うらがみ,のざきひろふみ,うさみけんた,水嶋淳貴,佐々木健一,柴崎優季,前島真一,伊藤直也,遠藤雅伸,ひげぽん,海野弘成,はまちや2,竹原,WEB+DB PRESS編集部出版社/メーカー: 技術評論社発売…

EC2のAmazonLinuxにPayaraを放流してみた

前置き EC2さん。便利ですよね。使ってますか?私はあまり使ってないです。別にほかのサービス使ってるとかでもないです。(ドヤ顔で目線を逸らしながら たまに思い出したように触っては、ある程度使えるつもりになって。 しばらくしたら使い方を綺麗さっぱ…

コンストラクタのメソッド利用で注意すること

Java入門ではさらっと以下のように書いた、コンストラクタでインスタンスメソッドを実行することについて掘り下げてみます。 コンストラクタからインスタンスメソッドを使用することは可能ですが、避けたほうが無難です。 コンストラクタの実行中はインスタ…

バージョンアップ時に互換性を損ねてしまう変更

あるいは、利用者にバージョンアップをためらわせる変更の手引き。 前置き うっかり互換性を損なってしまう変更について書いてみます。 知ってたらやらかさないし、なんてことのない事なのだけれど、 知らなかったら何が駄目なのかわかりづらいし、 原因を突…

Javadocに何を書こうか

これは Java Advent Calendar 2015 の 16 日目の記事です。 昨日は @yukung さんの Java で引数の null チェックで迷った話 でした。明日は @mdstoy さんです。 ちなみに過去のJavaアドベントカレンダーで書いたもの。 2014年: Javaであまりしないコーディン…

WeldとJava SEとGradleとIDEAと

Weldを使ってみようと思いました。普段DIはSpring一本槍なのですが、それもどうかと思ったので。 opengl-8080さんやKazuhiraさんのようないつもの方々が既にやられていることだし、すぐできるだろうと思ってました。 JavaEE - JavaSE 環境でCDI(Weld)を使…

jBatchをgradle使ってSE環境で動かしてみる

JSR352-Batch Applicationを試してみた(Batchlet編) - しおしお(´・ω・`) jBatch(JSR-352) on Java SE 環境 | 寺田 佳央 - Yoshio Terada しおしおさんの書いたブログを見て、jBatch触ってみるかーという気になりました。 おれもそろそろjbatchかな— いろふ…

TimeUnitという物体

小ネタ。 java.util.concurrent.TimeUnit というクラスはご存知だろうか。ご存知?なら回れ右してください。お疲れさまでした。またの機会によろしくお願いします。 ... さて、読み進めているならばご存知でないはずなので、まずJavadocのリンクをば。 TimeU…

匿名クラスとかローカルクラスとか

Java入門では割愛としていたローカルクラスと、ついでに関連の強い匿名クラスについて書いておきます。ネストしたクラスとかインナークラス(内部クラス)とかはそこそこしっかり書いたつもりなので、読んでいただけると嬉しいです。 Javaエンジニア養成読本…

変数を使用する無名クラスのコンストラクタさん

過去記事を見ながら追記みたいな感じで。 リフレクションでprivateをテストしてみる - 日々常々 内部クラス/無名内部クラスはエンクロージングインスタンスの型を要求するコンストラクタが生成されて、内部クラスのフィールドにエンクロージングインスタンス…

Javaであまりしないコーディング

Java Advent Calendar 2014 - Qiita の9日目です。9日ったら9日です。 なんか難しいエントリが多い中ですが、空気を読まずに軽めでいきます。 Javaでは色々なコードの書き方ができるけど、実際あまりやらないよなーって思うコーディングについて、やらない理…