『速習Kotlin』を読んだ

速習 Kotlin: Javaより簡単!新Android開発言語を今すぐマスター 速習シリーズ

仕事のプロジェクトで、Javaに加えて一部Kotlinも使っているので、Kotlin学習のために読んだ。

KotlinはBetter Javaという趣で、Javaのイマイチなところ(nullの扱いとか、トップレベルに関数を定義できないとか)を改善した上で、Javaの資産も活用できる点に強みがある。

また、IDEベンダーであるIntelliJが開発した言語ということもあり、IntelliJ IDEAで強力にサポートされている点も見逃せない。

『速習Kotlin』はKindle専売の電子書籍で、Javaの知識をある程度持っていることを前提に、手早くKotlinの知識を身につけることができる。

本書を読んで、Kotlinのモダンな言語仕様はいいなあ、Javaも悪くはないけど、コード量多いよなあ、という所感を抱いた(Javaも8以上+ Lombok 込みなら それなりに便利だけど)。

Kotlinはもっと書く機会を増やしていきたいので、次は『みんなのKotlin』で実践的な知識を身につけたいと思う。

みんなのKotlin 現場で役立つ最新ノウハウ!

『独習Java』を読んだ

独習Java 新版

仕事でしばらくJavaのプロジェクトに携わることになったので、読んだ。

『独習Java』は、基本構文や主要なクラスライブラリの解説が載っていて、一通りの基本知識は身に付けることができた。特に良いのがJava 11対応している点(これから読むなら、少なくともJava 8以上に対応している書籍にすべきだと思う)。

一方で、フレームワークやライブラリといった現場っぽい知識は本書では触れられていないので、その辺は別の書籍で補いたい。例えば『Java本格入門』はこの辺のトピックにも触れていそう。

Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで

Javaを本格的に学んだのはこれが初めてだったけど、C#やPHPといった今まで使ってきた言語との共通点も多いため、言語の構文については苦労せず学ぶことができた。

独特なのはクラスライブラリあたりからだけど、それについては必要になった時に調べればいいかな、程度の印象。

一方、これから苦労しそうなのはJava言語を取り巻く諸々。

例えば、Javaのランタイムは企業系のもの(Oracle, Redhat, AWS)からコミュニティベースのものまで色々ある。IDEは会社ではIntelliJ IDEAが標準だけど、業界的にはEclipseが根強い。また、ビルドツールもMavenだったりGradleだったり色々。フレームワークも多く、定番のSpringだけでなくPlayもあるし、Micronaut等のマイクロサービス志向フレームワークもあれば、Seasar2やStruts2などで動いてるプロジェクトも現役だったり。

これらにキャッチアップする上で、良さそうな本(『みんなのJava』)も見つけたので、次はこれを読んでみようと思う。

みんなのJava OpenJDKから始まる大変革期!

『基礎から学ぶ サーバーレス開発』を読んだ

基礎から学ぶ サーバーレス開発

仕事でAWS Lambda(+Serverless Framework)を使う機会があり、AWS LambdaやServerless Frameworkについてほとんど知らなかったので、読んでみた。

『基礎から学ぶサーバーレス開発』は、AWS Lambdaを題材にサーバーレスアーキテクチャでのシステム開発方法を学ぶ書籍。

一番のポイントは出版年月日の新しさ(2020年7月)。クラウドは新機能や新サービスの追加が多いので、書籍に載っている情報もどんどん古くなる。そういう意味で、最新の情報がまとまった書籍にちょうどよく巡り合えたのはラッキーだった。

内容についても、サーバーレスの良さだけでなく、気をつけるべき点についても書いてあったり、実際に動かして試せるコードサンプルもあって良書だと思う。

AWS Lambdaで実稼働させるシステムをどう組めばいいのか分からない、という人にはオススメ。

『雰囲気で使わずきちんと理解する!整理してOAuth2.0を使うためのチュートリアルガイド』を読んだ

雰囲気で使わずきちんと理解する!整理してOAuth2.0を使うためのチュートリアルガイド (技術の泉シリーズ(NextPublishing))

仕事でGoogle APIのOAuthを使う機会があり、そういえばOAuthってちゃんと勉強したことなかったなーということで読んだ。

本書を読む以前のOAuth経験はTwitterクライアントの実装くらい(要するにOAuth 1.0しか触ったことがなかった)。

OAuth 2.0はOAuth 1.0の欠点も踏まえて、よりモダンな仕様になっている。といってもRFC 6749は2012年なので、そこまで新しいわけではなく、OAuth 2.1という仕様も策定が進められている。が、これはRFC 6749の後に出たRFCの機能を盛り込んだり非推奨になってきた機能を外したりといった再構築バージョンという趣で、ベースはOAuth 2.0。OAuth 2.0の知識は今後5〜10年くらいはもちそうな印象がある。

一方でOAuth 2.0は結構複雑で、これだけをテーマに500ページ近い本を書ける分野でもある。

OAuth徹底入門 セキュアな認可システムを適用するための原則と実践

本書『雰囲気で使わずきちんと理解する!整理してOAuth2.0を使うためのチュートリアルガイド』は、そんなOAuth 2.0の基本を150ページ程度で押さえることができる書籍になっている。

基本的な用語の解説と主要なアクセストークン発行の流れが網羅されており、本書を読み終わった後にはちゃんとした理解のもとでOAuthクライアントライブラリを利用できるようになる。

OAuth 2.0について書籍で学びたい人が最初に手を出す本としてオススメ。

WP Super Cache をやめて W3 Total Cache をインストールした

WordPressのキャッシュプラグインは色々あるけど、今までこのブログでは WP Super Cache を使っていた。Automattic製ということもあり、信頼がおけると考えていて、実際「静的HTMLをキャッシュして返す」という部分では特に問題なく動作していた。

しかし、WP Super Cacheはサーバサイドでレスポンスを静的HTMLとしてキャッシュするという用途に特化しており、ブラウザキャッシュの設定などは別途行う必要がある。

カスタムテーマにヘッダーをセットする関数を仕込んだりしてもいいのだけど、WordPressなんだからプラグイン + GUIで設定したいということでいくつか試した結果、 W3 Total Cache が良い、という結論になった。

W3 Total Cacheをインストールすると、WordPressの管理画面に「パフォーマンス」というメニューが追加される。

このメニューから各種設定を行えるのだが、レスポンスキャッシュだけでなく、HTML/CSSの圧縮、データベースキャッシュ、PHPレベルのキャッシュ、ブラウザーキャッシュなど多岐にわたるキャッシュ設定を行うことができる。さらに、CDNとのインテグレーションなどもあり、WordPressのパフォーマンス最適化に関する設定全般を引き受けるプラグインになっている。

ブラウザキャッシュも管理画面から細かく設定できる。

W3 Total Cacheを入れていくつか最適化した結果、PageSpeed Insightsの計測結果は95点になった。

さらなる最適化には不使用cssの削除など、出来合いのテーマを使っていては手を出しづらい領域に踏み入れる必要がある。現状のスコアも悪くはないので、これ以上の最適化はしなくても良いかなーと思っている。