IntelliJ IDEA導入事例(IIJ)
Upcoming SlideShare
Loading in...5
×
 

IntelliJ IDEA導入事例(IIJ)

on

  • 2,686 views

 

Statistics

Views

Total Views
2,686
Slideshare-icon Views on SlideShare
2,416
Embed Views
270

Actions

Likes
11
Downloads
9
Comments
0

1 Embed 270

https://twitter.com 270

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    IntelliJ IDEA導入事例(IIJ) IntelliJ IDEA導入事例(IIJ) Presentation Transcript

    • IntelliJ IDEA 導入事例(IIJ編) Internet Initiative Japan Yoshinobu Fujimoto 1 IIJでIntelliJ IDEAの導入に至った経緯
    • 自己紹介 ¤  藤本 彬頌(  @jimo1001) ¤  所属 ¤  IIJ プラットフォーム開発課 ¤  プライベート ¤  Chrome拡張機能,Tracプラグインとか作ってます ¤  仕事 ¤  クラウドサービスのコントロールパネルの開発 ¤  REST型のストレージサービスの開発・運用 ¤  社内向け開発支援環境(Trac, SVN, Git)の管理 よし  のぶ 2 会社で作ったTracのプラグインを公開 し始めました https://github.com/iij/TracPortalPlugin IntelliJ IDEA : Emacs = 6 : 4
    • 会社紹介 ¤  社名/URL ¤  株式会社インターネットイニシアティブ ¤  http://www.iij.ad.jp ¤  事業領域 ¤  クラウドサービス ¤  IIJ GIO(HaaS, IaaS, PaaS, SaaS) ¤  MOGOK ¤  Ruby (on Rails)のPaaS ¤  無料で利用可能! ¤  インターネット接続サービス(ISP) ¤  法人/個人(IIJ4U, IIJmio) ¤  SI, データセンター, SEILなど… (詳細: http://www.iij.ad.jp/company/about/field/index.html) 3
    • 目次 ¤  IntelliJ IDEA導入の背景 ¤  IntelliJ IDEAのメリット ¤  会社(or チーム)に導入する方法 ¤  導入後について 4
    • IntelliJ IDEA導⼊入の背景 なぜ導⼊入しようとしたのか? 5
    • 開発における環境について(Context) ¤  開発対象 ¤  IIJ GIOに属するWeb系サービス ¤  大きく分けて サービスのコアシステム と 管理パネル ¤  既に長く開発が続いていて、最近では改修がほとんど ¤  言語 ¤  Java, Python ¤  フレームワーク ¤  コアシステム: RESTEasy, Spring ¤  管理パネル: Play Framework ¤  管理ツール ¤  Trac, Subversion, Jenkins, Maven ¤  (以前使っていた)IDE: 統合開発環境 ¤  Eclipse 6
    • なぜ導入しようとしたのか? ¤  開発効率を上げたい ¤  パフォーマンスの問題でコードを大きく書きなおす必要があった。 ¤  優秀なリファクタリング機能が欲しい。 ¤  便利のコードの入力支援機能が欲しい。 ¤  軽快に動作する環境にしたい。 ¤  コードの品質を上げたい ¤  既存コードの問題箇所の特定を簡単にしたい。 ¤  もともとIntelliJ IDEAを個人で使っていた ¤  WebStorm (2010-12-01∼) ¤  IntelliJ IDEA (2012-01-12∼) 7
    • チームで導入する必要性 ¤  一人で導入しようとしても… ¤  IDE間の差異を気にしないといけない ¤  コードの自動整形 ¤  コーディングスタイルのチェック機能のレベル ¤  分析(Analysis)の粒度 ¤  ノウハウの共有ができない ¤  IDEに関するノウハウが分散して非効率 ¤  開発環境を合わた方が良いという雰囲気 ¤  Javaではよくある 少なくともチーム単位で導入した方が良い 8
    • IntelliJ IDEAのメリット IntelliJ IDEAはどこが優れているのか?具体的には? 9
    • メリット ¤  IntelliJ IDEA(Ultimate Edition)のメリット ¤  セットアップが容易 ¤  必要な機能が標準で同梱されている ¤  豊富な言語・フレームワークサポート ¤  コード分析(Inspections & Intentions) ¤  コードカバレッジ解析 ¤  Git, Subversionサポート ¤  Mavenサポート ¤  その他、便利な機能 (DBツールやSassサポートなど) ¤  優秀なコード補完 ¤  多彩なリファクタリング機能 10
    • コード分析 ¤  軽量で細かくチェックしてくれるコード分析 ¤  Inspections ¤  コードの検査 ¤  CheckStyle + FindBugs のようなもの ¤  有効にしているものだけでも約800項目(Java以外の項目も含む) ¤  性能的な問題も検出してくれる ¤  Intentions & Quick-Fixes ¤  コードの改善案の提示 + 機械的な修正 ¤  約400項目(Java以外の項目も含む) ¤  これらをリアルタイムに分析 →バグの早期発見,性能改善,コーディングスタイルの統一 全体の分析結果と クイックフィックス 11
    • コード補完 ¤  優秀なコード補完機能 ¤  型や変数名、スコープから優先順位をつけて候補を表示 ¤  Propertiesファイルの中身なども補完候補として表示 ¤  クラス名などから変数名の候補を表示 ¤  他の言語も優秀(PythonやJavaScriptなど) Propertiesファイル の補完候補 型から補完 変数の補完候補 12
    • リファクタリング機能 ¤  優秀なリファクタリング機能 ¤  ほぼ他のIDEにある機能は網羅している ¤  40を超える機能セット ¤  パッケージやクラス、メソッド、フィールド等のリネーム ¤  クラスやパッケージの移動・削除 ¤  クラスやメソッドの抽出 など ¤  1つ1つの機能が優秀 ¤  ex. リネーム機能の場合、文字列やコメントまで変更してくれる 13
    • マシンリソースの使用量 ¤  リソース(メモリ・CPU)はそれなりに使う ¤  Eclipseと同じくらい ¤  補完などの操作時に動作が重くなることは少ない 14 起動時が 最も負荷が⾼高い IntelliJ IDEAの起動から簡単な操作をした時のリソース使用量 簡単な操作でも 結構CPU使ってる 起動オプションはデフォルト -Xms128m -Xmx750m -XX:MaxPermSize=350m 150 ~ 250MB使⽤用 されている
    • 会社(or チーム)に導⼊入する⽅方法 IntelliJ IDEAの導⼊入に向けて、どのように進めたのか? 15
    • 導入時の課題 ¤ 有償であること ¤  無償でそこそこ優秀なIDE(Eclipse, NetBeans)の存在 ほぼこれに尽きる ¤ チームの同意が必要 ¤  →チームで導入する必要性 16
    • 導入ヒストリー(1) ¤  上司に聞いてみる ¤  導入したい旨を相談してみる → 機能比較、価格、代理店情報などの情報を要求される ¤  チームの人に同意をとる ¤  30日のトライアルを利用して使ってもらった → とくにトレーニングをすることもなくすんなり利用できている ¤  他のチームにも聞いてみる ¤  同じように個人で使っていて導入したいという人が多い ¤  Rubyを使ったサービスの開発やWebのフロントエンド(HTML, JavaScript, CSS)の開発で使いたいなど → ニーズに応じて導入の敷居が下がるかも? 17
    • 導入ヒストリー(2) ¤  比較資料の作成 ¤  (利用している範囲で)機能の比較 ¤  機能の有無と優劣 Excelで ざっくりとした 機能の⽐比較表を作成 18
    • 導入ヒストリー(3) ¤  導入に必要な情報の収集 ¤  日本の代理店 ¤  株式会社サムライズム ¤  ライセンス/価格 ¤  Commercial License ¤  一年に一度メジャーバージョンアップがあるとのことなので 1-year Upgrade Subscription ¤  $699 / 1 User ¤  必要なライセンス数の確認 ¤  他のチームと合わせて30ライセンス必要だった ¤  最後に承認を得る ¤  すんなり通った ¤  IIJは寛容? 19
    • 導⼊入後 IntelliJ IDEAを導⼊入後どのような効果があったのか? 20
    • 期待と効果 ¤  開発効率を上げたい →上がった! ¤  リファクタリング作業の効率が1.5 2.0倍 ¤  優秀な補完・多彩なリファクタリング機能 ¤  バグ・問題箇所の早期発見でコードの修正量の減少 ¤  コード品質を上げたい →上がった! ¤  コードスタイルのチェック & 優秀な分析(Analysis)機能 ¤  チーム全体でコードに対する意識の向上が見られる ¤  性能も向上 ¤  コード分析による性能問題の箇所を修正 ¤  定期的に実施してる負荷テストで 性能を測定結果からも明らか! 21 Subversionの 変更更差分から IntelliJ IDEA導⼊入後 性能向上率率率の上昇が ⾒見見られる
    • 他の部署でも ¤ 他の部署でも利用したいという声が多い ¤  やはり個人で使っていて会社でもというケース → 作成した資料を渡すなどの導入支援 22
    • 最後に  IntelliJ IDEA をいつ導入するか?  今で(略)。 23