2005-11-01から1ヶ月間の記事一覧

UML?

PHP

そういえば、PHPで開発するときってUMLはあまり使わないんですかね? ぼくの場合 割とクラス図はよく書く 頭の中の整理 他の人に全体のフローを見せるとき用 コーディングが終わってから書いてみることも 変な設計や命名になっていないかチェック! たまにシ…

クラス図(20051129版)

またクラス図を書いてみた。あくまでも設計用のメモ代わり。以前書いたクラス図(d:id:hiro_y:20051104を参照)と比べるとずいぶん変わってるかも。使用ツールはJUDE。

はてなの中を見てみたい!

はてなに限らず、よその会社の中を見るのは面白そう。自分の仕事スタイルを見つめなおすきっかけになるだろうし、その会社に興味を持っている場合はいろいろ参考になるに違いない。機密保持とかいろいろ制約もあるだろうけれど、もっと公開する姿勢を持って…

仕様変更検討: URLのリライト

今まで: mod_rewriteとPATH_INFOを併用 例えば: /test/sample.html → /dispatcher.php/test/sample これから: mod_rewriteのみを使用 例えば: /test/sample.html → /dispatcher.php?test__sample クエリパラメータは$_SERVER['QUERY_STRING']に格納される 2…

URLのリライト

こんな話題が: URIマッピングをフレームワークで(PHP) - KoshigoeBLOGURLリライトをどこで行うか、という問題。mod_rewriteは確かに便利なんだけど、使える環境が限定されてしまうのでいかがなものかと思っていた。できることならmod_rewriteを使わずに、フ…

Moony 0.1(alpha)リリース

とりあえず動くバージョンをリリースしてみました。以下、動作確認手順: Apacheの設定を確認 mod_rewriteが有効になっていること .htaccessが使用可能になっていること Moonyをダウンロード http://sourceforge.jp/projects/moony/からMoony_0.1_alpha.zipを…

セッションタイムアウト時の自動ログオフ

お仕事用メモ。実装方法を簡単に。直接HttpSessionに格納するクラスでHttpSessionBindingListenerを実装する。セッションからインスタンスが削除された場合と、セッションが破棄された場合にメソッドvalueUnbound(HttpSessionBindingEvent)が実行されるので…

セッションチェック用のサーブレットフィルタ記述例

お仕事用メモ。処理に関係ないところは省略してあるので、このままでは動かないよ。 public class SessionCheckFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, Servlet…

ノートPCのバックライト

プライベートで使っているのはLet's note W2A。2年前ぐらいのモデルなのだが、どうも最近液晶ディスプレイの調子が悪い。一部が線が入ったように点滅している…。バックライトが切れかかっているのかもしれない。早めにフルバックアップを取って修理に出した…

テーブル設計と削除フラグ

データベースのテーブル設計で、削除フラグを項目として持つ場合: 目的 レコードの物理削除(delete)は行わない 論理削除(削除フラグON)のみ行うための仕掛け 常に削除フラグを参照しなければならない 通常のデータマッピングの仕組みだとprimary keyしか…

フレームワーク比較表

PHP

メジャーなPHPのフレームワークの比較表を、id:katase_nさんがまとめてくださっている。わかりやすい。 http://d.hatena.ne.jp/katase_n/19700102#1124403109こうして比べると設計思想の違いが垣間見えて面白い。ソースの中身も大分読んでるけど、結構違うん…

共通処理の実装方法例

処理全体で共通の処理をさせたい場合 ログ出力とか データベース関連クラスのインスタンスの持ち回りとか セッションの確認/登録とか Actionクラスのサブクラス、BaseActionを作成 executeメソッドで共通処理を実装 processという抽象メソッドを用意、execu…

テンプレートファイルの拡張子

Smartyのテンプレートファイルの拡張子 候補 *.tpl ... 習慣でそうすることが多い *.html ... Mapleとかguessworkで採用されている形式 Moonyでは デフォルトは*.tpl /moony/config.phpで設定されている /moony/config.phpを書き換えれば変更可能 *.htmlとか…

自動生成機能

http://d.hatena.ne.jp/kunit/20051119#1132363548 Mapleにスケルトンの自動生成機能が実装される模様 CLI版のPHPで動作 action、component、設定ファイル、テンプレートの自動生成が可能 あればやっぱり便利! 必要がないなら使わなければよいだけの話 あっ…

お仕事の環境…

サイボウズ・ラボ入りたい!(本気) 現在の仕事 Java(Struts)を使ってWebアプリ構築 やることは毎回ほとんど一緒 そもそも飽きっぽい性格! PHPとかRubyで開発するのもいいよね できそうな開発メンバーが他にいない...orz 業務アプリもいいけどもっとみん…

開発作業と英語名

開発作業をしていると、英語名の命名に悩む場合が多い。データベースの項目名とか、ソースの中の変数名、クラス名とか。面倒なときは日本語名をそのままローマ字にしてしまうのだが、なんとなく格好悪い。開発作業用の対訳集みたいなものがあるといいかもし…

開発作業をするマシンについて

現在はWindowsで作業 本格的に開発作業をするにはLinuxサーバが別途必要 VMWareとかcoLinuxでもいいが、設定が面倒 サーバを別途立てると電源のON/OFFが面倒でつけっぱなしになる 電気代が気になる… ソフトウェア 使い慣れたソフトがある 今まで購入したソフ…

営業の仕事

そもそもSIerの営業職の人って、どれぐらい勉強しているものなのだろうか。システムに関する知識が全くなくても、何とかやっていけるものなのだろうか。自分の会社を見ていると、営業があまりにも浅薄な知識しか持っていないので不安になる。

裏紙メモの使い方

開発の仕事をしていると、裏紙にメモとか気がついたことを書きなぐることが多い。それをうまく活用できないか考えてみた。 裏紙にメモすることが多い 単なるメモ タスクリスト 簡単な設計図(UML) 人に説明するための図 大抵は後日シュレッダー行き もった…

DAO設計メモ

お仕事で今後DAOとか作るとき用のメモ(改めて): 検索メソッドの検索結果はListで戻す 検索結果が0件の場合はsize=0のListを戻すようにする 結果として、nullを返さないことを保障する nullチェック無しでIteratorを使用してループ可能 いちいちnullチェッ…

ツナトマトスパゲッティ

昨日、昼食として作ったもの:材料 トマトホール缶1つ(カットトマト缶でもOK) ツナ缶1つ ニンニクひとかけ キャベツすこし 手順 オリーブ油を熱して刻んだニンニクを投入 軽く色づいたら、トマトを入れて大まかにつぶす 大体つぶれたら白ワインを少し入れ、…

ネットワーク依存の仕事内容

午前中、会社のネットワークがダウン。原因が特定できずに復旧が遅れる。影響の主なものは: ドキュメントサーバにアクセス不能 CVSリポジトリにアクセス不能 DBサーバにアクセス不能 開発用Wikiの閲覧不能 グループウェアの閲覧不能 ネットワークプリンタの…

ドキュメント作成

さて、配布するからにはドキュメントが必要になる。最低限の動作ができるようなドキュメント。というわけで、PHPのフレームワークのドキュメントをいろいろ見ている。 Maple Project - サポート Ethna - インストール Ethna - チュートリアル Mojavi 2 - Ins…

ライセンス変更

思うところあって、ライセンスをLGPLからBSDライセンスに変更。

SourceForge.jpのCVSにssh経由でアクセス

なかなか設定が面倒だったのでメモ。 Windows機 sshクライアント: Cygwinのssh CVSクライアント: Eclipse 3.1 手順 Cygwinをインストール(ssh必須、cvsも入れておくとコマンドで使える) 環境変数の設定(HOME、CVSROOT、CVS_RSH) HOMEにはCygwinのsshで使…

CVSの公開

SourceForge.jpに場所を借りて、CVSを公開してみました。まだまだ仕様とか構造の変更があると思いますが、とりあえず形になってきた感じ。ドキュメントの方もそろそろ書かないとダメですね。基本的にはREADMEとして配布予定。あとはこのサイトに簡易マニュア…

アクションクラス設計

/moony/core/Action.class.php 抽象クラス(PHP4なのでabstract記述はできないが) 全てのアクションクラスのスーパークラス メソッド init(): void 初期化処理 executeの前に実行される 必要に応じてサブクラスでオーバーライド execute($request, $session…

大文字小文字

PHP

PHPのマニュアルを見ると、TRUEとかFALSEとかNULLとか書いてある。てっきり大文字で書くものかと思っていると、PEARのソースにはtrueとかfalseとかnullとか書いてある。どうやらどちらでもいいらしい。PHPのカルチャーではどちらが主流なのだろう。あまり気…

セッション管理クラスの設計メモ

/moony/core/Session.class.php start(): void セッションを開始する destroy(): bool $_SESSION配列を初期化 セッションクッキーの無効化 session_destroy(); get($key, $alt = null): mixed 指定されたキーで格納されていない場合は代替値を返す 参照を返…

テンプレートエンジン

Smarty-Light 軽量 新しいライブラリなので周辺技術なし バグがある可能性 Smarty すこし重い 周辺技術がたくさん Smartyを前提にしたライブラリもある ユーザがそうしたライブラリと組み合わせることも可能 実績が多いのでバグが少ない(と期待) 普通のサ…