DSL(Domain Spacification Language)

なんか感覚でしかないのだけれど、DSLというキーワードに紐付く話題が流行りかけている気がする。「アーキテクチャや機能要件(仕様)をわかりやすく、明確に定義する」ことを、設計書やプログラミング言語ではなく、その中間的な存在のDSLで表現するというア…

同一セッションの振る舞い(2)

同一セッションでは、リクエストセーフになるという話の続編です。リクエストセーフはASP.NET独自で処理しているので、飛んできた複数のリクエストはASP.NETで一旦受けておいて、そのリクエストを直列に処理するという方法を取っているようです。この辺の詳…

同一セッションの振る舞い

今まで知らなかったんですが、ASP.NETは同一セッションかどうかを判断して、リクエストを直列化するようです。つまり、同一セッションで複数同時にリクエストを投げると、最初のリクエストの処理が終わるまで待たされるという具合です。これは、セッション管…

1999年のphpコード

ちょっとした理由で、友人からデバッグを頼まれた。どうも、上手く動かないWebアプリがあって原因をしらべてほしいとのこと。で、見てみるとコメント欄には1999年作成とある。。。9年前のソースコードですか。僕がphpを初めてさわったのが確か2000年だったか…

RTMで本格的にやってみる

gtd

簡単なTODO管理でRTMを使っていましたが、ちょっと本格的にGTDやってみようと奮起しました。今までやってみようと思ったのは何回かあったのですが、タスクの発散段階で挫折するというショボイ結果に終わってました。しかし、最近特に効率的にタスクを消化し…

なんちゃって設計者の設計書

大、中規模プロジェクトに特にですが、設計書(基本設計?or詳細設計?)を書く人と、実装(だけ)する人が分かれていることが多いと思います。アジャイルはちょっと置いておきます。ここではウォーターフォールを前提です。で、実際、基本的なことが抜けている…

ドメインドリブンとは

まだ勉強段階で、ぜーんぜん的を得てないかもしれないけれど、ドメインドリブンとは、ドメインモデルをそのまま設計、実装に落とすためにはどうすればよいかという問題に対するプロセスかな。この問題に対するアプローチやパターンを紹介、まとめたものがド…

概念モデルと分析モデルの違い

概念モデルと分析モデルの違いがずっとわからなかったんだけど、どうも皆さん、それぞれの見解(宗派というメタファがぴったり)を持っているようで、「これ」というのはないようです。概念、分析、設計モデルは、それぞれあるドメインのモデルであることに…

最近、恥をかいていないなぁ

最近、恥をかいていない。無論、わざと恥をかく必要はなんだけれど、どうも恥をかくのが怖いので無難な方向で事なきを得ている自分に、ふと気づいてしまった。これからは、まだまだ30歳なんだし、恥を恐れず行動することを心がけよう。「聞くは一時の恥、知…

学ぶことの楽しさ

ひさしぶりに楽しい。ここ3週間ぐらいどっぷりruby on railsにはまっている。(遅咲き。。)そもそも、ruby自体が初めてで文法もわからないし、railsの仕組みもほとんど知らない状態からスタートなので、調べれば調べるほどわからないことと、理解の連続がすご…

ログの取り方

いろいろ調べたのですが、AWADにしっかり書いてたよ。。railsアプリのコードからはいつでもどこでも次の方法でログを吐くことができる。 logger.info logger.warn logger.error logger.fatal デフォルトでは、deveopment環境であれば、log/development.logに…

gnomeをemacsキーバンドにする

システムを入れ替える度に、調べている気がするのでいい加減メモっておこう。 > gconf-editor で、gconf-editorを立ち上げて、 desktop -> gnome -> interface と進み、gtk-key-themeをDefaultから Emacs に変更する。

model(active record)のコンストラクタで属性を初期化する

何も考えずに、この様にしようかなと思いましたが、 def initialize(my_attr) super # これであってるのか? @my_attr = my_attr end ... my = MyActiveRecord.new(my_attr) active recordだと、こうやるのが正しいのかな my = MyActiveRecord.new(:my_attr …

テスト用テーブルのセットアップ

> rake db:test:prepareこれだけで、migrationに設定した内容でテスト用テーブルもセットアップしてくれる。便利だよ。rails

created_onとupdated_on

MySQL使っていて、更新日時をtimestamp型にしたいなぁと思って探していたら、column_nameをcreated_onにすると作成日時を、updated_onにすると更新日時を勝手に挿入してくれるらしい。ちなみに、created_atとupdated_atでも良いらしい。 create_table :produ…

エクスプローラのアドレスに「マイ コンピュータ」

すごくしょうもないことですが、ちょっと発見!的なこと。エクスプローラのアドレスに、「マイ コンピュータ」と直打ちしても移動できるのね。。 ちなみに、マイとコンピュータの間は、半角スペースじゃないとだめです。「マイ ネットーワーク」も一緒ね。は…

永続化しないcookieの振る舞い

最初に断っておきますが、永続化しないcookie(Set-Cookieヘッダにexpiresを省略したとき)のIEとFirefoxの振る舞いを話題にしてます。IEではCtrl+Nで同じセッションを利用して、Ctrl+N以外で新しいウィンドウを立ち上げると別のセッションになる。これって、…

Etchを入れてみた

ひとまず、デスクトップ環境、ラップトップ、標準ライブラリ?でインストールした。 auto-apt apt-listbug mule-ucs w3m-el wl anthy-el

apt-get update

何はともあれ、aptパッケージを最新にしよう。 emacs /etc/apt/source.list deb http://ftp.jp.debian.org/debian/ stable main deb-src http://ftp.jp.debian.org/debian/ stable main deb ftp://ftp.jp.debian.org/debian/ stable main deb-src: ftp://ftp…

キーマップの変更

何はともあれ、Caps_LockをControlに割り当てなければ・・ということで、 Debianのキーマップの割り当ては次の通り。 コンソール # cd /etc/console # gzip -d boottime.kmap.gz # emacs boottime.kmap ここで、Caps_LockとControlのキーマップを入れ替える …

メインデスクトップマシンをLinuxにする

ここ2年弱ぐらいLinuxから遠ざかっている。.NETの流行もあって今後もさらに遠ざかりそうなので、 今一度、原点に戻ってLinuxの勉強をしていこうと思った。以前は、RedHat(FedoraCoreの前)やTurboLinuxで運用していたが、自分の趣味で使うのであれば、 憧れで…

Webプレゼンテーションパターン

PoEAAのWebプレゼンテーションパターンの話。MVCパターンのControllerとViewのそれぞれのパターンについて、いくつか紹介されている。Controllerは、HTTPのリクエストを受けとってURLをパースし、適切なモデルを呼び出してドメインロジックを実行する。その…

GUIアプリケーションとWEBアプリケーションによるMVCの違い

MVCとは、Model-View-Controllerパターンの略称で、何か知らのロジックを担当するModel、表示出力を担当するViewと、入力を担当するControllerの3つの役割でコンポーネントを分けることで、アプリケーションの構造をシンプルにし、保守性を向上させようとい…

ロバストネス分析する目的

ロバストネス分析は、その名の通り、ソフトウェアの堅牢さを分析するものである。Boundary, Control, Entiryの大きく3つのグループにオブジェクトの集合を分類することで、どのようなオブジェクトが必要かを事前に洗い出すことができる。一般的には、ユース…

アーキテクチャドキュメントには何を書くか

アーキテクチャドキュメントとは、4+1ビューのあれです(というかあれしか知らない)。そう、ユースケースビュー、論理ビュー、プロセスビュー、配置ビュー、実装ビューの計5つの視点でアーキテクチャを評価し、表現する方法である。あくまで、アーキテクチャ…

アーキテクチャとフレームワーク

小生は、アプリケーションの基盤となる論理構造、モデルのことをアーキテクチャと呼んでいる。そして、そのアーキテクチャを実現するべく実装された動く「もの」をフレームワークと呼んでいる。 また、アーキテクチャとは単なる構造ではなく、そこに価値を生…

はじめまして

今年から、ブログに挑戦しようと思う。理由は「継続は力なり」ということで、"文章を書く"、"ソフトウェアアーキテクチャを勉強する"、"いろいろ考える"を続けることに挑戦しようと思ったからだ。小生の仕事は、業務アプリケーションの基盤となるソフトウェ…