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

1
null vs REST API Yanıtında eksik anahtar [kapalı]
Diyelim ki uygulamamda, bazı kullanıcılar bize soyadlarını veriyor, bazıları ise kullanmıyor. Bir REST API yanıtında, hangi gövde tercih edilir: "Boş" bir değerle: {"firstName": "Bob", "lastName": null} Ya da sadece eksik bir anahtar: {"firstName": "Bob"}
40 rest  api-design  json 


6
Neden SQL Daha Refactora Edilemez? [kapalı]
Herkes yeni geliştiricilerin uzun fonksiyonlar yazdığını bilir. İlerledikçe, kodunuzu daha küçük parçalara ayırma konusunda daha iyi olursunuz ve deneyim size bunun değerini gösterir. SQL giriniz. Evet, kod hakkında SQL düşünme biçimi, kod hakkında düşünme yönteminden farklıdır, ancak bu ilke aynı şekilde uygulanabilir. Diyelim ki formu alan bir sorgu var: select …

8
Bir değer anlamlı bir şekilde bulunamadığında, yeni bir Boole alanı boş başvurudan daha mı iyidir?
Örneğin Member, bir lastChangePasswordTime olan bir sınıfım olduğunu varsayalım: class Member{ . . . constructor(){ this.lastChangePasswordTime=null, } } lastChangePasswordTime, anlamsız olabilir, çünkü bazı üyeler şifrelerini asla değiştiremez. Ancak boş değerlerin kötü olması durumunda, bir değer anlamlı olarak bulunamadığında neler kullanılmalıdır? ve https://softwareengineering.stackexchange.com/a/12836/248528 , anlamlı olmayan bir değeri temsil etmek için …
39 null  boolean 

11
Bir REST API, bir sorgunun var olmayan bir nesneye başvurduğunu belirtmek için 500 Dahili Sunucu Hatası döndürmeli midir?
Çok sayıda IoT aygıtının verilerini işleyen bir sunucuda bulunan bir REST API ile çalışıyorum. Görevim, söz konusu cihazlar hakkında belirli performans bilgilerini toplamak için API'yi kullanarak sunucuyu sorgulamak. Bir örnekte, kullanılabilir cihazların ve bunlara karşılık gelen tanımlayıcıların bir listesini edindim, daha sonra bu tanımlayıcıları (GUID'ler) kullanarak daha fazla ayrıntı için …

5
STDIN'den bir kütüphaneden okumak için anti-pattern olarak mı kabul edilir?
İşteyken üzerinde çalıştığım büyük bir proje için bir kütüphane yazarken, bir belirtecin bir e-posta adresine gönderilmesini gerektiren ve daha sonra kullanılmak üzere kullanılabileceği koda geri gönderilen bir sorun ortaya çıktı. Meslektaşım sadece STDIN'den (Python kullanarak code = input("Enter code: ")) okuduğunu ve daha sonra bir kullanıcının bunu ilettiğini söylüyor , …

6
Global olarak benzersiz mesaj kimlikleri kullanarak kodları erişilebilir hale getirme
Bir hatayı bulmak için yaygın bir kalıp bu betiği izler: Garipliğe dikkat edin, örneğin çıktı yok veya bir asma programı. İlgili mesajı log veya program çıktısında bulun, örneğin, "Foo bulunamadı". (Aşağıdakiler yalnızca bu hatayı bulmak için atılan yolsa geçerlidir. Bir yığın izlemesi veya başka bir hata ayıklama bilgisi varsa, bu …

8
IF ifadesini ters çevirme
Bu yüzden birkaç yıldır programlama yapıyorum ve son zamanlarda ReSharper'ı daha fazla kullanmaya başladım. ReSharper'ın bana her zaman önerdiği bir şey "iç içe geçirmeyi azaltmak için" ifadesini "tersine çevirmektir". Diyelim ki bu kod bende: foreach (someObject in someObjectList) { if(someObject != null) { someOtherObject = someObject.SomeProperty; } } Ve ReSharper …

3
Neden for döngüsü yerine “fonksiyonel işlemler” kullanmalıyım?
for (Canvas canvas : list) { } NetBeans, "işlevsel işlemleri" kullanmamı önerir: list.stream().forEach((canvas) -> { }); Fakat bu neden tercih edilir ? Bir şey olursa, okumak ve anlamak daha zordur. Daha stream()sonra forEach()parametre ile bir lambda ifadesi kullanarak çağırıyorsunuz canvas. Bunun forilk pasajdaki döngüden daha iyi olduğunu nasıl göremiyorum . …

7
Harici verileri programladığınız dile çevirme
Aşağıdakilerle ne yapacağımdan emin değilim: Kendi aracımızdaki verileri harici bir araçtan alıyoruz. Bu veri Hollandaca yazılmıştır. Java kodumuzu İngilizce olarak yazıyoruz. Bu Hollandalıyı İngilizceye mi çevirmeliyiz yoksa Hollandalı olarak mı tutacağız? Örneğin, 2 departmanımız var: Bouw (İngilizce olarak inşaat) ve Onderhoud (İngilizce olarak bakım). Daha sonra oluşturmak için mantıklı olurdu: …
39 naming  translate 

13
Değerleri belirlemek için bir boolean parametresi kullanmak yanlış mı?
Göre bu davranışını belirlemek için bir boolean parametresini kullanmak yanlış mı? , Bir davranışı belirlemek için boolean parametreleri kullanmaktan kaçının önemini biliyorum, örneğin: Orijinal versiyon public void setState(boolean flag){ if(flag){ a(); }else{ b(); } c(); } Yeni sürüm: public void setStateTrue(){ a(); c(); } public void setStateFalse(){ b(); c(); } …

3
Python'un neden listeler için “düzleştirici” bir işlevi yok?
Erlang ve Ruby'nin her ikisi de dizileri düzleştirmek için işlevlerle birlikte geliyor. Bir dil eklemek için bu kadar basit ve kullanışlı bir araç gibi görünüyor. Biri bunu yapabilir: >>> mess = [[1, [2]], 3, [[[4, 5]], 6]] >>> mess.flatten() [1, 2, 3, 4, 5, 6] Ya da: >>> import itertools …

6
Asla değişmeyecek sabit kod dizeleri
Bu yüzden, Fransızca için fiilleri (algoritmik olarak değil, veri kümesi aracılığıyla) eşlenikleştirmek için bir program yazma çabalarımda ufak bir sorunla karşılaştım. Fiilleri birleştiren algoritma, fiilleri 17 ya da öylesine fiil durumları için oldukça basittir ve her durum için belirli bir düzen üzerinde çalışır; bu nedenle, bu 17 sınıf için eşlenik …
39 design  strings 

12
Neden çoğu programlama dili, işlevleri bildirmek için özel bir anahtar kelimeye veya sözdizimine sahiptir? [kapalı]
Çoğu programlama dili (hem dinamik hem de statik olarak yazılmış diller), işlevleri bildirmek için değişken bildirmekten çok farklı görünen özel anahtar kelime ve / veya sözdizimine sahiptir. İşlevleri tıpkı adlandırılmış başka bir varlık bildirmek gibi görüyorum: Örneğin Python'da: x = 2 y = addOne(x) def addOne(number): return number + 1 …

3
Küçük programcılar bugünün (karmaşık) web ortamı için nasıl eğitilir?
Şu anda şirketimiz, çoğu zaman Ruby'de Rails web sunucularında ve Java'daki kiosk sistemlerinden C / C ++'daki gömülü cihazlara (standart web tarayıcıları için arabirimlerin yanı sıra) çeşitli REST istemcilerinden oluşan uygulamalar geliştiriyor. Ekibimizi genişletmeliyiz ve iyi kıdemli programlar bulmakta başarısız olduklarında, şirketle birlikte büyüyecek olan genç programcıları eğitmek için biraz …

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.