Bir IDE'nin standart bir editöre karşı kullanımını ne haklı kılar? [kapalı]


39

Kendimi metin editörüm seçiminde (vim, nano, gedit, zehirini seç) geç saatlerde herhangi bir IDE'den çok daha sık kullanıyorum.

IDE kısayollarımın tozlandığını fark ettikten sonra bunu düşünmeye başladım ve merak ediyorum: bir metin editörüne karşı sizin için bir IDE kullanımını ne haklı kılıyor ?

Bu madde için sizin için neyi gerekçe olurdu değil bir IDE kullanarak ve sadece bir editör güvenerek?



Aslında ne yapmak yapmak senin düzenleyicilerinde?

Kod yaz, uygulamalar geliştir, son zamanlarda olduğu gibi hemen hemen her şey.
Chris

15
Şahsen, IDE’leri başkalarının kodlarını okurken (özellikle büyük projeler) kendi kodumu yazarken çok daha kullanışlı buluyorum . IDE'ler, kaynakların içinde daha kolay gezinmenizi sağlayarak, diğer kişilerin kaynak kodlarını hızlıca anlamanızı kolaylaştırır.
Charles Salvia

3
Soruyu tersine çevirmek istiyorum. IDE kullanmama gerekçesini haklı çıkaran şey
Nailer

Yanıtlar:


69

I: entegrasyon . İyi bir metin editörü kod yazmak için iyi olabilir, ancak programlarınızın çoğu yazmaya harcanmamış; test ve hata ayıklama için harcanmıştır ve bunun için metin editörünüzün derleyiciniz ve hata ayıklayıcınızla entegre olmasını istersiniz. Bir IDE'nin en büyük gücü budur.


Keşke benim yolumda olmayan birini bulabilseydim :)
Tim Post

5
Ben sadece alt-par düzenlemeyi entegrasyon rahatlığı için ödediğim fiyat olarak kabul etmeye başladım.
TMN

Doğru yaparsanız, programlama test etmiyor mu? Zamanınızın çoğunu hata ayıklama ve maymun testi yaparak geçirirseniz, sorununuzun nerede olduğunu görüyorum.
Tom Hawtin -

8
@Tom, Test, her zaman yaptığınız testleri otomatikleştirebildiğiniz zaman programlama yapar . Aksi takdirde, en yüksek kaliteyi veren yöntemle doğrulayın.
Andres Jaan T

49

Bunlar benim Java, PHP, Javascript, HTML ve hatta ActionScript için kullanmayı sevdiğim IDE, IntelliJ.

  • Hata kontrolü - Kod için canlı yazım denetimi gibi. Kesinlikle gerekli.
  • Kod gezinme - Ctrl+clickbir fonksiyonda, değişkene, tanımına gitmek için yazın. (IntelliJ, yukarıdaki dillerin hepsinde bu konuda çok iyidir)
  • Kod tamamlama - Ctrl+spaceİhtiyacım olan sınıf veya yöntem adını girmemize yardımcı olmak için sürekli kullanıyorum . Bu , bir tonu kodlamayı hızlandırır ve ihtiyaç duyduğunuz bir şey içinde bulunduğunuz bağlamdan erişilemediğinde ortaya çıkmadan önce bile böcekleri yakalamaya yardımcı olur. IntelliJ, kısaltmalarınızı genişletmenize yardım eder - NPE yazıp, Ctrl+space"NullPointerException" yazacaktır. "NoPageError", vs. Alt+enterOtomatik olarak eklemek için vurmak importda gerçekten güzel.
  • Kod oluşturma - Alıcıları ve ayarlayıcıları oluşturun, birkaç tıklatmayla bir arayüzden yöntemler uygulayın.
  • Çok iyi kod renklendirme - IntelliJ yalnızca standart anahtar kelime, dize, değişken ad renklendirmesi değil aynı zamanda üye değişkenleri, yerel değişkenleri, parametreleri de renklendirir. ActionScript'te, aslında bir alıcı / alıcı olan bir değişken, bir işlev gibi renklendirilir.
  • Üstlenmeden - Hata içermeyen yeniden adlandırma büyüğüdür. IntelliJ, ayarlayıcıları ve alıcıları veya dize kullanımlarını yeniden adlandırmakta çok iyidir. Elbette ihtiyaç duyduğunuzda regex tabanlı bir arama yap ve değiştir, "myNumber", "MyNumber" ve "MYNUMBER" ile "myString", "MyString" ve "MYSTRING" ile değiştirmeni sağlamak için bir "vaka koru" seçeneği var. tek işlemde
  • Sürüm kontrolü entegrasyonu - SVN kullanıyoruz ve en sevdiğim IDE VC özellikleri SVN hakkında düşünmeden sınıfları oluşturabiliyor, silebiliyor, taşıyabiliyor, kolayca göz attırabiliyor, çok iyi bir fark aracı, iyi bir birleştirme yeteneği ve açıklama ekli dosyalar (satır gösteriliyor) satır sonu geçmişi) editörde.
  • Bağımlılık içe aktarma - Kaynağınız olan bir üçüncü taraf kütüphanesine güvenirken, referans, hata ayıklama vb. İçin koda kolayca gidebilirsiniz.
  • Akıllı yazma - kodu yapıştırma ve otomatik olarak doğru sekme konumuna yapıştırma, uç parantez, parantez, tırnak vb. Otomatik tamamlama vb.
  • JUnit, FlexUnit, PHPUnit için çok iyi bir Test koşucusu
  • Hata ayıklama - elbette. Hata ayıklama JBoss, Jetty, hatta Flash bile kusursuz. Ctrl + tıklama kodunu doğrudan gitmek için yığın izleri.

Yapmanız gereken kod boyaması gibi şeyler olabilir, ancak iyi kod boyaması çevresel vizyon gibidir - tam kelimeyi tanımlamak için bu saniye ikiye ayrılmadan önemli konulara odaklanmanızı sağlar.

IntelliJ ayrıca Ctrl+spacedeğişken isimleri önermek için bile kullanır . Java'da, yeni bir EventMessageItem değişkeni Ctrl+spacetanımlayıp isabet ederseniz, "eventMessageItem", "eventMessage", "item", vb. Önerecektir.

Bütün bunlar bana ver yolu kodumu ve mimari düşünmek ve vb vb belgeleri aşağı kovalayan, dosya sistemi ile ilgili, biçimlendirme sabitleme hataları kopyalama ve yapıştırma sabitleme, uygulamalar arasında geçiş konusunda daha az düşünmek için daha fazla zaman Bu tür verimlilik artışına nasıl hayır diyebileceğinizi bilemiyorum.



3
+1, buradaki puanların çoğu herhangi bir makul IDE'ye uygulanır ya da gerekir :)
Matthieu

21

IDE kodunuzu bir editörden çok daha iyi anlıyor. Bu, örneğin Java gibi ayrıntılı diller için Tanrı gönderen bir tanımlayıcı tamamlama ve yeniden düzenleme işlemine izin verir,


1
Tüm bu anlayışın saklanması için hafıza gerektirdiğini unutmayın. Bu nedenle IDE'ler bir "diskete sığdır" düzenleyicisine kıyasla daha aç kaynak olma eğilimindedirler.

19
Evet, ama 8Gb i7 dev makinemin yazarken bir şeyler yapması gerekiyor. : D
Dominique McDonnell

IDE yok olması kaynak aç olmak. Ancak Smalltalk muhtemelen son bir vaka: yansıma kolay, çok basit sözdizimi vb.
Frank Shearar

@ Frank, ne yapmalarını istediğinize ve bunun ne kadar kolay olduğuna bağlıdır.

18
[To the IDE] You had me at intellisense/autocomplete

1
+1 Artık her zaman hiçbir zaman tam bir sınıf, yöntem veya özellik adı yazmamı ve doğru otomatik tamamlama seçeneğini tek tek seçmemiz için ne kadar tuşa basıldığını tam olarak bilmemeyi her zaman rahatsız edici olsa da ... tic-tic-tic-tic-TAB- dot-tik-tik-tik-TAB-dot-tik-tik-tik
grossvogel

5
@gross, ama doğru ! Manuel olarak sık sık yazmak, yazım hatalarını ifade eder.

@ TThorbjørnRavnAndersen Benzer şekilde adlandırılmış iki şeye sahip değilseniz ve yanlışlıkla doğru olanı elde etmek için yeterli karakter yazmayın. Otomatik tamamlama işlemime yeterince dikkat etmediğim için yanlışlıkla "NumberOfSegments" gerektiren birkaç alana "NumberOfPoints" özelliğini ekledim: p. Olduğu söyleniyor, daha fazla otomatik tamamlama tercih ediyorum.
KChaloux

14

Üretkenlik. Mantıklı olan başka bir gerekçe var mı? Benim için, programlama sırasında gerçekleştirdiğim işlevlerin çoğunu merkezileştiren iyi tasarlanmış bir IDE - kod yaratma ve düzenleme, kaynak kontrolü kullanma, hata ayıklama, proje yönetimi araçlarıyla etkileşim kurma, diğer programcılarla iletişim kurma, dokümantasyon oluşturma, otomatik testler yapma - verimliliğimi azaltan işlem sürtünmesini önemli ölçüde azaltır.

Ek olarak, her bir aracı ayrı ayrı nasıl kullanacağımı bilmem gerektiğini düşündüğüm halde, kullanmak istemiyorum. En azından benim için, bir CLI'yi açmak ve yazmak için sonsuz bir fare tıklaması tercih edilir.

Çok kullandım ama tekrar tekrar kullandığım IDE'ler Visual Studio, Wing IDE ve NetBeans. Hepsi programlama harcadığım zamana önemli bir değer katıyor.


9

Tarihsel olarak, IDE'ler, tek görevli bir bilgisayarda eşsiz bir kolaylık sağlamıştır. İlk C derleyicim edit-compile-run döngüsünde aşağıdaki adımları gerektiriyordu:

  • Düzenleyiciyi başlat
  • Programı düzenle
  • Programı kaydet, editörden çık
  • Derleme programı
  • Derlenmiş programı bir araya getirme
  • Link derlenmiş ve birleştirilmiş program
  • Programı çalıştır

CP / M sistemimde. (Toplu iş programı olarak disk sürücülerim daha büyük olsaydı, büyük bir kısmını otomatikleştirebilirdim.)

Turbo Pascal'ı aldığımda, derleyiciyi derlerken ve hata ayıklarken editörün hazır bulundurulmasından memnundum.

Bence, IDE'leri ilk başta popüler yapan şey bu.


Ancak bütün bu şeyler birçok editörden yapılabilir; Emacs, örneğin.
JasonFruit

@ JasonFruit: Kesinlikle. Onları ilk önce neyin çekdiğini açıklıyorum. O günlerde, TRS-80 Mod 4'te CP / M kullanıyordum ve Emacs'in o zamanlar hala TECO tabanlı olduğuna inanıyorum.
David Thornley

Tamam, gelin. :-) (Gerekli karakter sayısını doldurmak için ifade.)
JasonFruit

2
@ JasonFruit, CP / M-80 makinelerinde maksimum 64 Kb RAM vardı. Buna ne kadar Emac sığabileceğini düşün.

7

Lisp'te kodlarsanız, Emacs, yöntem parametrelerini ve otomatik tamamlamayı arama gibi Intellisense benzeri özelliklere sahiptir, bu nedenle orijinal IDE olduğunu söyleyebilirsiniz. Bir programı birden fazla görev için de kullanabilmek güzeldir (genel olarak düzenleme, kabuk / komut istemi, haber okumak).

Genel olarak, editöre karşı IDE sorusu programlama diline bağlı görünüyor. Gördüğüm kadarıyla, örneğin Ruby ve Haskell kodlayıcıları en sevdikleri metin editörünü tercih ediyor gibi görünüyor.


Emacs bunu neredeyse her dilde yapabilir. PHP modu oldukça iyi, Javascript, Haskell, Erlang ve SQL için modlar. (Diğerleri de iyi olabilir, ama ben onları kullanmadım).
Zachary K,

Bir kez tüm bu zilleri ve ıslıkları emac'lere (ya da bu konuda herhangi bir editöre) eklediğinizde, sahip olduğunuz bir IDE. Entegre geliştirme ortamı. Ben bir pastaneden (IDE) bir kek almakla karşılaştırıyorum ve sıfırdan (Bence editör) yapıyor
sal

+1, Coq, Haskell ve Lisp Emacs için iyi bir desteği olan tek şey
jozefg

4
  • Tek tıkla derleme
  • Hata ayıklama
  • Kod şablonları
  • Kod tamamlama
  • Sürüm kontrolü ve yeniden düzenleme araçlarıyla entegrasyon
  • Basit birim testi

birkaç isim


3

Cevabın, hangi programlama dilini kullandığınıza ve ne kadar iyi olduğunuza bağlı olduğunu düşünüyorum. JAVA gibi diller için, ciddi bir şey yapıyorsanız bir IDE gerekir. JS veya Ruby IDES gibi betik dilleri söz konusu olduğunda, pek bir faydası olmaz.

Notepad ++ ve geliştirilmem için bir dizi kabuk betiği (yedeklemeler, git taahhütler) kullanıyorum ve mükemmel çalışıyor.


Javascript için GVIM kullanıyorum ve IDE kullanarak daha hızlı olduğunu düşünüyorum. Aynı zamanda çok daha az hafıza kullanır. JsLint, formatlama ve selenyum kontrolü gibi şeyler için yaklaşık 3-4 shell script ekleyin ve neredeyse asla elimi klavyeden çıkarmam gerekmediğini öğrendim. (Ve dürüst olmak gerekirse, eğer umursamış olursam bütün senaryoları VIM eklentilerine çevirebilirdim)
Zachary K

3

"Editörler" lehine bazı argümanlar:

  1. Bir IDE'nin henüz geliştirilmediği veya hiçbir zaman geliştirilmediği durumlar vardır.
  2. Bir editörle değişiklikleri "daha hızlı" ve daha cerrahi olarak yapabilirsiniz.
  3. Çok daha az kaynağa ihtiyaç duyuyor (aynı anda birçok açık kullanımı çok daha kolay)
  4. Çünkü burada açıklananlar gibi bazı sorunları çözmenin tek yolu budur .
  5. (kişisel) Bazen her şeyi yazmak zorunda kaldığımda, bilinçlimi kullanarak daha fazla çalışıyorum ve yazdıklarım üzerinde daha fazla çalışıyorum. Çoğu zaman, örneğin bir IDE kullanarak farkedilmeyecek bir yöntemde (formaqString) yazım hatası buldum.
  6. Yalnızca klavyeyi kullanarak çalışmayı kolaylaştırır (hız / akış)
  7. Makroları veya diğer zaman koruyucular kullanma zihniyeti

Çalışmak için her gün bir IDE kullanıyorum, aksi takdirde Java / C # yazmak zor.

(2) (3) ile karşılaştırıldı: Temelde, dosyaları uzaktan (ssh / uzak masaüstünden) uzaktan düzenleme ve uzaktaki bir sunucunun yapılandırmasında veya dosyalarında en az değişiklik yapması seçeneği.


2

Elbette dilinize bağlı olarak, bazı IDE'ler ayrıca görsel Form / Pencere tasarımcılarını da içerir.

Her ne kadar belirtilmeli olsa da, bir programcının metin editörü ve bir IDE arasındaki çizgi iyi tanımlanmış değildir. Pek çok editör derleme, kod tamamlama, hata ayıklama vb. İşlemlerini yürütmek için genişletilebilir.


2

IDE'yi test etme / hata ayıklama / entegrasyon için ve KEDIT'i düzenleme için kullanıyorum, çünkü IDE düzenleme yeteneklerinde cidden eksik.
.NET IDE dış düzenlemeleri tanıdığından, tek yapmam gereken düzenleyiciye kaydetmek ve kaynağı yeniden yükleme istemini kabul etmektir. Bu, düzenleme ve hata ayıklama yeteneklerimi aynı anda optimize etmeme izin veriyor.
Diğer IDE'ler için KEDIT'i şablon işlemci ve kaynak arama programı olarak kullanıyorum ve bu kaynağı IDE'ye kopyalayıp yapıştırın.


IDE'nin yapamayacağı şeylerde ne yaparsınız? Gerçekten merak ediyorum, gerçekten ciddi kodlamamın çoğu için bir IDE dışında bir şey kullanmadım ...
Dean Harding

KEDIT, diğer akıllı editörler gibi, IDE'nin yapamadığı şeyleri yapmama izin veren komut yazma yeteneklerine de sahip. Örneğin, KEDIT'i, IDE'nin bile yaklaşamadığı birden fazla arabellek (her bir kedit oturumu başına 100 adet) kopyalama ve yapıştırma ve sütun düzenleme yapmak için kullanıyorum.
Dave

1

IDE için: -
gelişmiş özellikler kutudan çıkarıldı.
- bazı özellikler, editörlerin eşdeğeri bulunmadığı için, çerçeveniz için çok özeldir.

Editör için: -
Ellerinizi klavyede tutun.
- Geliştirme ortamınız tüm sistemlerde
aynıdır - Editörünüz için daha iyi kodlamalar -
Bir IDE'nin bazı özellikleri harici araçlarla veya senaryolarla birlikte kullanılabilir. (intellisense, tanıma gitme, referansları bulma)



0

Gerçekten önerdiğim tek hata ayıklayıcı. Bir IDE gerçekten eklenmiş bir çok gubbini yükleyen bir editördür, ancak komut istemine make (veya yukarı ok + enter) yazarak derleyebilirseniz, bir IDE'ye ihtiyacınız yoktur . SCM'ye explorer'a sağ tıklayarak ve doğru menü öğesini seçerek karar verebilirseniz, bir IDE'ye ihtiyacınız yoktur.

Artık bazı kişilerin refactoring desteği (ilk defa kodunuzu yazınız :)) veya bazı entegre GUI tasarımcısı gibi şeylere ihtiyaç duyduğunu biliyorum (ancak o zaman bile, Visual Studio'yu kullanarak VS'deki crappy XAML desteğini değil GUI çalışmamı yapmak için Expression kullanıyorum. ) ve birçok kişi ihtiyaç özellikle) isimlerini godallmightlylong gelmiş Java ve C # gibi dillerde ayrıntılı için intellisense ve otomatik tamamlama (.

Ancak benim için GUI hata ayıklayıcı, IDE'yi kullanmak için gerçekten iyi bir neden. Hala bir 'komut satırı' hata ayıklayıcı (iyi, windbg) kullanıyorum, ancak günden güne, yerleşik olan VS den.


0

Bir IDE'nin faydaları var. Ölçeklerin gerçekte gerçekten ipucu için kapsamlı bir IDE'ye sahip olmaması ya da söz konusu dil için bir tane oluşturmanın yasak olması zor olabilir. Neden bir IDE istemesin? Peki bunlarla başlayalım:

  • Dil, IDE açılır pencerelerinde gelişimi hızlandırmaya yardımcı olabilecek zengin bir standart API'ye sahiptir.
  • Çok sayıda kazan plakası kodu var. (Zorla deneme / yakalama, alıcı / ayarlayıcı, vb.)
  • Otomatik tamamlama, kodlama ihtiyaçlarınızı doğru bir şekilde karşılayabilir
  • Dil birimi test paketiniz söz konusu IDE'ye entegre edilmiştir.
  • IDE en iyi uygulamalarla ilgili çok sayıda dil ortak kütüphanesinin farkında ve bunları destekliyor.
  • Çalışma mo'betta yapmak için eklentiler mevcut
  • Çok ağır değil, sisteminizi yavaşlatıyor
  • Yüksek oranda entegre hata ayıklayıcı? Bu yardımcı olur.

Sorun, tüm dillerin kapsamlı bir IDE'den gerçekten büyük bir verimlilik kazancı sağlaması değildir. IDE'leri yaptığım bazı işler için kullanıyorum (Java, C #) ama diğerleri için (Python, Ruby, Coldfusion) kullanmıyorum. Hepsi gerçekten dengeleyici bir eylemdir. Bazı diller bu kadar kapsamlı bir paketi gerektirmez.

Her biri için IDE var mı? Elbette. Her zaman birine ihtiyacın var mı? Pek sayılmaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.