3. 自己紹介 1992年~1997年 某ゲーム会社 プログラマ SFC,GB,PS1,N64のゲーム開発経験 1998年~現在 日本工学院八王子専門学校 @mozmoz1972 専任講師 プログラミング教育を中心に担当 twitterもfacebookも実名です。よかったらフォローしてください。
参考サイト † Code++ http://ameblo.jp/woooh-p/ Yohta's Object World http://www002.upp.so-net.ne.jp/ys_oota/ 結城浩 - The Essence of Programming http://www.hyuki.com/dp/dpinfo.html etc.... ↑ デザインパターンとは? † プログラム設計時に起こる典型的な問題とそれに対する解決策を整理し、再利用できるようにまとめたもの。 要は、プログラミングのノウハウ集です。 まずは、どのようなパターンがあるのかをおぼろげで良いので覚えておきましょう。 「あ、こんな処理書きたいな」という時に、この状況に合うパターンは無いかな・・・と調べられればとりあえず十分です。 ↑ 何が良いの? † 優れたパターンを再利用できる 有名なパターン
1. 分からない。いくら説明を読んでも分からない。 ● 1.1. 未だに分からない Java 的オブジェクト指向 今日び Java 的オブジェクト指向の説明なんて星の数ほどあるような気がしますが、それでもなお「これで分かった!」という説明に辿りつけない不運な人がいるようですね。まぁこんだけ色々な説明が溢れていたら逆にどれを読めば良いのかワケ分からなくなってしまうのかもしれません。じっくり読んでも理解できなかったのであれば、きっとその説明と読者の相性が悪かったんでしょう。… というわけで、僕も Java 的オブジェクト指向が全っっっっ然これっぽっちも分からないという人に向けて説明する記事を書こうと思います。そうでない人には無価値な記事ですのでブラウザの「戻る」をクリックしましょう。 ● 1.2. 「オブジェクト指向」という名の南の島がある オブジェクト指向にはいくつもの専門用語があって、学習
オブジェクト指向プログラミングの考え方については、今までこのブログでも何度か取り上げてきました。 [オブジェクト指向] - 達人プログラマーを目指して オブジェクト指向プログラミングはプログラミング技法のすべてではないとはいえ、Javaのようなオブジェクト指向言語で本格的なプログラムを作るには理解を避けて通ることができませんし、また、関数型言語など他のパラダイムの言語を利用するにしても、オブジェクト指向の考え方をまったく理解しないまま使いこなすということは困難でしょう。オブジェクト指向の考え方はデータ構造やアルゴリズムといったことと同様に、プロフェッショナルなプログラマーが理解しておくべき基本的な素養といってもよいと思います。実際、海外では募集要項でオブジェクト指向の理解を前提とすると書かれていることが普通ですし、プログラマーの面接試験で、アルゴリズムと並んでオブジェクト指向プログラミング
2011年11月08日10:22 カテゴリ 自分の周りに居る凄腕プログラマーが実際に読んでいる本 こんにちわ、VOYAGE GROUPでエンジニアをしている伊織といいます。 RubyKaigi2010/2011でスタッフをさせて貰ったりしています。 他にも渋谷rbランチなどに顔を出させて貰っています。 弊社の先輩エンジニアは勿論の事、RubyKaigiのスタッフをやらせてもらったりShibuyarblunchやLispコミュニティでうろちょろしているお陰で僕の周りには凄いプログラマーが沢山います。そこで、周りの凄腕プログラマーが実際に読んで「良かった」と言っていた技術書を幾つか挙げてみたいと思います。自分で手を動かしてやった本は僕の感想も添えます。 計算機プログラムの構造と解釈 クチコミを見る 有名な魔術師本。MITで長年教科書として使われてきた本です。今はPythonなので違う筈。今やっ
前回の続きです。サンプルコードは前回から続いていると思ってください。 privateは諦めましょう 親のメソッドを呼ぶ コンストラクタ instanceofに対応する ダックタイピングのススメ 今回もobject関数を使うので再掲載。 /* * object - オブジェクトを作る * Object object(BaseObj [, mixinObj1 [, mixinObj2...]]) */ function object(o) { var f = object.f, i, len, n, prop; f.prototype = o; n = new f; for (i=1, len=arguments.length; i<len; ++i) for (prop in arguments[i]) n[prop] = arguments[i][prop]; return n; } ob
以下はプロトタイプ的継承だけで一通りの機能を実現できる、という一つの例です。もちろん他にも書き方はありますし、newを使うのがよくないと主張しているわけではないです。 (誤解を生みそうな文体が混じっているようなので追記: 2011/5/14) 春ですし、少し初心者向けの記事を書きます。タイトル通り、JavaScriptのオブジェクト指向について。ちょっと長くなるので目次です。 クラス(に相当するオブジェクト)を作る オブジェクトからオブジェクトを作る(インスタンス化) 単一継承 多重継承 privateは諦めましょう 親のメソッドを呼ぶ コンストラクタ instanceofに対応する ダックタイピングのススメ JavaScript標準のオブジェクト指向といえばnewやらprototypeやらを書く必要がありますが、これらは書くのが面倒臭い上に気をつけないといけない点がたくさんあります。Ja
今回は、パターンを1つだけ紹介します。「Mediatorパターン」です。GoF本では、それぞれのパターンの「目的]「背景」「効果」などが明示されています。私も、ちょっと真似をしてみましょう。複数のオブジェクトを組み合わせてプログラムの機能を実現するという目的において、オブジェクト間の関連がゴチャゴチャになってしまうという背景(問題)があり、Mediatorパターンの採用によって関連をキレイに整理できるという効果があります。説明だけでは、何のことだかわからないと思いますので、具体例をお見せしましょう。 図1[拡大表示](1)をご覧ください。これは、UML(Unified Modeling Language、ユーエムエル)と呼ばれる表記法で記述されたプログラムの設計図です。UMLでは、四角形の中に下線付きで名前を書いてオブジェクトを表し、関連のあるオブジェクトを矢印で結んで示します。ここで関連
2006年10月18日09:20 カテゴリLightweight Languages javascript - プロトタイプ的継承 がーん。この感動はY combinatorを見たときに匹敵する。 Prototypal Inheritance function object(o) { function F() {} F.prototype = o; return new F(); } なぜこれがそれほど感動的かというと.... これを使えば、ArrayやObjectといったBuilt-Inからも難なく継承できるから。 継承のやり方としてはPrivate Members in JavaScriptが圧倒的に有名で、日本でもbrazilさんによる邦訳、Collection & Copy - JavaScriptにおける古典的継承もよく知られていると思うけど、この三行を目の前にしては霞む。でもp
JavaScriptはプロトタイプベースのオブジェクト指向言語で、 PHPやJava、C++などのクラスベースのオブジェクトとは 特徴や書き方が大きく異なります。 今回は、PHPでオブジェクト指向開発の経験がある人向けに、 JavaScriptでのオブジェクト指向プログラミングの書き方を解説します。 サンプルはすべてそのまま実行できるので、 FirebugなどのJavaScriptコンソールで実行して 挙動を確かめながら読み進めるとわかりやすいかと思います。 JavaScript の特徴 すべてがオブジェクト JavaScriptは完全なオブジェクト指向言語であり、 すべての型の変数、関数はオブジェクトです。 (プロパティやメソッドを持つ)
ソフトウェア工学の教科書やプログラミングに関する技術書は、例外なく「プログラムの品質を(制約の範囲内で)できるだけ高いものにするべき」という前提で書かれています。それがエンジニアリングの目標だし、そもそも、ものづくりの職人として、できるだけ良いものを作りたいという思いがあるのは当然だと思います。 また、よく言われることはプログラムというのは一度書いたら終わりなのではなく、長い年月をかけてメンテナンスされるものであるという考え方です。ですから、単に短い期間で作るということでなくて、長い目で見て保守性、拡張性の高いプログラムを作るということは、こういった専門書では当然良いことであるとされます。ネット上でもプログラムの品質に関するこのような特徴については、いろいろ意見が書かれていますね。 http://blog.miraclelinux.com/yume/2007/10/post_9db7.ht
エンジニアとして良い仕事をするために必要なこと ソフトウェア業界で日米を往復しながら仕事をしていると、世界中のさまざまなエンジニアに会う。私のように「プログラミングを心底楽しんでいる」人から、「新3K」(きつい・厳しい・帰れない)を身をもって体験している人までさまざまだが、共通して言えることは、エンジニアとしての基礎がしっかりできている人とできていない人では、その生産効率に大きな開きがあり、それが結果的には、会社での労働環境や待遇に、そして結果として自分自身にとっての「仕事の充実度」に、大きな影響を与えているということである。 いつも締め切りに追われている、毎回バグで苦しんでいる、徹夜の連続で体力に限界がきているなど、「仕事がきつい」理由はいろいろとあると思うが、会社や上司の悪口を言う前に、自分自身がプロフェッショナルなエンジニアとしてこの業界で勝負をするうえで必要な最低限の基礎がで
Inside Perl5 OO 対象読者: 他の言語で OO したことあるっぽいひと/Perl4 でとまってるひと Class をつくる まずは点クラスをつくってみましょう package Point; sub new { my ($class, %args) = @_; # 第1引数はクラス名 bless({%args}, $class); # データを bless すると、オブジェクトになる } sub x { my $self = shift; # 第1引数は、インスタンス $self->{x} = shift if @_; # 引数があればセッター扱いになる $self->{x}; } sub y { my $self = shift; $self->{y} = shift if @_; $self->{y}; } このようにして作ったクラスは、下記のようにして呼び出すことができま
モダンなクラス/オブジェクトのあり方は? Perlではそもそもオブジェクトという考え方自体が、Perl 5(Perl 7歳)ではじめて登場した、後付けのものでした。また、その実装も非常におおらかなものだったため、より「本格的な」オブジェクト機構を備えた言語のユーザからはしばしば批判されてきました。 ただし、転んでもただでは起きないのがPerlハッカーたちのよいところ。そのような批判を糧に、「モダンPerl」の世界でもっとも激しく、多様に進化してきたのがこの分野です。 今回はそのようなクラス/オブジェクトの進化の一例として、クラスの継承とメソッドの解決順序にまつわる話題をまとめていきます。 継承によるクラスの拡張 伝統的なbaseプラグマを使ってクラスを拡張する場合、継承元と継承先に同名のメソッドがあれば継承先のメソッドだけが優先的に実行されます。 use strict; use warn
社内の精鋭エンジニアを中心に定期的に勉強会をすることになった。んで、 JavaScript の講義は僕がやることになった。 資料を社内だけでとどめておくのはもったいないので、ここに公開していきます。社内の人も社外の人も読んでください。 講義の内容は基本的にソース嫁。ソースレビュー形式。 ※ターゲットは JavaScript は書いたことない、オブジェクト指向言語プログラマ。 Section 00 Prototype.js の前に JavaScript のオブジェクトの概要・・・ オブジェクトを作ってみる。 var object = {};オブジェクトにメソッドとかプロパティを追加してみる。 var object = { field: 'IT戦士', method: function() { alert('hello ' + this.field); } }; object.method()
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く