Beberapa waktu yang lalu kami menambahkan fitur di mana pengguna kami dapat "Terima" gambar setelah ditambahkan ke antrian alur kerja. Ternyata, kami menggunakan istilah yang salah, dan pengguna sebenarnya "Menyetujui" gambar.
Mengubah Accept to Approve pada antarmuka kami mudah, cukup ganti satu kata. Tapi kami memprogram semua layer dengan kata "accept", dari nama kelas CSS ke nilai database.
- Kelas CSS yang mengubah tombol menjadi hijau: ".accepted";
- Metode model yang memverifikasi dan mengikat atribut kelas pada simpul DOM: "isAccepted";
- Atribut status JavaScript: Array dengan "tidak direview", "diterima" dan "diterbitkan";
- Kolom status Mysql: ENUM dengan "tidak ditinjau", "diterima" dan "diterbitkan";
- Nama uji;
Itu sepele (khususnya ketika Anda memiliki tes) untuk menggantikan sebagian besar penerimaan untuk menyetujui. Sedikit lebih sulit adalah untuk memigrasikan data, khususnya karena perlu disinkronkan dengan penyebaran.
Kasus spesifik ini sederhana, tetapi saya pernah menghadapi kasus serupa, namun lebih kompleks, selama karier saya. Ketika file juga diganti nama dan penyebaran terjadi di puluhan server, atau ketika caching proxy, memcached dan mysql terlibat.
Meninggalkan "diterima" di setiap lapisan lain kecuali antarmuka adalah ide yang buruk, karena pemrogram baru yang bergabung dengan tim mungkin tidak mempelajari alasan historis yang menyebabkan keputusan ini, dan ketika menerima -> setujui adalah kata-kata dekat dalam hal makna, jika itu diubah namanya menjadi "antrian untuk pertemuan status manajerial berikutnya", itu tentu tidak masuk akal. Dan rasanya jika kita berkompromi di sana-sini, dalam beberapa iterasi konsep antarmuka pengguna tidak akan memiliki kaitan dengan sistem internal, dan saya pasti tidak ingin bekerja pada sistem di mana setengah dari output tidak memiliki koneksi ke jeroan.
Jadi, apakah Anda selalu mengganti nama semuanya saat dibutuhkan? Jika ini terjadi pada Anda, dan Anda memutuskan bahwa pertukaran itu tidak layak, apakah itu kembali menggigit Anda? Apakah komentar kode atau dokumentasi pengembang cukup untuk menghindari masalah ini?