IDE'm neden arka plan derleme / oluşturma yapmıyor?


13

Bugün oldukça karmaşık bir bilgisayarda gelişiyorum, birden fazla çekirdeği, SSD sürücüleri var ve ne yok. Yine de, çoğu zaman bilgisayarı programlıyorum, hiçbir şey yapmıyor. En iyi şekilde biraz karmaşık bir projeyi derlemem ve çalıştırmam gerektiğinde hala birkaç saniye sürüyor. Neden? Şimdi "anlık çağda" giderek daha fazla yaşadığımıza neden Visual Studio'da F5'e basamıyorum ve başvurumu anında başlatamıyorum / dağıtamıyorum?

Birkaç saniye bu kadar kötü gelmeyebilir, ancak yine de bilişsel sürtünme ve zaman ekler ve açıkçası programlamayı daha az eğlenceli hale getirir. Peki derleme nasıl anında olabilir?

Peki, insanlar farklı derlemelerdeki dosyaları düzenleme eğilimindedir, Visual Studio / IDE sürekli derleme yaptıysa ve uygun olduğunda her zaman değiştirdiğim her şeyin derlenmesini / oluşturulmasını sağlar. Heck gerçekten ileri gitmek isteseler sınıf başına derleme yapabilirler. Derleme çalışmayabilir, ancak sessizce hiçbir şey yapamazdı (hata penceresine hata mesajları eklemek dışında).

Elbette günümüzde bilgisayar bu göreve bir ya da iki çekirdek atayabilir ve eğer birisi onu sinir bozucu bulursa, bu seçenek tarafından devre dışı bırakılabilir. Muhtemelen bin teknik sorun ve bunun sorunsuz ve pratik olması için çözülmesi gereken bazı fantezi gölge kopyaları olduğunu biliyorum, ancak programlamayı daha sorunsuz hale getirecektir.

Bu senaryonun mümkün olmasının pratik bir nedeni var mı? Sürekli yazma ikili aşınma ve yıpranma çok fazla olurdu? Montajlar dağıtılana / çalıştırılana kadar bellekte tutulamadı mı?


Visual Studio vb.net ve en azından kısmen c # için yapar. Bu aslında c # / vb.net sonsuz tartışmada bir nokta: codinghorror.com/blog/2007/06/…
Matthieu

evet, o makaleye baktım. Bu çoğunlukla hata mesajlarını ayrıştırma / derleme bağlamındadır ve anında dağıtım / çalışan uygulamalar için çok fazla değildir
Homde

@konrad, VB.NET arka plan derlemesi de sunmuyor mu?
Pacerier

Yanıtlar:


6

Eclipse otomatik derleme ve oluşturma yapar. Nasıl yaptıklarını kontrol etmek isteyebilirsiniz. Açık kaynak kodludur. Bir dosyayı kaydettiğinizde derlendiğini düşünüyorum.


1
Yaşasın Tutulma!
MattC

Harika, kullanan var mı? bir fark yaratır mı?
Homde

2
Bu büyük bir fark yaratıyor. Hızlı programlama için son derece yararlıdır - anında yazdığınız bir çağrı ile yöntem bildirimleri üretebilir.Yıllarca Java uygulamalarının geliştirilmesinden Java, ffmpeg geliştirme ve uzantıya (C ve C ++), PERL ve Python. Akla gelebilecek her dil için eklentileri var.
Brian

6

Bir dosyayı derlenebileceği duruma getirmeden önce kaç tuşa bastığınızı hiç düşündünüz mü? C, sınıf f, sınıf fo, sınıf foo, vb. Derlemeye çalışırsanız ne olacağını düşünün. IDE'nin bir yazım hatasını düzeltmeye karşı ne zaman bir bitirme yazmasına izin vermesini istersiniz? Bunu sıfırdan bir şey yaratmada ne kadar iyi düşündüğünüzü soruyorum, çünkü bu gerçekten çok acı verici olduğunu görebiliyordum.


Aslında düzenlediğim dosyayı / sınıfı derlemem öneri değilim. Ama düzenlediğim diğer meclisler adil oyun olmalı ve kısmi derlemeyi (muhtemelen karmaşık bir görev olurdu) çıkarabilirseniz aynı derlemedeki diğer sınıflar da olmalıdır. Muhtemelen bağımlılıkların çözülmesiyle ilgili bazı sorunlar olacaktır, ancak bu kaçınılmaz olmamalıdır. En kötü durumun yanı sıra, derleme iş parçacığı arabirimi veya bilgisayarı çok fazla aşağı
çekmediği

2

Visual Studio otomatik derleme olanağı vermedi. Ancak evet, herhangi bir dosyayı kaydettiğinizde Eclipse gibi bazı IDE'ler otomatik derleme yapar. Visual Studio Microsoft'un gelecek sürümlerinde bu özelliği ekleyeceğiz.


1

Bilin bakalım ... size uyarı veren modern bir IDE kullanıyorsanız, arka plan derlemesi yapıyor. Bu öğelerin olduğu gibi derlenmeyeceğini bilmektedir.


7
Arka plan ayrıştırma yapıyor . Bu tam derleme ile aynı şey değil.
Mason Wheeler

evet tabii, ama bir adım kısa durur gibi görünüyor. Bazı derleme / ayrıştırma yine de yapılırsa, neden tüm yol boyunca gidip oluşturma / çalıştırma işleminde kullanmıyorsunuz?
Homde

1
@MKO: AFAIK, IDE bir çok, ayrıştırma ağacı olduğunu oluşturulduğu beri kaynak değişmediyse (yerine yeniden ayrıştırma derleyici için) inşa sürecinde kullandı.
Anon.

1

Bir projeyi her zaman önceden derlenmiş bileşenlere ayırabilirsiniz. Commmand'da bilgisayar derlemelerini tercih ederim. Bir erkeğin bilişsel sürtünmesi, başka bir erkeğin düşünme ve kahve alma zamanıdır.


1

Visual Studio kullanıyorsanız ve c # veya VB Reshaper geliştirirseniz sizin için yapabilirsiniz. http://www.jetbrains.com/resharper/ Bir arabirimde yaptığım değişikliklerin manuel olarak yeniden derlemeye gerek kalmadan kodu ihlal ettiği yerleri bilerek çok zaman kazanıyorum.

(Ayrıca Resharper'ın başka birçok nedenden dolayı bok olduğunu düşünüyorum.)


Diyelim ki reSharper size derleme hataları hakkında bilgi verecektir. Bildiğim kadarıyla aslında sizin için bir ikili üretmeyecek.
thelem

1

Bilmiyorum, bir şeyler derlemekten hoşlanıyorum. Benim kodumu kullanan ve bilgisayara " Hah! Bakalım bunu reddettiğini! "

Sonra bir derleme hatası alıyorum, düzeltin, sonra " Hah! Şimdi bunu reddettiğinizi görelim! "

Sonra derler ve biraz kahve alırım. İyi hisset. :)


İyi hissettiriyor ..... Tek bir günde 6500 kez yapmak zorunda kalmanız dışında.
Pacerier

0

Not: Bu, Netbeans (Java) ile ilgili deneyimimden alınmıştır, bu nedenle bu Visual Studio için geçerli olmayabilir

TMK, dosyayı düzenlemeye başladığınızda arka planda bir şekilde yapılır. IDE her bir derleme hatasını ve nasıl tespit edileceğini bilmiyorsa, arka planda sınıfı derlediğini ve ardından herhangi bir hatayı rapor ettiğini varsayarım.

Sorun, tüm projenizi oluşturmak istediğiniz zamandır. Bazen sanırım tüm hatalar bu "canlı" derleme ile yakalanamaz, bu yüzden sadece her şeyi yeniden oluşturur. Ayrıca canlı derlenmiş sınıf, IDE'nin ihtiyaç duyduğu ancak bir ikili dosyaya dağıtılmaması gereken ek bilgiler içerebilir.

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.