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

6
Makefiles'ın neden "yükleme" hedefi olması gerekir?
C ve C ++ dünyasından gelen çoğu yapı sisteminin bir installhedefi vardır, özellikle Makefiles ( örneğin GNU tarafından tavsiye edilir ) veya CMake . Bu hedef, işletim sisteminde çalışma zamanı dosyalarını (yürütülebilir dosyalar, kitaplıklar, ...) kopyalar (örneğin, C:\Program Files\Windows'ta). Bu gerçekten çılgınca hissediyor, çünkü benim için programları kurmak , aslında …

2
Bağımlılık enjeksiyonu kullanımının yazılım mühendisliğinde sonuçları artırdığına dair kanıt var mı?
Popülerliğine bakılmaksızın, Bağımlılık Enjeksiyonunun (ve / veya bir DI kabının kullanılmasının) örneğin hata sayısını azaltmaya, sürdürülebilirliği artırmaya veya gerçek hayattaki yazılım projelerinde geliştirme hızını artırmaya yardımcı olduğunu gösteren ampirik kanıtlar var mı?

3
İşaretçiler ne zaman ve neden riskli olarak görülmeye başladı?
Programlama dillerinde işaretçilerin kullanımı hakkında düşünmede kademeli bir değişim olduğu anlaşılmaktadır, öyle ki işaretçiler riskli olarak kabul edilir (açıkça "kötü" veya benzer bir artış olmasa da). Düşünmedeki bu değişim için tarihsel gelişmeler nelerdi? Özel, seminal olaylar, araştırmalar veya başka gelişmeler oldu mu? Örneğin, C'den C ++ 'a Java'ya geçişe yüzeysel …
18 history  pointers 


5
RESTful API bir şeyin yokluğunu temsil eder
Bir kişinin ruh hayvanını seçip seçmediğini belirlemek için bir API düşünün. Sadece sıfır veya bir ruh hayvanına sahip olabilirler. Şu anda: /person/{id}/selectedSpiritAnimal bir hayvan seçtiklerinde http 200 ve {selectedAnimal:mole} ancak seçimleri olmadığında http 404 değerini döndürür. Bu, benim bir ruh hayvanını HTTP hatası olarak - henüz bir ruh hayvanı seçmemiş …
18 rest 

1
Birim testleri: Linq ile ertelenmiş iddialar
Bunun gibi ertelenmiş iddialar eklemek uygun mudur? var actualKittens = actualKittens.Select(kitten => { Assert.IsСute(kitten); return kitten }); Neden? Bu yüzden, örneğin, materyalize toplama bekleyen ifadelerle bile sadece bir kez yineleyebilirim: CollectionAssert.AreEquivalent(expectedKittens, actualKittens.ToList()); Ve aynı zamanda sadece Select değil, yineleyici tanımlı ve çok fazla kontrol ve mantık içeren bir yöntem olabilir …

3
Web uygulamalarında RPC benzeri mekanizmalar yerine neden REST yaygın olarak kullanılmaktadır?
Kısa bir süre önce, en azından bildiğim tipik web uygulaması çerçevelerine kıyasla, web uygulamaları için oldukça sıra dışı bir özel çerçeve kullanan bir şirkette başladım. RESTful bir web servisi yerine, sunucu ile iletişim kurmak için bir RPC mekanizması kullanılır. Sunucuyla iletişim kurmak basit bir işlev çağrısı gibi görünür, ancak işlev …

3
OOP'un aşırı komplikasyonu için bir terim var mı?
Bir veya iki yıl önce, OOP (Java) hakkında, iki veya üç satırlık koddan oluşan basit bir beton kaydedicinin ilerlemesini ve temelde oh, yapmam gerektiğini söyleyen deneyimsiz geliştirici tarafından teorik aşırı düşünce süreçlerini gösteren mükemmel bir makale gördüm bunu istememiz durumunda ekleyin! Makalenin sonunda bu basit kaydedici, orijinal geliştiricinin kendini neredeyse …

7
Kontrol akışının onu gereksiz kıldığı durumlarda “başka” kullanılmalı mıdır?
Bazen aşağıdaki örneğe benzer kod üzerine rastlamak (bu fonksiyon tam olarak bu sorunun kapsamı dışında ne yapar): function doSomething(value) { if (check1(value)) { return -1; } else if (check2(value)) { return value; } else { return false; } } Gördüğünüz gibi if, else ifve elseifadeleri ifadeyle birlikte kullanılır return. Bu …

5
SOL BAĞLANTIYA SAĞ DOĞRU SEÇMEK
Doğru anlıyorsam, her RIGHT JOIN: SELECT Persons.*, Orders.* FROM Orders RIGHT JOIN Persons ON Orders.PersonID = Persons.ID şu şekilde ifade edilebilir LEFT JOIN: SELECT Persons.*, Orders.* FROM Persons LEFT JOIN Orders ON Persons.ID = Orders.PersonID Benim kişisel görüşüm ifadenin amacı: İlk önce Persons Ardından aşağıdakileri Personsyapmak için gerektiği gibi genişletin …

4
Bir programcıya referans şeffaflığının faydaları nelerdir?
Programlamada, referans şeffaflığının faydaları nelerdir? RT, işlevsel ve zorunlu paradigmalar arasındaki en büyük farklardan birini yapar ve genellikle fonksiyonel paradigmanın savunucuları tarafından zorunlu olana göre açık bir avantaj olarak kullanılır; fakat tüm çabalarında, bu savunucular bir programcı olarak bana neden fayda sağladığını asla açıklamazlar . Elbette, bunun ne kadar "saf" …

7
Ampirik metriklere dayalı olarak yazılımın iyi mi kötü mü olduğunu nasıl anlarsınız?
Şu anda benden beş ay önce çekirdek gelişimini bitirmiş, ancak hala yüksek düzeyde kusurları olan bir projeye bakmam isteniyor. Transpires yaklaşık 10 kusur için sabittir, en az 4 ve bazı durumlarda 8 kusur yükseltiriz. Satıcıdaki kodlama uygulamasının kötü olduğuna ve bununla ilgili genel bir anlaşma olduğuna inanıyorum. Ancak, yazılımda yapısal …

5
Kodun “olması” kötü olduğunda gözden geçiren olarak ne yapmalıyım?
Zorunlu kod incelemelerinin birkaç ay önce tanıtıldığı, kötü tasarlanmış, yapılandırılmış bir projede çalışıyorum. Yeni bir özellik uygulayan önemli bir kod parçasını gözden geçirmem istendi. Kod tabanımızın geri kalanıyla aynı kusurları taşır. Büyük ölçüde, bu kusurların yeni koda sürüneceğini anlıyorum. uyumluluğunu korurken kötü tasarlanmış bir sınıftan miras almak veya kötü tasarlanmış …

7
DevOps, geliştiricilerin artık altyapı ve sürümden sorumlu olduğu anlamına geliyor - ancak bu değişimin arkasındaki itici güçler neler?
DevOps, geliştiricilerin artık altyapı ve sürümden sorumlu olduğu anlamına geliyor - ancak bu değişimin arkasındaki itici güçler neler? Kartlarımı masaya koyacağım: Ben bir geliştiriciyim ve hem "DevOps" hem de kültür dışı alanlarda çalıştım. Altyapı ve sürümler ile KG ve ilgili tören hakkında endişelenmek, iyi kod yazmaktan büyük bir dikkat dağıtır. …
18 process  devops 

3
Statik analiz için türlere alternatifler var mı?
Bir programlama dilinde statik yazım, derleme zamanında belirli garantileri uygulamak için yardımcı olabilir - ancak türler bu iş için tek araç mıdır? Değişmezleri belirtmenin başka yolları var mı? Örneğin, bir dil veya ortam, dizi uzunluğu veya bir işleve girişler arasındaki ilişkilerle ilgili bir garantinin uygulanmasına yardımcı olabilir. Bir tür sistemin …

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.