TokyoRubyKaigi11に行ってきた

Tokyo RubyKaigi 11上記のカンファレンスに出席したのでそれについて書く。 メモ書き程度に。Streem 遅刻で最後の方を効いただけだったが、自作言語を作ることで色々身につくし楽しいぞという話をされていた。 Streemのリポジトリはこちら Streem mruby/c組…

IdeaMixier 支援ページ

iPhoneアプリ、アイディアミキサーの支援ページです。 何かあればこちらのページで対応します。

エンジニアに必要な技術

エンジニアには純粋にコードを書く力や設計能力も必要だ。 だが、それと同じくらいトラブル時の調査能力というのも必要だと思う。 調査能力とは、問題発生時にどこに問題があるかを把握して、その問題を潰す能力だ。 問題解決時は適切なログを見て、エラーを…

言われる前に知っておくこと

ちょっと気になったのでメモついでに。人は、例え事実でも、他人に指摘されたことを受け入れるのは難しい。 指摘されたことが欠点だったりするとなおさらだ。だが、指摘されたことについて事前に知っていると、それを受け入れるのは比較的容易になる。人が人…

勝つために何をすべきか?

渋谷心療内科・ゆうメンタルクリニック秘密コラム 「HUNTER×HUNTERと徒然草に学ぶ、『勝っちゃダメ』な理由」 この記事を読んでエンジニアにあてはめて考えたことを書いてみます。 よくよく言われていることなんですが、勝つためには2つの方法があると言われ…

最近良く聞くことについて

最近聞いた話で、一番心に残っているのは、 「技術者として一番大事にしなくてはいけないのは基礎である」 という話だ。 IT業界はとにかく流れが早く、新しい技術を学んで力にするその速度が重要となる。新しい技術を素早く学ぶために必要なのは基礎だ。なの…

書き残すという事

思考を書き残す思考を書き残すことはとても重要だ。 人間、一日のうちにかなりの量の思考をしているが、その思考は浅いところで止まってしまうことが多い。 その思考を掘り下げれば本人でも思いもしなかった妙案が思いつくかもしれないのにだ。 頭の中でただ…

ubuntuにTDDの環境入れてみた

TDDの環境が欲しかったのでubuntu11.04にjUnitを入れて環境を構築。 環境構築の際に少しハマったのでメモ。 1.まずはjUnitの本体をjUnitの公式からDLして任意の場所に解凍。 2.環境変数CLASSPATHを通す。この際このstackoverflowにあるようにクラスパスをjUn…

Javaのchar型の数値文字を数値に変換

覚えておきたいのでメモ。Javaでchar型の数値文字をint型に変換するときの簡単な書き方。 コードint IntNum = '1' - '0'; System.out.println(IntNum);IntNum = '1' + '0'; System.out.println(IntNum); 実行結果1 97 どうやら減算でないとだめらしい、加算…

ダブルバッファリングの手順

JavaAppletのダブルバッファリングについて少し学んだので復習。まず、paint()メソッドやupdate()メソッドの引数はAppletそのものの描写部分であるということ。ダブルバッファリングのおおまかな手順は 1.裏画面のためのImageオブジェクトを宣言する。 2.1の…

oblove収穫祭に行って来ました。

募集ページ Toggeterまとめ とりあえず一番気になったことをひとつだけ githubはコードの勉強をするのにめっちゃ使える 間違ったコードを即座に指摘してもらえる(まさかりを投げられる) 指摘されたところを直すことで、自分のコードが良くなる。 他の人のコ…

年号チェッカーサポートページ

何かアレばこの記事へのコメントをどうぞ。

復習:Interpreter

今回はInterpreterパターンについての復習です。 Interpreterパターンは構文解析に特化したデザインパターンです。 それ以外で用いることはほとんどないでしょう。 BNFのスクリプトなどに対する構文解析器を用意するときなどには、非常に有効なパターンと思…

復習:Command

今回はCommandパターンの復習です。 Comandパターンは、命令をクラスとすることで、プログラムの保守性を高めています。 命令をひとつのクラスにすることで、命令の動的な運用を可能にしています。 命令を表すクラスに共通の親クラスを持たせることで、命令…

復習:Proxyパターン

今回はProxyパターンの復習です。 Proxyパターンは、インスタンスを必要になってから生成するというパターンです。多くのインスタンスの中から一つだけ選び出すといったような画面を作成する際に、インスタンス全てを完全な形で用意するのは無駄が多いです。…

復習:Flyweightパターン

今回はFlyweightパターンの復習です。 Flyweightパターンは、一度生成したオブジェクトを使いまわすことによってメモリの使用量などを抑えるデザインパターンです。 オブジェクトの種類が少なく、同じオブジェクトが繰り返し何度も使われるような場合におい…

復習:Stateパターン

今回はStateパターンの復習です。 Stateパターンは状態をクラスとして表現することで、コードの簡略化を行なっています。 どういうことかというと、状態分岐をコードに書くとif文やswitch文を書く必要があり、冗長になってしまいます。 しかも状態をひとつ追…

復習:Memento

今回はMementoパターンの復習です。Mementoパターン 状態の保存を行うパターンです。 状態に必要な情報をインスタンスとして保存します。 また、そのインスタンスから元の状態に復帰する機能もつけます。 アンドゥ機能などを実装する際に役に立つパターンで…

復習:Observer

今回はObserverパターンについての復習です。 Observerパターンは複数のオブジェクトがひとつのオブジェクトを監視する際に使用するパターンです。Observerパターン 通知とそれに対する処理を行うパターン。 subject、被観察者とobserver、観察者の2つのオブ…

復習:Mediator

今回はMediatorパターンの復習です。Mediatorパターンは、複数のオブジェクトが相互に作用し、状態を変更させるようなときに使用するパターンです。 全てのオブジェクトを統括するクラス(Mediator)を用意します。 個々の部品となるクラス(Colleague)は自分の…

復習:Facade

今回はFacadeパターンの復習です。 Facadeパターンは複雑な処理に関する操作の窓口をシンプルにすることで クラスの操作を簡略化しているパターンです。 複雑なものを単純に見せる、裏で動いている処理を隠蔽することで単純化しています。 Facadeパターンが…

復讐:Chain of Responsibility

今回はChain of Responsibilityパターンの復讐です。 Chain of Responsibility このパターンは何らかの問題に対して複数の解決ロジックを連鎖的に適用することによって問題の解決を図るパターンです。 解決ロジックの追加のしやすさなどがキモとなっています…

復習:Visitor

今回はVisitorパターンの復習です。 Visitorパターン Visiorパターンは、データ構造とそれに対する処理を分離させるパターンです。 データ構造とそれに対する処理をそれぞれ別クラスにして分離させます。 また処理を行うメソッドは全て同一の名称となってお…

復習:Decorator

今回はDecoratorパターンの復習です。Decorator Decoratorパターンは、あるクラスを別のクラスに内包させ、そこで機能付加を行うパターンです。 内包するクラスは内包されるクラスを継承しています。 これがこのパターンのキモでしょう。 このように機能追加…

復習:Composite

Composite今回はCompositeパターンの復習です。 Compositeパターンはあるオブジェクトとそれらを格納するオブジェクトを同一視したパターンです。 オブジェクトを格納するクラスと、格納されるオブジェクトを表現したクラスは共に同一のスーパークラスを持ち…

Strategy

今回はStrategyパターンの復習です。 Strategyパターンは、アルゴリズムの切り替えを容易に行うためのパターンです。 何らかの動作をするときのアルゴリズムをクラスにして、分離させることで切り替えを容易にしています。 アルゴリズムという考え方そのもの…

Bridge

今回はBridgeパターンの復習です。 Bridgeパターンは機能と実装の分離を目的としたパターンです。 実装と機能を分けることで、実装によらない機能追加、機能によらない実装の追加などが可能となります。 実装と機能が同じクラスに入っているよりも、両者を組…

AbstractFactory

今回はAbstractFacory、抽象工場の復習です。 抽象工場 このパターンは、BuilderパターンとFactoryMethodパターンの合成です。 特定の構造を持ったモノを生成するBuilderパターンに対して、 その生成過程を抽象化するFactoryMethodを適用することで複数の種…

Builder

今回はBuilderパターンの復習です。 Builderパターンは構造を持つインスタンスを段階的に組み上げて作成します。 まず、全体を部分に分割し、分割した要素を組み上げていくように作成します。 Builderパターンの要素 全体を作成するのに必要な全ての要素(部…

備忘録

メモ 抽象クラスには抽象メソッドも具象メソッドも書ける。 インターフェースには具体的なメソッドは書けない。 抽象クラスを継承したクラスは全ての抽象メソッドを実装しなくてはいけない。