3行で言うと クラスを作成するときは toString() と formatTo() を定義しておくと便利 toString にはデバッグ用に開発者目線でわかりやすいフォーマットを formatTo にはユーザ目線でのわかりやすいフォーマットを はじめに JJUG CCC 2018 fall で Edson Yanaga 氏の「Revisiting Effective Java in 2018」というセッションに出て、地味に印象的だった formatTo についての話を自分なりに整理してみました。 セッションは Effective Java 第3版+α のノウハウについてライブコーディングしつつ語る、というようなもので非常に面白かったです。中でも formatTo については「java.lang パッケージにそんな便利なものがあったのか」と驚いたんですが、Qiita で検索してもほとんど記
class: center, middle # 明日から使える<br/><strong>実践</strong><br/>エラーハンドリング Scala関西Summit 2018 11/10 --- class: left, middle ## 自己紹介 * 中村 学(Nakamura Manabu) * [@gakuzzzz](https://twitter.com/gakuzzzz) * Tech to Value 代表取締役 * Opt Technologies 技術顧問 <img src="../images/opt_logo_1.jpg" alt="Opt Technologies" width="450" style="margin-left: 0px" /> * F-CODE CTO <img src="../images/f-code_logo.png" alt="f-cod
Javaはなぜ変わらなくてはならなかったのか。JavaOne改め「Oracle CodeOne」の基調講演で語られた理由。Oracle CodeOne 2018 米オラクルがOracle OpenWorld 2018と同時開催していたイベント「Oracle CodeOne 2018」は、昨年までJavaOneとして開催されていたイベントです。今年から「CodeOne」と名称が変わりました。 このイベントがJavaデベロッパーにとって最大のイベントであることに変わりはありません。初日の基調講演は「 The Future of Java Is Today」としてJavaの最新動向と今後が紹介されました。その内容をダイジェストで紹介しましょう。 Javaが迎えた変化の理由とは Javaと言えばこの人。米オラクルJava Platform Groupチーフアーキテクト Mark Reinhold氏
MapStructとは Entity(またはDomain)からDTOへの変換を助けてくれるライブラリです。 有名なMappingライブリとしては、Structs1.xのBeanUtilsや、ModelMapper・Dozerなどがあります。 MapStructの特徴は、Lombokと同じようにアノテーションプロセッサーを用いてコードを自動生成しているため、 ガリガリと自力でgetter/setterを用いてマッピングするのと同じぐらいに高速な点が特徴です。 性能については、下記記事で紹介されています。 Performance of Java Mapping Frameworks 主観となりますが、性能だけでなく、他のマッピングツールと比較しても、コードが直観的で解りやすいと感じています。 そんな素敵なMappingツールですが、ちょっと導入に色々と嵌ってしまった & 同様の記事が見つからな
現場で学んだことをまとめようシリーズ(はじめに) そのまま、現場で学んだ(使用した)ツール等についてまとめていくシリーズです。 自分のためでもあり、それが誰かのためになればいいな、という気持ちを込めて書きます。 間違えや記述方法についての指摘やコメント、お待ちしております! Lombokってなんぞや? アノテーションを付与することによって、Javaのボイラープレートコード1を排除することができるライブラリです。 アノテーションを付けるだけで、全てのフィールドに対してgetter、setterを実装してくれたり、コンストラクタを実装してくれたりします! データクラスの作成やコンストラクタインジェクションが楽になるので、Spring-Bootと非常相性が良いと個人的に思います! イミュータブルなオブジェクト2を使いたい時にも役立ちますので、 ぜひ使ってみてください! ちなみに読み方はロンボック
TL:DR; Java is still available at zero-cost, you just need to stop using Oracle JDK and start using an OpenJDK build, such as this one or this one. The trap Java 11 has been released. It is a major release because it has long-term support (LTS). But Oracle have also set it up to be a trap (either deliberately or accidentally). For 23 years, developers have downloaded the JDK from Oracle and used i
JavaでDBのテスト 実際のテストでめんどいDBのテストデータの準備とDBの状態のテスト。これまではDBUnitしか使ったことなかったけど、Dbsetupでテストデータを準備し、AssertJ,AssertJ-DBでDBのテストをやってみた。 DBUnit http://dbunit.sourceforge.net/intro.html データを外部ファイルで管理して、Assertionも期待値を格納したファイルと比較して書ける。 // Fetch database data after executing your code IDataSet databaseDataSet = getConnection().createDataSet(); ITable actualTable = databaseDataSet.getTable("TABLE_NAME"); // Load exp
はじめに 今回は、プログラム開発では大活躍!単体テストで使用できるフレームワーク、「DBUnit」の使い方を紹介します。 DBUnitとは、Javaで使用するテスティングフレームワークの一つなのですが、筆者が勉強した感じでは、記事が古かったり、それだけで完全に事足りるwebが少ないように見受けられたので、筆者の備忘と、この記事をご覧いただいた方への共有も兼ねて、こちらにまとめておきます。 参考としてwebに資料を記載いただいている優しい方も、たくさんいらっしゃるんですけどねorz 1. DBUnitとは 先にも記載しましたが、DBUnitとは、Javaプログラムのテスティングフレームワークの一つです。 テスティングフレームワークと聞くと、XUnitを想像されるかと思います。 今回の対象はJavaで実装したプログラムですから、よく使用するのはJUnitですが、DBUnitもJUnitと一緒に
基本的なデータベースアクセス方法の問題 Javaから一般的なリレーショナルデータベース(以下、データベースと呼称)にアクセスするには、以下に示すようにjava.sqlパッケージのConnection、Statement、ResultSetを使うのが基本です。 InitialContext init = new InitialContext( ); DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/TestDB"); Connection con = ds.getConnection(); Statement st = con.createStatement(); ResultSet rs = st.executeQuery("select * from items;"); ……// rsから結果を取得 rs.close(
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 2018年現在でもJava開発をしていると、Antすら使っていないEclipseプロジェクトにそこそこの頻度で出くわします。Eclipseの自動コンパイルが通ればOKであり、ビルドはExcel手順書をもとに手動で行われ、依存関係ライブラリはもちろんlibフォルダに各種jarファイルが放り込んであります。Eclipse上以外ではどう動かせば分かる人がいないため、コマンドラインからビルドなどを行うことは叶わず、CI化なんて夢のまた夢です。 そんなJava開発から脱却したい人向けのJava開発のモダン化ガイドです。 基本的にJava 8以降で
Javaで開発を行う際に、個人規模なので軽量なあれこれが欲しくなるのですが、基本的にJavaでライブラリを探すと重量級のものが多くあります。 ORMなどはその最たる例だと思います。 けれどいわばMicro-ORM的なものや、そのような永続化を主眼に置いたライブラリは、どのような規模でも欲しくなるものだと思います。 個人で開発を行うにあたって、改めて軽量級でオブジェクトの永続化を主眼に置いたライブラリを探してみましたので、いくつか紹介したいと思います。 なお、今回探した際の観点としては、 Stream APIと親和性が高い(Collection APIでも可) 設定レスで利用できる 永続化対象のオブジェクトを、ファイルシステム上に保持できる Key-Value-Store(規模的にSQLは書きたくない) というものです。 特に重要視したのは、Stream APIとの親和性および設定レスでの利
先月末でJDK11はRampdownフェーズに入って、機能凍結されました。 なので、今後はAPIの追加・削除・変更はほとんどないと思われます。 おそらく、機能的には現在でているea20とほとんど同じものがJava11としてリリースされることになると思います。 JDK 11 Early-Access Builds 大きな機能変更としては、ここでJEPとしてまとまっています。 「JDK 11」 http://openjdk.java.net/projects/jdk/11/ Raw String Literalが間に合わなかったのはとても残念です。JDK11トレインに乗り遅れるからがんばるぞ!みたいな投稿があって仕様をまとめてからML上は音沙汰なしですが、Rampdownフェーズが始まってから機能追加するLate Enhancement Request Processというのがあるようなので、
2009年のカンファレンスでNull参照を発明したことについて謝罪している。 それは10億ドルにも相当する私の誤りだ。 Null安全でない言語を使っている開発者がいつも悩まされている憎き問題です。 計算機科学者である アントニー・ホーア | wikipedia が上記のような発言をしたとおり、言語に織り込まれた技術的負債といっても過言ではありません。 現代の新規開発においては null安全でない言語は、もはやレガシー言語だ | Qiita 記事のようにNull安全でない言語自体を回避するという考え方もありでしょう。 しかしながら、様々な理由でNull安全でない言語を選択しなければいけない場面は尚存在しています。 そこで今回はJavaにおけるNullと向き合う際の手法について考えていきます。 読み進める上での注意点 対策案には「オススメ度」をつけていますが経験に基づく個人的な感想です チーム
Eclipse Kepler (4.3.2) SR2 Packages で説明する Mavenは何が便利? Mavenがjarとかライブラリをダウンロードしてくれる 使いたいライブラリを個別に集めなくてもいい。 使いたいライブラリに関連する別のライブラリも集めなくていいい。 他の開発者にわざわざライブラリを渡さなくてもいい。 ライブラリのバージョンが上がっても、バージョン番号をいじるだけ。 ライブラリの元のソースコードもMavenがダウンロードしてくれる。 Jenkinsを使っていたら、jenkinsはMavenとの連携は簡単。 ダウンロードされたライブラリはローカルディスクのライブラ置き場で保管され、必要に応じて使われる。 Eclipseのビルドパスに勝手に追加してくれる。共同開発者も含めてビルドパス管理不要になる。 複数のプロジェクトのライブラリの種類やバージョンを1箇所で管理できたり
はじめに Maven の Archetype Plugin を使って Java project を作成する方法と、その project に対する Maven の基本操作について説明する。 Maven のコマンドを1つ実行するだけで、 Hellow World プログラムの source file と test file が自動で作成される。 Project の作成 以下の Maven コマンドを実行すると、 Java project が作成される。 mvn archetype:generate \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DinteractiveMode=false \ -DgroupId={group-id} \ -DartifactId={project-name}
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く