Rekayasa Perangkat Lunak

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

3
Bagaimana saya merancang metode TryParse yang menyediakan informasi terperinci jika terjadi kesalahan penguraian?
Saat mem-parsing input pengguna, umumnya disarankan untuk tidak melempar dan menangkap pengecualian melainkan menggunakan metode validasi. Di .NET BCL, ini akan menjadi perbedaan antara, misalnya, int.Parse(melempar pengecualian pada data tidak valid) dan int.TryParse(mengembalikan falsedata tidak valid). Saya merancang sendiri Foo.TryParse(string s, out Foo result) metode dan saya tidak yakin tentang …
9 c#  .net  api-design 

5
Ikuti jalan yang saya tahu, kemudian coba terapkan praktik pengkodean yang benar, atau mulailah dengan praktik pengkodean yang baik dan coba fudge dengan cara saya?
Pertama, saya ingin mengatakan bahwa saya terbiasa melakukan Pemrograman Prosedural sebagai hobi saya - saya mencoba belajar OOP dalam beberapa bahasa, dan memahami teorinya , hanya saja bukan praktiknya. Saya punya proyek peliharaan yang ingin saya buat, khususnya dalam PHP dengan backend basis data (tidak peduli apa). Alasan utama saya …

4
konteks ambient vs injeksi konstruktor
Saya sudah banyak kelas inti yang memerlukan ISessionContext dari database, ILogManager untuk log dan IService digunakan untuk berkomunikasi dengan layanan lain. Saya ingin menggunakan injeksi dependensi untuk kelas ini yang digunakan oleh semua kelas inti. Saya sudah dua kemungkinan implementasi. Kelas inti yang menerima IAmbientContext dengan semua tiga kelas atau …


3
Apakah tes unit penulisan manual Bukti Dengan Contoh?
Kita tahu bahwa menulis tes JUnit menunjukkan satu jalur tertentu melalui kode Anda. Salah satu rekan saya berkomentar: Tes unit yang ditulis secara manual adalah Proof By Example . Dia berasal dari latar belakang Haskell yang memiliki alat seperti Quickcheck dan kemampuan untuk berpikir tentang perilaku program dengan tipe . …

2
Desain yang tepat untuk menghindari penggunaan dynamic_cast?
Setelah melakukan beberapa penelitian, saya tidak dapat menemukan contoh sederhana untuk menyelesaikan masalah yang sering saya temui. Katakanlah saya ingin membuat aplikasi kecil di mana saya dapat membuat Squares, Circles, dan bentuk lainnya, menampilkannya di layar, memodifikasi properti mereka setelah memilihnya, dan kemudian menghitung semua perimeter mereka. Saya akan melakukan …

2
Data mana yang harus disimpan sebagai `Klaim`?
Dalam ASP.Net Core, saya menemukan Claimsotorisasi adalah metode yang sangat tidak konkret. Kami dapat menambahkan apa pun sebagai ClaimTypedan ClaimValuepasangan; grup, nama depan, nama belakang, brithdate, canAccessThisURI, isEditor, dll. Namun, pendekatan ini (menyimpan apa pun yang dapat disimpan sebagai klaim) akan membuat tabel klaim besar yang mencakup 50% dari data …

4
Apakah memiliki fasilitas bahasa generator seperti `yield` adalah ide yang bagus?
PHP, C #, Python dan kemungkinan beberapa bahasa lain memiliki yieldkata kunci yang digunakan untuk membuat fungsi generator. Dalam PHP: http://php.net/manual/en/language.generators.syntax.php Dalam Python: https://www.pythoncentral.io/python-generators-and-yield-keyword/ Dalam C #: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/yield Saya khawatir bahwa sebagai fitur / fasilitas bahasa, ada yieldbeberapa konvensi. Salah satunya adalah apa yang saya sebut "kepastian". Ini adalah metode …






6
Seharusnya tes unit hanya mencakup perangkat lunak 'fungsional'
Kami menggunakan StructureMap dalam proyek pengembangan perangkat lunak baru. Salah satu anggota tim telah menerapkan uji unit yang pada dasarnya menguji konfigurasi kontainer StructureMap . Ini melakukan ini dengan melakukan hal berikut; Menghitung jumlah instance rakitan yang dikonfigurasikan untuk kelas di namespace aplikasi kami. Menentukan instance yang diharapkan di tingkat …


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.