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
Notlandırılmış bir saf fonksiyonun kendisi saf olarak mı kabul edilir?
Diyelim ki fn(x)en önemli faktörlerin bir listesini döndürmek gibi pahalı bir şey yapan saf bir işlev x. Ve diyelim ki aynı fonksiyonun hafızaya alınmış bir versiyonunu yaptık memoizedFn(x). Belirli bir giriş için her zaman aynı sonucu döndürür, ancak performansı artırmak için önceki sonuçların özel bir önbelleğini tutar. Resmen konuşmak, memoizedFn(x)saf …

9
Bir yapıcıdaki bir süre (gerçek) döngüsü neden gerçekten bozuk?
Genel bir soru olsa da, kapsamım C # 'dır, çünkü C ++ gibi dillerin yapıcı yürütme, bellek yönetimi, tanımsız davranış vb. Biri bana kolay cevaplanamayan ilginç bir soru sordu. Neden bir sınıfın kurucusunun hiç bitmeyen bir döngü başlatması (yani oyun döngüsü) için kötü bir tasarım olarak kabul edilir (veya hiç?)? …
47 c#  architecture 

8
Neden fonksiyon isimlerindeki argümanların isimlerini kodlamak daha yaygın değil? [kapalı]
Gelen Temiz Kanunu yazar bir örnek verir assertExpectedEqualsActual(expected, actual) vs assertEquals(expected, actual) eski ile daha net olduğu iddia edildi, çünkü iddiaların nereye gittiğini hatırlama ihtiyacını ortadan kaldırıyor ve ondan gelen potansiyel suiistimali ortadan kaldırıyor. Yine de, herhangi bir kodda eski isimlendirme şemasının bir örneğini hiç görmedim ve ikincisini her zaman …
47 clean-code 

9
Öğelerin sabit teslimat tarihlerini "Çevik" bir çalışma şekli midir?
Üst yönetim tarafından yeni bir projede çevik bir şekilde çalışacağımız söylendi. Stand-up, sprint planlaması, retrospektifler vb. Kurdular. Ancak şimdi, her bir öğeye karşı tarihler vermemizi istediklerimizi ve her birinde demonte edilecekleri yeniden sergilememizi istediklerimizi detaylandıran bir plan yaptılar. bir. Bu plan 2. Çeyrek'e kadar uzanıyor. Bana göre bu, Waterfall'ın en …

12
'Git' voodoo kaçınarak?
switchEle alması gereken birkaç durumu olan bir yapıya sahibim . switchAşırı faaliyet enumkombine değerler aracılığıyla yinelenen kod sorunu teşkil hangi: // All possible combinations of One - Eight. public enum ExampleEnum { One, Two, TwoOne, Three, ThreeOne, ThreeTwo, ThreeOneTwo, Four, FourOne, FourTwo, FourThree, FourOneTwo, FourOneThree, FourTwoThree, FourOneTwoThree // ETC. } …

4
“İşlem Yapıyor” için HTTP Durum Kodu
Son işlem için uzun süredir görevlerin sıraya alınmasını destekleyen bir RESTful API oluşturuyorum. Bu API için tipik iş akışı şöyle olacaktır: Kullanıcı formu doldurur Müşteri API’ye veri gönderiyor API döndürür 202 Kabul edildi Müşteri, kullanıcıyı bu istek için benzersiz bir URL’ye yönlendirir ( /results/{request_id}) ~ Sonunda ~ Müşteri tekrar URL’yi …
47 rest  http 


7
Yinelenen veritabanı sütunlarına karşı ikna edici bir şekilde nasıl savunabilirim?
Yeni bir organizasyonda çalışmaya başladım ve veritabanında gördüğüm modellerden biri, işletme analistleri için sorgu yazmayı kolaylaştırmak için alanları çoğaltıyor. Django ve ORM kullanıyoruz. Bir durumda, bir hastayı belirli bir bağlamda tanımlayan benzersiz bir dize ile MedicalRecordNumber nesnesini tutarız . Biz Tescil hastaları izlemek ve ilgili olan nesneleri MedicalRecordNumbers ziyade bir …

7
Tutarlı bir kod stilinin gerçek değeri nedir
Bir müşteri için yeni bir çözüm uygulayan danışman ekibin bir parçasıyım. Müşteri tarafı kod temeli (React and javascript) kod incelemelerinin çoğundan sorumluyum. Bazı ekip üyelerinin, sadece stilden kimin yazdığını söylerken rastgele bir dosya seçebileceğim bir noktaya kadar benzersiz kodlama kalıpları kullandıklarını fark ettim. Örnek 1 (bir defalık satır içi işlevler) …

4
Bir yöntem neden birden fazla işaretlenmiş istisna türü atmamalıdır?
Java kodumuzu analiz etmek için SonarQube kullanıyoruz ve bu kuralı var (kritik olarak ayarlanmış): Genel yöntemler en fazla bir tane işaretlenmiş istisna atmalıdır İşaretli istisnaları kullanmak, yöntemi arayanları, ya onları ya da bunları kullanarak ya hata yaparak başa çıkmaya zorlar. Bu, istisnaları tamamen yöntemin API'sinin bir parçası yapar. Arayanlar için …

4
Soyut bir sözdizimi ağacı tam olarak nasıl oluşturulur?
Bir AST'nin amacını anladığımı düşünüyorum ve daha önce hiç AST olmayan birkaç ağaç yapısı inşa ettim. Çoğunlukla kafam karıştı, çünkü düğümler metin değil sayı değil, bu yüzden bazı kodları ayrıştırırken bir belirteç / string girmek için iyi bir yol düşünemiyorum. Örneğin, AST'nin diyagramlarına baktığımda, değişken ve değeri yaprak düğümleri eşit …

3
C # neden arabirimlerdeki özelliklere izin veriyor?
C #, aşağıdaki kod geçerlidir interface I{ int property{get;set;} } Bu bana hiç mantıklı gelmiyor. Bu, arayüzlerin en önemli prensiplerinden birini kırıyor gibi görünmektedir: devlet eksikliği (başka bir deyişle alan yok). Mülkiyet gizli bir özel alan oluşturmuyor mu? Bu arayüzler için gerçekten kötü olmaz mıydı?

8
İstisna işleme mekanizması olmadan neden modern bir dil tasarladım?
Birçok modern dil zengin istisna işleme özellikleri sağlar, ancak Apple'ın Swift programlama dili bir istisna işleme mekanizması sağlamaz . Benim gibi istisnalar dışında, aklımı bunun ne anlama geldiği etrafına sarmakta güçlük çekiyorum. Swift'in iddiaları ve elbette geri dönüş değerleri var; Ancak istisna temelli düşünme tarzımın istisnasız bir dünyaya nasıl eşleştiğini …

9
Genel olarak konuşursak, tüm fonksiyonel parçaları yapmak veya önce UI'nin çalışmasını sağlamak mı - yoksa ikisinin bir karışımı mı?
Genel olarak konuşursak, tüm fonksiyonel parçaları yapmak veya önce UI'nin çalışmasını sağlamak mı - yoksa ikisinin bir karışımı mı? Büyük bir şey üzerinde çalıştığınızı varsayalım, herhangi bir UI'dan önce çalışan tüm işlevsel veri toplama bloğlarını almak, tüm UI'yı gittiğinizde tek bir parça çalıştırmak veya ortada bir şey yapmak genel kabul …

1
Go-langs goroutine havuzları sadece yeşil dişler midir?
Buradaki yorumcu , aşağıdaki yeşil konuların eleştirisini sunmaktadır: Başlangıçta N: M modelinde, geri çağırma cehennemi olmadan olaya dayalı programlamanın bir aracı olarak satıldım. Acı eski prosedür koduna benzeyen bir kod yazabilirsiniz ancak altında, ne zaman bir şey bloke ederse kullanıcı görevini kullanan sihir vardır. Kulağa harika geliyor. Sorun, karmaşıklığı daha …

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.