IntelliJ IDEAの成功の秘訣

このブログ記事では、**IntelliJ IDEA**の**Java**統合開発環境を紹介し、その成功の秘訣を論じています。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/what-can-we-learn-from-intellij-idea_594851)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

この記事は元々、アリババのシニア技術専門家呉翔がアリババのイントラネットに掲載したものです。現在は、アリババ・ミドルウェアの許可を得て公開されています。

最近、Java IDEをEclipseからIDEAにアップグレードしました。アップグレードの過程で、私はIntelliJ IDEAを研究し、それについていくつかの研究をしました。IntelliJ IDEA(商用)がEclipse(無料)よりも評価が高い理由がわかったので、個人的な感想を紹介したいと思います。

この記事を読んだ後、Creative Flowとエルゴノミクスは自分を強くすることができるので、その重要性を知ることができます。この記事では主に以下の内容を取り上げています。

- IntelliJ IDEAの市場シェアと性能
- IntelliJ IDEAの成功の秘訣
- IntelliJ IDEAを他のIDE設計者と区別する2つの要因
- IntelliJ IDEAのインスピレーションを仕事に活かす
- IntelliJ IDEAをフル活用して自分を強くする

#IntelliJ IDEAの市場シェアと実績

2012年以降、IntelliJ IDEAは急成長を遂げています。2016年には開発者市場で46％のシェアを獲得した。2018年の調査によると、IntelliJ IDEAの市場シェアは55.4％まで上昇し、Java IDE界の王座を獲得した。著名な作家であり、ソフトウェアコンサルタントであり、講演者でもあるMartin Fowler氏は、自身のブログでIntelliJ IDEAを高く評価しています。また、IntelliJ IDEAは98%の顧客満足度を達成しており、これは非常に高い数値です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/585aa2ab-5ab3-4867-3a59-aa94cc6729d6.png)

#IntelliJ IDEAの成功の秘訣
世界的な研究者によると、その成功は、成功した製品の特徴とマーケティング戦略の2つの要因に起因しているといいます。

####成功した製品の特徴

- インテリジェントなコード補完:IDEAは独自に開発したインタプリタ言語と統合されており、深い静的解析が可能です。これはコーディングをよりインテリジェントかつ効率的にするキラー機能です。
- 保存ボタンが無い:IDEAは、使いたい機能ごとに包括的なショートカットキーを提供します。
- 卓越したパフォーマンス:極めてスムーズなユーザー体験。
- IDEAはコアプラグインを維持するだけでなく、一貫して優れたユーザー体験を提供するための優れたツールキットを提供します。


####成功するマーケティング戦略

- IDEAは、製品に焦点を当て、「より良い」デザイン哲学と原則を守ることで、多くの競合他社を打ち負かしています。
- IDEAには専門のマーケティングチームがありますが、そのシンプルで強力なスローガンは、そのコアとなるマーケティングロジックを完璧に実現しています。試してみて、より良いと感じたら、使ってみてください。

ほとんどの方はすでにIDEAの機能をよくご存知だと思います。ですから、ここではそれらについて詳しく説明するつもりはありません。では、IDEAが成功した本当の理由を明らかにしましょう。

#IntelliJ IDEAはIDE設計の世界でどのような違いをもたらすのか？
私の理解では、IntelliJ IDEAが普及し、台頭してきた根本的な理由は、2つの重要な設計哲学に従っているからだと思います。

###1.  開発者をフローから解放しない
IntelliJ IDEAのすべての側面は、人間工学を考慮して設計されています。IntelliJ IDEAは、開発者がフローの中で過ごす毎分は良い時間であり、開発者をフローから離脱させるものは悪い時間であるという考えのもとに構築されています。すべての設計と実装の決定は、開発者のフローを阻害する可能性を考慮し、それを排除するか最小限に抑えることを目指しています。

個人的にはこの名言がとても美しいと感じています。

>"創造的な流れ "または単に "フロー "は、あなたが均等に同調し、手元のタスクに集中していると感じる心の状態です。

フローの状態にあるときは、完全にあなたの活動に吸収された感じ、あなたは時間と空間を忘れています。フローの状態は意識の最適な状態です。マッキンゼーの10年間の研究によると、フロー状態にあるときは、生産性が500％向上するそうです。

このデザイン哲学を学んだ後、もしユーザーをフロー状態に引き込み、その状態を維持することができれば、私たちの製品がどれほど素晴らしいものになるか想像せずにはいられません。ユーザーが効率的にタスクをこなすことができ、生産効率を大幅に向上させることができるのです。

###2. 人間工学
IntelliJ IDEAは、「JVMのための有能で人間工学に基づいたIDE」であるIDEAの設計に人間工学を用いていると主張しています。

人間工学とは、製品設計を通じて人間の快適性を高め、疲労や不快感を軽減する方法を研究する学問である。この概念は、ホームデザインやヒューマンエンジニアリングにおいて、快適性を高めたり、効率を上げたり、プレッシャーを軽減したりするために非常に重要なものとなっています。

ここでは、人間工学の代表的な2つの例をご紹介します。

####接客用ヘッドセット
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/2cd1ec7f-f404-60a2-3138-017f754d6d20.png)


カスタマーサービスのヘッドセットがないと、カスタマーサービスの担当者はもっと大変な思いをすることになります。

####Zipper carton box
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/d6d6b549-0bdf-aa76-00d8-f53f6cf5ff20.png)

Yisideジッパーカートンボックスの品質と人間工学に基づいたジッパーデザインは、業界最高のものです。

####ソフトウェア設計における人間工学のインスピレーション

- 一貫したユーザー体験を提供します。
- 複雑なタスクをよりシンプルなタスクに分解します。
- 長いシーケンスを別々のステップに分割します。
- 人間の記憶力には限界があるため、製品はユーザーに価値のある支援を提供するために、ユーザーが作業に完全に没頭して邪魔されないように、適切にリマインドする必要があります。
詳細については、参考文献リストの5番目の記事を参照してください。

人間工学に基づいたデザインを体験したい方は、IDEAのショートカットキーとセーブボタンのないデザインをご覧になれば、人間工学の意味を理解していただけると思います。

#私たちの仕事に対するインスピレーション

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/2e01358d-2e55-2d76-b820-7371e90841d4.png)

私たちのチームは、IDEAの成長エンジンを信じています：優れたデザインコンセプト、並外れたユーザー体験、オープンコミュニティ、コミュニティ版と商用版の並列ビジネスモデル。これは、Apache 2ライセンスのコミュニティ版とプロプライエタリな商用版として利用可能です。IDEAの進化の輪は、より良い製品体験を持つユーザーを増やし、ユーザーからの貢献した利益を利用して、より良い製品を開発するための人材を集めることです。IDEAから学んだことは、製品は人を中心としたデザインの対象にならなければならないということです。


- 流れの状態:利用者のタスクをリストアップし、フロー状態にしておき、利用者の効率を下げる要因を排除する必要があります。
- 人間工学:製品を設計する際には、製品が使用されるシナリオを十分に考慮しなければなりません。これは、スターリングアーキテクチャに似た統合的な設計です。コーディングはソフトウェア開発の一部に過ぎません。要件やアイデアの提出、要件分析、研究開発、製品の公開、事業化分析など、他のすべての要素を総合的に考慮しなければなりません。最終的な目標は、ユーザーが自社製品を使って快適にタスクを完結できるようにすることです。
- インテリジェントなコード補完:人工知能を利用して、ユーザーの作業効率を向上させます。IntelliJ IDEAのインテリジェントコード補完機能は、見習うべき典型例です。

#結論
フローステートとエルゴノミクスの設計思想を技術製品の設計に統合していきたいと思いますので、その成果を近日中に発表できることを楽しみにしています。

ここでは、2つのフローステートIDEプラグインを紹介したいと思います。

####1. ホットコード置換ツール:JRebel

開発者が実行中のプロジェクトのJavaファイルを修正し、変更を実行中のプロジェクトに動的に反映させるのに役立つホットデプロイメントプラグインです。[クリックして詳細を見る。](https://plugins.jetbrains.com/plugin/4441-jrebel-and-xrebel-for-intellij/)

####2. 必携の開発・テストツール:クラウドツールキット

開発者がアプリケーションの開発、テスト、診断、デプロイをより効率的に行うことができます。このプラグインを使用すると、ローカル アプリケーションを任意のマシンに簡単にデプロイすることができます。Cloud Toolkit の詳細については、[https://www.alibabacloud.com/help/doc-detail/98551.htm](https://www.alibabacloud.com/help/ja/doc-detail/98551.htm) を参照してください。

#参考文献
1、[https://www.javaworld.com/article/3114167/development-tools/choosing-your-java-ide.html](https://www.infoworld.com/article/3114167/choosing-your-java-ide.html)
2、[https://www.youtube.com/watch?v=Eyy9ddRgMX8](https://www.youtube.com/watch?spm=a2c65.11461447.0.0.1ffb226cxFbpIB&v=Eyy9ddRgMX8)
3、[http://catalyticcolor.com/scientific-research-about-flow/](https://catalyticcolor.com/scientific-research-about-flow/?spm=a2c65.11461447.0.0.1ffb226cxFbpIB)
4、[https://en.wikipedia.org/wiki/Flow_(psychology)](https://en.wikipedia.org/wiki/Flow_(psychology)?spm=a2c65.11461447.0.0.1ffb226cxFbpIB)
5、[http://ergo.human.cornell.edu/ahtutorials/interface.html](http://ergo.human.cornell.edu/ahtutorials/interface.html?spm=a2c65.11461447.0.0.1ffb226cxFbpIB)
6、[https://www.alibabacloud.com/help/doc-detail/98551.htm](https://www.alibabacloud.com/help/ja/doc-detail/98551.htm)

#著者について
アリババクラウドのシニアテクニカルエキスパートであるWu Xiang氏 Wu Xiang氏は、長年にわたりAlibaba Cloud Settlement Platformのアーキテクトを務め、tbbpmワークフローエンジンの創設者でもあります。Wu Xiangは、ゼロからのクラウド製品の商用化を担当していました。近年では、店舗や詳細などのアリババシステムのミドルウェア開発を担当しています。

*アリババクラウドは日本に２つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
[アリババクラウドジャパン公式ページ](https://www.alibabacloud.com/ja)*