skillup

技術ブログ

Java プログラミング全般

便利すぎる道具の弊害

投稿日:

現在、Javaのプロジェクトでは会社でNetbeansを使っていますが、IDEを使っているばっかりに理解できていないところがありました。便利すぎる道具の弊害ですね・・・

IDEについて一応説明をしておきますと、IDE(統合開発環境)とは本来ばらばらであった

  • コーディングにおけるさまざまな補助機能
  • コンパイル
  • デバッグ
  • ビルド
  • デプロイ
  • バージョン管理

などのさまざまな処理がワンセットになっているソフトでそのほとんどがGUIから操作できるようになっています。

JavaのIDEというとEclipseやNetbeansなどのIDEが有名ですね。おそらくJavaで仕事をしている人の95%以上がこのどちらかのIDEをつかっているのではないでしょうか。

PHPなどのスクリプト言語ならともかく、Javaで大規模な開発を行う場合にはIDEはほぼ必須といってもいいと思います。非常に極端なことを言えば、Javaの開発をエディタで行おうとするのはコンビニやスーパーを使わずに自給自足の生活をするようなものだと思います。

便利すぎる道具は技術力の衰退につながる

とはいえ、IDEもいいことづくめではありません。上記のような一連の作業が全て自動化できてしまうために、技術者自身が前述した作業(コンパイル~デプロイ)について考えなくなる、というデメリットがあるからです。

私はいつもはWindowsのローカルマシンでNetbeansで開発をしています。Javaの開発でのキャリアがそれほどあるわけではないのですが、コーディング自体はなんとかなるため、ローカルのマシンで動かすには特には問題ありませんでした。IDEを使っているとよくわからなくてもボタンを押せば動きますし、文法エラーなどはIDEが教えてくれます。

ただ今回、Javaで作ったソースをサーバー(CentOS)にあげて、ビルドをしようとしたのですが、当然Netbeansがないためにすぐには実行できません。結局あれこれ調べて手作業でのビルド処理を調べることになりました。

これをもともとエディタで書いて、コンパイルし、実行していたら処理を全て自分で記述しなくてはならない反面、windowsでもLinuxでもやることは一緒だったため、かえって移行はスムーズだったと思います。

フレームワークの弊害

このことはIDEだけに限りません。便利すぎるがために技術者の思考力が落ちる点としてはフレームワークの使用などが上げられます。フレームワークはよく使う汎用的な技術などをまとめたソフトウェアです。

同じアプリケーションを作成する場合でもフレームワークを使用するのとしないのではかかる時間を半分かそれ以下にすることができます。ただし、フレームワークでもIDEのときと似たような現象が起こります。

便利すぎるゆえに、最初からフレームワークを使ってしまうと内部の構造やロジックについても理解が不完全なままなのです。また込み入ったカスタマイズをしようとするとどうしてもフレームワークのルールから外れる書き方をする必要がでてきます。

そのため「フレームワークしか使えない」場合にはかえって生産性を落としてしまうのです。私の先輩エンジニアが言っていましたが、最初からフレームワークをやるのは四則演算が自分でできないのに計算機を使うようなものだといっていました。まさにその通りだと思います。

道具が価値を発揮するのは・・

このように便利な開発環境やソフトウェアが価値を発揮するのは今までやっていた操作をしっかり理解していたかいなかによるかと思います。

最初からIDEを使ってしまうとその内部の処理を理解すること無しに開発できてしまうため、それを理解する能力がどうしても落ちます。前述したとおり、大規模な開発をIDEなしで行うのはばかげていますが、内部の動きを理解するのにたまにはテキストエディタで開発してみるのもいいのかもしれません。

 

-Java, プログラミング全般

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

変数の役割について

前回のエントリーの主眼は変数を置くことで、適切な情報量に分割し、コードを読みやすくしよう、ということでした。 今回はそれとは少し逆の観点でして、不要な変数を削除して、コードを読みやすくしよう、というこ …

no image

mavenのリモートリポジトリについて

JPAでO/Rマッパーに慣れてからというもの通常のSQLをごりごり書くのが億劫になってきました。 億劫というかいろいろとリスクがありますね。 問題点としてはコンパイルするときにエラーが検知できなかった …

no image

pretty-configでのファイルアップロード

先日、こちらのエントリーでpretty-configを使うとファイルのアップロードができない、というエラーが起こっていたのですが、本日社長により解決していただきました。 原因としてはURLがスラッシュ …

no image

JPAでのリレーションに関して

JPAではテーブルをクラスで定義します。もちろん例外とかはいろいろあるのですが、1テーブル1クラスというつくりで、これをエンティティと呼びます。 もともとクラスを作ってからDBを作成したり、JTAの規 …

no image

Webの高速化に関して

Webの高速化に関してメモ。 高速化って言っても幅広いんですけどね。自分が行なっている対策に関して。 一応LAMP環境を前提にしてます。 Contents1 一番大事なのは測定2 DB対策3 フロント …