2019-07-16

[]「宣言的に書ける」がわかった気がする

もっと厳密に言えば宣言的に書けることのメリット

 

逆に「宣言的に書けない」というのは、たぶん処理の順序を変えたら意味が変わってしまうみたいなやつじゃないか

すなわち逐次的だと思うんだけど、あってるかな

 

これのメリットは、少しは理解していたつもりだったんだけど

宣言的に書けるようにするコスト」とメリットを比べたら大して旨味がないんじゃないかとも思っていた

 

でもそうじゃないなと思えたのが画面のレイアウト

例えばiOSのAutolayoutは嫌いな人が多いが、あれは宣言的だ

順序に依存していない(そもそもInterfadeBuilder上に順序は存在しない)

 

最近あるプロジェクトでそれを使わず昔ながらの方法で書いているんだが

順序に依存しすぎていて非常に怖いし、頭を使うし、バグが多くなる

コードでも宣言的にレイアウトを組めるかもしれないが、多分かなり大変だ

宣言的に書ける仕組みを予め用意されているというのは大きなメリットを感じる

 

なぜレイアウトでそれを強く感じたかと言えば、view毎の依存関係が多いからだ

オブジェクト同士が1:1で依存していたり、1:2で依存していても「宣言的」に大した魅力を感じないのだが

1:3とか1:5とかなってくるとかなり魅力的にうつってくる

まり適材適所なんだろう

 

レイアウト以外でそういった過密依存を書くシーンはなんだろうね

例えばModelとか? あとはSingletonみたいなやつもか

まあ基本的宣言的に書ければ、読む必要が減るので単純に楽ってのもあるんだけど

でもやりすぎるとあっちこっちに処理の流れが飛ぶから見づらい

連立方程式解いてる気分になるからほどほどがいい

しかちゃんと書いた人が組めている保証もないからな(そうか、基本的共通処理を書くような感じになるから抽象的になっちゃうんだな)

  • 人はロジックよりデータ構造のほうが理解しやすく修正しやすいので、なるべく宣言的に書けるようにするのが望ましい ということだと思うけど 「宣言的に記述」を実現するためには、...

    • 俺は半分古い考えだから両方気持ちがわかる 例えば順序がわかりやすいとか、順々に処理するものとか、文章に近いフローの処理は昔通り書いたほうが読みやすいだろうけど そうじゃな...

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

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