2005/1/17 月曜日

nnof – not needing others, this file is.

Filed under: 技術メモ — dev0000 @ 1:33:03 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

ちょっとしたライブラリを作らなくてはならないことがある。

・ロギング処理
・JavaScriptを使用した入力値の検証。
・テンプレート処理
・ファイルへの書き込み。

1時間もあれば出来てしまうようなものだし、過去の遺産から引っ張ってこれば5分もかからずに対応できるものだけども、だけど「うまくない」ライブラリだと何かに・・・DBとかCPAN、PEAR、JakartaCommonsとか・・・に依存してしまったりする。
「何か他のライブラリ」を必要とするツールって結構多いのではないだろうか。
機能の複雑性が増せば仕方のないことだとは思うが。

データベースとか拡張機能とかそういうのを一切必要としないのって結構頻出する前提条件ではないのかな。最低限のAPIだけで構成されており、環境依存が殆どないということが。

例えば、

nnof not needing others, this file is.

なんてことを考えてみた。大事なのは「他の何かを必要としない」ってことだ。
あと「簡単に使える」ってことも重要かな。

・1ファイルだけで構成される。PHPなら require_once だけですぐに対象のオブジェクトないし関数を利用することが出来る。
・基本APIだけで構成される。
・他ライブラリへの依存はない。DBも使わない。

もっとまとまったものが出来れば、sourceforge.jp にプロジェクト申請してみようかな。

2005/1/14 金曜日

機能別の作業

Filed under: 仕事 — dev0000 @ 3:54:35 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

よくあるシステムの話。
JavaとかPHPとかFlashとかPL/SQLとかはたまたHTMLとか何でもいいのだけど複数の要素技術で構成されているものがある。
で、作業分割が機能ベース(垂直分割)の為、一人の人間が複数の要素技術を全て把握してやらなきゃいけないハメになる。
これってどうなのかな?あまり効率は上がらないような。
レイヤによる作業分割のほうがもっとラクなような気が。

以前、短納期 に関するエントリーではこう触れた。

3.スキル別作業
「難」と「易」で作業を分けられるようにする。
業務ロジック部分(難)、プレゼン部分(易)、仕様を考える(難)、仕様を文書におこす(易)。
当然、モジュールの構成もそれを実現するようなものにする。
逆に言えば、開発者のスキルがモジュールの構成への影響要素となる。

それぞれの実装作業がシンプルであれば機能単位でもいいのだが。

2005/1/10 月曜日

テンプレートを変えたら

Filed under: つぶやき — dev0000 @ 14:10:05 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

テンプレートを変えたら妙なことになってしまった。

ここのBlogで選択できるテンプレートにはFirefox未対応のものもあり、色々とメンドウなことになっていて、そろそろ他にも用意した方がいいのかな、とも思ったけども、どうやら2月にサーバが増強されるらしいんでそれまで様子見。

OSSuite が見つからない

Filed under: IT世間話 — dev0000 @ 3:00:23 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

http://www.ossuite.org/ にあったはずの OSSuite (フリーのERP)が見つからない。
なくなったのかな?
http://sourceforge.net/projects/ossuite/ は残ってますが。

2005/1/9 日曜日

foaf

Filed under: 技術メモ — dev0000 @ 18:09:06 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

foafはやっているのかな、クローラ作ろうかな。
XMLとRDFによる友達の検索

MVCとかBCEとか

Filed under: 技術メモ — dev0000 @ 17:26:11 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

この文章、結構インチキ入ってますが、お許しを。

今更ながらMVCとかまとめてみした。

・MVC Model、View、Controllerの3つの領域に分ける。Smalltalk80で確立。
・MVC2 JavaServerPages の MVCアークテクチャーの Type2 のこと。ビジネスロジックはEJBで実装することになっている。Model=EJBなどJavaBean、View=JSP、Controller=Servlet。
・BCE Boundary、Control、Entityのこと。MVCとの比較で書くと、ModelはControl(制御)、Entity(永続データ管理)に分けられ、View、Controller は Boundary に相当する。

MVC自体が元々GUIを想定して考えられたパターンだから、MVC2が実際の開発現場だとちょっと微妙なことになっているのかも(JavaBeanにどこまでロジックもたせてますか?)。個人的にはBCEのほうがしっくりくるかな。

実際のWebアプリの開発現場だと画面と内部処理を分離するのは自然とそうなるんだよね。
画面はHTMLだったりして、UI設計のセンスに長けた人間、場合によってはデザイナーとかが作ればいいと思うから、やっていくうちに「テンプレートを使おう」とかってなるじゃないですが、ほぼ。

内部処理をロジック制御とデータ管理の部分の分離だけども、泥臭くSQL文などを書くのにしんどくなってきて、「フィルター条件与えればデータを引っ張ってこれる」だったり、「パラメータを与えればテーブルを更新してくれる」くらいのことは共通化したいなぁ、って思って、DAO的なライブラリを記述するじゃない。
なんていうかな、知らず知らずのうちにMVCとかBCEっぽくなるんだよね、きっと。

レイヤ単位で作業の分割を考えるとこんな感じでしょうか。
データ中心の発想っぽいかもしれませんが。

・画面(View、Boundary)屋さん ・・・ DreamWeaver とかでHTMLをバリバリ書く人。簡単な制御タグとかちょっとぐらい知っているといいかも。場合によってはFlashとかも。
・ロジック制御(Controller、Cotrol)屋さん ・・・ 実際のロジックを書く人か?ただしデータ管理はあまりしない。SQL文も書かない。
・データ管理(Entity、Model)屋さん ・・・ DBMS次第だけど、場合によって、SQL文をバリバリ書く人。データ管理ばかり。一昔前ならPL/SQLのプロシージャー担当?

() の中は厳密な定義とは違うと思うけど・・・Modelはビジネスロジックの処理をやるわけだし・・・、まぁ、それは置いておき。

ロジック制御屋さんとデータ管理屋さんの作業分担が微妙になるのかな。

ロ「○○を渡したら××のデータ配列が返って来るメソッド作ってよ」
デ「既に△△ってメソッドあるじゃない、それ使ってよ」
ロ「え、そっちで作ってよ。ラップさせるだけだからいいでしょ?」

とか

ロ「○○ってデータを処理するメソッド作ってよ」
デ「××と△△を組み合わせれば出来るよ」
ロ「他の箇所でも使うんだから、そっちにもたせて共通化させたほうがいいよ」

みたいな。

ただ、うまくいけば自分の作業領域に専念することが出来るので開発効率が上がるのでしょう。
っていうかね、自分UI設計のセンスないんで、HTMLのコーディング含め、画面はやはりデザイナーがバリバリ書いてくれればいいと思います。

FYI:
UMLによるアーキテクチャパターン

[oosquareml:02404]
Re: 分散環境での MVC について

あとこれも。
「StrutsのMVCってどんなんだっけ?」とふと気になったので。

Struts、オープン・ソースMVC実装

WWW::Mixi

Filed under: 技術メモ — dev0000 @ 14:54:20 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

mixi向けのライブラリとして、WWW::Mixi というのを見つけた。
(CPANには登録していないみたい)

Perlモジュール/WWW::Mixi Mixiに簡単にアクセスするためのLWP::UserAgentライクなモジュール。

こういうWWWのライブラリ群というのはPerlの独壇場の気がする。

追記(05/03/10 21:39):
コメント欄にもあるように(コメントありがとうございます!)、CPANへ登録されたらしいです

LGWAN-ASP

Filed under: IT世間話 — dev0000 @ 14:25:48 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

LGWAN が総合行政ネットワーク・・・行政専用ネットワークを指し示すらしい、というのは前のエントリーで書いた。
・・・で、ASPを提供というが、一般的なASPとは異なり、もっと広義なネットワークサービスを示すらしく、LGWANASPと定義されている。
LGWANASPのサービス区分は以下の通り。

1.ホスティングサービス
総合行政ネットワーク運営主体からLGWANにおけるIPアドレスの割当てを受け、LGWANのドメインを付与されたサーバの設置
2.ネットワーク層及び基盤アプリケーションサービス
LGWANが規定するプロトコルの利用と、必要に応じたLGWANが提供するアプリケーション基盤の適用
3.アプリケーション及びコンテンツサービス
ホスティングサービスで提供される1.のサーバ上で2.の基盤を利用したアプリケーション及びコンテンツサービスを提供
4.通信サービス
ホスティングサービスで提供される1.のサーバをLGWANに接続する専用回線の提供
5.ファシリティサービス
ホスティングサービスで提供される1.のサーバを設置するファシリティの提供

2.がLGWAN側から提供されるのを除けば、他は各自治体及び民間が提供するサービスとなっている。
より具体的にどんなサービスが提供されてるかは、「LGWANASPサービスリスト」を参照。

で、思ったのは、どうにかここに参入できないか?ということ。
ASPを作って売り込みにいけばいいのかな。

自治体のリナックスサーバー利用53%に

Filed under: IT世間話 — dev0000 @ 14:15:26 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

自治体のリナックスサーバー利用53%に 稼働台数倍増

利用台数倍増といっても、「1台でも使用している」ってことらしいから、まだまだ主流となったとは言いがたいが、少なくとも民間(約4割らしい)よりは数字が上らしい。。
増えた原因としては下記のことが挙げられる。

・「LGWAN」の整備の中で政府がLinuxを推奨したから。
・Windows 以外のOSを使用することによるリスク分散。
・サーバメーカに薦められた。

LGWANって総合行政ネットワークだって。
自治体向けにASPを提供するものらしいよ。

2005/1/3 月曜日

超短納期開発(再掲)

Filed under: 技術メモ — dev0000 @ 23:03:06 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをBuzzurl(バザール)に追加

1年半ぐらい前に別のページで書いたことを再掲します。
最近、ある開発現場に1PGとして入っており、ちょっと色々と思ったことがあるので、それ絡みでちょっと書いておきたいことがあったので。
今から考えると?な部分もあるのでそれも見直していこうかな、と。

2、3ヶ月が短納期というならば、2週間〜1ヶ月で作るのは何て言うんだろう?
それも一昔だったら半年かけて作るようなものなんですよ。
1、2人で作るものだったら、方法が確立・・・というか、師匠と弟子の関係になってガシガシ作ればそれで済むわけですが、とにかく人数を入れて納期を稼ごうとする場合・・・、
色々と手段はあると思うんですが、

1.何が重要かの見定め
結局、全ての案件が等しく可用性や納期を求められているわけではない。
何が重要か考えること。
(超短納期の場合は大概が納期ですけども)

2.納期優先
時間をかければ出来そうな機能も「とりあえず」切り捨てるしかない。
足りない機能はカットオーバ後に継ぎ足すことを想定する。
例えば、人月60万だとして、客がプラス1週間分の機能(15万)をその値段を払って追加したいと思っているのか?
(なんかこう書くと安い仕事しかしていないみたいだ)。
メール配信機能が欲しい?1万円を切る価格でシェアウェアが手に入るのだよ。既にある機能との組み合わせで何とかなるものさ。

3.スキル別作業
「難」と「易」で作業を分けられるようにする。
業務ロジック部分(難)、プレゼン部分(易)、仕様を考える(難)、仕様を文書におこす(易)。
当然、モジュールの構成もそれを実現するようなものにする。
逆に言えば、開発者のスキルがモジュールの構成への影響要素となる。

4.プロトタイプが大事
スキル別作業にも関係するが、プロトタイプの作成が非常に重要になる。
デザインパターンなどを参考にし、他の開発者が差分を量産できるようなスタイルに出来ればがベスト。
要はどこまで作業を単純化できるか?ということ。

5.ドキュメントは最低限度に
XPとかでも言われていることだけども、やはり「不要な文書は作らない」ことは大事。
・・・関数仕様書とかはいらないでしょ、この際。追跡性を維持するだけで時間がとられる。
文書も予算に入っているのなら・・・、提供する文書は納品後にゆっくり作りませんか?

6.テストにも優先順をつける
テストもやはり出来るものから優先して行うとしなければ間に合わない。
個人的には表示色がどうのこうのとか、表示文字が間違っているとか、そういうノンクリティカルなものは後回しでまー大丈夫だろう、って思うことにしている。非開発者がテストを行う・・・ブラックボックステストとかも大事だけども、「最も仕様を理解している」主開発者がテストケースを考え(難)、それをシートにおこさせて検証してもらう(易)のがあまり時間もかからなくていいのではないでしょうか?

7.マイナーな技術は避けて歩く
(使ってるけども)PHPのPEARとか、本屋に並んでいないような技術はあんまり使うべきじゃないんじゃない?って思っている。
つーか、PHPってあんまり人集まらないね(集まったとしてもスキルにばらつきがある)。C#もまだあまりいないようだし。

ちょっと適当書きすぎたかなぁ。。。

« 前ページへ次ページへ »

HTML convert time: 0.581 sec. Powered by WordPress ME