Rekayasa Perangkat Lunak

T&J untuk profesional, akademisi, dan siswa yang bekerja dalam siklus hidup pengembangan sistem

6
DDD memenuhi OOP: Bagaimana menerapkan repositori berorientasi objek?
Implementasi khas dari repositori DDD tidak terlihat sangat OO, misalnya save()metode: package com.example.domain; public class Product { /* public attributes for brevity */ public String name; public Double price; } public interface ProductRepo { void save(Product product); } Bagian infrastruktur: package com.example.infrastructure; // imports... public class JdbcProductRepo implements ProductRepo { …

2
Mengapa kelas dasar perlu memiliki destruktor virtual di sini jika kelas turunan tidak mengalokasikan memori dinamis mentah?
Kode berikut menyebabkan kebocoran memori: #include <iostream> #include <memory> #include <vector> using namespace std; class base { void virtual initialize_vector() = 0; }; class derived : public base { private: vector<int> vec; public: derived() { initialize_vector(); } void initialize_vector() { for (int i = 0; i < 1000000; i++) { …

2
Definisi "Selesai" dalam kasus beberapa Tim Pengembangan bekerja pada produk yang sama
Salah satu tes scrum berisi pertanyaan tentang definisi terbaik yang menggambarkan "Selesai" ketika beberapa tim pengembangan melakukan pekerjaan pada produk yang sama. Jawaban yang tepat menyatakan bahwa tim pengembangan tersebut harus memiliki definisi "Selesai" yang dapat membuat pekerjaan gabungan mereka berpotensi untuk dirilis. Yang tidak jelas bagi saya dari jawaban …
12 agile  scrum 

1
Menggunakan kelas teman untuk merangkum fungsi anggota pribadi di C ++ - praktik atau penyalahgunaan yang baik?
Jadi saya perhatikan mungkin untuk menghindari menempatkan fungsi pribadi di header dengan melakukan sesuatu seperti ini: // In file pred_list.h: class PredicateList { int somePrivateField; friend class PredicateList_HelperFunctions; public: bool match(); } // In file pred_list.cpp: class PredicateList_HelperFunctions { static bool fullMatch(PredicateList& p) { return p.somePrivateField == 5; // or …

4
Bagaimana membuat ulasan kode yang lebih baik saat permintaan tarik besar?
Penafian: Ada beberapa pertanyaan serupa, tetapi saya tidak menemukan sentuhan mana yang secara khusus masalah yang Anda hadapi saat meninjau permintaan tarik besar. Masalah Saya merasa ulasan kode saya dapat dilakukan dengan cara yang lebih baik. Saya terutama berbicara tentang ulasan kode besar dengan banyak perubahan di 20+ file. Cukup …


1
Kode redundant dikirim ke pipa dengan Micro-frontends
Pemahaman saya tentang Micro-frontends adalah bahwa masalah utama yang mereka selesaikan adalah dalam membantu perusahaan memiliki banyak tim yang berbeda, bekerja pada komponen individu / aplikasi kecil yang akan digunakan untuk menyusun aplikasi web yang besar. Di sini masalah utama yang dipecahkan adalah kemampuan beberapa tim untuk bekerja secara mandiri …

4
struct dengan nilai default tidak masuk akal
Dalam sistem saya saya sering beroperasi dengan kode bandara ( "YYZ", "LAX", "SFO", dll), mereka selalu dalam format yang sama persis (3 huruf, direpresentasikan sebagai huruf besar). Sistem ini biasanya menangani 25-50 kode (berbeda) ini per permintaan API, dengan lebih dari seribu total alokasi, mereka diedarkan melalui banyak lapisan aplikasi …

4
Apakah bermasalah untuk memiliki ketergantungan antara objek dari lapisan yang sama dalam arsitektur perangkat lunak berlapis?
Mempertimbangkan perangkat lunak menengah-besar dengan arsitektur n-layer dan injeksi ketergantungan, saya merasa nyaman untuk mengatakan bahwa objek yang dimiliki lapisan dapat bergantung pada objek dari lapisan bawah tetapi tidak pernah pada objek dari lapisan yang lebih tinggi. Tapi saya tidak yakin apa yang harus dipikirkan tentang objek yang bergantung pada …

5
Apakah masuk akal untuk mendefinisikan antarmuka jika saya sudah memiliki kelas abstrak?
Saya memiliki kelas dengan beberapa fungsi standar / bersama. Saya gunakan abstract classuntuk itu: public interface ITypeNameMapper { string Map(TypeDefinition typeDefinition); } public abstract class TypeNameMapper : ITypeNameMapper { public virtual string Map(TypeDefinition typeDefinition) { if (typeDefinition is ClassDefinition classDefinition) { return Map(classDefinition); } ... throw new ArgumentOutOfRangeException(nameof(typeDefinition)); } protected …



5
Dalam kondisi apa (jika ada) adalah praktik yang baik untuk menanyakan dua server dan hanya mengonsumsi respons tercepat?
Saya telah bertanya apa yang sekarang menjadi pertanyaan Komunitas-dihapus pada SO tentang mengapa seseorang menggunakan javascript Promise.race, dan pengguna rep tinggi berkomentar: Jika Anda memiliki dua layanan yang menghitung beberapa nilai, Anda dapat meminta keduanya secara paralel dan menggunakan nilai mana yang pernah dikembalikan terlebih dahulu, daripada meminta satu, menunggu …

4
Bagaimana seharusnya sebuah kelas berkomunikasi dengan penggunanya yang merupakan bagian dari metode yang diterapkannya?
Skenario Aplikasi web mendefinisikan antarmuka backend pengguna IUserBackenddengan metode getUser (uid) createUser (uid) deleteUser (uid) setPassword (uid, kata sandi) ... Backend pengguna yang berbeda (misalnya LDAP, SQL, ...) mengimplementasikan antarmuka ini tetapi tidak setiap backend dapat melakukan semuanya. Misalnya server LDAP konkret tidak memungkinkan aplikasi web ini menghapus pengguna. Jadi …

2
Bagaimana cara menghindari duplikasi struktur data ketika bagian dari aplikasi ditulis dalam bahasa yang berbeda?
Sebagai contoh, katakan Anda sedang menulis aplikasi di Jawa . Aplikasi Anda berkomunikasi dengan server API yang ditulis dengan Python . Server Python berkomunikasi dengan database SQL . Anda juga memiliki situs web untuk aplikasi Anda yang ditulis dalam JavaScript . Dengan 4 bahasa yang berbeda, mudah untuk akhirnya mengulangi …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.