2024-01-29

[] 速度とシンプルさにトレードオフがあるという神話

pythonコードの速度のボトルネックを見つけるにはline_profilerが使える。

ゲーム感覚ボトルネック特定し、段階的に改善する。

だが一部の開発者は「速度に凝り過ぎるとコードが読みづらい」という。

これには異論がある。

大幅に速度を改善するようなコード改善は、むしろコードシンプルに保つ上でも重要な働きがある。

傾向としては、マルチプロセッシングなどを使わずに速度を改善した場合は、プログラムの長さは減少する。

速度を改善すれば、特定の出力をするコードの最小長(コルモゴロフ複雑性)に近づく。

速度改善によってわかりにくくなるという人は、数学ができないのかもしれない。

物理学では、変数単一文字で表すことが多いが、こういうのに慣れていると「シンプル」の概念に差が開く。

こういった科学的な「シンプルさ」を理解できない人に対して、意味説明する形で変数名を決めても、結局コード理解できないだろう。

かにビジネスドメインに近いコードであれば変数名をドメイン語に合わせるのがわかりやすい。

しかし「ボトルネック改善しなければシステム要件通りの速度にならない」ようなケースでは、数学的なコードの方がわかりやすくなるのである

  • 安心してください ビジネスに興味のある人たちは速度も要件に含めないといけないなんて知らないので問題ありません

  • こう言う話 コードを出さないで話しても時間の無駄

    • ソフトウェアアーキテクチャの本とか読んだことないん? コードがない本とか普通にあるで

      • 今、アーキテクチャの話してたか?

        • 品質要件のトレードオフはアーキテクチャの話

          • 設計とアーキテクチャを混同してないか

            • お前の独自定義の能書は聞きたくない しゃしゃり出て来んでいい

            • ソフトウェアアーキテクチャにおいては、品質要件のトレードオフが重要な要素となります。 これは、全てのビジネス要件や状況に適合する万能のアーキテクチャは存在しないため、ど...

    • 「プログラマーが知るべき97のこと」とか読解力ないお前じゃ理解不可能っぽそうw

  • 可読性を気にするならPythonを使うなよ

    • pythonって可読性低いの? 昔は教育用に使われていて読みやすいとか喧伝されてたような記憶があるが。

  • 典型的な自称中級者プログラマーじゃん

    • 確かに私は自称中級者ですが、たぶんあなたよりマシだと思いますよ

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん