Rekayasa Perangkat Lunak

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



2
Kesulitan membuat kelas ini terbuka-tertutup
Inilah masalah saya: Saya ingin membaca input dari berbagai perangkat HID seperti gamepad, racing well, joystick, dll. Cukup banyak pengendali permainan apa pun. Masalahnya adalah mereka semua memiliki input yang berbeda. Gamepad memiliki tombol, sakelar, dan stik, sementara arena balap mungkin memiliki stik gigi. Saya berhasil mengabstraksikan semua komponen yang …

5
Alasan untuk domain tingkat atas (TLD)
Saya selalu menerima begitu saja bahwa TLD ada dan perlu dipikirkan ketika Anda membeli nama domain. Tapi saya bertanya-tanya mengapa mereka perlu ada di tempat pertama. Saya tidak mengerti mengapa Anda tidak dapat memiliki sistem nama domain seperti ini: https://twitter/foo/bar https://example/foo/bar Artinya, saya tidak melihat kebutuhan nyata untuk menjadi TLD …

3
Haruskah saya meminta disebutkan dalam kredit dalam proyek sumber terbuka?
Saya telah membaca beberapa posting tentang bagaimana memberikan kredit dalam proyek open source, tetapi tidak ada yang menargetkan pertanyaan saya. Saya telah mengerjakan proyek open source selama sekitar satu tahun sekarang, dan salah satu edisi terbaru saya memiliki sesuatu yang belum diimplementasikan sepenuhnya dalam bahasa apa pun (setahu saya ...). …

4
Memeriksa hasil konstruktor di C #
Saya sedang mengerjakan basis kode dengan rekan kerja yang memiliki kebiasaan memeriksa hasil konstruktor untuk null dengan cara yang mirip dengan ini Person p = new Person(); if (p != null) { p.Name = "John Smith"; } Pemahaman saya tentang lanskap .NET adalah bahwa konstruktor tidak akan pernah meninggalkan tugas …

2
Tugas Pengembangan Bersama untuk Cerita Pengguna Agile
Tim saya akan menggunakan Layanan Tim Visual Studio untuk proyek yang akan datang. Alat Agile biarkan saya mengatur Kisah dan Tugas Pengguna secara hierarkis seperti ini: Epik> Fitur> Kisah Pengguna> Tugas / Bug Katakanlah saya sedang merancang sistem manajemen Student Org (club) untuk siswa dan penasihat sekolah menengah. Siswa dan …

2
Praktik terbaik untuk informasi sensitif dalam kontrol sumber
Saya tahu topik ini telah dibahas cukup banyak tetapi saya tidak dapat menemukan jawaban untuk situasi khusus saya. Saat ini, saya menggunakan .gitignoreuntuk mengecualikan konten sensitif dan menjaganya (file konfigurasi, dll) secara terpisah. Saat basis kode saya berkembang menjadi semakin banyak proyek, ini menjadi sangat sulit untuk dikelola dan saya …
8 git  security 

6
Haruskah jenis pengecualian yang digunakan kembali disukai daripada yang digunakan tunggal?
Katakanlah saya memiliki Doors yang dikelola oleh DoorService. The DoorServicebertanggung jawab atas pembukaan, menutup dan mengunci pintu yang disimpan di database. public interface DoorService { void open(Door door) throws DoorLockedException, DoorAlreadyOpenedException; void close(Door door) throws DoorAlreadyClosedException; /** * Closes the door if open */ void lock(Door door) throws DoorAlreadyLockedException; } …

2
Konstruktor argumen nol dan entitas Selalu Valid
Saya telah melakukan banyak membaca baru-baru ini tentang entitas domain Always Valid. Saya menjadi percaya bahwa untuk memastikan entitas selalu valid saya perlu: 1) Hapus obsesi primitif dan masukkan aturan validasi / domain dalam konstruktor objek nilai seperti yang dijelaskan di sini: https://enterprisecraftsmanship.com/2016/09/13/validation-and-ddd/ . 2) Masukkan aturan validasi / domain …

5
Merancang fungsi berdasarkan RESTful API
Tolong selesaikan argumen antara saya dan seorang teman. Kami sedang merancang API produk. Entitas Produk kami terlihat seperti ini { "Id": "", "ProductName": "", "StockQuantity": 0 } Penjualan produk ditangani oleh pihak ke-3 dan mereka wajib memberi tahu kami dengan jumlah yang dibeli sehingga StockQuantitybidangnya dapat dikurangi. Pendekatan saya: PUT …


5
Haruskah metode yang bukan "fungsi murni" dan yang berinteraksi dengan API atau perangkat keras eksternal bersifat statis?
Ketika membaca tentang kapan membuat metode statis atau tidak, saya telah melihat prinsip umum, seperti dirangkum oleh posting ini , bahwa metode seharusnya hanya statis jika tidak mengubah keadaan dan hasilnya hanya bergantung pada parameter yang disediakan untuk Itu. Namun, jawaban yang paling banyak dipilih dalam posting ini menyatakan bahwa …

2
Prinsip substitusi Liskov: Jika subtipe menerapkan beberapa perilaku ekstra, yang tidak ada dalam tipe, maka apakah ini pelanggaran terhadap LSP?
Dalam upaya saya untuk menulis kode yang lebih baik dan lebih bersih, saya belajar tentang prinsip-prinsip SOLID. Dalam hal ini, LSP terbukti sedikit sulit untuk dipahami dengan baik. Keraguan saya adalah bagaimana jika saya memiliki beberapa metode tambahan dalam subtipe saya, S, yang tidak ada dalam tipe, T, apakah ini …

4
Kapan menulis metode ekstensi untuk kelas Anda sendiri?
Baru-baru ini saya melihat basis kode yang memiliki kelas data yang Addressditentukan di suatu tempat dan kemudian di tempat yang berbeda: fun Address.toAnschrift() = let { address -> Anschrift().apply { // mapping code here... } } Saya merasa bingung untuk tidak memiliki metode ini pada alamat secara langsung. Apakah ada …
8 c#  design 

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.