Rekayasa Perangkat Lunak

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

4
Nilai "Mengingat" dalam pemrograman fungsional
Saya telah memutuskan untuk mengambil sendiri tugas belajar pemrograman fungsional. Sejauh ini merupakan ledakan, dan saya 'melihat cahaya' seolah-olah. Sayangnya, saya tidak benar-benar tahu ada programmer fungsional yang saya dapat memunculkan pertanyaan. Memperkenalkan Stack Exchange. Saya mengambil kursus pengembangan web / perangkat lunak, tetapi instruktur saya tidak terbiasa dengan pemrograman …

3
Apa alasan mengapa tumpukan Java / Linux gagal menjadi "waktu nyata"?
Saya sering mendengar pengembang menyebutkan bahwa Java tidak dapat " melakukan Real Time ", yang berarti aplikasi Java yang berjalan di Linux tidak dapat memenuhi persyaratan sistem waktu-nyata deterministik, seperti sesuatu yang berjalan di RIOT-OS, dll. Saya mencoba memahami mengapa . Saya SWAG memberitahu saya bahwa ini mungkin sebagian besar …
20 java  linux  real-time 

6
Cara menghapus fungsi atau fitur saat menggunakan TDD
Dalam teks tentang TDD saya sering membaca tentang "menghapus duplikasi" atau "meningkatkan keterbacaan" selama langkah refactoring. Tapi apa yang membuat saya menghapus fungsi yang tidak digunakan? Sebagai contoh katakanlah ada kelas Cdengan metode a()dan b(). Sekarang saya pikir akan menyenangkan untuk memiliki metode f()yang didorong ke dalamnya C. Bahkan f()menggantikan …

4
Menggunakan file flat vs database / API sebagai transportasi antara frontend dan backend
Saya punya aplikasi yang telah menghasilkan diskusi yang agak panas antara beberapa pengembang. Pada dasarnya, itu dibagi menjadi lapisan web dan lapisan backend. Lapisan web mengumpulkan informasi dengan formulir web sederhana, menyimpan data ini sebagai dokumen JSON (secara harfiah file .json) ke dalam folder arloji yang digunakan oleh bagian belakang. …


3
Duplikasi konstanta antara tes dan kode produksi?
Apakah baik atau buruk untuk menggandakan data antara tes dan kode nyata? Sebagai contoh, misalkan saya memiliki kelas Python FooSaveryang menyimpan file dengan nama tertentu ke direktori yang diberikan: class FooSaver(object): def __init__(self, out_dir): self.out_dir = out_dir def _save_foo_named(self, type_, name): to_save = None if type_ == FOOTYPE_A: to_save = …

11
Haruskah pengkodean praktik terbaik selalu digunakan [ditutup]
Ditutup . Pertanyaan ini didasarkan pada pendapat . Saat ini tidak menerima jawaban. Ingin meningkatkan pertanyaan ini? Perbarui pertanyaan sehingga dapat dijawab dengan fakta dan kutipan dengan mengedit posting ini . Ditutup 3 tahun yang lalu . Saat mengkode perangkat lunak, haruskah arsitektur selalu menjadi praktik terbaik atau praktik praktis …

5
Apakah kasus khusus dengan fallback melanggar Prinsip Pergantian Liskov?
Katakanlah saya memiliki antarmuka FooInterfaceyang memiliki tanda tangan berikut: interface FooInterface { public function doSomething(SomethingInterface something); } Dan kelas konkret ConcreteFooyang mengimplementasikan antarmuka itu: class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } Saya ingin ConcreteFoo::doSomething()melakukan sesuatu yang unik jika melewati jenis SomethingInterfaceobjek khusus (katakanlah itu disebut …

5
Mengapa suatu tipe digabungkan dengan pembangunnya?
Saya baru-baru ini menghapus jawaban java saya di Tinjauan Kode , yang dimulai seperti ini: private Person(PersonBuilder builder) { Berhenti. Bendera merah. PersonBuilder akan membangun Seseorang; ia tahu tentang Seseorang. Kelas Person seharusnya tidak tahu apa-apa tentang PersonBuilder - ini hanya tipe yang tidak berubah. Anda telah membuat kopling bundar …

1
Apa perbedaan antara <? extends Foo> dan <Foo>
Saya tampaknya memiliki kesalahpahaman tentang perbedaan antara &lt;Foo&gt;dan &lt;? extends Foo&gt;. Dari pemahaman saya, jika kita punya ArrayList&lt;Foo&gt; foos = new ArrayList&lt;&gt;(); Ini menunjukkan bahwa objek tipe Foodapat ditambahkan ke daftar array ini. Karena subclass dari Foojuga bertipe Foo, mereka juga dapat ditambahkan tanpa kesalahan, seperti yang diilustrasikan oleh ArrayList&lt;Foo&gt; …
20 java  generics 



4
Apakah argumen bernama mengganti pola builder?
Saat menggunakan bahasa yang mendukung argumen bernama dan opsional, apakah pola pembangun tidak lagi memiliki penggunaan praktis? Pembangun: new Builder(requiredA, requiredB).setOptionalA("optional").Build(); Argumen opsional / bernama: new Object(requiredA, requiredB, optionalA: "optional");

1
Haskell membangun dan membuat artefak mirip dengan Maven
Saya pernah menjadi pengembang Java untuk waktu yang lama, tetapi baru-baru ini, saya bergabung dengan tim Haskell. Di dunia java, jika Anda memiliki proyek besar, dengan beberapa tim mengerjakannya, pendekatan yang umum adalah dengan menggunakan server artefak seperti Maven untuk mempermudah dan mempercepat pengembangan. Banyak alat pembuatan, seperti Ant, Maven, …


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.