IDEに依存しています。どのように私に害を及ぼすことができますか?


27

私は非常にIDE依存の開発者です(私はJava開発者であるため、NetBeansとEclipse)。IDEがあれば適切にコーディングできます。開発、デバッグ、および展開については、これに大きく依存できます。しかし、IDEなしでは何もできません。単純なHello Worldプログラムまたはいくつかの単純なUIアレンジをコーディングできますが、複雑なことや、より単純なものの長いコーディングを行うにはIDEが必要です。

それは私に害を与えると思いますか?6年以上の開発経験があるプログラマーは、それが害になる可能性があると強く信じていますが、複雑なことを迅速かつ適切に行うことができれば、なぜメモ帳とコマンドラインツールにこだわり、時間のかかるタスクを実行する必要があると思いますIDEにはこれを行うためのボタンクリックがありますか?


29
これを答えとして追加するつもりはありませんが、Java(のみ)開発者であることはあなたに害を及ぼす可能性があります。本当の言語を学んでください。Javaを使用している膨大な数のコードモンキーにならないでください。それは、悪いプログラマーを使用する方が安価だからです。お願いします?
-Lacrymology

5
これは私にとって魅力的な質問です。EmacsまたはVi以外でプログラミングしたことはありません。結果として、私はあなたが依存することさえあるかもしれないというIDEがあなたに何を与えるのか分かりません。
-kasterma

8
@kasterma:コードヘルプ、リファクタリングツール、コードの概要、デバッグ、パラメーター化されたデバッグ、スタックトレース、パラメーター監視、ソリューションの構造化、rad、インテリセンス、コードスニペット、コンパイルとコンパイラエラーアシスト、標準の適用、クイックスタートテンプレート、構文ハイライトと多くの;-)
Syg

2
@Lacrymologyは別のポイントに近づいていると思います:JavaはIDEに依存しています。Python、Scheme、Common Lispなど、ほとんどのコーダーがIDEを使用しない言語を学習してください。それはあなたに新しいスキルを与え、時々IDEから離れます。
ジェイソンフルーツ

7
@Lacrymology:JavaはIDEに依存しておらず、最も一般的な言語の1つです。あなたはそれが十分に「本物」だとは思わないので衝撃的だと思います。
ジョシュK

回答:


15

他の人が言ったように、IDEを使用しないよりもIDEの方が速いのは問題ありません。複雑なツールを正しく使用して生産性を向上できることは重要なスキルです。

ただし、IDEへの過度の依存は問題を引き起こす可能性があります。運動しなくなったスキルや知識は次第に消えていき、いくつかの側面についての理解が浅くなるかもしれません。古典的な例は、コマンドラインでコンパイルして実行することです-これを行うたびに、私は何か間違っています(通常はクラスパスに関連します)。

これは、IDEの外にいるときだけに影響するわけではありません-IDEが隠している複雑さの知識が浅い場合、それがうまくいかないとき(そしてある時点でうまくいかないとき)修正がはるかに困難です。

この2つの方法で処理します。

  1. 最も基本的な形で新しいツールを学びます。たとえば、SVNからMercurialに切り替えましたが、Eclipseプラグインではなくコマンドラインクライアントで開始しました。これにより、何が起こっているのかがより深く理解できるようになりました。つまり、何が間違っているのか、IDEがエラーをスローしたときにどのように修正するのかがわかりました。

  2. コマンドラインで基本的なコーディングスキルを練習します。これを行うための良い場所の1つは、構文の強調表示、ブラケットの一致、赤い下線、何も表示されないCodingBatです。ただし、これらのjavaおよびjavacコマンドラインスキルも練習することも忘れないでください。(そして、あなたのワークフローに適切な他のもの-私にとっては、これにはhgとantも含まれます)

最後に、あまり心配しないでください。NetBeansまたはEclipseなしで大規模な作業を行う必要はほとんどありません。NetBeansまたはEclipse なしでコーディングできる限り、IDEが何をしているを理解ていれば、それは問題ではありません。遅くなるか、それなしでより多くの間違いを犯します。


2
趣味として、低レベルの詳細を知ることに時間と脳細胞を費やすのは楽しいです。商業的には、多くの価値を失います。それはビジネスの学習に費やした時間であり、IDEが提供する追加の効率で実装します。
ブライアンノブラウフ

CodingBatの構文が強調表示されるようになりました。
masterxilo

29

いいえ。実際には逆のことだと思います。IDEは、フレームワークを(intellisenseを介して)暗記する必要性を取り除き、さもなければ退屈/繰り返し/複雑なタスク(デバッグ、デプロイ)を簡素化します。これにより、目前のビジネス問題の解決集中できます。IDEを知り、それをよく知ることで、保守可能なコードをより速く書くことができます。

そしてもちろん、開発者であることはそれだけではありません。開発者としての経験は、パスを横断する問題に正しい解決策を適用するのに役立ちます。それが本当のスキルだと思います。


2
インテリセンスの+1!インテリセンスがそんなにスピードアップするのに、プログラムで各文字をタイプするのを見ると、人々を気の毒に思います。
デビッド

8
それは私たちの残りのためにオートコンプリートと呼ばれています:)
mhitza

4
@David:人々が2文字入力するのを見て、オートコンプリートがポップアップして実際の意味を尋ねるのを0.5秒待つのは苦痛です。次に、それらはマウスに転送され、最終的にそれらのいずれかをクリックするまで利用可能な選択をスクロールします。いいえ、オートコンプリートは天の恵みでも、本当に役立つものでもありません。それは怠け者の道具です。
ジョシュK

1
@ジョシュK:それは本当です。オートコンプリートは悪いプログラマーを悪化させる可能性がありますが、良いプログラマーがより効率的になるのにも役立ちます。:)
デビッド

2
@Joshしかし、確かにインテリセンス/オートコンプリートには、メソッドの名前を仕上げる以外にもありますか?インラインメソッドの説明(処理内容と使用するパラメーター)、メソッドのオーバーロード、コードスニペットへのアクセス、オーバーライドできるメソッドの洞察などはどうでしょう。怠Itであることとは関係ありません。
-Syg

24

いいえ、それはあなたを「害しません」。もちろん、IDE なしで物事がどのように機能するかを理解する必要があります(つまり、基本的なコンパイルプロセスなどを理解する必要があります)が、これについて自虐的ではありません... IDEを使用しない方が生産性が向上する場合、なぜそうしないのですか?あなたは?


17

IDEに依存することには、次のリスクがあります。

  • 特定のIDEとバージョンを必要とするソフトウェアビルドを作成することになります。
  • チームの他の人にそのIDEを使用してシステムを構築するように強制します。
  • ソフトウェアの構築を簡単に自動化することはできません。
  • ソフトウェアの依存関係が何なのかわかりません。

そのため、コマンドラインからソフトウェアをビルドできることを確認してください。たとえば、Javaではmavenまたはantを使用します。次に、上記のリスクを軽減します。

その他のIDE依存性リスク:

  • IDEはコード内のエラーと警告にフラグを立て、迅速な修正を提供します。これらは適切ではない可能性があります-設計上または要件の問題がある可能性があります。
  • あなたは基本を忘れます-あなたはそれを習得し、インタビューで習熟度を伝えることができるように、選択した言語の基本を知る必要があります。
  • IDEの砂場で立ち往生してしまいます。新しいことや、IDEでサポートされていないことを試してみてください。たとえば、IDEには検索と置換のための非常に広範な機能がある場合があります。しかし、これらはgrepやsedなどのコマンドラインツールのパワーと速度に比べて何もありません。選択したIDE(netbeansなど)がAndroidを十分にサポートしていないため、Android開発を行うことはできません。
  • 一部のIDEは大きなファイルを処理できません。たとえば、Eclipseで大きなサーバー出力ファイルを開こうとします。それは永遠にかかり、メモリ不足になります。

3
私はあなたの主張に同意しますが、本当の問題に対処するとは思いません。質問者は、たとえばNetbeansに依存しているだけではありません。彼/彼女がそうだったなら、これらの点はすべて真実かもしれませんが、私が理解している質問は、基本的なテキストエディタやコマンドラインではなく、一般的にIDEを使用しているだけでした。
jzd

2
私の答えにあるIDEインスタンスへの参照は、IDEの依存性がいかに危険であるかの例にすぎません。私は具体的にnetbeansまたはeclipseを指摘しているわけではありません。
コナー

私は仕事でNetbeansを使用していますが、誰でもNetbeansを必要とせずにプロジェクトをビルドできるように、すべてのAntスクリプトを手動で作成しました。私はエディター機能が好きで、コードを簡単にナビゲートしますが、IDEを独立させるためにできることは何でもします。
jonescb

9

選択した一連のツールで生産性を高めることは間違いありません。しかし、それなしで仕事をすることができない場合、私はあなたの内的知識について非常に疑わしいでしょう。

IDEを放棄しないでください。しかし、ブラウザ上のエディターとドキュメンテーションだけで、いくつかの「簡単な」クラスを実行しようとすることがあります。

最高のツールよりも高速であっても、それらを使用する必要がないことに注意してください。


IDEを持っていなくても(40%のケースで)停止したり、びっくりしたりすることはありませんが、IDEがない場合、速度は大幅に低下します。IDEで10分のタスクを実行するために、IDEがクラッシュしたときにメモ帳とjavacで1日を過ごしました。
プラシャム

さて、メモ帳は低すぎます。notepad ++などのプログラマーエディターをお試しください。それは運動と考えてください。楽しくはありませんが、定期的に行うと良くなります。
ハビエル

4

しかし、IDEなしでは何もできません。

複雑なことや、より単純なものの長いコーディングを行うにはIDEが必要です。

あなたはそれを修正することができます、あなたは知っています。

実際に言語とフレームワークを学ぶことができます。

何もあなたを止めることはありません。

もちろん、IDEに依存することを自慢しているのでない限り。

IDEでこれを行うためのボタンクリックがある場合、時間のかかるタスクを実行するためにメモ帳とコマンドラインツールに固執する必要があるのはなぜですか?

無関係です。「メモ帳に貼り付ける」と「IDEがなければ何もできない」とはまったく関係ありません。メモ帳で何もしないことは、メモ帳にこだわるようなものではありません。どっち?


3

どちらのIDEもオープンソースであるため、「依存」しているわけではないので、IDEが消えたり、誤って「改善」されて使用不能になったりすることはありません。そして、あなたが選択した言語はあなたに選択肢を残しません-あなたは膨大な数のライブラリに依存しているので、あなたが支援するIDEがあるときにすべての重要でないものを思い出そうとするのは愚かです。Javaは冗長で冗長であり、冗長な冗長性を活用するスマートツールがなければ生産的ではありません。


別の言語でも同じことを言いますか?(私の場合はPHPを考えています)が、一般的なルールとしてその良いアドバイスがわかりません。ただし、JAVAは例外かもしれません
-Quamis

1
C#についても同じことが言えますが、PHPについても同様かもしれません。多様なライブラリの膨大なセットを使用する必要がある言語と問題ドメインの組み合わせには、スマートツールが必要です。一部の言語は、多数のライブラリなしで使用できるほど強力で表現力に富んでいます。また、IDEなしで単純なものをコーディングできます。一部の言語では、最も単純なことでも、常に支援が必要です。Lispでコーディングするときは、emacsまたはCLI REPLでも問題ありません。C#またはJavaでコーディングするとき、まともなIDE(msvsまたはeclipse)なしでは何もしません。
SKロジック

しかし、「インテリセンス」または「フォームデザイナ」の必要性は、組織化されていない(または名前が付けられた)オブジェクトメンバのアラートになるべきではないでしょうか。インテリセンスを頻繁に使用する人は、オブジェクト/関数/変数に長くてより冗長な名前を使用する傾向があり、そもそもこれらの名前を覚えにくくしています。これも良い習慣だと理解すべきですか?
クミス

Quamis:逆ではないですか?入力する必要があるため、長い名前とは異なり、クラス/メソッドを記述しない短い名前を選択します。
DistantEcho

@Niphra:はい、私はより短い名前が好きです:)私の意見では、コードが読みやすくなります。メソッドが短い方法で説明できないことをする場合、はい、長い名前は受け入れられますが、私は基本的にそれを短くしようとしている、と私はそれで間違って何も見ていません。
-Quamis

3

IDEの過剰な依存性の害は、ウィザードを頼りにコードを生成することに不注意に頼ったときに生じると思います。NetBeansとEclipseはどちらもそれらについてかなり軽いので、それはIMOにとって良いことです。別の害は、1つのIDEのみを知っていて、他のIDEを使用できない場合です。一部の企業には、使用するものを指示するポリシーがあります。良くも悪くも、それはそれが何であるかです。

IDEが生産性を向上させない場合、それは価値がないと主張します。たとえば、私はJetBrains IDEAで最も生産的ですが、Eclipseは長い道のりを歩んできました。また、Eclipseは幅広い用途に適応しています。これは二重の利点です。VIMや他のテキストエディターを使用することもできますが、リファクタリングのサポートなど、現在のほとんどのIDEでかけがえのない機能が他にもあります。


2

私はあなたが自分自身に何か好意をしているとは思わない。確かに、Eclipseを使用しています。これは無料で利用でき、JVMがあればどこでも実行できます。しかし、Xサーバーのないターミナルセッションを介して別のマシンにリモートで接続する必要が生じる前に、viなどのプレーンテキストエディターを使用してコマンドラインでビルドする必要がありました。私はまた、開発ネットワークが他の世界から物理的に隔離されている環境で働いており、開発ネットワークとパブリックネットワーク間のすべての転送は物理メディアを介して行われます。そのネットワークでEclipseを使用する唯一の理由は、最初に複数の承認層を通過したためです。

私はコマンドライン環境(VAX / VMS)でCとFortran 77に歯を切ったので、IDE が必要だという概念はやや疑わしい思います。ただし、これらはJavaである獣に比べて小さな言語です。最新のJava Nutshell本を持ち歩くためにフォークリフトが必要なことを考えると、IDEを利用できることで生活が非常に楽になることがわかります。


2

本当に「害」を与えるわけではありませんが、IDEを使用せずに物事を行うことに精通している場合は、利益が得られます。あなたの地平線を広げることを恐れないでください。

ほとんどの開発ツールは最初にコマンドラインツールとして記述されていることに注意してください。IDEは後付けであり、これは問題ありません。一方、ポイントとクリックを続けても見つけられない「隠されたgemコマンドラインスイッチ」または「高度なトリック」を見つけることがよくあります。

それで、「どうすればそれが私に害を及ぼすことができますか?」コマンドラインツール(起源)の学習を避けられるほど、すべてのコマンドラインツールがボタンをクリックするよりも遅くなると思われるほど、それにアタッチされると害を与えると思います。

アセンブリをプログラマとして学ぶようなものです。今日、アセンブリを手書きで書く人はほとんどいませんが、アセンブリを理解している人は、使用している言語にかかわらず優れたプログラマだと思います。


2

コンピューターに依存することはすでにかなり有害です。私はいつも大きな石のタブレットとハンマーを使って腰布でプログラムします。コードを壊すには時間がかかりますが、特に大きなメソッドを完了すると、通常は何かを食べます。そこで私はスーパーマーケットやそのようなものから独立しようとしているので、家ですべての小麦を育て、それを食べるだけです。もちろん、小麦の種子と水の供給業者は私を夢中にさせており、この依存のサイクルから抜け出す方法はないと考えさせられます。

真剣に:<disclaimer>IDEを使用していて、IDEが</disclaimer>なく、プログラムしなければならない場合は、ゲームオーバーを検討する必要があります。

  1. それに電話するか
  2. IT担当者が自分で問題を解決する

必要だと思われるツールなしでプログラミングするだけでなく、歯磨き粉をサーマルペーストとして使用することもできません。


1

IDEに依存することは必ずしもあなたに害を与えるとは限りませんが、選択した環境なしで操作できることは重要なスキルです。

IDEを使用すると、通常は重要ではない「ささいなこと」を学ぶのをやめることができ、無駄な入力や定型文句を回避できるため、作業を迅速に完了できます。また、通常は、関数のつづりの間違いなど、発生した問題を修正できます。

言語/フレームワークなどを学習するときの私の個人的なルールは、まず難しい方法で学習することです。その後、一度習得したら、簡単な方法でそれを行う権利を獲得しました。肝心なのは、下水道のメインが台所の流しからくずを吐き出し始めるとき、あなたがSOLになるということです。潜在的な原因となる潜在的な操作を把握している場合は、問題を修正するか、まったく発生しないようにすることができます。


0

MS-Windows用のPSPad(フリーウェア)、Mac OS X用のTextMate、GNU Desktop用のGeany(オープンソース)、KDE用のKate(オープンソース)などの優れたテキストエディターを試してみましょう。

MultiEdit4.0 for MS-DOSは、数年前に私の人生を変えました。それ以来、私はテキストエディターにとって非常に賢明です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.