Bercakap-cakap dengan seseorang tentang menambahkan beberapa kode inisialisasi pada startup aplikasi dan dia mengeluh tentang hal itu menyebabkan peningkatan waktu startup. Dia tidak bisa benar-benar menyatakan alasan (firasat atau sesuatu, tidak tahu). Ini bukan aplikasi yang banyak digunakan dan dimulai sekitar satu menit atau lebih, kami menyebarkan beberapa kali setahun.
Saya ingat pernah membaca saran tentang pertanyaan pada SO beberapa waktu lalu, orang yang menyarankan untuk menginisialisasi pada startup alih-alih pada akses halaman dengan cap "jika Anda mampu membayar penalti".
Saya telah bekerja dengan aplikasi web yang dimulai dari 30 detik hingga 4-5 menit tetapi begitu online mereka bergoyang.
Jadi apa yang saya lewatkan? Kecuali itu aplikasi penting seperti ... Saya tidak tahu ... untuk pasar keuangan, aplikasi medis, eksplorasi ruang angkasa dll, apakah benar-benar penting saat startup?
PS Saya benar-benar merujuk ke aplikasi web, aplikasi desktop terikat untuk mulai cepat kilat.
sumber
Jawaban:
Ini bisa menjadi faktor besar selama pengembangan: jika platform Anda tidak mendukung perubahan kode dalam aplikasi yang berjalan, maka waktu startup menjadi bagian dari siklus umpan balik Anda, dan di sana, bahkan 30 detik terasa menyakitkan dan merupakan ancaman terhadap produktivitas.
Untuk lingkungan produksi, itu tidak masalah; entah downtime kecil dapat diterima dan 5 menit masih tidak banyak, atau tidak dan Anda harus menerapkan semacam peralihan langsung.
sumber
Saya percaya ini adalah kasus ketika prinsip dialektis Hegel yang terkenal tentang transisi dari kuantitas ke kualitas benar-benar berfungsi.
Anda lihat, waktu selalu penting. Saya setuju dengan kata-kata Michael Borgwardt tentang pentingnya membangun cepat selama pengembangan / pengujian, tetapi saya bersikeras bahwa (mungkin dengan cara lain) itu juga sangat penting untuk produksi.
Setiap pengembang yang menggunakan beberapa kode buruk untuk produksi tahu bahwa perbaikan terbaru yang disediakan dalam 5 menit dan dalam 1 menit adalah hal yang benar-benar berbeda.
sumber
Pertanyaan sebenarnya adalah apakah aplikasi akan bekerja tanpa inisialisasi. Kami memiliki karyawan baru yang terobsesi dengan "kinerja", jawaban saya adalah saya tidak peduli seberapa cepat Anda memberikan hasil yang salah. IMHO memotong sudut, algoritma mangling karena "akan lebih cepat dengan cara ini", dan ide-ide hebat lainnya hanya memperkenalkan bug.
Jika inisialisasi diperlukan maka lakukanlah. Berapa banyak waktu yang terbuang ketika pengguna akhir mendapatkan hasil yang salah, akhirnya mengetahui bahwa aplikasi web salah, menelepon Anda dan mengeluh, dan Anda harus kembali dan men-debug / memperbaiki / menguji / memindahkan kembali? sekarang tanyakan kepada kolega Anda bagaimana waktu telah dihemat. (Dan saya berani bertaruh inti server Anda 99% diam)
sumber
Pertanyaan ini tidak menanyakan tentang platform tertentu. Ada beberapa platform di mana waktu startup sangat penting.
Misalnya, di Google App Engine; jika halaman Anda tidak diakses (atau lebih tepatnya, diakses lebih jarang dari aplikasi lain pada node yang sama), itu akan dibongkar sesekali.
Jadi, jika Anda berada di bawah 99% dari frekuensi akses situs, maka waktu startup adalah waktu akses; aplikasi Anda sedang dimulai ulang di hampir setiap akses. jika Anda berada di 1% teratas, maka aplikasi Anda memulai banyak node, dan meskipun banyak akses halaman akan kembali dari instance yang sudah dimulai, beberapa masih tidak, dan Anda akan memiliki waktu akses yang lama dan lama, .
Hal yang sama juga berlaku pada banyak lingkungan hosting lainnya. Kebocoran di perpustakaan pihak ketiga, atau bahkan dalam kode Anda sendiri yang hanya menghindari penemuan, mungkin berarti bahwa satu-satunya cara yang dapat diandalkan untuk menjalankan layanan web Anda adalah dengan memuat ulang setiap begitu banyak permintaan (seringkali antara 100 hingga 10.000), dan sebagainya waktu mulai dibayar sering. Menggunakan pola ini dapat diterima saat aplikasi bocor, tetapi mulai dengan cepat; itu tidak berfungsi ketika aplikasi membutuhkan waktu lebih dari beberapa detik untuk memulai.
sumber
Anda menjalankan risiko aplikasi Anda dianggap di bawah standar atau lebih buruk lagi, kemampuan pengembangan Anda. Sekarang, aplikasi ini mungkin menghemat banyak waktu dan / atau melakukan tugas yang dibutuhkan sehingga pengguna yang berterima kasih dapat melihat melewati startup yang panjang.
Mungkin butuh waktu lebih lama untuk memprogram sedemikian rupa untuk memuat aplikasi dengan malas, tetapi hanya para pemangku kepentingan yang dapat menentukan apakah itu layak. Saya punya laporan yang berjalan dalam 55 detik. dan kami turun ke 35. Tidak ada yang memperhatikan. Meskipun saya menghabiskan dua kali lebih banyak waktu untuk mendapatkannya dari usia 35 hingga 18 tahun, semua orang memperhatikan dan berterima kasih dan terkesan. Pergi dari 5 hingga 3 menit untuk aplikasi yang digunakan beberapa kali setahun bukanlah masalah besar. Pengguna hanya akan memiliki lebih sedikit waktu untuk dihabiskan di Facebook atau mendapatkan kopi.
Persepsi adalah kuncinya. Jika perusahaan tidak senang dengan tim pengembang secara umum dan aplikasi ini secara khusus, Anda mungkin ingin membangun niat baik dan mempercepatnya.
sumber