Don’t design with interfaces, discover them
Inti Pesan
Prinsip Dasar
Contoh dalam Go
Cara yang Salah (Design dengan Interface di Awal)
// Memaksakan interface di awal tanpa tahu kebutuhan sebenarnya
type Storage interface {
Save(data []byte) error
Load(id string) ([]byte, error)
Delete(id string) error
}
// Harus implementasi semua method bahkan jika tidak perlu
type FileStorage struct{}
func (f *FileStorage) Save(data []byte) error {
// implementation
}
func (f *FileStorage) Load(id string) ([]byte, error) {
// implementation
}
func (f *FileStorage) Delete(id string) error {
// implementation, tapi mungkin tidak pernah digunakan
}Cara yang Benar (Discover Interfaces)
Contoh Lain: Database Operations
Keuntungan Pendekatan Ini
Kapan Harus Mendesain Interface di Awal?
Last updated