Quantcast
Channel: LINE Engineers' Blog
Viewing all articles
Browse latest Browse all 52

マイクロサービスのためのプロジェクト生成ツール Lazybones を使ってみた

$
0
0
こんにちは。LINE ゲームのプラットフォーム開発を担当している Kagaya です。6 日目の記事を担当した 川田さんと同様、今年の 4 月から新卒で入社して主に Java を使ったサーバサイド開発を担当しています。 こちらの記事は LINE Advent Calender 2016 の 11 日目の記事になります。 はじめに LINE のサービスの多くは Microservices Architecture と呼ばれるような構成になっています。このアーキテクチャそのものについては、過去の LINE Developers Blog でも こちらの記事 で扱ったり、Developer Day にて こちらの講演 を行ったりしています。様々なメリットが提唱されていますが、チーム開発の機能的な側面から言えば、巨大なシステムの各機能を疎結合にすることで、新しくチームにジョインしたメンバーでも開発をスピーディに行う事ができるのがメリットといえるでしょう。 LINE ゲームのプラットフォームも同様に Microservices 化されており、チームの Github Enterprise には多くのリポジトリが存在しています。さて突然ですが、我々のチームに配属されたあなたが新機能を開発するために新しくリポジトリを作りました。最初の一歩としてどのように開発を進めていくことを考えるでしょうか?Microservices の利点のひとつにコードベースの独立性があるとはいえ、まずはテンプレートのようなものからスタートするのが一般的だと思います。プロジェクト内のディレクトリ構成から、横断的に利用しているミドルウェアやチーム内でよく使われるビルドツールの設定など、多かれ少なかれ存在するであろう共通部分をテンプレート化するのはエンジニアにとっては常套手段です(DRY 原則という言葉もあります)。 例えば、我々のチームでは Spring Boot をよく利用しています。Spring が提供している Spring Initializr というサービスを皆さんご存知でしょうか?いくつかの設定項目を入力するだけで、Spring Boot Application の hello world を簡単に行うことができるサービスです。こういったツールのように、少しの設定でテンプレートからスケルトン生成を行うことができると、本質である新機能のコーディングに集中することができます。本記事では、私が所属するチームでも採用を検討している Groovy 製プロジェクト生成ツール Lazybones について紹介したいと思います。 プロジェクト生成ツール その前に、Java のプロジェクト生成ツールといえば忘れてはいけない Maven Archetype の話を少ししたいと思います。Maven は Java で広く使われているビルドツールで、弊社でも多くのサービスで現役です。その Maven を使ったプロジェクトのイニシャライザ、スケルトン生成に用いることができるプラグインが Maven Archetype です。利用方法について解説したページは多く存在しますのでここでは割愛しますが、mvn archetype:generate コマンドを入力後、対話形式・非対話形式で version や package 名のパラメタを指定をすることでスケルトンを生成できます。 一方で、Maven と並んで(後継として?)よく利用されているビルドツールに Gradle があります。我々のチームでも新規開発サービスにおいては Gradle への移行を開始しています。Maven Archetype は非常に便利ですが、Maven に特化したツールなので、Gradle を利用したプロジェクトを生成するにはやや相性が悪くなっています。よく云われるように、Gradle 公式では Maven における Maven Archetype に当たる機能は用意されていません。それは、Maven が XML ベースの「設定ファイル」によってビルドを行うのに対し、Gradle が Groovy を利用した「スクリプト」であるという設計思想の違いに依存していると思われますが、それでも一種の「初期化」は必要な工程です。さて、その初期化を行うには、いくつかの選択肢があります。 公式の gradle init (Gradle 1.9 から導入、前身である setupBuild (…)

More »


Viewing all articles
Browse latest Browse all 52

Trending Articles