Rekayasa Perangkat Lunak

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


1
Mengapa (/ apakah) Bertrand Meyer menganggap subklasifikasi adalah satu-satunya cara untuk memperpanjang modul "tertutup"?
Dalam Konstruksi Perangkat Lunak Berorientasi Objek Meyer (1988) ia mendefinisikan prinsip terbuka / tertutup sebagai berikut: Modul akan dikatakan terbuka jika masih tersedia untuk perpanjangan. Misalnya, harus dimungkinkan untuk menambahkan bidang ke struktur data yang dikandungnya, atau elemen baru ke set fungsi yang dijalankannya. Modul akan dikatakan tertutup jika tersedia …

3
Pola untuk melewati konteks melalui rantai metode
Ini adalah keputusan desain yang tampaknya muncul cukup banyak: bagaimana melewati konteks melalui metode yang tidak membutuhkannya ke metode yang melakukannya. Apakah ada jawaban yang benar atau tergantung pada konteksnya. Kode sampel yang membutuhkan solusi // needs the dependency function baz(session) { session('baz'); } // doesn't care about the dependency …

4
Bagaimana cara kerja Chrome V8? Dan mengapa JavaScript tidak dikompilasi dengan JIT?
Saya telah meneliti Penerjemah / Penyusun, kemudian saya menemukan JIT-Kompilasi - khususnya Mesin V8 Javascript Google Chrome. Pertanyaan saya adalah - Bagaimana bisa lebih cepat daripada Interpretasi standar? Mengapa JIT-Compilation tidak digunakan? Pemahaman Saya Saat Ini Setiap Program Javascript dimulai sebagai kode sumber , kemudian, terlepas dari metode pelaksanaannya, pada …

6
Apakah logging di sebelah implementasi merupakan pelanggaran SRP?
Ketika memikirkan pengembangan perangkat lunak yang gesit dan semua prinsip (SRP, OCP, ...) Saya bertanya pada diri sendiri bagaimana memperlakukan logging. Apakah logging di sebelah implementasi merupakan pelanggaran SRP? Saya akan mengatakan yeskarena implementasinya juga harus dapat berjalan tanpa logging. Jadi bagaimana saya bisa menerapkan logging dengan cara yang lebih …

7
Masalah gaya pengkodean: Haruskah kita memiliki fungsi yang mengambil parameter, memodifikasinya, dan kemudian MENGEMBALIKAN parameter itu?
Saya sedang berdebat dengan teman saya mengenai apakah kedua latihan ini hanyalah dua sisi dari mata uang yang sama, atau apakah satu benar-benar lebih baik. Kami memiliki fungsi yang mengambil parameter, mengisi anggota itu, dan kemudian mengembalikannya: Item predictPrice(Item item) Saya percaya bahwa saat ia bekerja pada objek yang sama …


3
Bagaimana cara melintasi pohon tanpa menggunakan rekursi?
Saya memiliki pohon simpul memori yang sangat besar dan perlu melintasi pohon. Melewati nilai yang dikembalikan dari setiap simpul anak ke simpul induknya. Ini harus dilakukan sampai semua node memiliki data bubble hingga ke root node. Traversal bekerja seperti ini. private Data Execute(Node pNode) { Data[] values = new Data[pNode.Children.Count]; …
19 c#  optimization  trees 


2
Cara terbaik untuk menyusun repositori Git untuk Maven
Saya butuh saran tentang cara menyusun proyek kami di Git. Kami menggunakan Java dan Maven adalah alat build kami. Maven agak menganggap semua proyek Anda memiliki leluhur yang sama pada akhirnya. Maven juga bisa menjadi ratu drama nyata ketika segalanya tidak diatur persis seperti yayasan Apache mengatur proyek mereka (siapa …

4
Memahami stack frame dari panggilan fungsi di C / C ++?
Saya mencoba memahami bagaimana susunan bingkai dibangun dan variabel (params) mana yang didorong untuk ditumpuk dalam urutan apa? Beberapa hasil pencarian menunjukkan bahwa kompiler C / C ++ memutuskan berdasarkan operasi yang dilakukan dalam suatu fungsi. Misalnya, jika fungsi seharusnya hanya menambah nilai int pass-in oleh 1 (mirip dengan operator …
19 c++  c  compiler  stack 

4
Mengapa kita memerlukan kata kunci async?
Saya baru saja mulai bermain-main dengan async / menunggu di .Net 4.5. Satu hal yang saya awalnya ingin tahu, mengapa kata kunci async diperlukan? Penjelasan yang saya baca adalah bahwa itu adalah penanda sehingga kompiler tahu metode menunggu sesuatu. Tapi sepertinya kompiler harus bisa mengetahui ini tanpa kata kunci. Jadi …
19 c#  .net 

7
Haruskah saya membuat antarmuka untuk objek transfer data?
Apakah itu ide yang baik atau ide buruk untuk membuat antarmuka untuk objek transfer data? Menganggap bahwa objek biasanya dapat berubah. Meskipun contoh saya di Jawa, itu harus berlaku untuk bahasa lain yang memiliki konsep serupa. interface DataTransferObject { String getName(); void setName(String name); } class RealDataTransferObject implements DataTransferObject { …


8
C ++ ke teman atau tidak ke teman
Saya memiliki pemrograman berorientasi objek dengan kursus c ++ semester ini di kampus dan kami belajar tentang fungsi teman. Saya secara naluriah tidak menyukai mereka karena kemampuan mereka untuk melewati keamanan yang disediakan Enkapsulasi dan Penyembunyian Data, saya membaca beberapa artikel di internet dan beberapa orang berpikir itu adalah ide …

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.