強制的にその認識を矯正する方法のひとつとして、Haskellをやってみるというのもよいかも知れない。なんたって、この言語には「動き」がない*4。関数の定義を書いていって定義を積み上げた物がプログラム。定義の中身がどういう順番で動くか解らない。荒療治だが、他にも色々学べる事が多いと思う。詳細を見るWebにHaskellの情報は結構あるけど、大半が玄人向け。Haskell)」というドキュメントがあるが、これは「天才な人にはやさしい」という意味なので要注意。ふつうの人には、この本がふつうの意味でやさしいくていい感じ。興味が湧いた人には、まずこの本を読むのがお勧め。あと、同様に動く順番不明での書き方がある言語「Oz」。その言語とともに、プログラミングの色んなモデルを学んで視野を広げられる、通称「CTMCP(または「ガウディ本」)」も紹介しておく*5。読んでくれた方、賛同してくれた方、ありがとうございます。皆さんが苦しんでいるように(?)自分も周りに十分理解を得られてるとは言えないので、疑問には答えたいと思っています。一方的に勝手に答えてしまいます。その「必要な動き」って例えばデータベースが極端に遅い場合に、同じデータを複数回読まないようにするためには・・とやると一気にソースは汚れるけど、やるなともいい難かったりする。http://b.hatena.ne.jp/thesecret3/20090517#bookmark-13499672最終的に動くのは当然の事実で、事実を無視しては正しい定義は確かに書けませんね。それはたとえば、「DBから○○を取ってきた結果」じゃなくて「このリクエスト処理のスコープにおける○○のデータ」というような語彙を用意してやって、それを使うというような解決になるのではと思います。本当は○○のデータが要らないのであれば使わないに超したことはなく、それは定義から無駄を省くことに他ならないと思います。意識が必要なことは要件として対象として意識して、使う・用意する語彙を工夫して不要な依存(DBアクセス)を排除するという事自体が、「それは何?」でプログラムを書くことだと思います。http://b.hatena.ne.jp/h_tksn/20090517#bookmark-13499672えええ〜〜〜っ!?な、なんで?というか、その「結論」って?。☆を付けてるid:polyamidも教えてください。あ、HaskellとOzは、全然必須じゃないですよ。すごく役に立って面白いハズだけど、興味がある人だけで。興味がなければ、「プログラム=対象の定義」「正しい名前を付けて、正しい名前である事を維持する」という鉄の意志を持ってそれを実行してれば十分だと思ってます。紛らわしかったのではっきり「おまけ」と書き直しました。正しい名前を付け、その通りの処理内容にする。/でも自分は分割されまくったコード読むのが苦手。辞書のまた引き状態になって目的を見失う(後半について)そこで「正しい名前」ですよ!「また引き」になるのは、関数・メソッドが出てくる度にその中身を読みに行くからですよね?中身を見に行かなくても名前を見るだけで「それは何?」のキモが解るようにしてあれば、中身を読みに行かなくても大体解るはず。最初に読んでる関数・メソッド自体も、一言で名付けられる位短い物になっていれば、「先(使ってる関数・メソッドの中身)」を読みに行く事無しにその関数・メソッドの全体のキモ・概要を把握出来ます。「先(使ってる関数・メソッドの中身)」を読みに行くことなくその処理のキモ・概要を把握して、それから必要に応じて詳細を確認するために「先」を見に行く、ってのがよいと思ってます。これが出来るようにソースを書いて、こういう読み方になれると、長々じっくりと大量のソースを読み込む必要なく、さっくりと処理のキモ・概要が把握する事も可能になるので、実際のプログラミングでは超絶便利です。*1:こっちから勝手にリクエストしたんだけど^^*2:やってくれなかったらきれい汚い以前の問題*3:遙か昔で忘れてしまったが、ナイコン(年がばれるw)の身で図書館で借りたBASICの本*4:乱暴な言い方だけど*5:紹介しておきながら、自分は積ん読状態...。...2008-10-28逃げる位なら「正しいプログラミングテクニック」を盲信しとけ!いや、本当は盲信じゃなくてちゃんと理解すべき。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事[ソフト開発][ネタ]わかりやすいプログラムの書き方そのソースコードが汚い理由:共通した根源的な間違いきれいなソースに重要なのは、よい名前というより...きれいなソースコードを書くために必要な、たったひとつの単純な事さあ、Yコンビネータ(不動点演算子)を使おう!月別アーカイブはてなブログをはじめよう!r-westさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。