Dalam Zen Python, saya dapat memahami sebagian besar dari itu, kecuali:
Now is better than never.
Although never is often better than *right* now
Jadi saya pikir melakukannya sekarang atau mendapatkan hasil sekarang lebih baik daripada tidak sama sekali. Tetapi mengapa "tidak pernah lebih baik daripada * sekarang *"? Atau apa artinya?
Untuk melihat 2 baris di atas dalam konteks, ini adalah seluruh Zen Python:
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
Jawaban:
Bagian pertama, "sekarang lebih baik daripada tidak pernah sama sekali", adalah mantra menentang penundaan. Ini mengungkapkan gagasan bahwa, jika Anda tidak melanjutkannya, Anda tidak akan pernah bisa melakukannya.
Bagian kedua, "tidak pernah sering lebih baik daripada saat ini , adalah ekspresi dari prinsip YAGNI . Idenya adalah bahwa Anda harus" Selalu menerapkan hal-hal ketika Anda benar-benar membutuhkannya, tidak pernah ketika Anda hanya meramalkan bahwa Anda membutuhkannya ", karena Anda sering temukan bahwa Anda sebenarnya tidak membutuhkannya, dan kemudian temukan bahwa Anda baru saja membuang-buang usaha.
... yah, itu pemahaman saya. Tetapi Anda harus meminta penulis untuk memastikan.
sumber
Bisa jadi soal evaluasi malas.
Contoh:
vs.
Di mana yang pertama tidak melakukan banyak hal sampai nilai dibutuhkan tetapi yang terakhir mengalokasikan array yang besar.
Atau logging
vs.
Di mana yang pertama tidak membuat string kecuali logging benar-benar diaktifkan.
sumber
Saya pikir, ini berlaku untuk proses desain bahasa itu sendiri, bukan hanya aplikasi. "Sekarang lebih baik daripada tidak sama sekali." dan "Meskipun tidak pernah sering lebih baik daripada yang tepat sekarang." adalah tentang menemukan keseimbangan yang tepat untuk waktu dan kualitas implementasi. Itu sama dengan sisa Zen. Dan, tentu saja, Zen tidak memiliki makna tunggal, berdasarkan desain.
sumber
Saya pikir baris pertama mengacu pada campuran perfeksionisme dan prokrastinasi. Lebih baik menyediakan sesuatu sekarang yang berfungsi, bahkan jika fungsionalitasnya dasar atau kode "belum sempurna", daripada mengerjakannya selamanya sampai Anda kehabisan tenaga dan kode itu akhirnya mati.
Adapun baris kedua, saya pikir target implementasi terburu-buru. Biasanya, hal-hal yang Anda kode memiliki dampak yang sangat tahan lama setelah dirilis. Terkadang, seseorang mungkin tergoda untuk dengan cepat mengirimkan sesuatu, terutama karena tekanan, yang akan berubah menjadi beban untuk tahun-tahun berikutnya. Ini disebut "utang teknis": keputusan desain yang buruk, antarmuka yang buruk, atau konstruksi yang buruk menyebabkan banyak masalah. Kode jarang sendirian, banyak kode lain dengan cepat dibangun di atasnya, dan jika Anda membuat keputusan yang buruk, Anda terjebak dengannya. Karena itu, jangan buru-buru merilis, pastikan itu hal yang baik.
sumber