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
Neden özel üye işlevlerini başlıklara koyarız?
Özel üye değişkenleri neden C ++ başlıklarına koyduğumuzun cevabı, sınıfın büyüklüğünün örneklerin bildirildiği noktalarda bilinmesi gerektiğidir, böylece derleyici yığın hakkında uygun şekilde hareket eden kod üretebilir. Neden özel üyeleri başlıklara koymalıyız? Ancak sınıf tanımında özel işlevleri beyan etmenin herhangi bir nedeni var mı? Alternatif, temelde pimpl deyim olacaktır, ancak gereksiz …
16 c++  history 

2
Scala'daki Özellikler “elmas hatasını” nasıl önler?
(Not: Başlıca nedenlerden dolayı 'problem' yerine 'hata' kullandım ..;)). Scala'daki Özellikler hakkında bazı temel okumalar yaptım. Java veya C # 'daki Arayüzlere benzerler, ancak bir yöntemin varsayılan olarak uygulanmasına izin verirler. Merak ediyordum: Bu, "elmas sorunu" na neden olamaz, bu yüzden birçok dil ilk etapta çoklu kalıtımdan kaçınır mı? Eğer …

2
Evrensel bir yapıyı nasıl daha verimli hale getirebilirim?
Bir "evrensel yapı", sıralı bir nesne için doğrusallaştırılmasını sağlayan bir sarıcı sınıftır (eşzamanlı nesneler için güçlü bir tutarlılık koşulu). Örneğin, burada Java'da, [1] 'den, arabirimi tatmin eden WFQ(iş parçacıkları arasında yalnızca bir kerelik bir konsensüs gerektirir) ve bir Sequentialarabirimi varsayan, beklemesiz bir kuyruğun varlığını varsayan, uyarlanmış bir beklemesiz yapı : …

5
Çakışan aralıkları düzleştirmek için algoritma
Potansiyel olarak çakışan sayısal aralıkların bir listesini düzleştirmek (bölmek) için güzel bir yol arıyorum. Sorun bu sorununkine çok benzer: Çakışan tarih aralıklarını ve diğerlerini bölmenin en hızlı yolu . Ancak, aralıklar sadece tamsayılar değildir ve Javascript veya Python, vb. İçinde kolayca uygulanabilecek iyi bir algoritma arıyorum. Örnek Veriler: Örnek Çözüm: …

2
Tamamen estetik nedenlerle iç içe işlevler mi oluşturuyorsunuz?
Her zaman başka programcıların saf estetik işlevler yaratma fikri hakkında ne düşündüklerini merak ettim. Ben Veri yığınının işleyen bir işlevi olduğunu varsayalım: Function ProcessBigData. O veriler için geçerlidir, birkaç işlem adımlarını gerektiğini düşünün: Step1, Step2, Step3. Kaynak kodda en çok gördüğüm normal yaklaşım, şöyle yorum yazmaktır: Function ProcessBigData: # Does …

3
OOP 'soyutlama' tanımı hakkında karışık
OOP'taki 'soyutlama' tanımını anlamaya çalışıyorum. Birkaç ana tanımla karşılaştım. Hepsi geçerli mi? Bunlardan biri yanlış mı? Kafam karıştı. (Tanımı kendi kelimelerimle yeniden yazdım). Tanım 1: Soyutlama, bir nesneyi gerçek dünyadan alıp programlama terimlerine dönüştürme kavramıdır. Bu tür bir oluşturma gibi Humansınıf ve vererek int health, int age, String namevb özellikleri …

6
TDD açısından bakıldığında, sahte yerine canlı bir son noktaya karşı test yaparsam kötü bir insan mıyım?
TDD'yi dini olarak takip ediyorum. Projelerim tipik olarak% 85 veya daha iyi test kapsamına sahip ve anlamlı test senaryoları var. HBase ile çok çalışıyorum ve ana müşteri arayüzü HTable, alay etmek için gerçek bir acı. Birim testlerimi yazmak, canlı uç nokta kullanan testler yazmaktan 3 veya 4 kat daha uzun …

5
Aşırı yöntem aşırı yüklemesi nasıl önlenir?
Uygulamamızın kaynak kodunda, bir sınıfın aynı adlara ve farklı parametrelere sahip birçok yöntemi olduğu oldukça fazla yerimiz var. Bu yöntemler her zaman bir 'önceki' yöntemin artı bir tane daha parametresine sahiptir. Bu uzun evrimin (eski kod) ve bu düşüncenin (inanıyorum) bir sonucudur: " A şeyi yapan bir M yöntemi var. …

4
Yerel makine kodu neden kolayca çözülemiyor?
Java, VB.NET, C #, ActionScript 3.0 vb.Gibi bayt kodu tabanlı sanal makine dilleri ile, bazen İnternet'ten bazı decompiler indirmenin, bayt kodunu iyi bir zaman geçirmenin ne kadar kolay olduğunu ve Çoğu zaman, saniyeler içinde orijinal kaynak kodundan çok uzak olmayan bir şey ortaya çıkarın. Sözde bu tür bir dil buna …

4
Geliştiricilerin ürün sahiplerine özellik fikirleri önermesi normal midir? [kapalı]
Kapalı . Bu soru görüş temelli . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Bu yayını düzenleyerek gerçekler ve alıntılarla yanıtlanabilmesi için soruyu güncelleyin . 5 yıl önce kapalı . Daha önce sistem yöneticisi olarak çalışarak oldukça yakın zamanda geliştirici olarak çalışmaya başladım. Agile işlevlerini kullanan bir …

4
Montajdan makine koduna (kod oluşturma) nasıl geçilir
Kodun makine koduna montajı arasındaki adımı görselleştirmenin kolay bir yolu var mı? Örneğin, not defterinde bir ikili dosyayı açarsanız, makine kodunun metin olarak biçimlendirilmiş bir gösterimini görürsünüz. Gördüğünüz her bayt (sembol) ikili değeri için karşılık gelen ascii karakter olduğunu varsayalım? Ama montajdan ikiliye nasıl geçiyoruz, sahne arkasında neler oluyor ??

8
Ortak kod inceleme süreçleri nelerdir ve neyin kötü olduğu düşünülür?
Şirketim yakın zamanda resmi kod incelemeleri yapmaya başladı. İşlem şu şekilde gerçekleşir: bir github'a gönderirsiniz, bir çekme isteği istersiniz, kod yaklaşık üç kişi tarafından incelenir, daha sonra hepsi geçerse, kodunuz girilir. Süreç adil görünüyor, ancak kod incelemelerini yapan üç kişi adil görünmüyor. Kodumu inceleme için koyduğumda, 100-200 yorum arasında bir …


2
Hızlı etiket arama için algoritma
Sorun şudur. Her biri bir dizi T etiketine sahip olan bir dizi basit varlık E vardır. Her varlığın rastgele sayıda etiketi olabilir. Toplam varlık sayısı 100 milyona yaklaşıyor ve toplam etiket sayısı yaklaşık 5000. Yani ilk veriler şöyle: E1 - T1, T2, T3, ... Tn E2 - T1, T5, T100, …

4
Derleyici [ilgili] işlerine katılmak neden bu kadar zor? [kapalı]
Kapalı . Bu soru görüş temelli . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Bu yayını düzenleyerek gerçekler ve alıntılarla yanıtlanabilmesi için soruyu güncelleyin . 6 yıl önce kapalı . Geçen hafta, birkaç meslektaşım ve ben stajyerlik, giriş seviyesi, daha kıdemli, ekibimiz için. Konuştuğumuz öğrencilerin% 80'i, ne …

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.