PythonプログラミングとPythonicであるために、なぜ「今のところ*現在*よりも優れていないことが多い」のですか?[閉まっている]


8

Zen of Pythonでは、以下を除くほとんどの部分を理解できます。

Now is better than never.  
Although never is often better than *right* now

ですから、今それを行うか、結果を得ることが今よりも良いと思います。しかし、なぜ「今のところ、*現在*よりもよくない」のはなぜですか?それはどういう意味ですか?

上記の2行のコンテキストを確認するには、PythonのZen全体を次に示します。

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!

2
クロスネットワーク
重複

回答:


12

最初の部分、「今は決して良くない」は、先延ばしに対する反対のスローガンです。うまくいかないと、二度と乗り越えられない、という発想です。

第二部では、「多くの場合よりも良好であることはありません、今の発現されたYAGNIの原則。アイデアは、あなたがすべきことである『あなたが実際にそれらを必要なときにあなただけの』あなたがそれらを必要とすることを予測したときに必ず理由は、多くの場合、物事を決して実現しません結局のところ、それらを必要としないことを確認してから、努力を無駄にしてしまったことを発見します。

...まあ、それは私の理解です。しかし、あなたは作者に確認を求めなければなりません。


2
Chuck Mooreからの引用には、この感情をうまく表現しているように思われます。拡張機能を掛けられるフックを残さないでください。やりたいことは無限です。つまり、実現の可能性はそれぞれ0です。後で拡張機能が必要な場合は、後でコード化できます。おそらく、今拡張した場合よりも優れた作業を行うことができます。他の誰かが拡張機能を追加した場合、彼はあなたが残したフックに気付くでしょうか?プログラムのこの側面を文書化しますか?」
ジョンパーディ2016

2

それは怠惰な評価についてかもしれません。

例:

xrange(1000000)

range(1000000) 

前者は値が必要になるまでほとんど機能しませんが、後者は大きな配列を割り当てます。

またはロギング

log("Stuff happened for %s ",  something)

log("Stuff happened for %s " % something)

ログが実際に有効になっていない限り、最初の文字列は文字列を作成しません。


1

これらはアプリケーションだけでなく、言語設計プロセス自体にも当てはまると思います。「今は決してないよりはましだ」そして「決してますが、多くの場合よりも良好である右の今。」時間と実装の品質の適切なバランスを見つけることです。それは他の禅と同じです。そしてもちろん、Zenには設計上の単一の意味はありません。


1
はい、私はそれを見て、それが陰と陽のようであることを発見しました:陰は陽よりも陽、陽は陰より良いですか?ちょうどいいバランスかもしれません。
非極性2016

1

今は決してないよりはましです。
多くの場合よりも良好であることはありませんが、右の

最初の行は完全主義と先延ばしの混合を指していると思います。機能が基本的であるか、コードが「まだ完全ではない」場合でも、機能するものを提供する方が、スチームが尽きコードが完全に機能しなくなるまで永遠に機能するよりも優れています。

2行目については、急ぎの実装をターゲットにしていると思います。通常、コード化したものは、一度リリースされると非常に長期的な影響を与えます。時々、人は何かを、特にプレッシャーから、すぐに発送したいと思うかもしれません、そしてそれは何年もの間負担になるでしょう。それは「技術的負債」と呼ばれます。不十分な設計決定、不適切なインターフェース、または単に不十分な構成は、将来、多くのトラブルにつながります。コードが単独で使用されることはめったになく、他の多くのコードがすぐにその上に構築されます。誤った決定をした場合は、それで立ち往生します。したがって、急いでリリースしないでください、それが素晴らしいものであることを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.