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

3
Bu sembolik bir sabit overkill kullanımı mı?
Yazılım mühendisliği konusunda oldukça yeniyim ve bir öğrenme alıştırması olarak bir satranç oyunu yazdım. Arkadaşım bir göz attı ve kodumun böyle göründüğünü belirtti. for (int i = 0; i < 8; i++){ for (int j = 0; j < 8; j++){ Olması gerektiği konusunda ısrar ederken for (int i = …

6
Karmaşık düzenli ifadeler için birim testleri yapılmalı mı?
Uygulamamda karmaşık normal ifadeler için birim testleri yazmalı mıyım? Bir yandan: giriş ve çıkış formatları genellikle basit ve iyi tanımlanmış olduklarından ve genellikle çok karmaşık hale gelebildiklerinden testler kolaydır, bu nedenle bunların testleri özellikle değerlidir. Öte yandan: Kendileri nadiren bazı birimlerin arayüzünün bir parçasıdır. Arabirimi yalnızca sınamak ve bunu regex'leri …

1
DRY ilgisiz, ancak neredeyse aynı kod
Neredeyse aynı olan bazı kodlar var, ancak ana değişkende bunlar arasında kalıtım olmadan tamamen farklı türler kullanılıyor. Özellikle, C # ve VB.NET için Roslyn ile aşağıdaki türlerde bir analizör yazıyorum: Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax Kodun aynı şeyi yaptığını merak ediyorum, mümkün olduğunca DRY'yi tutmalı, mümkün olduğunca az ayırmalı (ancak tür dışında aynı) …
34 c#  design  dry 

7
Neden çoğu ana dil, 3 yollu Boole karşılaştırmaları için “x <y <z” sözdizimini desteklemiyor?
İki sayıyı (veya diğer iyi düzenlenmiş varlıkları) karşılaştırmak istersem, bunu yapardım x &lt; y. Üçünü karşılaştırmak istersem, lise cebir öğrencisi denemeyi önerecektir x &lt; y &lt; z. İçimdeki programcı "hayır, bu geçerli değil, yapmanız gerekiyor x &lt; y &amp;&amp; y &lt; z" ifadesiyle cevap verecektir . Karşılaştığım çoğu dil bu …

1
Bağımsız Değişkenlerini Döndüren Bir İşlevin Adı?
Hiçbir şey yapmayan, hiçbir argüman almayan ve hiçbir şey döndürmeyen işlev, geleneksel olarak a noopveya no-op olarak adlandırılır. Bir noop örneği aşağıdadır: function noop(){} http://en.wikipedia.org/wiki/NOP Öyleyse, sadece argümanlarını döndürmek ve başka bir şey yapmamak anlamına gelen bir işlevin adı var mı? Bu tür bir işleve örnek: function(a){return a}
34 functions 

6
Nesnelerin alay edilmesinin zor olduğu bir sistemi nasıl test ederim?
Aşağıdaki sistemle çalışıyorum: Network Data Feed -&gt; Third Party Nio Library -&gt; My Objects via adapter pattern Geçenlerde, kullandığım kütüphanenin sürümünü güncellediğimde, başka şeylerin yanı sıra, zaman damgasının (üçüncü taraf kütüphanesinin döndüğü long) dönemin ardından milisaniyeden devir sonrası nanosaniye olarak değiştirilmesine neden olan bir sorun yaşadık . Sorun: Üçüncü şahıs …

6
İki kuyruk kullanarak bir Stack uygulamanın amacı nedir?
Aşağıdaki ev ödevi sorum var: İki kuyruk kullanarak push (x) ve pop () yöntemlerini uygulayın. Bu bana tuhaf geliyor çünkü: Bir yığın olan bir çıkar (LIFO) sıra Neden uygulamak için iki kuyruğa ihtiyaç duyduğunuzu anlamıyorum Etrafı araştırdım: GeeksForGeeks StackOverflow ve birkaç çözüm buldum. Ben de bununla bitirdim: public class Stack&lt;T&gt; …
34 java  stack 

8
Overriding Object.finalize () gerçekten kötü mü?
Geçersiz kılmaya karşı başlıca iki argüman Object.finalize()şudur: Ne zaman aranacağına karar veremezsin. Hiç çağrılmayabilir. Bunu doğru anlarsam, bunların Object.finalize()bu kadar nefret etmek için yeterince neden olduğunu sanmıyorum . Bir nesneyi serbest bırakmak için doğru zamanın geliştirici değil olup olmadığını belirlemek VM uygulamasına ve GC'ye bağlıdır. Ne zaman Object.finalize()aranacağına karar vermek …

3
GPL Projesi Oluşturmak: Yeni çatal konusunda tam haklara sahip miyim, yoksa asıl mal sahipleriyle bağımlılığım var mı?
GPLv2 lisanslı küçük bir projeye çatal yaratmayı düşünüyorum ve çeşitli sitelerdeki ve forumlardaki araştırmalarımda cevaplayamadığım bazı özel sorularım var. Kodu doldurduğumda, yeni projeyi yapacağım aynı lisans altında (GPL) serbest bırakmak zorunda kalıyorum, ancak aynı zamanda iki tanesi lisanslı olarak piyasaya sürülmeye karar verebilir miyim? Projeyi yaparken, her şeyin telif hakkını …
34 gpl 

7
RESTful API'ler, anemik alan modellerini teşvik etme eğiliminde midir?
Alan odaklı tasarım ve REST'i hizmet odaklı bir mimariye uygulamaya çalıştığımız bir proje üzerinde çalışıyorum. % 100 REST uyumluluğundan endişe etmiyoruz; muhtemelen kaynak odaklı HTTP API'leri oluşturmaya çalıştığımızı söylemek daha iyi olurdu (Richardson'un REST olgunluk modelinin 2. Seviyesi ). Yine de, HTTP isteklerinin RPC stili kullanımından uzak durmaya çalışıyoruz, yani …

6
Özel olarak ifade gücü neye işaret eder?
Etkileyici Gücü Vikipedi tarafından şöyle tanımlanır: .. bu dilde temsil edilebilecek ve iletilebilecek fikirlerin genişliği. "Fikirler" , makineyle iletişim kurabileceğimiz şeylere (işlemler, yapılar, algoritmalar vb.) Atıfta bulunuyor mu? Yoksa diliyle diğer insanlara yakalanıp iletilebilecek “insan” kavramlarını mı ifade ediyor? Etkileyici güç nasıl değerlendirilir ve ölçülür? Örneğin, JavaScript gibi bir dil …

3
Java geliştirme tipik olarak C # /. NET'ten daha fazla alt sınıflama içerir mi?
Geçenlerde Android gelişimine bakmaya başladım. Bu beni Java yazılım geliştirme dünyasına geri getirdi. Java ile en son çalıştığımda itiraf edeyim, neredeyse sandığım kadar OOP’u anlamadım. Kariyerimde ağırlıklı olarak C # kullandıktan sonra, kalıtımın Java ve C # kullanımında şaşırtıcı bir fark görüyorum. C # da çoğu durumda mirastan kaçınılabileceği görülüyordu. …

6
Bazı işlevsel programlama dilleri neden fonksiyon uygulaması için bir boşluk kullanıyor?
İşlevsel programlama için bazı dillere baktığımda, bazı fp dillerinin neden işlev uygulaması (ve tanımı) için bir veya daha fazla boşluk karakteri kullandığını merak ettim, oysa çoğu (tümü?) Zorunlu / nesne yönelimli diller parantez kullanıyor; daha matematiksel yol ol. Ayrıca son modelin parens olmadan çok daha net ve okunabilir olduğunu düşünüyorum. …

5
Askeri uygulamaları açıkça yasaklayan “açık kaynaklı” lisanslar
Ben bir araştırmacıyım ve araştırmamda çok fazla programlama yapıyorum. Açık kaynak kavramının büyük bir hayranıyım - özellikle şeffaflığın ve tekrarlanabilirliğin zaten kültürün büyük bir parçası olduğu araştırmalarda. Topluluğa elimden geldiğince katkıda bulunmaktan memnuniyet duyuyorum ve kodumu herkesin kullanması için serbest bırakmak bunun bir parçası. Bununla birlikte, araştırmada, ürettiğiniz malzemenin ne …

8
Geliştiriciler neden Linux'ta kurulum sihirbazları yapmıyor? [kapalı]
Tembellik veya bunun gibi bir şeyle ilgili olmadığından eminim ama esas olarak tüketiciyle yüz yüze gelen uygulamaların bile geliştiricilerinin bir sonraki bitirişinizde nereye gideceğiniz herhangi bir kurulum sihirbazı yapmadığını anlamıyorum. Aynı uygulamalar genellikle Windows ve Mac OS için yükleyicilere sahiptir, bu yüzden neden Linux olmasın? Bu eğilimin herhangi bir teknik …

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.