Waktu Terbaik Menemukan Bug Tidak Ada di Produksi
Kebanyakan pengembang tidak terlalu memikirkan menulis kode. Yang mereka khawatirkan adalah menemukan terlalu lambat bahwa kode berperilaku berbeda dari yang diharapkan. Membaca dokumentasi pengujian Newton mengubah cara saya memandang masalah itu. Kami meninjau foto sebelum mempostingnya dan memeriksa petunjuk sebelum perjalanan jauh. Menerapkan sebuah kebijakan tanpa mengujinya mulai terasa seperti melewati dua langkah tersebut.
Dokumentasi Newton mengikuti prinsip sederhana: uji dulu, deploy kemudian. Pengembang dapat memvalidasi komponen tertentu atau mensimulasikan seluruh alur kerja sebelum apa pun mencapai blockchain. Langkah terakhir, simulatePolicy(), mengumpulkan data oracle, mengevaluasi kebijakan Rego, dan menunjukkan apakah hasilnya akan mengizinkan (allow) atau menolak (deny) sebelum deployment.
Di titik itulah dokumentasi berhenti terasa seperti panduan debugging bagi saya. Dokumentasi itu mulai menjawab pertanyaan yang sering ditanyakan pengembang hanya setelah sesuatu rusak: "Apa sebenarnya yang akan dilakukan kebijakan ini?" Alih-alih menemukan jawabannya lewat transaksi yang gagal, simulasi memperlihatkan keputusan saat perubahan masih aman dan biayanya murah.
Newton juga memisahkan pengujian ke dalam beberapa tahap. simulatePolicyData() memeriksa apakah oracle mengembalikan data yang diharapkan. simulatePolicy() memvalidasi alur otorisasi lengkap. simulateTask() membantu memutar ulang tugas yang sudah ada saat proses debugging. Setiap alat berfokus pada satu masalah alih-alih mencoba menyelesaikan semuanya.
Satu keterbatasan yang layak diingat. simulateTask() berjalan secara lokal, jadi tidak menguji keseluruhan pipeline Operator. Pengembang tetap perlu simulatePolicy() untuk memvalidasi alur eksekusi lengkap sebelum deployment.
Inti yang saya ambil adalah sistem yang andal tidak dibangun dengan menghindari kesalahan. Sistem yang andal dibangun dengan menemukan sebagian besar kesalahan sebelum pengguna bahkan melihatnya.
Sumber: Dokumentasi Newton Protocol (Testing & Debugging, Testing Policies & Oracles, SDK Reference). Analisis pribadi hanya jika dinyatakan secara eksplisit. NFA.DYOR. #Newt $NEWT @NewtonProtocol
Kebanyakan pengembang tidak terlalu memikirkan menulis kode. Yang mereka khawatirkan adalah menemukan terlalu lambat bahwa kode berperilaku berbeda dari yang diharapkan. Membaca dokumentasi pengujian Newton mengubah cara saya memandang masalah itu. Kami meninjau foto sebelum mempostingnya dan memeriksa petunjuk sebelum perjalanan jauh. Menerapkan sebuah kebijakan tanpa mengujinya mulai terasa seperti melewati dua langkah tersebut.
Dokumentasi Newton mengikuti prinsip sederhana: uji dulu, deploy kemudian. Pengembang dapat memvalidasi komponen tertentu atau mensimulasikan seluruh alur kerja sebelum apa pun mencapai blockchain. Langkah terakhir, simulatePolicy(), mengumpulkan data oracle, mengevaluasi kebijakan Rego, dan menunjukkan apakah hasilnya akan mengizinkan (allow) atau menolak (deny) sebelum deployment.
Di titik itulah dokumentasi berhenti terasa seperti panduan debugging bagi saya. Dokumentasi itu mulai menjawab pertanyaan yang sering ditanyakan pengembang hanya setelah sesuatu rusak: "Apa sebenarnya yang akan dilakukan kebijakan ini?" Alih-alih menemukan jawabannya lewat transaksi yang gagal, simulasi memperlihatkan keputusan saat perubahan masih aman dan biayanya murah.
Newton juga memisahkan pengujian ke dalam beberapa tahap. simulatePolicyData() memeriksa apakah oracle mengembalikan data yang diharapkan. simulatePolicy() memvalidasi alur otorisasi lengkap. simulateTask() membantu memutar ulang tugas yang sudah ada saat proses debugging. Setiap alat berfokus pada satu masalah alih-alih mencoba menyelesaikan semuanya.
Satu keterbatasan yang layak diingat. simulateTask() berjalan secara lokal, jadi tidak menguji keseluruhan pipeline Operator. Pengembang tetap perlu simulatePolicy() untuk memvalidasi alur eksekusi lengkap sebelum deployment.
Inti yang saya ambil adalah sistem yang andal tidak dibangun dengan menghindari kesalahan. Sistem yang andal dibangun dengan menemukan sebagian besar kesalahan sebelum pengguna bahkan melihatnya.
Sumber: Dokumentasi Newton Protocol (Testing & Debugging, Testing Policies & Oracles, SDK Reference). Analisis pribadi hanya jika dinyatakan secara eksplisit. NFA.DYOR. #Newt $NEWT @NewtonProtocol