Neden IDE kullanmalıyım? [kapalı]


391

Başka bir soruda Mark , IDE'lerden yüksek oranda bahsediyor ve "bazı insanlar hala neden bir tane kullanmaları gerektiğini bilmiyorlar ..." diyorlar. Programlama için vim kullanan ve meslektaşlarımın çoğunun / tüm çalışmalarında vim veya emacs kullanan bir ortamda çalışan biri olarak IDE'lerin avantajları nelerdir? Neden bir tane kullanmalıyım?

Eminim bu bazı insanlar için tahsil edilmiş bir konudur ve bir alev savaşı başlatmakla ilgilenmiyorum, bu yüzden lütfen sadece IDE tabanlı bir yaklaşımın üstün olduğuna inandığınız nedenleri cevaplayın . Neden IDE kullanmamam gerektiğini duymak istemiyorum; Ben zaten kullanmıyorum. Tabii ki, "çitin diğer tarafından" duymak istiyorum.

IDE'lerin bazı işler için uygun olabileceğini, ancak diğerleri için uygun olmayabileceğini düşünüyorsanız, nedenini de duymak isterim.


1
Blogumdan benimle iletişime geçtiğiniz için teşekkürler, bu sitede gerçekten özel bir mesajlaşma sistemi olmalı!
Mark

11
emacs kötü bir örnektir. Emacs'ın eksik olduğu bir IDE özelliği bulmak zor. Fark, kutudan çıkanları ve özelleştirmeyi gerektiren şeydir.
jfs

8

30
Peki yorumlar nedeniyle bir IDE kullanmaya başladınız mı?
Artçı Şok

1
Bazen IDE kullanmaktan başka seçeneğiniz yok :(
Lorem Ipsum Dolor

Yanıtlar:


537

Gerçekten hangi dili kullandığınıza bağlıdır, ancak C # ve Java'da IDE'leri aşağıdakiler için yararlı buluyorum:

  • İsim alanı, proje vb. İçin endişelenmenize gerek kalmadan bir türe hızlıca gitme
  • Üyelere köprü olarak davranarak üyelere gitme
  • Tüm üyelerin adlarını ezbere hatırlayamadığınızda otomatik tamamlama
  • Otomatik kod oluşturma
  • Yeniden düzenleme (devasa)
  • İçe aktarma düzenleme (C # 'daki yönergeleri kullanarak Java'ya otomatik olarak uygun içe aktarma ekleme)
  • Yazarken uyarı (yani bazı hatalar bir derleme döngüsü gerektirmez)
  • Dokümanları görmek için bir şeyin üzerine gelin
  • Dosyalar, hatalar / uyarılar / konsol / birim testleri vb. İle kaynak kodlarının tümünü aynı anda ekranda yararlı bir şekilde tutmak
  • Aynı pencereden birim testi yapma kolaylığı
  • Entegre hata ayıklama
  • Entegre kaynak kontrolü
  • Derleme zamanı hatasının veya çalışma zamanı özel durumunun doğrudan hata ayrıntılarından oluştuğu yere gitme.
  • Vb!

Tüm bunlar zamandan tasarruf sağlar. Bunlar elle yapabileceğim şeyler, ama daha fazla acıyla: Kodlamayı tercih ederim.


90
Sanırım emacs bir IDE, o zaman;)
Svante

97
Bu şekilde hareket ettiğinde, Vim'in bir IDE olarak sayıldığını söyleyebilirim.
Jon Skeet

58
Deneyimlerime göre Vim ve Emacs'ın "gerçek" IDE'lerden eksik olduğu en büyük şey (evet, onlar büyük geliştirme ortamı olabileceğini biliyorum) yazarken uyarı kısmıdır. Bu temel olarak editörde gelişmiş bir derleyici yerleştirmek anlamına gelir ve bu düzeyde bir entegrasyon elde ettiklerini sanmıyorum.
Joachim Sauer

16
saua: Flymake'ye baktın mı , flymake.sourceforge.net ? En azından Emacs için yazdığınız gibi bazı işlevler sağlar
polyglot 23

62
Uyarı-sen-türü gibi, John Skeet IDE aşağıdaki kodu düzeltmeye çalışırken boşuna bir girişim olacağını uyarmak için buna ihtiyacı varsayalım.
cmcginty

100

Kod tamamlama. Kodu keşfetmekle çok yardımcı olur.


107
Intellisense yerine kod tamamlama diyebilirim
Hannoun Yassir

2
Sonra tekrar Ctrl + P tuşlarına basabilirim ve bana vimkullanabileceğimi düşünen bir sürü komutun açılır listesini veririm.
yeni123456

17
Sadece kodu keşfetmekten daha fazlası. A yazarsam. ve hiçbir şey açılmaz, kodumda bir sorun var demektir; Genellikle onu bulmak için derlemek zorunda bile değilim. A yazarsam. ve beklediğim şeyi elde edemem, yanlış tür kullandığım ya da dahili ya da halka açık bir şey yapmayı ya da böyle bir problemi unuttuğum anlamına gelir; Sorunu keşfetmek için koşmam gerekmiyor. Intellisense, hataları mümkün olan en kısa sürede tespit etmek için son derece yararlıdır.
Ryan Lundy

1
Bu nasıl bir cevap? Yüksek sesle okuduğunuz zaman kötü bir Microsoft sloganı gibi geliyor ...
Kolob Kanyonu

Tamam ... YouCompleteMe, Deoplete ... bu tür kodların tamamlanmasını istiyorsanız . Emacs için bunu bilmiyorum. Ayrıca Vim, diğer editörleri kullanırken eksik olduğum kutudan olağanüstü otomatik tamamlama özelliğine sahiptir.
JakeD

85

Neden bir IDE kullandığımın kısa cevabı tembelliktir.

Bunun yerine bunu yapmanın kolay bir yolu olduğunda işleri zor bir şekilde yapmaktan hoşlanmayan tembel bir ruhum. IDE'ler hayatı kolaylaştırıyor ve bize tembel insanlara hitap ediyor.

Kod yazarken, IDE kodun geçerliliğini otomatik olarak kontrol eder, bir yöntemi vurgulayabilir ve yardım almak için F1 tuşuna basabilir, sağ tıklayıp doğrudan tanımlandığı yere atlamak için "tanımlamaya git" i seçebilirim. Bir düğmeye bastım ve uygulama, otomatik olarak hata ayıklayıcı eklenmiş benim için başlatılır. Ve böylece liste uzayıp gidiyor. Bir geliştiricinin günlük bazda yaptığı her şey tek bir çatı altında toplanır.

IDE kullanmaya gerek yoktur. Yapmamak çok daha zor bir iş.


Visual Studio .NET kullanıyorsanız, F12 "Tanıma git" olarak eşlenir. (Bunu yeni keşfettim) Yani ona ulaşmak için sağ tıklamanız gerekmiyor. 8)
Knobloch

@Knobloch, hem VS2008 hem de Eclipse kullanma eğilimindeyim. Özel olarak FlashDevelop'u çok kullandım. "Tanıma git" kısayolu her üçü için de farklıdır, bu yüzden sağ tıklamaya güveniyorum :)
David Arno

Menü çubuğuna sağ tıklamak ve Özelleştir / Klavye Kısayollarını seçmekle yakından tanışabilirsiniz.
dkretz

19
Bu sadece bir tembellik meselesi değil :) - Bir IDE değerli zaman kazandırır ve bu nedenle verimliliği arttırır.
Alex Schimp

Buna ek olarak, bir IDE kullanıma hazırdır, onu üretken hale getirmek için çok zor şeyler kurmaya gerek yoktur.
Akira Yamamoto

56

"Metin editörü" gerçekten emacs olduğunda klasik "metin editörü ve konsol penceresi IDE vs" yapmak adil olduğunu sanmıyorum. IDE: ler için tipik olan çoğu özellik emac'lardadır. Ya da belki de oradan çıkmışlardı ve modern IDE: ler esas olarak arayüz iyileştirmeleri / basitleştirmeleridir.

Bu, orijinal soru için cevabın o kadar net olmadığı anlamına gelir. Söz konusu sitedeki kişilerin emac'ları nasıl kullandıklarına, esas olarak bir metin editörü olarak kullanıldıklarına veya hepsi dışarı çıkıp özel komut dosyası kullandıklarına, ilgili modların komutlarını öğrenmelerine, kod etiketleme hakkında bilgi sahibi olmalarına vb. Bağlıdır.


9
Evet, bu güvenli bir genelleme değil. Bu cevaplarda belirtilen tüm IDE özellikleri için Emacs kullanıyorum.
jfm3

21
Güçlü bir metin düzenleyicide IDE benzeri özellikleri yapılandırmanın zamanının, kutudan çıkan özellikleri kullanarak bir IDE'de daha iyi harcama yapabileceğini düşünüyorum.
jfs

6
IDE kullandığım gibi vim kullanıyorum.

12
@JF Sebastian: Sorun şu ki, üretimi geliştirmek için o IDE'nin giriş ve çıkışlarını öğrenmeniz gerekecek ve eğer dil değiştiriyorsanız ve birçok farklı araç kullanıyorsanız bir güçlük haline gelebilir. Şu anda vim öğreniyorum ve ilk başta alışmak zor olsa da, farklı sistemlerde ve birçok farklı dilde bulabildiğimde çabucak karşılığını veriyor.
Isaac Nequittepas

7
@JFSebastian: Bence Emacs'ı IDE işleri yapmak için yapılandırmak, IDE'yi gezinme, serseri, kabuk modu, yönlendirilmiş ... vb. Gibi Emacs öğeleri yapmak için yapılandırmaktan daha verimli.
Tikhon Jelvis

51

Bu soruya ters yönden geliyorum. Makefile + Emacs ülkesinde çok az sayıda pitstop ile programlamaya başladım. DOS'taki en eski derleyicim olan Microsoft Quick C'den işleri otomatikleştirmek için bir IDE vardı. Visual C ++ 6.0'da uzun yıllar çalıştım ve Enterprise Java'da mezun olduğum için Borland JBuilder ile çalıştım ve daha sonra benim için çok üretken hale gelen Eclipse'ye yerleştim.

İlk kendi kendine eğitimim, kolejim ve şimdi profesyonel kariyerim boyunca, sadece IDE içinde yapılan herhangi bir büyük yazılım geliştirmenin verimsiz hale geldiğini öğrenmeye başladım. Bunu söylüyorum çünkü çoğu IDE ,tuhaf I-kontrol-nasıl-dünyanın-iş tarzı. Projelerinizi kendi hatları boyunca dilimlemek ve zarlamak zorundasınız. Proje yapılarınızı tek iletişim kutularını kullanarak yönetiyorsunuz. Çoğu IDE, projeler arasındaki karmaşık yapı bağımlılıklarını kötü yönetir ve bağımlılıkların% 100 çalışmasını zorlaştırabilir. Temiz / Yeniden Oluşturma yapmadıkça IDE'lerin kodumun çalışma yapısını üretmeyeceği durumlarda bulundum. Son olarak, yazılımınızı geliştirme dışında ve IDE'den QA veya Production gibi diğer ortamlara taşımanın nadiren temiz bir yolu vardır. Genellikle tüm dağıtım birimlerinizi oluşturmak için tıkır bir şenlik ya da IDE tedarikçisinin size bir şeyler hazırlamanız için verdiği garip bir araç var. Ama yine,

Bir ekiple büyük ölçekli geliştirme yapmak için, kodumuzu bir IDE kullanarak geliştirir ve tüm yapılarımızı elle yazılmış komut satırı komut dosyaları kullanarak yaparsak, en verimli olabileceğimizi öğrendim. (Java geliştirmesi için Apache Ant'i seviyoruz.) Komut dosyalarımızı IDE'den çalıştırmanın sadece bir tıklama festivali veya karmaşık yapılar için bir otomasyon kabusu olduğunu keşfettik. kabuk ve orada komut dosyalarını çalıştırın.

Manuel yapımlar, modern IDE'deki arka plan derlemesi gibi bazı özellikleri kaçırmamızı gerektirir, ancak kazandığımız çok daha kritiktir: birden fazla ortamda yaşayabilen temiz ve kolay yapılar. Tüm bu çevik adamlar "tek bir tıklamayla inşa" hakkında konuşuyor? Biz buna sahibiz. Derleme komut dosyalarımız sürekli entegrasyon sistemleri tarafından da doğrudan çağrılabilir. Sürekli entegrasyon yoluyla derlemelerin yönetilmesi, kod dağıtımlarınızı farklı ortamlara daha resmi olarak yerleştirmemize ve taşımamıza olanak tanır.

Gerçekte, IDE'den uzaklaşma rolünü üstlenmem bizi çok fazla incitmedi. Eclipse'deki intellisense ve refactoring araçları hala tamamen kullanışlı ve geçerlidir - arka plan derlemesi sadece bu araçları desteklemeye hizmet eder. Ve Eclipse'nin kendine özgü projeleri dilimleme, sorun setlerimizi zihinsel olarak herkesin anlayabileceği şekilde parçalamak için çok güzel bir yol olarak hizmet etti (yine de zevklerim için biraz ayrıntılı). Eclipse ile ilgili en önemli şeylerden birinin mükemmel SCM entegrasyonları olduğunu düşünüyorum, takım geliştirmeyi bu kadar keyifli kılan şey bu. Subversion + Eclipse kullanıyoruz ve bu çok verimli ve halkımızı uzman olmaları için eğitmek çok kolay oldu.


2
+1, bina malzemelerine (en azından tipik olarak) getirilen karmaşıklıklar, IDE'leri yoksun bırakma eğilimimin en büyük nedenlerinden biri
Scott Schulthess

24

Sorunuzda vurguladığınız yanıtın yazarı olarak ve kuşkusuz buna biraz geç geliyor, listelenen birçok neden arasında, profesyonel bir geliştiricinin verimliliğinin en çok biri olduğunu söylemeliyim. saygın beceriler.

Verimlilik ile, işinizi mümkün olan en iyi sonuçlarla verimli bir şekilde yapma yeteneğini kastediyorum. IDE'ler bunu birçok seviyede etkinleştirir. Ben bir Emacs uzmanı değilim, ancak büyük IDE'lerin özelliklerinden yoksun olduğundan şüpheliyim.

Bir kurumsal uygulamada anahtar basamak taşlarının tasarımı, belgelenmesi, takibi, geliştirilmesi, inşa edilmesi, analiz edilmesi, yerleştirilmesi ve bakımı, bir IDE içinde yapılabilir.

Seçiminiz varsa neden bu kadar güçlü bir şey kullanmıyorsunuz?

Bir deneme olarak, örneğin 30 gün boyunca bir IDE kullanmayı ve kendinizi nasıl hissettiğinizi görün. Deneyim hakkındaki düşüncelerinizi okumak isterim.


10
Emacs'ın Eclipse'in en azından eksik veya çok iyi gizlediği özellikleri vardır. Örneğin, bir yığın parça seçme ve bunları yerinde sıralama yeteneği. Emacs'ın dolgu paragrafını, yorumları düzenlerken yenmek de zordur; Eclipse türünün benzer bir özelliği vardır, ancak karşılaştırıldığında son derece zayıftır.
Porculus

17
İnsanların IDE'ler için gitmemelerinin büyük bir nedeni şişkinlikleri. Sadece bir sandviç yapmak istiyorsanız, tüm süpermarkete ihtiyacınız yok.

9
Deneyimlerime göre, IDE'ler klavyeyi kullanarak her şeyle tam ve tutarlı bir şekilde etkileşime girmenize izin vermiyor. Ayrıca, Emacs, IDE'lerin küçük ama kullanışlı (dikdörtgen bölgeler, hippi genişletme, geniş klavye naviagtion), oldukça büyük (tramp, dired, elisp ile şeffaf özelleştirme), klavye makroları). Eminim bazı IDE'ler bu özelliklerden bazılarına sahiptir, ancak onları görmedim.
Tikhon Jelvis

20

Bir IDE'ye sahip olmanın aşağıdaki avantajları vardır:

  • Derleme genellikle "anında" dır, bu da derlemek için komut satırına geçilmemesi anlamına gelir
  • Hata ayıklama entegre edilmiştir ve bir IDE'ye sahip olmak, adım hata ayıklayıcının gerçekte hangi kodun yürütüldüğünü görsel olarak göstermek için yerinde düzenleyicinizi kullandığı anlamına gelir
  • IDE'ler genellikle çalıştığınız dil hakkında daha anlamsal bilgiye sahiptir ve yazarken size olası sorunları gösterebilir. Yeniden düzenleme, "arama değiştirme" den çok daha güçlüdür.

Çok daha fazlası var, belki de denemelisin.


Her minimal editör için konuşamam, ancak Vim'de derleme ve çalıştırma gibi birçok şeyi yapabileceğiniz makrolar var.

@Cancak nokta, onları senaryo yazmanız gerektiğidir. Zaten mevcut olmalıdır.
ezmek

20

IDE'ler temel olarak:

  • Kod tamamlama, yeniden düzenleme ve dokümantasyon ile editör
  • Debugger
  • Dosya sistemi gezgini
  • SCMS istemcisi
  • Derleme aracı

hepsi tek bir pakette.

Tüm bunları (ve biraz daha fazlasını) ayrı araçlar veya sadece harika bir programlanabilir editör ve Emacs (Vim gibi ekstra araçlar da kullanabilirsiniz, ancak daha az IDEbility IMO'su vardır).

Kendinizi bir yardımcı program ile bir sonraki program arasında ortama entegre olabilecek çok şey bulursanız veya burada listelenen bazı yetenekleri (ve diğer yayınlarda tamamen eksik) kaçırırsanız, belki de bir IDE'ye (veya makro ekleyerek veya ne ekleyerek ortamınızın IDEbility özelliğini geliştirmek için). Birden fazla program kullanarak kendinize bir 'IDE' oluşturduysanız (yukarıda bahsettiğim anlamda), gerçek bir IDE'ye geçmeye gerek yoktur.


12

Eclipse:

Kod vurgulama, arka planda derleme, ben giderken hatalarımı gösteren.

Javadoc ile entegrasyon, ctrl-Space ile değişken isimleri önerir.

Derlediğimde, orada hatalar alıyorum. Bir hatayı çift tıklayabilirim ve uygun satırı görüntüler.

JUnit ile gerçekten iyi entegre olan ctrl-F11 testi çalıştırıyor, testlerin başarısız olduğunu söylüyor. Çıktı penceresinde bir istisna varsa, bir satıra çift tıklayabilir ve beni başarısız olan satıra götürür. Sadece bu değil, aynı zamanda ctrl-F11, testleri çalıştırmadan önce her şeyin derlendiğinden emin olur (yani bunu asla unutmam anlamına gelir).

Karınca ile entegrasyon. Uygulamayı oluşturmak ve dağıtmak için bir komut.

Web sunucularının uzaktan hata ayıklaması dahil hata ayıklayıcılarla entegrasyon.

FANTASTİK yeniden düzenleme araçları, kodun bir bölümüne referans arama. Bir değişikliğin etkisini bilmeme yardımcı olur.

Sonuçta, beni daha üretken yapıyor.


Mesele şu ki Emacs, Eclipse'den daha fazla dil için hemen hemen her şeyi yapıyor.
Tikhon Jelvis

11

Emacs'ı yaklaşık 10 yıldır (1994-2004) hem geliştirme hem de posta / haber için birincil ortamım olarak kullandım. 2004'te kendimi Java öğrenmeye zorladığımda IDE'lerin gücünü keşfettim ve IDE'yi ( IntelliJ IDEA ) gerçekten sevdiğime şaşırdım .

Burada birçoğundan daha önce bahsedildiği için belirli nedenlere girmeyeceğim - sadece farklı insanların farklı özellikleri sevdiğini unutmayın. Ben ve bir meslektaşım aynı IDE'yi kullandık, ikimiz de mevcut özelliklerin sadece bir kısmını kullandık ve IDE'yi kullanma şeklini sevmedik (ama ikimiz de IDE'nin kendisini sevdik).

Ancak odaklanmak istediğim Emacs / Vim ile ilgili ortamlarda IDE'lerin bir avantajı var: İstediğiniz özellikleri kurmak / yapılandırmak için daha az zaman harcıyorsunuz.

İle Kanat IDE (Python için) Ben kurulumdan sonra 15-20 dakika geliştirmeye başlamak için hazırım. Emacs / Vim ile kullandığım özellikleri çalıştırmak için kaç saat gerektiğini bilmiyorum. :)


2
Başlaması daha uzun sürer, ancak daha sonra 'uyarlanmış' daha iyidir.
sjas

3
Emacs / Vim'i yapılandırmak sadece uygun dosyaları programın bulabileceği bir yere kopyalamakla ilgilidir. Konfigürasyon dosyalarınızı tek bir dizinde güzel bir şekilde düzenli tutmanız gerçekten zor değil, bundan sonra onları bir flash sürücüye, internet depolama alanına veya bir depoya koyabilirsiniz, böylece cloneçalışmanızı ayarlamanız gerektiğinde bunları yapabilirsiniz ortamı. :)
Gordon Gustafson

10

Bu kesinlikle benim için verimlilikte bir iyileşmeye yol açıyor. Hatta Vista'daki Visual Studio'da Linux uygulamalarını kodladığım ve daha sonra bunları oluşturmak için bir Linux sanal makinesi kullandığım noktaya.

Bir işlev veya yöntem çağrısındaki tüm bağımsız değişkenleri ezberlemek zorunda değilsiniz, yazmaya başladığınızda IDE size hangi bağımsız değişkenlerin gerekli olduğunu gösterecektir. Proje özelliklerini, derleyici seçeneklerini vb. Ayarlamak için sihirbazlar alırsınız. Yalnızca geçerli belge veya klasördeki dosyalar yerine tüm proje boyunca şeyler arayabilirsiniz. Bir derleyici hatası alırsanız, onu çift tıklatın ve sizi rahatsız eden satıra götürür.

Model editörleri gibi araçların entegrasyonu, harici veritabanlarına bağlanma ve bu veritabanlarına göz atma, kod "parçacıkları" koleksiyonlarını yönetme, GUI modelleme araçları, vb. Bunların hepsi ayrı ayrı olabilir, ancak hepsinin aynı geliştirme ortamında olması çok fazla tasarruf sağlar zaman ve geliştirme sürecinin daha verimli akmasını sağlar.


8

Farklı insanlar için farklı nedenler olabilir. Benim için bunlar avantajlar.

  1. Projeye entegre bir his verir. Örneğin, ilgili tüm proje dosyalarını tek görünümde göreceğim.
  2. Gibi kod verimliliğini artırır
    1. Sözdizimi Vurgulama
    2. Montajların yönlendirilmesi
    3. iyileştirmek
    4. Veritabanı ve ilgili kullanıcı arayüzü dosyalarının merkezi görünümü.
    5. Hata ayıklama özellikleri

Günün sonunda, bir not defteri veya wordpad'de yapabileceğimden daha hızlı kod yazmama yardımcı oluyor. Bu bir IDE'yi tercih etmem için oldukça iyi bir neden.


8

Bir IDE şunları yapabilir: bir geliştiricinin neyi başarmaya çalıştığına bağlı olarak 'üstün' bir seçim olabilir.

Bir metin editörü kutu IDE tipik olarak dil birinde (ya da küçük bir seçim) yönelik olduğu için üstün 'olabilir.

Bir geliştirici zamanının çoğunu tek bir dilde veya ilgili dillerin (C # ve T-SQL gibi) bir kümesinde, bir işletim sisteminde harcıyorsa, GUI tasarımı, hata ayıklama, intellisense, yeniden düzenleme vb. iyi bir IDE çok zorlayıcı olabilir. Örneğin, zamanınızın çoğunu VB.NET'te çalışarak geçiriyorsunuz, belki biraz T-SQL ile bir Windows ortamında, o zaman Visual Studio'ya veya karşılaştırılabilir bir IDE'ye bakmamak çok aptalca olurdu .

IDE'leri veya metin editörlerini tercih edenlere karşı bir önyargım yok, her ikisi de iyi öğrenilirse çok verimli ve yararlı olabilir !


7

Bence bunun çoğunlukla geliştirici için farkındalık alanı ile ilgisi var. IDE, geliştiricinin çalışma bağlamının makroskopik bir görünümünü sunar. Aynı anda sınıf hiyerarşilerini, referans verilen kaynakları, veritabanı şemalarını, SDK yardım referanslarını vb. Görebilirsiniz. bir seferde yalnızca bir kod adasından çalışın.

OTOH, "sadece ben ve vim ve adam sayfaları" bana çalışmamın çok daha zayıf bir mikroskobik - ama yoğun ve hassas görünümünü veriyor. Çalışmak için tek bir statik kitaplık seti ile tek bir dilde oluşturulmuş iyi tasarlanmış, iyi bölümlenmiş, seyrek olarak birleşmiş yüksek düzeyde uyumlu kod tabanına sahipseniz bu sorun değil - özellikle dev takım boyutları büyüdükçe ve kod yapısını yeniden şekillendirdiğinde, tipik durumunuz değil zaman, mesafe ve kişisel tercih.

Şu anda Flex ve .NET'teki projeler üzerinde çalışıyorum. Flex ile ilgili en güzel şeylerden biri, standart bir şeyi başarmanın ne kadar az farklı yolu olduğudur - bir veritabanından veri çekme, bir dosyayı açma / kapama / okuma / yazma, vb. (Yine de Flex Builder / Eclipse IDE kullanıyorum - VS gibi tipik bir ağır ağırlık örneği, çünkü hala temelleri öğreniyorum ve eğitim tekerleklerine ihtiyacım var. Desenlerimden emin olduktan sonra vim haline gelmeyi umuyorum.) Bu görüşe göre, ne yapabilirim Birkaç şeyi gerçekten çok iyi bilerek profesyonelce yapmam gerekiyor.

OTOH, .NET ile o noktaya gelmeyi hayal edemiyorum çünkü korumam beklenen görünüm genişliyor ve değişiyor. Daha az kavramsal bütünlük ve birkaç ay boyunca bir proje üzerinde birkaç geliştirici, çok daha az tutarlılık var - ancak IDE bunu destekliyor, belki de teşvik ediyor. Bu yüzden geliştirici gerçekten çok daha fazla şeyi yeterince bilmelidir (ve daha kolay bir şekilde). Ayrıca, StackOverflow'daki soruların çok daha yüksek bir yüzdesini cevaplamalarına (hatta anlamasına) yardımcı olma avantajı vardır. Yani daha derin bir bilgi birikimimiz olabilir. Ve daha geniş bir yelpazede yardım aranan reklamlara yanıt verebiliriz.

Her iki yönde de çok ileri gidebilir. Belki "sadece editör" kapsamı ile "sadece bir çekiçiniz varsa, her şey çivi gibi görünür" gibidir. IDE yaklaşımı ile, birbirine bağlamak istediğiniz ne olursa olsun, nals / çekiç, vida / tornavida, cıvata / somun anahtarı, yapıştırıcılar / tutkal tabancaları / kelepçeler, mıknatıslar arasından seçim yapabileceğiniz çok çeşitli bağlantı elemanlarına ve ilişkili araç yelpazesine sahipsiniz ve açık ve kapalı - hepsi parmaklarınızın ucunda (başlamanıza yardımcı olacak bir sihirbazla).


5

Özel olarak düşünmeyin. Sağladığı avantajlar için IDE'yi kullanın ve ciddi bir odaklanmaya ihtiyacınız olduğunda vim / tercih edilen metin düzenleyicisine geçin.

IDE'yi yeniden düzenleme, göz atma ve hata ayıklama ve ne yapacağımı çözme için daha iyi buluyorum . Daha sonra IDE'de küçük şeyler yapılır, işi bitirmek için çevirdiğim büyük şeyler.


5

Diğer cevaplara ek olarak, ben birleştirerek seviyorum gelişmekte olan bir IDE gücünü düzenleme gibi bir şey kullanarak Vim gücü ViPlugin için Eclipse .


5

IntelliSense , entegre hata ayıklayıcı ve yakın pencere beni çok daha üretken kılıyor ( Visual Studio 2008 ). Her şey parmaklarımın ucundayken, kod yazarken büyük bir projenin büyük çoğunluğunu kafamın içinde tutabilirim. Microsoft, işletim sistemlerinde topu bırakmaya devam edebilir, ancak Visual Studio şimdiye kadar geliştirilen en iyi ürünlerden biridir.


4

Ne sorduğunu anlamıyorum. "Bunun yerine bir IDE kullanmalı mıyım?" Diye sorarsınız, ama alternatifin ne olduğunu anlamıyorum - Vim ve Emacs herhangi bir IDE'nin size vereceği birçok işlevi yerine getirir. Daha büyük bir IDE'nin UI tasarımcıları gibi şeylerle ilgilenmedikleri tek yön. O zaman sorunuz basitçe Vim ve Emacs aleminde yapılacak argümanlarla "hangi IDE'yi kullanmalıyım" diye kayboluyor.


3

Benim için bir IDE daha iyidir çünkü kodda daha hızlı gezinmeye izin verir, bu da aklınızda bir şey varsa önemlidir. Bir IDE kullanmıyorsanız, hedefe ulaşmak daha uzun sürer. Düşünceleriniz daha sık kesilebilir. Bu, daha fazla tıklama / daha fazla tuşa basılması gerektiği anlamına gelir. Kişi daha çok şeylerin nasıl uygulanacağı düşüncesine odaklanmalıdır. Tabii ki, bir şeyler de yazabilirsiniz, ancak tasarım ve uygulama arasında atlamak gerekir. Ayrıca, bir GUI tasarımcısı büyük bir fark yaratır. Bunu elle yaparsanız, daha uzun sürebilir.


3

Visual Studio ve Eclipse gibi GUI tabanlı IDE'lerin, görüntüleme özellikleri nedeniyle Emacs veya vim gibi metin tabanlı IDE'lere göre çeşitli avantajları vardır:

  • GUI tasarımı için WYSIWYG önizleme ve canlı düzenleme
  • Verimli özellik editörleri (ör. Gradyan duraklarını konumlandırma vb. Dahil olmak üzere bir GUI paleti kullanarak renk seçimi)
  • Kod anahatlarının, dosya ilişkilerinin vb. Grafik olarak gösterilmesi
  • Kesme noktalarını, yer imlerini, hataları vb. Göstermek için ekran gayrimenkulünün daha verimli kullanımı
  • İşletim sistemi ve diğer uygulamalarla daha iyi sürükle ve bırak desteği
  • Çizimlerin, görüntülerin, 3D modellerin vb.
  • Veritabanı modellerini görüntüleme ve düzenleme

Temel olarak GUI tabanlı bir IDE ile aynı anda ekranda daha yararlı bilgiler edinebilir ve uygulamanızın grafik kısımlarını metin kısımları kadar kolayca görüntüleyebilir / düzenleyebilirsiniz.

Bir geliştirici olarak deneyimlemek için en havalı şeylerden biri, bazı verileri hesaplayan bir yöntemi düzenlemek ve kodunuzun canlı çıktısını, tıpkı kullanıcının uygulamayı çalıştırırken göreceği gibi, başka bir pencerede grafiksel olarak görüntülenmesini görmek. Şimdi bu WYSIWYG düzenleme!

Emacs ve vim gibi metin tabanlı IDE'ler, kod tamamlama ve zaman içinde yeniden düzenleme gibi özellikler ekleyebilir, bu nedenle uzun vadede ana sınırlamaları metin tabanlı görüntüleme modelidir.


3

Ayrıca neredeyse tüm geliştirme şeylerim için Vim'i kullanıyorum (neredeyse şimdi emacs öğrenmeye çalıştığım için). Bence (elbette GUI'den) sezgiselliği insanların IDE'leri kullanmayı sevmesinin başlıca nedeni olduğunu düşünüyorum. Sezgisel olarak, çok az veya hiç öğrenme yükü gerekmez. Öğrenme yükü ne kadar az olursa, o kadar çok iş yapabilirler.


3

Bir IDE daha hızlı ve daha kolay çalışmasına izin verir ... Basit bir metin düzenleyicide kodda gezinmek için çok zaman harcadığımı fark ettim ...

İyi bir IDE'de, IDE işlevlere, önceki düzenleme konumuna, değişkenlere atlamayı destekliyorsa bu süre azalır ... Ayrıca, iyi bir IDE, başlangıç ​​zamanı olarak farklı dil özellikleri ve projeleriyle deneme süresini azaltır küçük olabilir.


3

Bir IDE kullanmak için düşünebileceğim birkaç neden:

  • Entegre yardım bir favori.
  • Visual Studio Önizlemesi ile yerleşik Refactor
  • IntelliSense , sözdizimi vurgulama, büyük projeler için gezinme kolaylığı, entegre hata ayıklama, vb. (Eklentileri bildiğim halde Emacs ve Vim ile muhtemelen çok şey alabilirsiniz. ).
  • Ayrıca, bu günlerde IDE'lerin daha geniş bir kullanıcı tabanına sahip olduğunu ve muhtemelen daha fazla insanın onlar için eklentiler geliştirdiğini düşünüyorum, ancak yanlış olabilirim.

Açıkçası faremi seviyorum. Saf metin tabanlı düzenleyiciler kullandığımda yalnız kalıyor.


2

Geliştirmek için zaman kazandırır
Entegre hata ayıklama, intellisense gibi özellikler sunarak hayatı kolaylaştırır.

Çok fazla var, ama bir tane kullanmanızı tavsiye edecek, daha açıktır.


2
Cevabınız için teşekkürler, ancak açık olduklarını düşünürsem, ilk etapta soruyu sormazdım!
Simon Howard

2

Bir metin düzenleyici ve bir IDE arasında net bir ayrım çizgisi olduğundan emin değilim. Ölçeğin bir ucunda Not Defteri gibi, diğerinde en iyi modern IDE'ler var, ancak aralarında çok şey var. Çoğu metin editörünün sözdizimi vurgulaması vardır; programcılara yönelik editörler genellikle kolay kod navigasyonu ve otomatik tamamlama gibi çeşitli özelliklere sahiptir. Emacs bile bir hata ayıklayıcıyı entegre etmenizi sağlar. On yıl önce bile IDE'lerin programcılara yardımcı olması için bugünlerde ciddi bir metin editörü beklediğinizden çok daha az özelliği vardı.


Bugünün "editörleri" nin dünkü "ides" den daha fazla özelliğe sahip olduğunu belirten +1.
Sean McMillan

2

Birini kullanmamın ana nedeni kodun 100 dosyanın ötesine geçmesidir.

Her ne kadar ctags işi yapabilirse de, bazı IDE'lerin dosyalarda kolayca süper hızlı gezinmek için oldukça iyi bir yolu vardır.

Yapacak çok işiniz olduğunda zaman kazandırır.


2

Bana göre, terminalin eski güzel günlerinde yaptığımız her şeyin GUI versiyonu. Her zaman IDE'nin çok üstün olmadığı konusunda hemfikir olacağım, çünkü özellikle bağlantılarla ilgili birçok şeyi gizliyorlar, ancak bazı durumlarda, örneğin Qt gibi belirli geliştirme platformlarında dikkate değer bir avantajları var.

Başkalarının görseli gibi bazı IDE, kodunuzu yazarken ayrıştırıyor ve hatta derlemeden önce hataları algılıyor gibi görünüyor: Yazılan kaynaktaki sorunu hemen algılamak için yalnızca bir IDE'nin bir derleyiciyle yakından çalışabileceği mantıklı görünüyor.

IDE / Komut satırı alev savaşının var olduğu benim vahşi cevabım, C / C ++ yürütülebilir binasının D dilinden farklı olarak standartlaştırılmış bir bakış açısından çok iyi ele alınmamasıydı; her platform derleme / bağlama / vb.

Sizin bakış açınıza göre, komut satırını kullanmak daha basit olabilir, standart seçeneklere sahip tek bir derleyici olsaydı, kolay olurdu, ama gerçek şu ki C / C ++ esnektir, sonuçta tüm platform kendi yolunda yapın, dolayısıyla IDE nasıl yapılacağını açıklayarak boşa harcamayın.

Bir yürütülebilir dosyanın çekirdeği nasıl konuştuğunu öğrenebilir veya derleyici tasarımı hakkında bir şey biliyorsanız, belki de uygun bir komut satırı ile çalışmanın bir yolu vardır, ancak şüphelisiniz.

Microsoft veya Apple, tüm kötülükleri, ayrıntılara girmeden uygulama oluşturmanın basit bir yolunu önermek zorundalar ve bir uygulama oluşturmak doğrudan işletim sisteminin mimarisine bağlı olduğundan, komut satırı.

Basit, büyük ve karmaşık uygulamaları yapmak için, - IDE, küçük yazılım parçaları veya basit sistem yazılımı tasarımı -> komut satırı. Tabii ki bir Makefile gömen bu zarif kütüphaneler hariç, ama bu başka bir hikaye.

Ayrıca IDE, verilen uygulamanın ironik bir şekilde bir GUI veya bir arayüzü olan veya doğrudan bir işletim sistemine bağlı bir şeyle ilgilendiğinde kullanıldığını düşünüyorum, bu yüzden yine de bilmeden bir UI / GUI kullanacak kişiler için de nasıl çalıştığını, sistemleri programlayacak kişilerin hepsine ihtiyacı olmayacak.

IDE sadece modern bir bok, ama bence 100 yıl içinde komut satırı hala var olacak.


1

Ben bir IDE seviyorum çünkü parmaklarınızın ucunda bir çok işlevsellik koyar. Projedeki dosyaların düzenlenmesi / derlenmesi / görünürlüğü, bir IDE'de değer verdiğim her şeydir. Visual Studio'yu şimdi kullanıyorum, ancak eski bir yaşamda SlickEdit'i kullandım ve geliştirme sürecimi kullanmadığım zamandan daha akıcı hale getirdi.


1

Bir IDE kullanıp kullanmayacağınıza karar verirken göz önünde bulundurmanız gereken tek bir şey vardır ve bu sizi daha üretken ya da üretmez kılar.

Kısa soru çok kısa cevap :)


Yanıtınız için teşekkürler, ancak soruyu göndermeden önce bazı insanların buna inandığı açıktı. Seni neden daha üretken hale getirebileceğini düşündüğünü gerçekten bilmek istiyorum. Sizi bazı senaryolarda üretken yapar, diğerlerinde değil mi?
Simon Howard

1

Oldukça ne yaptığınıza ve hangi dilde yaptığınıza bağlıdır. Şahsen, IDE kullanma eğilimindeyim (veya "IDE'm vim çalışan 3 xterm, biri veritabanı istemcisi ve biri de bash istemi veya kuyruk günlükleri ", işimin çoğu için" IDE "yi ne kadar geniş bir şekilde tanımladığınıza bağlı olarak), ancak kendime platformda yerel bir GUI geliştiriyor olsaydım, o zaman dil için uygun bir IDE'ye ulaşırdım anlık IMO, IDE'ler ve grafik form düzenleme birbirleri için açıkça yapılır.

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.