Ya, Ya, Saya Memiliki
Saya sudah lama diam tentang topik ini; saatnya berbicara.
- Adakah yang mencoba menerapkan konsep ini pada desain objek?
Iya nih. Saya telah bekerja untuk memformalkan normalisasi objek (dan karenanya teori yang berorientasi objek) selama lebih dari 20 tahun.
Dengan menyadari bahwa data dan kode dapat dipertukarkan, setidaknya secara teori. Ini berarti bahwa prinsip-prinsip normalisasi dan operasi relasional dapat berlaku untuk kode serta data.
Sejauh ini berhasil dengan baik - saya percaya wawasan yang diperoleh adalah "senjata rahasia" dari desain, analisis, dan kemampuan refactoring saya.
Saya belum mengatakan apa-apa tentang hal ini kepada publik sebelum ini karena saya pikir pada akhirnya saya akan memiliki waktu untuk menyelesaikan penelitian - dan menghasilkan alat yang tersirat - sendiri.
Tetapi saya sampai pada kesimpulan bahwa dengan segala sesuatu yang terjadi dalam hidup saya yang lebih penting, lebih menyenangkan, dan / atau lebih menguntungkan, saya tidak akan punya waktu untuk menyelesaikan penelitian sendiri. Pernah. Ada juga kemungkinan signifikan bahwa saya sama sekali tidak memiliki landasan teori CS yang diperlukan untuk menyelesaikan pekerjaan sendirian.
Saya telah bertanya di universitas setempat tentang mensponsori satu atau dua kandidat PhD jika mereka ingin mengambil penyebabnya, tetapi sayangnya universitas lokal kami tidak mengajarkan dasar yang memadai dalam pemrograman bahasa semantik.
Ada beberapa penelitian yang menarik di bidang ini, tetapi semua itu - yang saya sadari - tidak tepat sasaran. Entah itu salah mengasumsikan bahwa karena normalisasi berasal dari latar belakang relasional itu tidak berlaku untuk model berorientasi objek, atau mengasumsikan bahwa normalisasi hanya berlaku untuk data yang ditentukan oleh objek. Namun ada beberapa proyek nyaris gagal ...
Hal-hal yang sangat menarik terjadi ketika Anda menerapkan normalisasi pada kode - yang menurut saya merupakan dasar dari semua refactoring .
Jadi sekarang saya berpikir bahwa hal terbaik untuk dilakukan adalah mengeluarkan berita, mungkin dengan meminta untuk berbicara di DevDays 2011 di DC, dan mencari tahu apakah ada komunitas yang begitu bersemangat dengan hal ini seperti saya.
Inilah intinya: Normalisasi adalah proses membuat sesuatu yang minimal dan tidak berlebihan. Karena itu prinsip Don't Repeat Yourself (DRY) pemrograman berorientasi objek adalah manifestasi yang jelas dari tujuan normalisasi. Saya percaya saya dapat menunjukkan bahwa semua prinsip desain / pemrograman / refactoring berorientasi objek yang terkenal adalah konsekuensi logis dari normalisasi objek. Saya pikir saya juga dapat menunjukkan bahwa ada lebih banyak hal menarik yang dapat dilakukan dengan sistem dalam Object Normal Form (ONF) daripada hanya refactoring.