Saya baru saja memulai pekerjaan baru sebagai pengembang basis data untuk perusahaan menengah-kecil yang berbasis pada teknologi Microsoft. Saya perhatikan sejak awal seberapa banyak praktik yang menyimpang dari apa yang telah saya pelajari di sekolah mengenai praktik terbaik, pola desain, pengujian, dan manajemen proyek.
Yang paling menggangguku adalah bagaimana pengembang basis data utama kami (selanjutnya disebut "John") menyimpan skema model dalam basis data! Kami melakukan ini dengan memiliki 3 tabel "ajaib"; satu untuk skema database, satu untuk tabel dan satu untuk kolom.
Menyisipkan catatan ke dalam " Tabel " -tabel menghasilkan (melalui pemicu database), tabel yang sesuai, sebenarnya. Memasukkan baris ke " Baris " -tabel memperbarui tabel yang direferensikan dengan baris itu. Ini pada gilirannya dibaca oleh program C # buatannya untuk menghasilkan model C #, yang digunakan oleh pengembang frontend untuk pengontrol dan keluar.
Terlepas dari ini, sebagian besar pengembangan dilakukan sesuai dengan kerangka kerja ASP.NET MVC .
Saya melihat beberapa kekurangan dengan pendekatan ini:
- Kami membutuhkannya untuk mempertahankan ORM, dan dia jarang memiliki waktu untuk melakukannya (keamanan pekerjaan baik!)
- Pemicu untuk tabel "Tabel" dan "Baris" cacat. Mereka tidak mendukung pembaruan tabel, atau Periksa-kendala atau lebih banyak fitur "canggih". Meskipun kami pasti bisa memperbaikinya, saya belum yakin apakah ini jalan yang harus ditempuh.
- Mempertahankan logika terprogram dalam basis data terasa aneh dan membatasi (walaupun dimungkinkan untuk memperluas modelnya melalui C #).
- C-Model-generator-nya harus dijalankan secara manual oleh salah satu dari 3 orang (di antaranya saya adalah satu), dan belum cukup matang untuk dimasukkan ke dalam proses pembuatan otomatis.
Beberapa orang telah menyarankan pentahapan dalam produk yang benar dan teruji seperti Entity Framework , tetapi ia menolaknya, menegaskan bahwa menjaga logika bisnis dalam lapisan kode hanya cocok untuk aplikasi skala kecil dan proyek bootstrap untuk startup.
Posting ini mengarah ke sesuatu yang bisa terlihat seperti diskusi yang penuh pendapat, tapi itu bukan maksud saya. Saya hanya ingin klarifikasi mengenai pendekatan arsitektur kami.
Bisakah menjaga model domain dalam database menjadi solusi berkelanjutan bagi perusahaan dalam pertumbuhan?