JJUG CCC 2017 Fall
JJUG CCC 2017 Fall
The document discusses Spring configuration and Java-based configuration. It covers topics like using @Configuration classes to define beans, @ComponentScan to find beans, @Bean to define beans, and using Java configuration as an alternative to XML configuration in Spring. It also provides examples of configuring ViewResolvers, controllers and enabling Spring MVC features with annotations like @En
Java SE 9を、新たに導入されたモジュール・システム(Jigsaw)を中心として紹介します。JJUG CCC 2017 Fallの発表資料です。 補足: p. 7 正しくは「JMX」→「JMS (Java Message Service)」。JMXはJava SE内の、モニタリング用の仕組みです。 p. 43 これに加えて、SPIの実装を提供するモジュールも、モジュールレイヤーに含まれます。具体的にはConfiguration.resolveAndBindの動きです。 p. 47「Oracle JDKでは、外部モジュールの非公開メンバへのリフレクションが可能」は、OpenJDKでも同じ動作です。「HotSpot系の」とすべきところでした。 このスライドはCC Attribution Licenseの元に、利用・改変・再配布をライセンスします。
Kotlin歴2ヶ月程度で勉強中なのですが、現在プロジェクトのソースコードを少しずつですがKotlinに置き換えていて、本日11/7時点でKotlin率は40%弱です。 この記事の内容は、そんな自分がKotlin置き換え始めた頃の失敗、問題点を雑に振り返り、 JavaのソースコードをKotlinに書き換える際には下記2つを行なうのが良いのではないかという提案です: 自動変換コードは常に疑う デコンパイルされたバイトコードのレビューをする 尚、内容はYahoo JAPAN!様で開催されたBonfire#2にて発表したものから抜粋しています。(発表資料はこの記事の下部にあります) Kotlin置き換え始めた頃の自分の問題点 1. 自動変換を信用しすぎていたこと Android Studioを用いたAndroidアプリケーション開発において、JavaのソースコードをKotlinに置き換える際には
JVMにチューニング項目は多々あれど、プロダクションで運用する際に予めおさえておきたい項目をまとめてみるエントリです。*1 勿論、OSもJVMもデフォルトである程度のパフォーマンスは発揮でき、計測を伴わないチューニングは悪手であることはよく知られています。 しかし、設定しておかないとパフォーマンスにそのまま影響すると分かるものを調べないのは裸で戦場に赴くようなものです。*2 どんな項目をどう変更すれば良いのか知っていることは重要な武器なのです。 なぜ調べるのか 今回、チューニングポイントを調べるにあたって、私のモチベーションはどこにあるのかを考えると、以下の要件を満たしたいということがあげられます。 アプリケーションとして求められる品質水準として動作する → 性能目標 異常時に事象を追うことができる ここでいう品質水準・異常とは、パフォーマンスが明らかに低い、アプリケーションがクラッシュす
最近気づいたことがある。それは、僕はみんなみたいに複雑なことが理解できない、ってこと。 話をしてても「ごめんなさい。いまのわかんなかった。もう一回教えて欲しい。」とかよくあるし。ドキュメントも、ちょっと複雑なことが書いてあると、全然頭に入ってこない。 色んなルールがドキュメントに書いてあって、それをちゃんと守りながら開発してる人たちとか見てると、みんなすごいなぁって思うのであった。 なんだろうなぁ。こう・・・色んな想像が始まってしまって、考えが落ち着かないんよね。 そんな僕なのだけど、ここ数年はありがたいことに色んなコードを読む機会がある。読みやすいコードもあれば、パズルみたいに複雑なものもあって。そんな中で、たぶん、僕にとって読みやすいコード、というのは普通の人にとってはとても読みやすいコードなのかなぁって思って。書いてみる。 JavaでWebのアプリを開発してる。基盤とかフレームワーク
はじめに このエントリは『テスト駆動開発』を写経しようと思ったものの、環境構築から始めなければならない人向けに書きました。 テスト駆動開発 作者: Kent Beck,和田卓人出版社/メーカー: オーム社発売日: 2017/10/14メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る まず、私の Java に対する習熟度についてですが、Java言語プログラミングレッスン 第3版(上) Java言語を始めようの上下を読破した程度で、Java 周りの開発環境は全く分かっておらず、Eclipse を軽く触ったことがある程度です。 また、テスト駆動開発や自動テストについては、興味はあったものの実際に手を動かして使ったことはないレベルなので、『テスト駆動開発』を写経して実際に体感してみようと思い購入しました。 ですが、いざ読み始めてみると「Eclipse で JUnit の使い
ソラコムがSIM上でJavaアプレットを実行する「SORACOM SIMアプレット」を発表。SIMがプログラマブルなプラットフォームとしてIoTにおけるさまざまな可能性を広げていくことが期待される。 携帯通信網を利用するために必要なSIMカードは、単なるデータストアではありません。その内部にはOSが搭載され、Javaアプレットの実行環境があらかじめ用意されています。 IoTプラットフォームを提供するソラコムは、このSIMカード内部にJavaアプレットのコードを書き込み、起動することでSIMに対してさまざまな機能拡張を実現する「SORACOM SIMアプレット」を発表しました。 SORACOM SIMアプレットはSORACOMプラットフォームとセキュアな通信路を確立して通信できるようになっています。 「SIM Local Infoレポート機能」を発表 ソラコムはSIMアプレットの第一弾として
サンフランシスコで開幕した「JavaOne 2017」。初日の基調講演では、オラクルがJava対応のサーバレスプラットフォーム「Fn Project」(エフエヌプロジェクトと発音されていました)を発表。オープンソースとして公開しました。 Fn Projectは、3つコンポーネントで構成されています。1つ目はFunction as a Serviceを実現する「Fn Server」。クラウドでも、手元のノートPCでも実行可能で、コンテナネイティブとして開発されています。 2つ目は、Java Function Development Kit(Java FDK)。JavaでFunctionを記述するためのSDKです。テストも可能。 3つ目は、Functionのオーケストレーションによる高度なワークフローを実現するFn Flow。 Fn Projectは言語に依存しないサーバレスプラットフォームと
JavaOne2017を前にして、待望のJava9が遂にリリースしましたね! さて、Java9といえばやはり気になるのはjigsawによるモジュール機能です。モジュールの使い方までは良く見ますが、jlinkが個人的には気になってたので試した結果をまとめました。 はじめに Jigsawに関してですが少なくとも現時点では、fat-jarやgo言語のようなシングルバイナリを代替するようなことは単独ではできません。 ただ、モジュールとjlinkを使うことでアプリケーションを含んだ配布用のJVMを生成することが可能で、今回はそれについての説明になります。 モジュールで公開範囲の改善や依存の早期発見ができるようになったことは特に触れないので、その辺はこの記事とかを参考にされると良いと思います。 コードの準備 まずは、コードの準備です。 下記のような感じでアプリからライブラリが三階層で呼ばれてるようなサ
オラクルはJava EEの策定をEclipse Foundationへ移行することを発表しました。(参考日本語訳) Eclipse Foundationも歓迎の意を表明しています。 Welcome the Java EE community to the Eclipse Foundation. https://t.co/g19n2orVg8 — Eclipse Foundation (@EclipseFdn) 2017年9月12日 オラクルは先月、もうすぐ策定が終了するJava EE 8の登場を機に、今後のJava EEの策定をオープンソースコミュニティへ移管することを模索していることを明らかにしていました。 この時点ではどのコミュニティに移管するのかは検討中とのことでしたが、その後Java EEの主要なコントリビュータであるRed HatやIBMにも相談したうえで、移管先をEclipse
単体テストは実装中や実装直後など開発の早い工程でバグを発見でき、手戻りが少なく費用対効果の高いテストとされています。そのため、多くのシステム開発現場で導入が進んでいます。Java開発における単体テストの自動化フレームワークとしては「JUnit」が有名ですが、膨大なテストコードを書いたり、デバッグに多くの時間を費やしたりするケースも多々あります。せっかく費用対効果の高いテストを自動化したとしても、これでは十分なメリットを享受できたとはいえません。そこで、本記事ではJUnitを使った単体テストを効率よく行うための手法を解説し、さらに、テストツール「Jtest」の単体テストアシスタント(Unit Test Assistant)を活用して、30秒で単体テストの実装を行う方法や、テスト失敗の原因をひと目で確認する方法を紹介します。 Java対応静的解析・単体テストツール「Jtest」 関連記事 Ja
illustration by iwasawa Selenideとは Selenideとは、エストニアにあるCodeborne社のAndrei Solntsev氏を中心に開発が行われているWebDriverのJavaラッパーの一つで、同じJavaで実装されたFluentLeniumやGroovyでのGebに相当するものです。WebDriverはプログラムからブラウザを操作するAPIを提供していますが、基本的に低レベルAPIで自動テストを記述するには大量のコードが必要となります。SelenideはWebDriverを基盤としながら高水準APIを提供することで、WebDriverを素で使うよりも容易にかつ記述量を抑えてテストを記述することができます。 Selenideの特徴 以下ではSelenideの特徴を述べていきます。これらの中には上記で挙げたFluentLeniumやGebでも提供されて
今日はJavaライブラリの中でも非常に基本的でよく使われるメソッド、 System.currentTimeMillis() を見ていきましょう。 このメソッドはミリ秒単位の精度で現在時刻を知らせます。このことから、このメソッドの処理能力は重要ではないと思う人もいるかもしれません。計測間隔が100ミリ秒や500ミリ秒なのであれば、現在時刻を取得するのに0.1や0.2ミリ秒かかったからといって誰も気にしないでしょう。しかし、やはり頻繁にこのメソッドを呼び出したいケースがありそうです。下記に例を挙げます。 異常に長い実行時間を検知し知らせる場合。例えば、HTTPリクエストを実行するのにかかる時間を計測するケースを考えます。この場合、1ミリ秒以下が計測されると思われることでしょうが、実際にはこのメソッドを使えばゼロが出力されることに注意して下さい。しかし時間が異常に長い(例えば100ミリ秒以上)場
@BladeCoder が書いた Kotlinの隠れたコストの調査 という一連のブログ記事は、ある Kotlin 構文にどのように隠れたコストがあるのかを説明しました。 実際の隠れたコストは、普通、不可視オブジェクトのインスタンス化やプリミティブ値のボクシング/アンボクシングに起因します。これらのコストは、Kotlinコンパイラがどのように上記の構文をJVMのバイトコードに変換するのかを理解していない開発者には特に見えづらいのです。 しかし、何らかの数字を示さずに隠れたコストの話をするだけでは、実際にどのくらいコストのことを心配すべきなのかという疑問が湧いてきます。コードベースのいたるところで、これらのコストを考慮すべきでしょうか?あるKotlin構文は単に全面的に禁止されるべきでしょうか?あるいは、最も範囲の狭い内部ループの中でだけ考慮されるべきでしょうか? さらに挑発的な言い方をすれば
私が仕事として扱ったことのあるプログラミング言語は以下があります。 Java C/C++ Python PHP javascript この中でも Java は特別で、15年近く愛用してきました。 Javaの優れている点 Java の優れている点として以下があるとおもいます。 10年前のコードも動かせる信頼性の高いVM クロスプラットフォーム動作 豊富なライブラリ群 高速動作 信頼性の高いVM インタープリタ言語の中にはランタイムのバージョンアップで動作が変わってしまったりすることも多く、なんたらenv といったアプリケーションを使って任意のバージョンのランタイムに固定するのが慣例となっていますが、Javaにおいては最新のJVMを入れれば大体なんとかなります。 クロスプラットフォーム動作 私は長らく Windows を開発機として使用し、Linux サーバで動作させる。ということをしてきまし
若手Javaエンジニア必見。知っておきたいフレームワーク・ツール23選 システム開発において、登場頻度が非常に高いJava。数多くのフレームワークやツールが存在しますが、一体どれを選べば、効率的な開発が行えるのでしょうか。おすすめのものを一挙にご紹介します! システム開発をする際、欠かせない存在なのが各種フレームワークやツールです。これらを導入することで、工数の削減やアプリの品質向上、セキュリティの堅牢化など数多くの利点があります。中でもJavaのフレームワーク・ツールは、Javaを開発に使用している企業の多さゆえ、利用される頻度も高いものです。 しかし、それらは数えきれないほどの種類があるため、知識の少ない若手のうちは「どれを選べばいいんだ……」と途方に暮れてしまうケースも少なくありません。 そんな悩みを解決するため、今回はよく使われるものから珍しい機能のもの、最近注目されているものまで
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く