ThoughtWorksは2015年1月のレーダーのデジタルプレビューを発表し、技術、ツール、プラットフォーム、言語について意見を公表し、ソフトウエア技術に関する現在のトレンドを発表した。
ThoughtWorksは半年に一度、4つの事象に分割したレーダーを公表している。それぞれの事象は4つの評価を示している。Adopt、Trial、Assess、Holdの4つだ。それぞれの技術はブリップとして表現されている。レーダーには、すべての技術が取り上げられているわけではない。すべてを取り上げると読みにくくなってしまうからだ。また、ブリップは、普通、連続するふたつのレポートのレーダー(つまり1年間のレーダー)に取り上げられ、その後は削除される。おかれる事象が変わる場合は例外だ。これは、それぞれの技術が価値がないという意味ではなく、変化がないということを示している。ここ数年で取り上げられた技術についてはA-Z Indexで確認できる。
この記事では今回のレーダーに取り上げられた特に興味を引く技術について紹介する。
技法
カナリアビルド – これは、今回初めて出現した技法で、Trialに分類されている。カナリアビルドでプロジェクトのコードを最新バージョンの外部依存物と統合して何か問題が発生するかどうかを確かめてみることが推奨されている。
ローカルストレージ同期はTrialに分類されている。ローカルストレージ同期を使い、オフラインファーストで新しいシングルページウェブアプリケーションを作る。アプリ開発者はバックエンドのシステムと自動的に同期するデータをローカルで扱うようになる。
追加限定データストアはAssessに分類されている。不変データストアはコードをより簡単に書きやすく、読みやすく、合理的にする。Datomic、または従来のデータベースで更新ではなく、追記だけを使って実現する。
マイクロサービスのねたみはHoldに分類されている。ThoughtWorksは急いでマイクロサービスアーキテクチャで実装することを推奨していない。“分散システムが生む複雑さ”のため“よりいっそうの成熟と投資”が必要だからだ。すべてをマイクロサービスで実装するよりは、1つ2つのサービスから始めるべきだ。
Gitflowを使った長期のブランチはHoldに分類されている。Gitflowを使って長期のブランチの作成し、マージを定期的にしない場合、有用な機能が長期的には“問題”になる可能性がある。特に大規模なチームの場合はそうだ。マージは定期的に実施、できれば毎日やるのがいい。
ツール
Boot2dockerはTrial。2014年中はDockerはTrialだったが、ThoughtWorksはBoot2dockerを使ってみることを推奨している。Boot2dockerは軽量なLinuxディストリビューションで、Dockerを含んでおり、VMとして提供される。効率的に“ローカルマシン上で複数のサービス”を走らせるのに便利だ。
Gitlab はTrial。LDAPサーバと統合されたオンプレミスのGitホスティングソリューションとして推奨されている。
IndexedDB はTrial。このウェブ技術は、より複雑な要件のときだけ使ってみることが推奨されている。というのは、“複雑性が増し、APIが汚くなる”。シンプルなプロジェクトの場合はより楽になるだろう。
Blackbox はAssess。この技術はファイルを暗号化しパスワードや秘密鍵を保存するのに使うのが推奨される。
Packet BeatはAssess。Packet Beatはオープンソースのツールで“ノードの間のトラフィックを検査し、トラフィックのパターンやエラー率などの有用な情報を検出する”。システムが実際にどのように運用されているかを把握するのに便利だ。
言語とフレームワーク
Django RestはTrial。ThoughtWorksはこの“柔軟でカスタマイズ可能な”フレームワークをAPIやいくつかのプロジェクトで利用している。
IonicはTrial。ThoughtWorksはこのフレームワークを推奨している。彼らはこのフレームワークの“成功例をいくつか知っており、インストールもテストも簡単”だからだ。
NashornはTrial。このレーダーの著者らはNashornをJavaプログラマが“全く同じコードがウェブブラウザ上とサーバ上で動く”場合の選択肢として考えているが、企業向けアプリケーションの世界でこれを使うことが優れたアイディアかどうかについては確信を持っていない。
React.jsはAssess。著者らは“コードとマークアップを混ぜることに慎重”だが、UIコンポーネントが“しっかりとカプセル化されていて構成しやすく”、“開発者の注目を集めており 、ツールやサンプルが増えることで利点が増し、使いやすくなる”ので、推奨している。
SwiftはAssess。ThoughtWorksはこのAppleの新しい言語を推奨している。“Objective-Cを大きく改善し、関数型プログラミングとモダンな構文を備えている”からだ。
プラットフォーム
Adopt、Trial、Hold、にはプラットフォームは新しいものは追加されていない。Assessにはいくつか追加されている。
CoreOSはAssess。分離したDockerコンテナ内でアプリを実行する機能のため推奨されている。
MariaDBはAssess。MySQLの将来に関心がある向きのために、MariaDBという選択肢がある。オープンソースでGPLライセンス、互換性があり、Google、Wikipedia、Red Hatで使われている。
Netflix OSS Full StackはAssess。ThoughtWorksはNetflix OSSスタック全体を推奨するのは渋っている。しかし、“興味深いアイディアやオープンソースの実装との互換性”などがある。
SDNはAssess。“softwareを使ったネットワークデバイスがアプリケーションの配置の境界線をあいまいにする”SDNは日に日に“重要になる”。
U2FはAssess。U2Fは公開鍵暗号を使った2要素認証でオンラインアカウントの安全性を確保する。U2FはもとはGoogleで開発されたが、現在はFIDO Allianceが扱っている。
FAQにはレーダーの作られ方、著者について、レーダーの目的について、説明している。