Yazılım Mühendisliği

Sistem geliştirme yaşam döngüsü içinde çalışan profesyoneller, akademisyenler ve öğrenciler için soru-cevap


5
Neden oluşturma araçları, temel programlama dilinden farklı bir komut dosyası dili kullanıyor?
Son zamanlarda, çoğu dilin ana yapım aracının / sisteminin, temel programlama dilininkinden farklı bir dil kullandığını fark ettiğimde Nodejs projesi için bazı yapım araçlarını kullanıyorum. Örneğin, komut dosyaları yazmak için make C veya C ++ kullanmaz ve karınca (ya da Maven) Java'yı komut dosyası olarak kullanmaz. Ruby gibi daha yeni …

3
C # işaretsiz int kullanmaktan kaçınmalı mıyım?
Geçenlerde C # 'da imzasız tamsayıların kullanımı hakkında düşündüm (ve diğer "yüksek seviye diller" için de benzer bir argüman söylenebilir sanırım) Bir tam sayıya ihtiyaç duyduğumda normalde bir tamsayı boyutunun ikilemiyle karşı karşıya kalmazsam, bir örnek bir Person sınıfının yaş özelliği olabilir (ancak soru özelliklerle sınırlı değildir). Aklımda, görebildiğim kadarıyla, …

2
Groovy'de def ne zaman kullanılır?
Groovy'de bir süredir gelişiyorum ve dinamik dökümde ne sıklıkla kullanmam gerektiğini merak ediyorum def? Bir meslektaşım, Groovy'ye anlamadığım bir şekilde yardımcı olduğu için onu her zaman kullanmamız gerektiğine inanıyor. Şu anda, yöntem geri dönüş türlerini ve argümanlarını bildirirken, hangi nesnelerin alınması gerektiğini ve tükürülmesi gerektiğini kasıtlı olarak belirtmeyi seviyorum (kod …


5
Git'e taşırken büyük svn tarihçesi hakkında ne yapmalı?
Düzenleme: gibi bazı benzer soruların aksine Git için çok GB SVN repo Hareketli veya /programming/540535/managing-large-binary-files-with-git My senaryo olduğunu birkaç alt projeleri içermez Kolayca git alt modellerine, ne de git-ek için uygun olan bir çok büyük ikili dosyalara dönüştürülebilir. İkili dosyaların, aynı revizyonun ana kaynak koduna sıkıca bağlanmış test paketi olduğu, …
23 git  svn 

2
Bir döngüyü (/ iken) özyinelemeye veya özyinelemeden öze dönüştürmenin genel yolu?
Bu problem temel olarak algoritmaya, belki de soyut ve daha akademik bir şeye odaklanmaktadır. Örnek bir düşünce sunuyor, ben genel bir yol istiyorum, bu nedenle örnek yalnızca düşünceleriniz hakkında bizi daha net hale getirmek için kullanılır. Genel olarak konuşursak, bir döngü özyinelemeli olarak dönüştürülebilir. Örneğin: for(int i=1;i<=100;++i){sum+=i;} Ve ilgili özyinelemeli: …

2
Adlandırma kuralı: Son alanlar (statik değil)
Bugün bir meslektaşımla finalJava sınıflarındaki alanların isimlendirilmesi hakkında bir tartışma yaptım . İfadesinde final, örneklerin oluşumundan sonra değerleri değişmeyeceğinden, sabit alanları da dikkate alınmalıdır. Bu, finalalanlar için aşağıdaki adlandırma kurallarına yol açacaktır : public class Foo { private static final String BLA_BLA = "bla"; private final String BAR_BATZ; ... } …
23 java  naming  final 

2
Mevcut bir öğeyi REST API'sindeki bir koleksiyona eklemek için en iyi kalıp hangisidir?
Pragmatik bir REST API tasarlıyorum ve bir koleksiyona mevcut varlıkları nasıl en iyi şekilde ekleyeceğime biraz şaşırdım. Etki alanı modelim, Siteler koleksiyonuna sahip bir Proje içeriyor. Bu katı bir çoktan çoğa ilişkidir ve ilişkiyi açıkça modelleyen bir varlık yaratmaya ihtiyacım yok (yani ProjectSite). API’m, tüketicilerin bir Projeye varolan bir Site …
23 rest  api-design 

5
Başka bir popüler dil, Java / Java EE'deki ile aynı karmaşıklığı yönetirken fabrika şablonunu kullanmak zorunda kalmayı nasıl önlerdi?
Fabrika desen (veya en azından kullanım FactoryFactory..) gibi birçok alay konusu olmuştur burada . RequestProcessorFactoryFactory.RequestProcessorFactory gibi ayrıntılı ve "yaratıcı" adlara sahip olmasının yanı sıra, Java / C ++ dilinde programlamak zorundaysanız ve Abstract_factory_pattern için bir usecase varsa, fabrika modelinde temelde yanlış bir şey var mı? Başka bir popüler dil (örneğin, …

7
C ve C ++ 'da işaretsiz tamsayıları kullanma
Uzun zamandır beni şaşırtan çok basit bir sorum var. Ağlar ve veritabanları ile uğraşıyorum, bu yüzden uğraştığım pek çok veri 32 bit ve 64 bit sayıcılar (işaretsiz), 32 bit ve 64 bit tanılama kimlikleridir (ayrıca işaret için anlamlı eşlemelere sahip değildir). Pratik olarak hiçbir zaman negatif sayı olarak ifade edilebilecek …
23 c  coding-style 

5
Sürüm numarasını ne zaman arttırmalıyım?
Okulda programlamayı öğrenmedim ve (profesyonel) bir geliştirici olarak çalışmıyorum, bu yüzden birçok temel konu bana açık değil. Bu soru, bir tanesini netleştirmeye çalışır. Şimdi ben sorunları var varsayalım #1, #2ve #3sürümü için geliştirilmiş / düzeltilmelidir ayarlanır benim Sorunlar Tracker 1.0.0ve son (kararlı) sürümü olduğunu 0.9.0. Sürümü 1.0.0ne zaman arttırmalıyım ? …

3
Neden kopyalama talimatı genellikle MOV olarak adlandırılıyor?
Birçok montajcıda, bir değer kopyalama talimatı genellikle "MOV" olarak adlandırılır ve kılavuzlardaki tanımı da genellikle "hamle" içerir (ancak "load", "store", "extract" gibi diğer kelimeler de kullanılabilir. () Bu sözleşmeye uymayan) bir ISA bulmak nadirdir . Öte yandan, diğer bağlamlarda, "hamle" kaynağın tahrip olduğu anlamında "kopya" dan farklıdır (örneğin, Unix'deki "mv" …
23 history  assembly 

5
Tamamen işlevsel diller modülerliği nasıl ele alır?
Sınıfların, en azından nesneler yapmak için kullanılan veya mirasta kullanılan kodun kolay geri dönüşümünü sağlayan bir soyutlama katmanı yapmak için kullanılabileceğini veya en azından kullanılabileceğini öğrendiğim nesne yönelimli bir arka plandan geliyorum. Mesela bir hayvan sınıfına sahip olabilirim ve sonra bu kedi ve köpeklerden miras alabilir ve hepsi aynı özelliklerin …

5
Yeniden biçimlendirme ve sürüm kontrolü
Kod biçimlendirme önemlidir. Girinti bile önemlidir . Tutarlılık küçük iyileştirmelerden daha önemlidir. Ancak, projeler genellikle 1. günden itibaren açık, eksiksiz, doğrulanabilir ve uygulamalı bir stil kılavuzuna sahip değildir ve önemli gelişmeler her gün gelebilir. Belki onu bulursun SELECT id, name, address FROM persons JOIN addresses ON persons.id = addresses.person_id; daha …

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.