デザインパターン メモ1
テンプレートメソッドパターンについて
・基底クラスでは、共通の処理を実装するとともに、それぞれの派生クラス独自の処理を空のメソッドとして定義しておく。
・派生クラスでは、共通部分に定義した基底クラスを継承するとともに、その派生クラス独自の処理を基底クラスで空にしておいたメソッドで実装する(オーバーライド)
テンプレートメソッドパターンでは、基底クラスで実装されていないメソッドだけを実装すればよく、いわば穴埋め的に派生クラスを作成できるので、設計の意図を明確に伝えることができる
デザインパターンは、GoF(Gang of Four)の本が有名
RubyでGUIを考える その2
前記事:RubyでGUIを考える その1 - うえっちMEMO
前回はいきなり実行形式について考えたが、今回は簡単なウィンドウ表示を考えようと思う
1: include Java
2:
3: import javax.swing.JFrame
4: import javax.swing.JButton
5:
6: frame = JFrame.new("Hello JRuby!")
7: button = JButton.new("click me!")
8:
9: frame.add(button)
10: frame.pack
11: frame.visible = true
1行目はJavaのコードを使うよって宣言で絶対に必要
3,4行目はJavaのSwingの内、JFrameとJButtonを使うよって宣言
6,7行目はJFrameとJButtonのインスタンスを生成
9行目でウィンドウにボタンを追加
10,11行目でウィンドウを表示する
ちなみに3,4行目を書かずに6,7行目を
6: frame = javax.swing.JFrame.new("Hello JRuby!")
7: button = javax.swing.JButton.new("click me!")
って変えても同じように動作すると思う。
注意:右上の×(閉じる)ボタン押してもプログラム自体は終了しない
ハッカソンというもの
3月23日に行われた香大Rubyハッカソンに参加してきました。
参加者は6人で約4時間のコーディングで何かしら作ってみようって勉強会です。
今回のハッカソンはTwitter上でのみ呼びかけたらしく、Twitterアカウント名で自己紹介とかしちゃいました。というか、参加者は相互フォローしてる人ばかり。
で、私が作ったのは、掲示板が更新されているか調べてTwitterに投稿するプログラム。実は、ある程度コーディングした状態で参加してました。なので、余裕を持ってセンバツを見てたりしたらバレちゃってあわわわわー。
勉強会ってイメージだったのでもうちょっと会話しながら進めていくのかなぁって思ってたのですが、実際はみなさん黙々とコーディングしててビックリしました
複数人でコーディングするっての合わないなぁって思いながらも、次回も参加したいと思います
キーワードは「半年後!!」
BOTちゃんの時間調整
うどんBOTiちゃんの時間がズレてるので確認修正。
Railsアプリケーションのフォルダに移動
> cd app
Heroku側の標準時間エリアを日本に設定
> heroku config:add TZ=Asia/Tokyo
参考:http://d.hatena.ne.jp/ruedap/20110210/heroku_timezone_japan_jst
おまけ
> heroku console でコンソールに繋がる
で、Time.nowとか入力すると時間が返ってくる
思いつきでプログラミング〜新勧用アプリケーション完成編〜
先日の記事の続きです
前の記事:2011-02-27 - うえっちMEMO
コンセプトは"コマンド打って動く"
当初のラジオボタンで動作を決めて数値を入力してもらうという予定から変更し、コマンド入力式にしてみた。
「自力でコマンドを打って動く」というのはプログラミング未経験者において、感動できるものだと思っている。もちろん私も経験したし、少し慣れてきた今でも感動することがある。
で、今回作ったのは「線を引いていく」プログラム
利用者が入力するのは"forward","back","right","left"の4つのコマンドとその値
使用したライブラリはJavaの本に付属しているものなので権利関係の確認が必要
正直実用的ではないが、展示として考えれば悪くはないと思ってる。
先日聞いた卒論発表会でもプログラミング教育に関する研究がおもしろそうに感じたのでそちら方面を考えていっても良いかもしれない。