Rekayasa Perangkat Lunak

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



2
Ghostscript lisensi dalam produk komersial
Kami sedang mempelajari prospek menggunakan Ghostscript dalam produk komersial (aplikasi desktop Windows). Saya membaca tentang menghindari GS lisensi sama sekali dengan hanya menyarankan kepada pengguna bahwa mereka dapat mengunduh dan menginstal GS sendiri untuk meningkatkan pengalaman mereka (perangkat lunak sebenarnya berfungsi tanpanya juga, tetapi sebagian besar pengguna ingin membuat / …
19 licensing 

2
Model domain anemia dan injeksi layanan domain
The model domain anemia digambarkan sebagai anti-pola dalam domain desain didorong oleh Martin Fowler. Untuk memiliki logika bisnis pada model domain sering layanan domain digunakan. Tetapi menyuntikkan layanan domain ke dalam model domain dianggap berbahaya oleh Vaughn Vernon (lihat "Menerapkan Desain Berbasis Domain, Halaman 387). Menurut saya, pendapat itu kontradiktif, …

3
Database relasional dan pengembangan berulang
Dalam banyak pendekatan untuk pengembangan perangkat lunak seperti metodologi gesit, Desain Berbasis Domain dan Analisis dan Desain Berorientasi Objek, kami didorong untuk mengambil satu pendekatan berulang untuk pengembangan. Jadi kita tidak seharusnya menyelesaikan model domain dengan benar saat pertama kali kita mulai bekerja di proyek. Alih-alih, seiring berjalannya waktu kami …


3
Pengecualian - "apa yang terjadi" vs "apa yang harus dilakukan"
Kami menggunakan pengecualian untuk memungkinkan konsumen kode menangani perilaku tak terduga dengan cara yang bermanfaat. Biasanya pengecualian dibangun di sekitar skenario "apa yang terjadi" - seperti FileNotFound(kami tidak dapat menemukan file yang Anda tentukan) atau ZeroDivisionError(kami tidak dapat melakukan 1/0operasi). Bagaimana jika ada kemungkinan untuk menentukan perilaku yang diharapkan dari …
19 exceptions 

3
Apakah ini hal yang wajar untuk mengembalikan Streaming di mana pun kami biasanya akan mengembalikan Koleksi?
Saat mengembangkan API saya yang tidak terikat dengan kode warisan apa pun, saya sering menemukan diri saya menulis metode yang murni pipa Streams diakhiri dengan mengumpulkan hasilnya. Seperti yang ini: ImmutableSet<T> deriveSomethingMeaningfulFromPrivateState() { return myPrivateThingies.stream() .map(this::ownerOfThing) .map(Owner::socialStatus) .filter(SocialStatus::isHeAFineMatey) .collect(MyCustomCollectors.toImmutableSet()); } Sekarang, sebagian besar klien dari kelas ini biasanya akan membutuhkan …





2
Kapan menggunakan [Murni] pada konstruktor?
Saya belajar tentang kontrak kode di .NET, dan saya mencoba memahami gagasan konstruktor murni. The kontrak Kode negara dokumentasi: Semua metode yang disebut dalam kontrak harus murni; yaitu, mereka tidak boleh memperbarui keadaan yang sudah ada sebelumnya. Metode murni diizinkan untuk memodifikasi objek yang telah dibuat setelah masuk ke metode …



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.