新サイト立ち上げました!
登録は無料なので、良かったら試しに使ってみてください。
簡単アンケートフォーム作成 CustomForm
こんな感じのアンケートが作成できます。
サンプルアンケート
Mojaviを使ってすべての画面の入力チェックをデータベースでコントロールするサンプル
Mojaviを使ってすべての画面の入力チェックをデータベースでコントロールするサンプル。
アクションファイル作成するときに継承して使用します。
多分情報が足りないけど、とりあえず自分のためにメモ。
後で、書き直すつもり。。。
class BaseAction extends Action
{
function registerValidators(&$validatorManager, &$controller, &$request, &$user)
{
$validateMgr = DBAccess::factory('ValidateMgr',$request->getAttribute('DB'));
$validateMgr->setSelectItem('name');
$validateMgr->setSelectItem('label');
$validateMgr->setSelectItem('type');
$validateMgr->setSelectItem('max');
$validateMgr->setSelectItem('min');
$validateMgr->setCondition('action = ',$controller->getCurrentAction());
$validateMgr->setCondition('module = ',$controller->getCurrentModule());
$validateMgr->find();
$validateList = $validateMgr->getListAll();
foreach($validateList as $key=>$validate) {
$validateItem =array();
$validateItem['Required']['required'] = $validate['required'];
$validateItem['Required']['required_error'] = sprintf(ERRMSG_NOT_EXIST_STR,$validate['label']);
$validateItem['RegexValidator']['pattern'] = $validate['type'];
$validateItem['RegexValidator']['pattern_error'] = sprintf(ERRMSG_BAD_STRING,$validate['label']);
$validateItem['StringValidator']['max'] = $validate['max'];
$validateItem['StringValidator']['max_error'] = sprintf(ERRMSG_TOO_LONG_STR,$validate['label']);
$validateItem['StringValidator']['min'] = $validate['min'];
$validateItem['StringValidator']['min_error'] = sprintf(ERRMSG_TOO_SHORT_STR,$validate['label']);
foreach ($validateItem as $validateName=>$options) {
if ($validateName === 'Required') {
$validatorManager->setRequired($validateItem['name'],$options['required'],$options['required_error']);
} else {
require_once VALIDATOR_DIR . $validateName . 'class.php';
$validator = &new $validateName($controller);
$criteria = array();
foreach ($options as $name=>$option) {
$criteria[$name] = $option;
}
$validator->initialize($criteria);
$validatorManager->register($requestName,$validator);
}
}
}
}
}
JAVAはじめました
でも勉強してると、サーブレット/JSPでのMVCの仕組みってなんかMojaviの仕組みに似てるので、分かりやすい。
まあ、MojaviがStrutsをまねたのだから当たり前って言えば当たり前ですが。。。
なんか久しぶりに違う言語の勉強をしてると新鮮で楽しい。
よく、JAVAと比べてPHPっていまいちとかって言われるけど、
実際JAVAを使ってみるとPHPって便利に出来てるんだなぁと思うところも多々ありますね。
フレームワーク
最近なんかフレームワークってもっとシンプルでも良くない?って思ってきました。
どんどんフレームワークがでてきてるけどもっと直感的に使い易くないと使える人しか使えないって感じですよね。
フレームワークの大きな役割としては2つあると思ってて、
一つは簡単に出来ること。
もう一つは、コーディングの仕方がある程度制約されて、他の人が書いたソースコードも読みやすいってこと。
でも結局次から次へとフレームワークがでてきて
そのつどフレームワークの組み方を覚えていくんじゃなんかこの役割が果たせていないんじゃないかと。。。
だからもっとシンプルにMVCの概念だけを共通にできるようなものがあるといいね。
あとは、やっぱりコンポーネント化されてるもの。
欲しい機能を欲しい部分だけ自分たちのソースコードに追加していける方がいいね。
Mojaviみたいにとりあえず全部なきゃだめって言うんじゃなくて。
そういう意味ではZendFrameWorkは結構こういった考えでよく作られているんじゃないかなと思うんですが。
自分たちでシンプルなフレームワークを作るためのフレームワーク的な。
とかいいながら今日もMojaviを使い続けますが何か。
お気に入りのPHPフレームワークは?
微妙な違い
実際には、型の情報は持っているんですが厳密に宣言しなくても良いわけです。
この仕様は、便利でもあり、逆に不便でもあるんで好みは人それぞれかと思うんですが、
私は結構好きです。
PHPでは、この仕様のため比較演算子に、「 == 」と「 === 」があります。
「 == 」は型を意識しない。
「 === 」は厳密に型もあっていなければならないという違いがあります。
つまり、
$base = 1;
$target = "1";
の場合、
$base == $target は trueを返しますが、
$base === $target は falseを返します。
と、ここまではPHPで開発を行っている人であれば知っていると思うんですが、
最近気づいた微妙な違いです。
$target = round(0/10);
* roundは四捨五入の関数
$target === 0
はなんと falseを返すんです。
これって$targetは文字列ではないので、trueを返すような気がするんですが、
この場合、型がfloatになるんです。
つまり、$target === 0でtrueを返すためには、integer型でなければならないので、
$target = intval(round(0/10));
ってやらなきゃだめなんです。
以上、微妙でしたが。。。。。
ペアテスト
読んで字のごとく、2人組でテストを行うだけです。
しかし、これが結構効果ありです。
ペアプログラミングもかなり効果があったように感じましたが、これはそれ以上だと思います。
やはり、開発者にとってテストは大事だとはわかっていてもなかなか気が乗らない作業の一つです。
やはり一人でテストをしていると、結構適当にやってしまっていたりして抜けが発生してしまう。
それと、テスト仕様書に関しても、すべてのテスト項目を網羅するのはなかなか難しい。
ペアでテストをしながらテスト仕様書にないようなテスト項目も考えながらやることで、
単純な作業から知的な作業へと変わります。
品質を上げるために一度導入を検討してみてください。
ペアテスト
2人組みでテストを行う。
ルール
1人が、テスト項目を指示し、もう一人が実際にテストを行う。
1日のテスト時間は最高4時間まで
(ペアテストを行うとペアプログラミングと同様一人で行うよりもどっと疲れるので集中力がなくなってきたら止める)
テストを行う際には1機能ごとに時間を計測する。
(1機能ごとのテスト時間がわかれば次回の開発などのときにテスト時間をどの程度とればよいか検討をつけやすい
2人組みでやることによってテスト時間のばらつきはあまり大きくならない)
1機能のテストが終わったらいったん休憩をとる。
可能であればペアテストのパートナーは2時間ごとに交換する。
テスト仕様書にない項目であっても、どんどん思いつく限りのテストを行う。
その際に、テストした項目はテスト仕様書に追加していく。
ITという仕事
いや、儲からないのではなく儲けることを考えていないようにも見える。
その理由は、ITにあるのではなくITを使った仕事がまだビジネスとして成り立ってから日が浅いことにあるのだと思う。
ITのビジネスモデルはこれから大きな変化が起こる。
SIは結局儲からない。
ASPは結局儲からない。
だとしたら、ビジネスモデルが変わっていくのは当然の成り行きです。
昔、コンピュータが脚光を浴び始めたとき、みんなが期待していたものは、
日頃、人間がやっている仕事をコンピュータがやってくれるのではないかということ。
その原点から考えると、IT技術者がお客さんから仕事を頼まれてその要求どおりに
システムを作成してお金をもらう。
この一見通常のビジネスモデルに疑問を感じませんか。
これって、なんかITが人間の仕事を変わりにやってくれる恩恵を受けてるのは、
IT技術者ではなく、お客さんだけだよね。
せっかくITという武器を身に着けたのであればそれを有効に活用するためには
システムをお客様に売るのではなく、お客の仕事を買う。
そしてそれをITを使って利益を上げていく。
そういったビジネスモデルに今後移行する。
そうしたときにやっと技術の正当な評価が現れる。
その際に必要なのは、お客さんとの交渉力ではなく、
お客さんの仕事を理解する能力と技術力になる。
新企画
おかげさまで、アクセス数が順調に伸びてます。
いろいろな有名なblogからリンクを張って頂いたり、雑誌などに紹介してもらったり。。
ありがとうございます。
現在、1日のリクエスト総数は10000を超えて、
ユニークホスト数(1日に見た人の純粋な人数)は300を越しました。。。
普通のサイトでは考えられない数字の伸びです。。。
うーん。
埜庵さすがです。
で、今度ギャラリーを変えようと思ってます。
本当は、この部分は公開直前まで「準備中です」コメントだったんですが、
最後の最後に1時間ぐらいで無理やり作ったところでした。。。
今度、この部分は埜庵に食べに来ていただいた方が撮っていただいた写真などを
メッセージつきで掲載しようかと考えています。
それと、もう一つ考えてるのが、「埜庵 - かき氷ランキング」とか。
ちょっと公開はまだ先になってしまうかもしれませんが。。。
他にもなにか面白そうな企画があれば教えてください。
よろしくお願いします。
テクニカルライター
今、作成したアプリケーションの操作マニュアル作ってます。
こういうのって、誰か専門に書く人が必要だと思うんです。
やっぱり開発者は、どうしても操作マニュアルにそこまで力を注げない。
いや、注ぐべきなんだろうけど。。。
そう、お客さんからすると操作マニュアルはかなり大事。
操作マニュアルの出来で、アプリケーション自体の印象も全然違う。
しかし、いままでこのWEB業界では軽く見られていることも事実だ。。。。
テクニカルライターを専門に置くことについてのメリットはこんな感じ。
専門に書くプロがいるということは、やはり必然的に操作マニュアルの
質は向上する。
やはり開発者は残念ながら操作マニュアルを書くプロではない。
開発者が操作マニュアルを書いていた時間を他の作業につぎ込むことが出来る。
よって、優秀な技術者がより多くの作品を生み出すことが出来る。。はず。。
営業的にも、私たちの会社では専属のテクニカルライターがいます。っていうのも
結構売りになると思う。
事実、読みにくい操作マニュアルで苦労しているお客は多いのだから。
だれか、テクニカルライターをやってください。
けっして面倒くさいからじゃないですよ。
いや、ほんとに。。。