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

8
'Etik' gerekçelerle ayrım yapan Yazılım Lisansı
Ortak copyleft ve izin verilen yazılım lisanslarını okumak için biraz zaman harcadım. Bir uygulamanın veya algoritmanın yaratıcısını, ürünü kendi kişisel önyargılarına dayanarak kimlerin kullanabileceğini / dağıtacağını geniş bir şekilde belirtmesini sağlayan bir lisans var mı? İnsanların ticari varlıkları izin verilen lisans için ödeme yapmaya zorlamak veya projeleri için kaynak kodunu …

9
Sürüm kontrol kancalarında birim testlerini yapmak iyi bir uygulama mıdır?
Teknik açıdan, bazı özel işlemlerin uzak varsayılan şubeyle birleştirilmesine izin vermeden önce birim testlerini gerçekleştirecek ön / son basma kancaları eklemek mümkündür. Benim sorum şu - birim testlerini inşa boru hattında tutmak (bu nedenle, repo için bozuk taahhütler getirmek) daha mı iyidir, yoksa "kötü" taahhütlerin gerçekleşmesine izin vermemek daha iyidir. …

7
Tam değişkenlik ve Nesneye Dayalı Programlama
Çoğu OOP dilinde, nesneler genellikle sınırlı bir istisnalar kümesiyle değiştirilebilir (örneğin python'daki tuples ve stringler gibi). Çoğu işlevsel dilde, veriler değişmez. Değişebilir ve değişmez nesnelerin her ikisi de kendi avantajlarının ve dezavantajlarının bir listesini verir. Her iki kavramla da evlenmeye çalışan diller var; örneğin (açıkça ilan ettiğiniz) scala ve değişken …

3
Olumlu ve Olumsuz Olumlu Boole Yöntemi
Boolean metotları sadece negatif formda kullanılsalar bile, her zaman olumlu bir formda olmalı mı? Bir varlık oluşturmadan önce var olup olmadığını kontrol etmek istediğimi söyleyin, argümanım, aşağıdaki ilk formun, ikinci formdan daha iyi olduğunu, yöntemin olumlu formda kullanılıp kullanılmadığını belirtmek. Özet olarak, if(!affirmative)okumaktan daha kolay buluyorum if(negative). Düşünceme katılmayan bir …
43 naming  functions 

4
git-flow ve github ile kod incelemesi
Düzenli git ve github ile ana dalda üzerinde çalıştığım özellik dalının çekme talebini oluşturarak bir kod incelemesi yapabilirim. Git-flow ile kod incelemelerini nasıl yaparım? Git akışı özelliği bitirme gibi iş akışı ile kod incelemesinin gerçekte nerede gerçekleştiği ve git-flow veya git'in bu incelemeyi nasıl kolaylaştıracağı konusunda kafam karıştı.

3
SOLID Prensiplerini Programlama
Zamanla SOLID'in iki bölümünü anlayabiliyordum - “S” ve “O”. “O” - Miras ve Strateji Örüntüsünün yardımıyla Açık Kapalı Prensibi öğrendim. “S” - ORM öğrenirken Tek Sorumluluk ilkesini öğrendim (sebat mantığı alan nesnelerinden uzaklaştırıldı). Benzer şekilde, diğer SOLID bölümlerini (“L”, “I” ve “D”) öğrenmek için en iyi bölgeler / görevler nelerdir? …

16
Yazılım sürüm numarası olarak tarih
Yazılım geliştiriciler, tarihi tarih numarası olarak kullanmazlar, ancak YYYYMMDD formatı (veya varyansları) kullanmak için yeterince sağlam görünüyor. Bu programda bir sorun mu var? Yoksa yalnızca sınırlı türdeki yazılımlar için de geçerlidir (şirket içi yapımlar gibi)?
43 versioning 

11
İmzasız girişlerle ilgili en iyi uygulamalar nelerdir?
Her yerde imzasız girişler kullanıyorum ve yapmam gerekip gerekmediğinden emin değilim. Bu, veritabanı birincil anahtar kimliği sütunlarından sayaçlara vb. Olabilir. Bir sayı asla negatif olmamalıysa, her zaman imzasız bir int kullanacağım. Ancak başkalarının kodundan kimsenin bunu yapmadığını fark ettim. Gözden kaçmam için çok önemli bir şey var mı? Düzenleme: Bu …

6
Koşullar uzunsa biçimlendirmenin en kolay yolu? [kapalı]
ifMümkünse uzun sarım koşullarından kaçınılmalıdır, ancak bazen hepimiz bunları yazarız. Çok basit bir durum olsa bile, ilgili ifadeler bazen çok endişe vericidir, bu nedenle tüm koşul çok uzundur. Bunları formatlamanın en kolay yolu nedir? if (FoobarBaz::quxQuux(corge, grault) || !garply(waldo) || fred(plugh) !== xyzzy) { thud(); } veya if ( FoobarBaz::quxQuux(corge, …


3
denetleyicinin servis yerine depo çağrısı mı kötü bir uygulama?
denetleyicinin servis yerine depo çağrısı mı kötü bir uygulama? daha fazla açıklamak için: İyi tasarım denetleyicilerinde servis ve servis kullanım havuzunu çağırdığımı anladım. ama bazen denetleyicide herhangi bir mantığa ihtiyacım yok / ihtiyacım yok ve sadece db'den alıp görüntülemek için geçmem gerekiyor. ve sadece depoyu arayarak yapabilirim - servisi aramaya …


7
Her bir sprint'te birden fazla daldan / geliştiriciden gelen kodu nasıl yönetirsiniz?
Geliştiricilerin, öykülerinin her bir sprint ana dalına entegrasyonu konusundaki endişelerini dile getirdikleri retro bir çağrıdan yeni çıktım. Geliştiriciler tüm kodları kendi dallarında ve sprintin sonuna doğru tek bir ana dalda birleştirirler. Daha sonra, bir geliştirici (genellikle aynı), her şeyin diğer dev koduyla iyi bir şekilde bütünleştiğinden emin olma görevi ile …

1
MIT lisansındaki yazar adlarını değiştirme [kapalı]
Birkaç yıl önce MIT lisansı altında bir yazılım yazıp yayınladım. Son zamanlarda, çatallardan birinin (ya da bazılarının) lisansın tepesindeki önde gelen telif hakkı bildirimini değiştirdiğini fark ettim. Copyright (c) 2014 <my name> MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software... …

9
“Yo-yo probleminden kaçın”, “ilkel takıntıya” izin vermek için geçerli bir neden midir?
İlkel saplantı ne zamana göre kod kokusu değil midir? , Bir String nesnesi yerine bir posta kodunu temsil etmek için bir ZipCode nesnesi oluşturmalıyım. Ancak deneyimlerime göre görmeyi tercih ederim public class Address{ public String zipCode; } onun yerine public class Address{ public ZipCode zipCode; } çünkü sonuncusunun benden programı …

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.