Rekayasa Perangkat Lunak

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


2
Apakah ada cara yang elegan untuk memeriksa batasan unik pada atribut objek domain tanpa memindahkan logika bisnis ke lapisan layanan?
Saya telah mengadaptasi desain berbasis domain selama sekitar 8 tahun sekarang dan bahkan setelah bertahun-tahun, masih ada satu hal, yang telah mengganggu saya. Itu memeriksa catatan unik dalam penyimpanan data terhadap objek domain. Pada September 2013 Martin Fowler menyebutkan prinsip TellDon'tAsk , yang, jika mungkin, harus diterapkan ke semua objek …


3
Menggunakan Antarmuka untuk Kode yang Digabungkan Secara Bebas
Latar Belakang Saya memiliki proyek yang tergantung pada penggunaan jenis perangkat perangkat keras tertentu, sementara itu tidak terlalu penting siapa yang membuat perangkat perangkat keras selama itu melakukan apa yang saya butuhkan. Dengan itu dikatakan, bahkan dua perangkat yang seharusnya melakukan hal yang sama akan memiliki perbedaan ketika mereka tidak …

3
Pastikan kode yang tidak aman tidak digunakan secara tidak sengaja
Fungsi f()menggunakan eval()(atau sesuatu yang berbahaya) dengan data yang saya buat dan simpan di local_filedalam mesin yang menjalankan program saya: import local_file def f(str_to_eval): # code.... # .... eval(str_to_eval) # .... # .... return None a = f(local_file.some_str) f() aman untuk dijalankan karena string yang saya berikan padanya adalah milik …


3
Bagaimana mengelola tanggung jawab tunggal ketika tanggung jawab dibagikan?
Saya punya dua kelas dasar, Operationdan Trigger. Masing-masing memiliki sejumlah subclass yang berspesialisasi dalam jenis operasi atau pemicu tertentu. A Triggerdapat memicu spesifik Operation. Sementara Operationdapat dipicu oleh spesifik Trigger. Saya perlu menulis kode yang memetakan diberikan Operationke yang diberikan Trigger(atau sebaliknya), tapi saya tidak yakin di mana harus meletakkannya. …

3
Jika Anda dapat menggunakan def untuk mendefinisikan kembali variabel bagaimana itu dianggap tidak berubah?
Mencoba mempelajari Clojure dan Anda tidak dapat membantu tetapi terus menerus diberitahu bagaimana Clojure adalah tentang data yang tidak dapat diubah. Tetapi Anda dapat dengan mudah mendefinisikan kembali variabel dengan menggunakan defhak? Saya mendapatkan bahwa pengembang Clojure menghindari ini tetapi Anda bisa menghindari mengubah variabel dalam bahasa apa pun yang …
10 clojure 

2
Apakah pewarisan Python merupakan gaya pewarisan "is-a" atau gaya komposisi?
Mengingat bahwa Python memungkinkan pewarisan berganda, seperti apa pewarisan idiomatik dalam Python? Dalam bahasa dengan pewarisan tunggal, seperti Java, pewarisan akan digunakan ketika Anda bisa mengatakan bahwa satu objek "adalah-a" dari objek lain dan Anda ingin berbagi kode antara objek (dari objek induk ke objek anak). Misalnya, Anda dapat mengatakan …


2
Mengapa programmer mendefinisikan model pemrograman untuk menggantikan C / POSIX untuk paralelisme?
Penyedia arsitektur komputer baru secara teratur mencoba memperkenalkan model pemrograman baru, misalnya baru-baru ini CUDA / OpenCL untuk GPGPU, dan menggantikan C / POSIX sebagai antarmuka kontrol ke paralelisme platform. (Poss & Koening, AM3: Menuju akselerator Unix perangkat keras untuk banyak-core, 2015) Mengapa desainer arsitektur mencoba merancang model pemrograman baru …


3
Stubbing Properties dengan setter pribadi untuk pengujian
Kami memiliki objek public class MyObject{ protected MyObject(){} public string Property1 {get;private set;} public string Property2 {get;private set;} public string Property3 {get;private set;} public string Property4 {get;private set;} public string Property5 {get;private set;} public string Property6 {get;private set;} public string Property7 {get;private set;} public string Property8 {get;private set;} public string …

2
Mengapa LGPL memerlukan karya gabungan untuk menyertakan salinan GPL?
Saya membaca lisensi LGPL dan menemukan persyaratan yang sebelumnya tidak saya sadari. Bagian 4 (Pekerjaan Gabungan) menyatakan: Anda dapat menyampaikan Pekerjaan Gabungan [...] jika Anda juga melakukan masing-masing hal berikut ini: a) Berikan pemberitahuan menonjol dengan setiap salinan Karya Gabungan bahwa Perpustakaan digunakan di dalamnya dan bahwa Perpustakaan dan penggunaannya …

2
Semantik copy-on-write semantik
Saya bertanya-tanya apa manfaat yang mungkin dimiliki copy-on-write? Secara alami, saya tidak mengharapkan pendapat pribadi, tetapi skenario praktis dunia nyata di mana itu bisa bermanfaat secara teknis dan praktis dengan cara yang nyata. Dan secara kasat mata maksud saya lebih dari sekadar menyelamatkan Anda dari mengetik &karakter. Untuk memperjelas, pertanyaan …
10 c++  qt 

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.