【メモ】DTO、DAO、シングルトン

[ThinkIT] 第5回:PHP5のオブジェクト指向 (1/3) 自分がプログラマとしてどれだけダメかよーく解った。 読めばすぐに解るし、納得できるし、実際のコードも似たような構成になってはいるものの、体系立てて解ってなかった。特に、DTOの扱いとシングルトンパターンの場合のインスタンスの活用について。君が今まで「DTO」と呼びたがってたそのクラス、それただの処理混在のクラスだから。ちっともカプセル化してないから。君が作ってたシングルトンクラス、newしなくて便利以上の用途無いから。何でもかんでもstaticにすればいいってもんじゃないから。 そういうのただの俺俺ルールだから。 今までぼんやりとしか解ってなかった(DAOってDBにアクセスするんでしょとかDTOってデータをまとめて取ってくるんでしょとか)のがサンプルコード読んで目から鱗がボロボロ落ちた。ダメだオレ。何年遅れよ。いまだ似非プログラマから脱出できてない。ちきしょう。 とはいえ悔やんでも仕方がないし、少しずつリファクタリング(もしくは置き換え)していこう。今日書くコードから始める。 その他、読んだもの。 Singleton – GoFデザインパターン~STEP1:まずはここから – PHPによるデザインパターン入門 – Do You PHP? DAOパターンですっきりコーディング!(1/4) - @IT PHP5でデザインパターン - Singletonパターン – Lism.in * blog – nekoya (id:studio-m)

続きを読む

プログラマには「種類」があるのよ

最近、プログラムだったら何でも出来ると思われてて困る。 会社設立以来のCTOだった人間が退職して以来だ。 在職中は僕はWebデザイナ、彼はプログラマと棲み分けが出来てた。Webアプリケーションについても、仕様を最終決定するのは彼でコーディングは僕とか、フレームワークは彼でViewは僕とか。彼はC/C++が書けたのでその他にデスクトップアプリケーションも書いていた。市販のレジシステムとWebDBとのブリッジとか、手入力の省力化とか。

続きを読む

【メモ】さくらインターネットで使うシェルをzshに変更する

FreeBSDであるさくらインターネットではデフォルトでcsh(tcsh)になっているけれども、仕事で使用しているのはzshなので揃えたい。 というわけで、そのメモ。

参考サイト

続きを読む

【PHP】日の出・日の入り計算用ライブラリ【改訂版】

Codeのリニューアルに合わせて、日の出・日の入り計算用ライブラリを書き直し、「Suntime.php」として改めてリリースしました。PEARとかに上げれたら良かったんですが、コードの内容はもとより形式などかなり不安だったのでとりあえずGist@GitHubにあげてあります。

Download

http://gist.github.com/gists/225915/download

続きを読む

GitHubを利用することにしてみました。

パッケージとして開発しているコードがあるわけでもない僕にとってはちょっと大袈裟すぎるような気もしますが、ちょっとしたコードの置き場所が欲しくなったので、アカウント取ったまま放置していた(というか登録しようと思って気づいた)GitHubを引っ張り出してきました。 http://github.com/nobodyplace 今のところとりあえずGistにGreasemonkeyを2つ置いてあるだけですが、ちょっとしたライブラリの保管として利用しようかなぁとぼんやり考えています。自分のところにおいて置いても仕方がないけど、公開するようなもんでも無い的ななにかとか。もっぱらPHPしか書かない生活を送っているので、その辺は特に出すものもない気もしますが(classの欠片をGistにとかはありかも知れませんが)、Greasemonkeyについてはやりたいちょっとしたことってのが結構あるので、暇を見つつ追加していければと思ってます。

続きを読む

【PHP】 TokyoTyrant(NET_TokyoTyrant)

キャッシュの用途の問題で、memcachedではないキャッシュを使おうと思って色々調べたのだけど、やっぱり管理面の容易さを考えてTokyoTyrantかなぁってことで、試してみた。

Pecl::Memcached使ったら嵌った。

TokyoTyrantはmemcachedのインターフェイスも採用しているので、クライアントがそのまま流用できる。小さなデータで試したところ問題なく動いたので、そのまま本番データを流し込んでみたらばどうも上手くデータが返ってこない。なぜだ。 色々調べてみたところ、どうやら、クライアントとしてPecl::Memcachedを使っていたのが良くないらしい。Pecl::Memcachedはデフォルトで一定サイズ以上(デフォルトでは100バイト以上)のデータを圧縮してくれるのだけど、どうも取り出すときに解凍してくれない。圧縮されたまま。memcachedとして使えば問題ないので、互換インターフェイスの問題なんだろう。そーなのかー。

で、結局、NET_TokyoTyrantを使うことにした。

圧縮の設定を切っちゃうとか、Pecl::Memcacheを使うとか、あれこれやっても良かったのだけど、要するに互換インターフェイスよりネイティヴの方を使った方が良ってことじゃね?と思ったので、PEARのNET_TokyoTyrantをインストールしてみた。
Net_TokyoTyrantとは? PurePHPで書かれた、TokyoTyrantのネイティブなインターフェースを叩くライブラリです。 memcache互換のインターフェースなどとは違い、TokyoTyrantのLUA拡張などTokyoTyrant本来の機能をほぼすべて使えるというのが特徴で
 

続きを読む

WEB+DB PRESS Vol.53 【忘れずに買う】

そうだった。もうすぐ発売か。 アフリエイト目的なだけみたいでちょっと恐縮なんですけど、目立たせとかないと忘れちゃうんで貼っておきます。

WEB+DB PRESS Vol.53WEB+DB PRESS Vol.53
WEB+DB PRESS編集部
技術評論社 2009-10-24
売り上げランキング : 247
Amazonで詳しく見る
by G-Tools
「モダン設計入門」「サーチエンジン」も気になりますが、個人的には「ヤフオク」の中身が気になりますね。。今回は買いだ。

続きを読む