javascriptを深く掘り下げるほど、特定の設計上の決定と奨励された実践の結果について考えるようになります。この場合、JavaScriptが提供するだけでなく、強く使用されている機能である無名関数を観察しています。
私たちは皆、次の事実に同意できると思います。
- 人間の心は7プラスマイナス2エンティティを超えて処理しません(ミラーの法則)
- 深いインデントはプログラミングの悪い習慣と見なされ、3つまたは4つ以上のレベルをインデントすると、一般に設計上の問題が指摘されます。これはネストされたエンティティにまで及び、PythonZenのエントリ「フラットはネストされたものよりも優れています」によく示されています。
- 関数名を持つという考えは、参照用であり、実行するタスクを簡単に文書化するためでもあります。removeListEntry()と呼ばれる関数が何をするかを知っているか、期待できます。自己文書化された明確なコードは、デバッグと読みやすさにとって重要です。
無名関数は非常に優れた機能のように見えますが、その使用は深くネストされたコード設計につながります。コードはすばやく記述できますが、読み取るのは困難です。機能の名前付きコンテキストを発明し、呼び出し可能なオブジェクトの階層を平坦化することを余儀なくされる代わりに、「深きものども」を促進し、脳のスタックを押し上げ、7+/-2ルールをすばやくオーバーフローさせます。同様の概念は、アラン・クーパーの「About Face」で表現されており、「人々は階層を理解していない」と大まかに引用しています。プログラマーとして、私たちは階層を理解していますが、私たちの生物学は依然として深い入れ子の把握を制限しています。
この点についてお聞きしたいのですが。匿名関数は有害であると見なされるべきでしょうか、後で塩であることがわかった明らかに光沢のある構文糖衣、あるいはネズミの毒でさえありますか?
正解がないのでCW。