IDEって言葉覚えた。VisualStudioをとりあえず使う。
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥
テキストエディタ+JDKのみでプログラミングをする人も大勢いるだろう。私も部分的にはそうであるが、そのとき「自分がIDE病」にかかっていることに気が付くことがある。その体験をご紹介し、IDEとの上手な付き合い方を考えてみよう。
■プログラマーに求められる資質
皆さんは「プログラマーに求められる資質」というものを考えたことがあるだろうか。プログラマーと一言でいっても、役割によって求められるものは違う。例えば、
1.実際にコードを記述する人(プログラマー)
文法をよく知っている
APIのパラメータをスラスラいえる
APIドキュメントの見方を知っている
コーディング・テクニックを知っている
キーパンチが速い(これは特に重要?)
2.プログラミングに入る直前のデザインをする人(デベロッパー)
プログラミング手順を知っている
ライブラリをよく知っている
実行環境の特性に精通している
3.システム全体を考案して設計する人(アーキテクト)
多くのテクノロジに精通している
多くのプラットフォームに精通している
たくさんの経験(特に失敗と解決経験)を持っている
ということが求められてくる。
IDEやJDKを実際に使うプログラマーは1のような実際のプログラミングを行うプログラマーだ。文法に精通しており、バグの少ない、最適なコードを記述し、一刻も早くコンパイル・エラーをなくすのが生活の最大の目標になっているような人もいるはずだ。
プログラマーが「文法をよく知っている」のは必須の項目だろう。文法が分からなければプログラムは書けない。APIのパラメータは常に利用するものであれば自然に覚えるし、知らなくてもドキュメントの探し方を知っていればなんとかなる。コーディング・テクニックは「こういうコードより、こういうコードの方が、オーバーヘッドが少ない」といったノウハウだ。そして、頭の中に描いたコードを一気にコンピュータにダウンロードするには、高速なキーパンチ能力と、鳴った電話を無視する集中力が必要になる(これはちょっと蛇足?)。
コーディングの価値は次のような要素で測ることができるとしよう。
1.正確さ
まず、正しいロジックが書けることは重要である。
2.効率
早くプログラミングが終わる。要素として「コーディングの速さ」「コンパイル・エラーの取り除きの速さ」「コーディング初期のエラーを取り除く速さ」がある。
3.パフォーマンス
少ないリソースでよりたくさんの仕事をこなせるプログラムをコーディングできることは重要である。
4.ルールへの準拠
プロジェクトでプログラミングをする場合などは、コメントの書き方やインデントのやり方、ソースコード管理などにルールがあることが多い。それらを守りながらプログラミングをすることが求められる。
5.修正作成能力
多くの場合、プログラミングの後にテストがあり、そのときに発覚した問題は最終的にプログラマーがプログラム・モジュールを修正することになる。このとき「どこをどう修正すればよいか」、原因を追究し、対策を作るのは大変な作業であるが、これができるプログラマーが求められている。
これらを補ってくれるのが統合開発環境、すなわち「IDE(Integrated Development Environment)」である。
各社のIDE製品はそれぞれが特徴を持っており、エディタのキーアサインやメニュー構成などもまったくといってよいほど違う。しかし、一般的には次のような機能を持っている。
言語対応エディタ
Javaのキーワード、リテラル、コメントなどを色分けして表示する。
統合コンパイラとソースコード管理
いちいちコマンドで行わなくてもよいような構築機能。
デバッガ
多くの製品がデバッガと連動したエディタ、実行追跡機能などを搭載している。
また、製品によっては、次のような機能を提供しているものもある。
コード生成ツール
一部の製品では、ホスト連携、EJB、アプレットなどのプログラムで「こういうコードを書くときにはこれだけのコードが必要」という部分を自動生成してくれるような機能を提供しているものもある。
コードアシスト機能
「pr」と入力して特殊キーを使うと、prから始まるフィールドやメソッド一覧を表示し、選択すると入力が完了し、必要なメソッド引数の一覧が表示される。
オートコレクト機能
セミコロンやimport文の入れ忘れなどは単純なミスだが、やりがちなものである。これを自動修正する機能。
サーバ用デバッガ
IDEのデバッガ上でアプリケーションサーバを稼働させ、サーバアプリケーションのデバッグを援助する。
バージョニング
ソースコードにバージョンを付け、バージョン管理を行う。
インクリメンタル・コンパイラ
コンパイルという手順は基本的に存在しない。コード保存と同時に瞬時にコンパイルが行われる。
挙げていくときりがないのでこれくらいで終わりにするが、とにかくプログラマーが作業中に「手間」と感じるようなものをできる限り統合した環境で行えるようにしているのである。
♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥♡♥