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

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,238
On Slideshare
2,958
From Embeds
280
Number of Embeds
2

Actions

Shares
Downloads
10
Comments
0
Likes
18

Embeds 280

https://twitter.com 278
https://tweetdeck.twitter.com 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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