Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
当社はCookieを使用して、お客様が当社のWebサイトでより良い体験を得られるようにしています。引き続き閲覧する場合は、プライバシーポリシーに同意したことになります。
JITWatchはJITコンパイルを可視化し分析するためのツールなのですが、これは2014年にこのブログにも書きました。 jyukutyo.hatenablog.com Twitterでこのツイートを見て、新機能を知りました。 New #JITWatch visualisations! See compiler thread queues, timings, bytecode and nmethod sizes. #HotSpot #Java #JVM pic.twitter.com/kCeIbWnhHa— Chris Newland (@chriswhocodes) 2017年12月9日 新機能を見てみます。サンプルのログは、JITWatchに付属しているデモ用ログファイル生成コマンドを実行して生成しました。 $ cd jitwatch $ ./makeDemoLogFile.sh $
Visual Studio Code Advent Calendar 2017 の 11日目の記事です。 🙂 今年の自分は Java と PHP と JavaScript と電子工作の年だったような気がするのですが、そんな中、全てにおいて随分お世話になりました VS Code。Microsoft から Arduino 拡張がリリースされたのが一番驚きました。 ということで、今日より 3日間 VS Code について書いていこうと思います。まず最初は Language Support for Java(TM) by Red Hat(vscode-java) から。「フロントエンド技術を導入した Java ウェブアプリケーション開発」です。 この記事では VS Code で Java とフロントエンド系の開発を行うサンプルプロジェクトを準備しました。 簡単な操作で昨今のフロントエンド技術を使
かつてJavaは技術の中心だった 私はSIerでシステム開発のアーキテクトやPMを担当しています。SIではまだまだJavaが主流ですが、文法を理解してコーディングできるだけでは活躍できない時代がすでにきていることを実感します。 私の上司が「技術の渦」という独特の表現を使って説明してくれたのですが、2000年から2006年ぐらいまではJavaを書くということは、いろいろな最新技術の実装を学べる時代でした。アプリケーションサーバー、XML、SOAP、MQ、CORBA、マルチスレッドなど、現代の評価としては芳しくないものも多いですが、そういった技術的チャレンジが多かったため、Javaエンジニアはあえて外に出ることもなく、ITの主要技術を学ぶことができていました。 時代の変化とそれへの追随 ただ、Web2.0やiPhone/Android登場以降、技術の渦はフロントエンドを経てアプリへと移ってきま
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
2. 問題 • +演算子による文字列結合は最終的に どのような処理になる? private static String test(String str, int value) { return "ABC” + str + value; } 3. Java 8 までは • コンパイル時に StringBuilder を使った処理に なる private static String test(String str, int value) { return new StringBuilder() .append("ABC") .append(str) .append(value) .toString(); } 4. Java 9 では • InvokeDynamic で、実行時に処理を作る private static String test(String str, int value) { r
出展: プログラム内のコメントの書き方 | 天才まくまくノート はじめに(モチベーション) こんな話があります。あるソフトウェア企業が一人の技術者の採用を決めました。その決め手となった理由は、「公開しているオープンソースソフトウェアのドキュメントが素晴らしかったから」です。彼らは、作成されたドキュメントを見ただけで、その人には技術力がある、一緒に働いて欲しいと判断したのです。 ある国の言語を学ぶために読み書きの練習が必要であるのと同様に、コーディング技術をつけるには、多くの良質なコードを読み、多くのコードを書くことが必要です。設計ドキュメントを書くのも同じことです。日頃から分かりやすいドキュメントを書く鍛錬を怠らず、長年の経験を積んでいかなければ、良質なドキュメントを書く力は身に付きません。今日からドキュメンテーションコメントをバリバリ書いて、ドキュメンテーション力を付けていきましょう。
JVMにチューニング項目は多々あれど、プロダクションで運用する際に予めおさえておきたい項目をまとめてみるエントリです。*1 勿論、OSもJVMもデフォルトである程度のパフォーマンスは発揮でき、計測を伴わないチューニングは悪手であることはよく知られています。 しかし、設定しておかないとパフォーマンスにそのまま影響すると分かるものを調べないのは裸で戦場に赴くようなものです。*2 どんな項目をどう変更すれば良いのか知っていることは重要な武器なのです。 なぜ調べるのか 今回、チューニングポイントを調べるにあたって、私のモチベーションはどこにあるのかを考えると、以下の要件を満たしたいということがあげられます。 アプリケーションとして求められる品質水準として動作する → 性能目標 異常時に事象を追うことができる ここでいう品質水準・異常とは、パフォーマンスが明らかに低い、アプリケーションがクラッシュす
クラスファイルの中身 クラスファイルの構造 javap コマンド javap 出力の概要 型とメソッドの読み方 オペランドスタック コンストラクタの実行 加算メソッド invoke 系命令 条件判断 for ループ まとめ 普段使いでは困ることはないですが、昨今はバイトコードマニピュレーションによる黒魔術が謳歌しているため、知っていると役に立つ場合もあるバイトコードの最低限の読み方を説明します。 クラスファイルの中身 以下のような簡単なソースコードを考えましょう。 public class Class1 { public int add(int x, int y) { return x + y; } } このソースコードをコンパイルして作成された Class1.class の中身のダンプを見てみます。 $ hexdump -C Class1.class 00000000 ca fe ba
レガシーなJavaで書かれたシステムのコードを見ていると、以下のようにInputStreamでファイルを開いて、OutputStreamでコピー先のファイルに書き込むみたいなものがあったりします。 try(InputStream input = new FileInputStream(srcFile); OutputStream output = new FileOutputStream(dstFile)) { byte[] buffer = new byte[BUFFER_SIZE]; int size = -1; while ((size = input.read(buffer)) > 0) { output.write(buffer, 0, size); } } 他にはどういう方法があるのでしょうか。ファイルコピーの歴史が詰まっている、commons-ioの実装の変遷をふりかえり、そ
最近気づいたことがある。それは、僕はみんなみたいに複雑なことが理解できない、ってこと。 話をしてても「ごめんなさい。いまのわかんなかった。もう一回教えて欲しい。」とかよくあるし。ドキュメントも、ちょっと複雑なことが書いてあると、全然頭に入ってこない。 色んなルールがドキュメントに書いてあって、それをちゃんと守りながら開発してる人たちとか見てると、みんなすごいなぁって思うのであった。 なんだろうなぁ。こう・・・色んな想像が始まってしまって、考えが落ち着かないんよね。 そんな僕なのだけど、ここ数年はありがたいことに色んなコードを読む機会がある。読みやすいコードもあれば、パズルみたいに複雑なものもあって。そんな中で、たぶん、僕にとって読みやすいコード、というのは普通の人にとってはとても読みやすいコードなのかなぁって思って。書いてみる。 JavaでWebのアプリを開発してる。基盤とかフレームワーク
オラクルのJava言語アーキテクトであるBrian Goetz氏と、オラクルのプログラミング言語研究者であるGavin Bierman氏の2人はJavaプログラミング言語への統合を見込んだパターンマッチの構想についてInfoQに述べた。 動機 この研究の動機は、いくつかの一般的なJavaプログラミングのイディオムを改善することだ。以下のことを考えてみよう。 if (obj instanceof Integer) { int intValue = ((Integer) obj).intValue(); // use intValue } 動作中3つの操作がある。 objがInteger型かどうかを特定するための検査 objをInteger型にキャストする変換 Integerからintを取り出す分解操作 次にif...else構造にある他のデータ型に対して検査することを考えてみよう。 Stri
Oracle Blogsの主としてテクノロジー製品のエントリを日本語でご紹介します(オリジナルのエントリを投稿することもあります)。厳密性をご所望の方は原文をどうぞ。よい内容でしたら原文に対し、"Good Entry, thanks!"でもいいので、是非コメントお願いします(Typoや誤訳はコメント欄からどうぞ)。なお、このエントリは個人の見解であり、所属する会社の公式見解ではありません。また、エントリ内でご紹介している製品・サービスは国内導入時期が未定の場合もありますのでご了承下さい。 Good entries on Oracle Blogs are put into Japanese. Mainly this blog covers technology products. Opinions expressed in this blog is my personal one and d
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く