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
Keyfi kod güvenliği için programlı olarak değerlendirmek mümkün müdür?
Son zamanlarda güvenli kod hakkında çok şey düşünüyorum. Konu güvenli. Bellek güvenli. Bir segfault kasası ile yüzünüzde patlamayacak. Ancak sorudaki netlik uğruna, Rust'un güvenlik modelini devam eden tanımımız olarak kullanalım. İçin Rust ihtiyacına göre kanıtlanmış olarak, nedeni genellikle güvenliğinin sağlanması bir nasıl büyük-is-net sorununun bir parçasıdır, unsafe, eşzamanlılık gibi bazı …

4
Büyük şablonlar için uygulama ile ilgilenilen C ++ tercih edilen yöntem
Genellikle bir C ++ sınıfını bildirirken, üstbilgi dosyasına yalnızca bildirimi koymak ve uygulamayı bir kaynak dosyasına koymak en iyi yöntemdir. Ancak, bu tasarım modelinin şablon sınıfları için çalışmadığı görülmektedir. Çevrimiçi bakıldığında, şablon sınıflarını yönetmenin en iyi yolu hakkında 2 görüş var gibi görünüyor: 1. Başlıktaki tüm beyan ve uygulama. Bu …

2
İşlevsel programlama dilleri yan etkilere izin vermiyor mu?
Wikipedia'ya göre, Deklaratif olan fonksiyonel programlama dilleri , yan etkilere izin vermiyorlar. Genel olarak deklaratif programlama , yan etkileri en aza indirmeye veya ortadan kaldırmaya çalışır. Ayrıca, Wikipedia'ya göre, bir yan etki durum değişiklikleriyle ilgilidir. Yani, işlevsel programlama dilleri, bu anlamda, hiçbir durumu kaydetmedikleri için aslında yan etkileri ortadan kaldırırlar. …

1
Kaynak İçi Derleme ve Kaynak Dışı Derleme
Benim (öncelikle C ++) geliştirme, ben uzun kaynak dışı yapıları kullanmaya bağlı kalmış. Yani, kaynağım genellikle bir /project/srcdizinde oturuyor ve derlemeler a /project/build/bin/release, /project/build/bin/debugdizinlerinde yaşıyor . Bunu yaptım çünkü kaynak dizinlerimi ara dosyalardan temiz tutuyor, tüm ikili dosyalarım için bir konumum var, paketleme daha kolay, temizlik daha kolay ve sürüm …


2
Birden çok uygulama örneğiyle veritabanı taşıma işlemleri nasıl güvenli bir şekilde çalıştırılır?
Hem hızlı (<1 saniye) hem de yavaş veritabanı geçişlerinden (> 30 saniye) oluşan bir uygulamamız var. Şu anda, veritabanı geçişlerini CI'nin bir parçası olarak çalıştırıyoruz, ancak daha sonra CI aracımız, uygulamamız için (çoklu ortamlarda) ideal olmayan tüm veritabanı bağlantı dizelerini bilmelidir. Bu işlemi, uygulamanın başlatıldığında kendi veritabanı geçişlerini çalıştıracak şekilde …

5
Gerçek dünya değerini temsil eden bir sabiti güncellemek Açık-Kapalı Prensibinin ihlali midir?
İşçilerin yıllık net gelirini hesaplayan bir sınıfım var. Vergi yüzdesini temsil eden bir sabiti vardır. Ancak bir gün vergi oranı değişti, bu yüzden kodu düzeltmem gerekiyor. Bu sabiti düzeltme eylemi, bir sınıfın modifikasyona kapatılması gerektiğini varsaydığı için Açık-Kapalı Prensibinin ihlal edildiğine işaret ediyor mu?

4
"Verim" gibi bir jeneratör dili tesisi olması iyi bir fikir midir?
PHP, C #, Python ve muhtemelen birkaç başka dilde yieldoluşturucu işlevleri oluşturmak için kullanılan bir anahtar kelime vardır. PHP'de: http://php.net/manual/en/language.generators.syntax.php Python'da: https://www.pythoncentral.io/python-generators-and-yield-keyword/ C # dilinde : https://docs.microsoft.com/tr-tr/dotnet/csharp/language-reference/keywords/yield Bir dil özelliği / tesisi olarak yieldbazı sözleşmeleri ihlal ettiğinden endişe duyuyorum . Bunlardan biri, bahsettiğim şey "kesinlik" tir. Her aradığınızda farklı bir …

3
Fonksiyonların çalışma zamanında içe aktarılmasına izin vermek için bir C ++ programı nasıl tasarlanır?
Bugün, size belirli bir yazılım mimarisi gerçekleştirme konusunda C ++ yetenekleri hakkında bir soru sormak istiyorum. Tabii ki, aramayı kullandım ama doğrudan bağlantılı bir cevap bulamadım. Temel olarak, amacım kullanıcının keyfi olarak oluşturulmuş fiziksel sistemlerin modellenmesine ve simülasyonuna, örneğin bir arabaya izin veren bir program oluşturmak. Fiziksel modeller (sınıflar içindeki …

6
Soyut bir sınıfa hangi kod dahil edilmelidir?
Son zamanlarda soyut sınıfların kullanımı konusunda sıkıntı yaşıyorum. Bazen soyut bir sınıf önceden yaratılır ve türetilmiş sınıfların nasıl çalışacağının bir şablonu olarak çalışır. Bu, az çok, yüksek düzeyde işlevsellik sağladıkları, ancak türetilmiş sınıflar tarafından uygulanacak belirli ayrıntıları bıraktığı anlamına gelir. Soyut sınıf, bazı soyut yöntemleri uygulayarak bu detaylara olan ihtiyacı …

2
SOA ve Microservices arasında gerçekten farklı olan şey
feragat Umarım kimsenin parmaklarına basmıyorum ya da her iki kavramın meraklılarını rahatsız etmiyorum Arka fon Net bir cevap bulamadan, Servis Odaklı Mimari ve Mikro Hizmetler arasında gerçek farklılıklar arıyordum . Ben şöyle okudum: SOA'nın yan etkileri SOA anti-patern oluşturuyor Mikro hizmetler SOA'nın hatalarını düzeltmek için geldi ESB'ler gerçekten ESB değil, …

4
Evreleme ve UAT ortamları arasındaki fark nedir?
Bir çözüm geliştirirken en az 3 farklı ortama sahip olmamız gerektiğini biliyorum: Geliştirme : Programcılar, kodlarını hızlı bir şekilde test etmek ve herhangi bir şeyi kırma korkusu olmadan diğer değişikliklerle entegre etmek için değişiklikleri istedikleri zaman değiştirebilir ve itebilirler - bu TEST veritabanlarına ve hizmetlerine bağlıdır; UAT : Donanım ile …


3
Derleyiciler neden genellikle yalnızca kuruldukları platform için yürütülebilir dosyalar üretir?
Ben bir C ++ geliştiricisiyim ve platformlar arası gelişimi daha iyi anlamak için, derleyicilerin bazı uygulama ayrıntılarını ve tam olarak işletim sistemine özgü ikili dosyaları nasıl oluşturduklarını daha iyi anlamaya çalışıyorum. Çalışmamın ortasında, en azından bir süreliğine, belirli bir platform için indirdiğiniz çoğu derleyicinin yalnızca bu platform için ikili dosyaları …

1
OSS projelerinde entegrasyon testleri - 3. şahısların kimlik doğrulaması ile nasıl ele alınabilir?
(Açık kaynaklı) hobi projelerimden biri, GitHub, Bitbucket vb. Kaynaklardan çevrimdışı yedeklemeler yapan bir yedekleme aracıdır. Depoların bir listesini almak için ana bilgisayar API'sını çağırır ve sonra Git / Mercurial / klonlamak için her şeyi kullanır / depoları yerel bilgisayara çekin. Bu yüzden GitHub API'sını aradığım kimlik doğrulama ile entegrasyon testlerim …

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.