私はいくつかのスクリプトを書いて、私は通常私のコードは次のようになりますポイントに達する:RubyのNの端をより良く見えるようにするには?
end
end
end
end
end
end
を私はあなたのことは知らないが、これは私にとって非常に醜いです。これについて何かできますか?
私はいくつかのスクリプトを書いて、私は通常私のコードは次のようになりますポイントに達する:RubyのNの端をより良く見えるようにするには?
end
end
end
end
end
end
を私はあなたのことは知らないが、これは私にとって非常に醜いです。これについて何かできますか?
:-)のPythonを使っていますか?より多くのメソッドを使用するリファクタリング?代わりに他のルーチンに渡されたブロックを使用しますか?
一般に、ディープネストは、メソッドが複雑すぎて分割されるべきであるという指標です。内在する複合文をリファクタリングしたメソッドに基づいて名前を付けることで、暗黙的な構造化文書の作成にも役立ちます。
これらの内部ブロックが何か簡単に名前を付けて(再利用可能かもしれませんか?)、それらを小さな別個の機能にリファクタリングしないのはなぜですか?それから、はるかに短い終わりのシーケンスで終わるでしょう。
は、そうでない場合は別のアプローチはあまりない巣あなたのコードを実行してください
誰かがPythonを提案してくれると確信していました:) – Geo
私は実際にPythonとPotion [http://github.com/why/potion/tree/master]の両方を念頭に置いていましたが、後者はもう少し実験的な味です。 ) –
小さな断片に分割するアドバイスは良いです。そのようなネストされたブロックがたくさん必要な場合は、end
というキーワードにコメントを付けてラベルを付けることができます。
end # End conditional statement
end # End method declaration
end # End class declaration
まだ醜いですが、少なくとも明確です。
上記以外のオプションが望ましい。
小さなテスト可能な機能を使用してください。あなたの機能とより重要なロジックはテストするのが簡単なだけでなく、コードが読みやすくなります。
Iは、ネストされた見ている "{}" のブロックと4-空間ソフトタブと:
端; END; END;エンド
Iこれは垂直方向のスペースを節約するとしたが、Iドン深いネスティングを避け、ブロック終了行をコメントする上のコメントは有効なアプローチです。深いネスティングは、スピードアップが必要なもののメソッドコールのオーバーヘッドを避けることですが、可読性はほとんどそのような「最適化」よりも優先されます。
これはRuby専用のものではありません。階段のコードは永遠に残っています。 – Pesto
Pythonはこれが面白いです。なぜなら、それは外側に階段を上っているだけなので、戻ってこないからです。私はそれがオプションではないことを知っていますが、それはPythonの設計目標の1つでした。 – Soviut