サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
やろう!確定申告
saiya-moebius.hatenablog.com
SLF4J などの Logger を使うときに、毎回以下のようなボイラープレートを書くのにうんざりしていませんか? 少なくとも私は大変うんざりしています: class TestController { // Kotlin Example companion object { private val log = LoggerFactory.getLogger(TestController::class.java) } // 長くてつらい... } class TestController { // Java Example private static final Logger LOG = LoggerFactory.getLogger(TestController.class); // これは 1 行だが、とはいえ長いし class 名を二度書くのが辛い & コピペ間違いも起こしやすい }
公式ドキュメント:SimpleDateFormat (Java Platform SE 8) 便利かつ頻繁に利用される SimpleDateFormat クラスだが、実際のところ罠が多い。 知らずに罠を踏んでいる事例を身の回りで何度も目にした上に、罠を網羅的にまとめた記事が少ないことに気がついたので、書いてみた。 まとめ マルチスレッドで使うと壊れる : 下手なことはせずインスタンスは毎回作るべし 実在しない日時が通る : setLenient(false) すべし 文字の不足や過剰があっても通る : format 結果と突き合わせるべし 全対策を盛り込んだコード License: 以下 DateTimeUtil クラスのライセンスは Public Domain とする import java.util.Date; import java.text.ParseException; impo
Ruby にて環境変数の値を使う場合には ENV.fetch を使うと良いのではないか、という小ネタ。 そうすることで環境変数が存在しないエラーを早期に検知できる上、エラーの根本原因が例外に反映されるので分かりやすくなる。 この2行だけでほぼ言い尽くしてしまっているが、以下詳細説明: ENV を使う背景 環境変数を読む理由は色々ありうるが、特に Heroku や Docker などの近代的な PaaS 環境・コンテナ環境において環境変数を読むことが多い。 例えば Ruby on Rails アプリで DB に接続する場合、接続先の DB のホストやユーザー情報を database.yml に決め打ちするのではなく、Heroku デプロイ時や Docker コンテナ起動時に指定したいということが多いためである。 また、Ruby on Rails では database.yml などの各種設定
Macbook を買う際には英字配列キーボードにしているのだが、その際のキーボード設定のやり方を毎回忘れてしまうのでメモがてら記事にした。 この設定をすることで、英字キーボードでありながら、日本語入力の On/Off を素早く切り替えることが可能になる。 以下の手順は Mac OS X と Windows VM (VMWare Fusion) 環境で実践済みの手順だが、Mac/Windows 単独といった別の環境でも有用なはず。 この設定で実現されること 左 Command を「英数」、右 Command を「かな」キーとして使う ただし、Command + 何かのキー の場合には普通の Command キーとして機能する また、VM 系のソフトに対してのみはこのマッピングを適用しない Windows VM 側では右 Alt を「全角/半角」キーとして使う VM 利用中は Command
コンストラクタ・メソッドを書く際、引数が null になっていないかのチェックを書くのがめんどくさくて省略してしまうことはないだろうか? ...少なくとも私はめんどくさくて多くの場合省略してしまっていた。 しかし、Java 7 以降に入った Objects クラスなるものを使うと楽に書けるということを知ったので共有までに。 Usage Objects (Java Platform SE 7) 公式の説明を見ればわかる通り大変シンプル。 Objects.requireNonNull メソッドは引数が null なら NullPointerException を投げ、そうでないなら引数をそのまま返す。 class Hoge { private final String huga; public Hoge(String huga){ this.huga = Objects.requireNonN
MySQL JDBC ドライバ(MySQL Connector/J)、Java で MySQL といえばまずコレだが、これまた地味に罠が多い(そして多くの人が踏んで苦しむ)のでまとめてみた。 (2015/03/19) こちら のコメント欄でご指摘ただいた wait_timeout の件について記事修正いたしました。 Summary 以下、いずれもプログラム設計時に理解しておかないと、開発中は大丈夫そうでも実用した途端に苦しまされれてしかも設計から治す羽目になる要注意な罠である: SELECT 結果は全部メモリに載ってしまう (デフォルト設定で) 大量 SELECT する場合は FetchSize, ResultSetType を要設定 利用時には制約があるので、設計段階から考慮しなければならない (後述) idle 時間の「合計で」コネクションが切られる 前回のクエリ処理から一定時間以上経
このページを最初にブックマークしてみませんか?
『~saiya/hatenablog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く