1. Tulis beberapa konfigurasi yang perlu diubah di file properti
Misalnya, jumlah utas yang digunakan ketika beberapa eksekusi bersamaan tidak diatur untuk dikonfigurasi dalam file properti. Kemudian program Anda dapat berjalan dengan lancar dan tanpa hambatan di kedua lingkungan DEV dan menguji lingkungan, tetapi setelah digunakan pada prod dan memproses set data yang lebih besar sebagai program multi-utas, iOException akan dilemparkan. Alasannya mungkin karena lingkungan online secara bersamaan menyebabkan sesuatu yang lain. Jika jumlah utas dapat dikonfigurasi dalam file Properties, sangat mudah untuk menjadikannya aplikasi berulir tunggal. Kami tidak perlu lagi berulang kali menggunakan dan menguji aplikasi untuk menyelesaikan masalah. Metode ini juga cocok untuk mengkonfigurasi URL, server, dan nomor port.
Disarankan untuk menggunakan file atribut untuk mengeksternalisasi konfigurasi ini, dan format file OK dengan properti, YAML, Hocon, dan JSON. Kelas berikut mengimplementasikan dukungan injeksi musim semi untuk file dalam format ini, termasuk dukungan placeholder.
https://github.com/superhj1987/awesome-libs/blob/master/src/main/java/me/rowkey/libs/spring/config/awesomepropertyplaceHolderConfigurer.java
2. Simulasi lingkungan online sebanyak mungkin selama tes
Skenario khas dalam proses produksi adalah hanya menggunakan 1 hingga 3 akun untuk pengujian, dan jumlah ini harus 1.000 hingga 2.000. Saat melakukan pengujian kinerja, data yang digunakan harus benar dan tidak terkena. Pengujian kinerja yang tidak dekat dengan lingkungan nyata dapat membawa kinerja, ekspansi, dan masalah multithreading yang tidak terduga. Di sini kita juga dapat menggunakan lingkungan pra-rilis untuk menyelesaikan beberapa masalah.
3. Pemrosesan toleran terhadap kesalahan harus dilakukan untuk semua panggilan eksternal dan layanan internal.
Apakah itu panggilan RPC atau panggilan layanan pihak ketiga, kami tidak dapat menerima begitu saja bahwa ketersediaannya adalah 100%. Timeout panggilan layanan dan coba lagi tidak diizinkan, yang akan mempengaruhi stabilitas dan kinerja aplikasi.
4. Sistem harus mengikuti prinsip izin minimum saat merancang sistem keamanan
Layanan web ada di mana -mana, memungkinkan peretas untuk dengan mudah mengeksploitasi untuk penyangkalan serangan layanan. Oleh karena itu, saat merancang suatu sistem, Anda perlu mengikuti prinsip "izin minimum" dan mengadopsi daftar putih dan metode lainnya.
5. Dokumen -dokumen berikut diperlukan
Tulis dokumentasi uji unit dan memiliki cakupan kode yang baik.
Gambar desain tingkat tinggi: Menjelaskan semua komponen, interaksi, dan struktur.
Gambar desain terperinci: Khusus untuk desain level kode dan beberapa proses logika utama.
Dokumen Komposisi Sistem: Menjelaskan semua file komposisi, file konfigurasi, dll. Dari sistem.
Dokumen DML dan DDL tingkat basis data, terutama pernyataan kueri SQL, perlu melalui DBA atau ulasan pengembang inti sebelum dapat diluncurkan.
Tidak hanya untuk proses pembangunan tradisional, tetapi bahkan untuk pengembangan yang gesit, dokumen -dokumen ini sangat penting, jika tidak, hal itu akan menyebabkan ketidaknyamanan besar dalam pemeliharaan dan penyerahan selanjutnya.
6. Lakukan pekerjaan yang baik dalam pemantauan, pemulihan kesalahan, cadangan dan fungsi kunci lainnya dari sistem
Untuk beberapa modul fungsional penting dari sistem, mereka harus dipantau untuk mencegah mereka mempengaruhi pengoperasian sistem dan menyebabkan kerugian yang tidak diuji. Selain itu, jika memungkinkan, cobalah untuk pulih setelah memantau kesalahan, dan kirim alarm jika pemulihan gagal. Untuk beberapa file data yang sangat penting, cadangan yang berlebihan harus dilakukan untuk mencegah beberapa kegagalan mendadak dan kehilangan data.
7. Desain beberapa kolom yang mudah dilacak dan mengatur saat merancang database.
Misalnya, create_time dan update_time dapat menunjukkan waktu kreasi dan perbarui catatan. create_by dan update_by dapat menunjukkan siapa yang membuat dan memperbarui catatan.
Selain itu, menghapus catatan terkadang tidak benar -benar dihapus. Pada saat ini, perlu merancang kolom yang mewakili status catatan ini, seperti kolom 'aktif' atau 'tidak aktif' 'status'.
8. Buat Rencana Rollback Proyek
Ketika fungsi baru diluncurkan, jika tidak ada rencana rollback, itu mungkin sedang terburu -buru dan menyebabkan layanan online menjadi tidak tersedia untuk jangka waktu tertentu. Ada rencana rollback yang bagus yang memungkinkan Anda untuk melakukan operasi terkait dengan cara yang tertib dan mengembalikan sistem ke keadaan yang dapat dijalankan dalam waktu yang dikendalikan.
9. Sebelum proyek diluncurkan, analisis kuantitatif harus dilakukan
Analisis kuantitatif harus dilakukan untuk memori, database, file, cache, dll. Digunakan dalam proyek. Ini memperkirakan pekerjaan ruang di masa depan dan memberikan referensi untuk alokasi mesin operasi dan pemeliharaan. Mencegah penyimpanan yang tidak mencukupi disebabkan oleh pertumbuhan volume data yang cepat. Ini sangat penting, jika tidak mudah untuk menyebabkan layanan online tidak tersedia.
10. Kembangkan rencana penyebaran sistem.
Platform untuk penyebaran sistem adalah bagian penting. Deskripsi platform penyebaran tidak dapat dibatasi pada satu server atau dua database, setidaknya perlu dimasukkan
11. Pilih alat/teknologi yang paling cocok
Dalam banyak kasus, pengembang menggunakan bahasa atau alat yang ingin mereka pelajari dalam sistem produksi. Biasanya ini bukan pilihan terbaik. Misalnya, gunakan database NoSQL untuk data yang sebenarnya sudah merupakan bentuk relasional. Apakah itu bahasa atau alat, ada skenario yang berlaku. Kami tidak dapat mencari inovasi, kami juga tidak dapat menggunakan "diri" sebagai standar.
12. Memiliki cadangan pengetahuan yang cukup di beberapa bidang teknis utama.
Pola desain
JVM Tuning "Masalah Konkurensi" Multi-Threaded
Masalah transaksi, termasuk masalah kinerja transaksi terdistribusi, termasuk GC, komputasi dan cache lainnya
Melalui artikel ini, saya harap teman -teman yang dapat membantu mengembangkan program Java, terima kasih atas dukungan Anda untuk situs web ini!