Draw sequence diagrams in seconds using this free online tool.
はじめに 関数型プログラミングとオブジェクト指向の抜き差しならない関係について整理して考えるという記事がkenokabeさんという方が挙げていて、拙著の 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡について言及があったので、補考として挙げておく。 暗黙的状態と明示的状態 これまで、関数を「わかりやすくきれいに書く方法」とオブジェクト指向が「どのようにして生まれてきたか」について話してきた。 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 一見、それぞれ関係ないように思うかもしれないが、実は大きなテーマでつながっている。 『それは「状態」をどのように取り扱い単純化するか。』ということだ。そして、これがいわゆる関数型プログラミングとオブジェクト指
情報システム学会(ISSJ)メールマガジン連載 「オブジェクト指向と哲学」 情報システム学会会員向けメールマガジンに寄稿中の連載記事は発行日から3カ月経過したものから全文一般公開されます。目次 2011.1.25 新連載 「オブジェクト指向と哲学:第1回」 「プロローグ」 巷の技術者向け書籍を読んで何か物足りない、薄っぺらな感じがするものが多い。哲学が感じ取れない。単なるノウハウもの、こうすればできるという実践書ならそれで用が足りる。それで良しとしてしまい何の疑問も問題意識も生じない。一方、海外の工学書からは読んでいて単なる技術以上の奥深さ、哲学が感じられる。翻訳に値する名著のみが日本に持ち込まれていることもあろう。これは表面的な技術力の差だけではない。名著には技術以前に哲学があり、思想がある。我々が学びとるのは単に実践的なテクニックのみで良いのだろうか?日本の工学書がどれだけ海外に翻訳さ
例の OOP の三大要素「カプセル化(≒情報隠蔽)」「継承」「ポリモーフィズム」は、有名なわりには「詠み人知らず」で、しかもあまり良いモノではありません。 sumim さんによれば、もともとはC++でのOOPを説明する要素から「抽象データ型」「継承」「動的結合」の三つが抜き出され、その後変化した物だと思われるそうです。(オブジェクト指向の概念の発明者は誰ですか?(改訂版) - Smalltalkのtは小文字です)。 そのようは背景から、「三大」は 静的OOPLに偏っており、しかも C++ 界隈ですら、C++ プログラミングスタイルの進化から取り残され、古びて現状に一致しなくなっており、21世紀に入ってからのまともな C++ 本で そのままを使っているのをわたしはみたことがありません。 この「三大」を 「OOPとは何か」の文脈で 取り上げるメリットはもうないのです。(デメリットならたくさんあ
あちこちのサイトを見てると、間違った解釈をしてるのが多い。カプセル化なんて、情報隠蔽まで含んでるのが常識になりつつあるような。。。ここまで一般化してると情報隠蔽してるのがカプセル化というのが常識なのかも。 カプセル化・情報隠蔽・データ抽象化 - 今日の役に立たない一言 − Today’s Trifle! − カプセル化と情報隠蔽、データ隠蔽の違いがよくわからくなったので、手持ちの本で調べてみた。 基準 基準としては、 カプセル化、情報隠蔽、データ隠蔽の関係 カプセル化は隠蔽を含んでいるかどうか 対象はクラスのみか、そうでないか などなど。 一番目はそのまんま。二番目は、 // 隠蔽せずともカプセル化か class Hoge { int hoge; // なんかhogeを使うメソッド } // 隠蔽しなければカプセル化ではないか class Piyo { private int piyo;
あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 「オブジェクト指向プログラミング」と「関数型プログラミング」のたった一つのシンプルな違い あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 この記事について この記事は新人向けの研修内容を再編集してお送りいたします。 ここで述べる内容はどのようにして現在のプログラミングスタイルが生まれてきたかを理解することで、よりよいプログラムを書くためのもので、正確なソフトウェア工学の歴史を学ぶためのものではありません。正確な歴史を把握したい場合は、原典をあたるようにしてください。 また、想定している読者は「よくあるオブジェクト指向プログラミングの学習」を既にし
はじめに Androidをはじめとするスマートフォンが盛り上がりをみせています。2011年上半期の携帯電話販売ランキングの上位はスマートフォンがほぼ独占、爆発的な増加となっています。 スマートフォンのシェアが急激に拡大する中、開発の現場にも変化が起こっています。スマートフォン案件の増加です。iPhone用のアプリをAndroidに対応する案件や、業務端末としてAndroidやiPadを使いたいといった案件が増えてきました。スマートフォンへの開発ニーズの高まりを感じます。 本稿はサンプルアプリの作成を通じてAndroid開発について解説していきます。 電卓アプリをサンプルとして使用しますが、よくある機能が限定されたようなサンプルではありません。実用に耐えうる電卓アプリの基盤を作成していきます。 本稿を読み終えた後は、電卓アプリにさらに機能追加が可能となりあなただけのカスタマイズ電卓が作成でき
2013-09-18 oop はどう定義されるべきだろうか? 純粋オブジェクト指向プログラミング 純粋オブジェクト指向プログラミングは以下のように定義できる: オブジェクトを使ったプログラミング。 オブジェクトとは何か? 他のオブジェクトへの参照を保持し、事前にリストアップされたメッセージを受信することができ、他のオブジェクトや自分自身にメッセージを送信することができるアトムで、他には何もしない。メッセージは名前とオブジェクトへの参照のリストから構成される。 これでおしまい。言い回しは僕が考えたものだけど、アイディアはオブジェクト指向という言葉を作った張本人 Alan Kay (2003) からのものだ。これ以外は、直接 oop に関係無いか、実装上の詳細だ。 この定義から導き出せるものを考えてみよう。 まずは名前空間だ。C の関数と違ってメッセージ (別名メソッド) はオブジェクトごとに
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く