「MVC」を含む日記 RSS

はてなキーワード: MVCとは

2017-08-30

MVC

って、要するに据え置きゲーム機構造なんだな

〔C〕(文字通り)コントローラーボタンを押すと

〔M〕メモリ上の状態値が変わり

〔V〕画面のキャラクター状態表示が変化する

ってだけの話

仮想的なGUIボタンタッチパネルの話から入ると変にややこしく感じるが

 

大学卒業して違う仕事に就いて

10年経ってやっとそんな簡単なことを、ふとした瞬間に理解した

人生に後悔は尽きない

2017-07-19

EVO 2017の個人的面白かった試合備忘録

The King of Fighters XIV

半裸の巨漢柔道男児である大門が躍動するKOF XIVのグランドファイナル台湾E.T.選手が安いコンボ(総合火力が低い)を連発するので、日本語解説の二人がひたすら突っ込みを入れる実況が見所。コンボを覚えたら世界最強ですよ、とまで言われたE.T.選手がけっきょく優勝して綺麗にオチがつく。

ULTIMATE MARVEL VS. CAPCOM 3

パイプ市長ハガー(ファイナルファイト)が大好きなPARADIGMさんの試合面白すぎた。

解説ハガーを中心としたチームです。バランスもクソもないですね」

解説「この人ハガー使いたいだけですから

ベスト8に入るだけあって、操作うまいのだけど、とにかく半裸のガチムチおっさんが鉄パイプを振り回してフライングボディプレス、すべてを解決するダブルラリアット、怒りの腹パン披露しながら並み居る壊れキャラボコボコにしていくところが痛快きわまりない。

あと空をくるくる舞うRYANLYの春麗も、ストリートファイターシリーズとのギャップがでかすぎて笑うしかなかった。

MVCカジュアル永久パターンとか、壊れすぎキャラとか、棚ぼたのハッピーバースデーがあるからゲームプレイしたことがなくても見ていて楽しい

BLAZBLUE CENTRALFICTION

りゅうせい選手カルルのハメ殺しに対するふぇんりっち選手ジンの脅威のガードぢからものすごかった。グランドファイナルリベンジ成功からの、2ゲーム取られて背水の陣からの怒涛の追い上げでフルセットもつれ込む展開が熱すぎた。

ただ、ピリピリした試合というには、お互いにこやかにEVO壇上で声を掛け合っていて、あまり頂上決戦という感じはなかった。今日4Gamerインタビューを読んで、リアルピンポン状態だったんだと驚いた。

りゅうせい選手

 そういうわけじゃないんですけど,ふぇんりっち選手との試合だけは別で,戦っていてめちゃくちゃ楽しかったですね。大会はいつも優勝と準優勝を交互に取り合っているようなライバルで,彼とは大会の前にもホテルの部屋で対戦していたんですが,そのノリをEVOの壇上にも持っていけました。2人で楽しみながら対戦しているような気分だったんですよ。

 ただ勝ちにいくという戦いじゃなくて,「プレイの内容がいいほうが勝ちにしようよ」みたいな感じで。もちろん,お互いに真剣だったんですけど,楽しんでプレイできました。

「EVO2017]決勝は2人で楽しみながら対戦できた――「BLAZBLUE CENTRALFICTION」部門優勝者,りゅうせい選手インタビュー」(http://www.4gamer.net/games/378/G037875/20170719048)

2017-06-02

http://anond.hatelabo.jp/20170602182021

スクリプト言語として人気になったのは機械学習ブームが起因

htmlに埋め込むってMVCViewの話?それだったらdjangoテンプレートエンジンでも他のやつ既に確立されてるぞ

そうじゃなくてjsみたいに埋め込むっていう話?どっちみちお前は頭がおかし

2017-05-09

JavaScript簡単SPAフレームワークってありますか?

勉強が不得意な職業プログラマですが、WindowsアプリSPAに作り替えることになりそう。

プロジェクトメンバー積極的技術習得するような人はいないので、簡単フレームワークを探しています

↑に近いようなフレームワークありませんか?

2016-09-17

俺CSharpマン

低能ゆえにMVCが使いこなせず挫折ぎみ。

Asp.Netもっとシンプルで綺麗なHTMLを出力してくれればそれでいいんだけどなー。

2016-05-25

http://anond.hatelabo.jp/20160521234423

というかですね、そもそもVをロジックの中にベタ書きしちゃうの嫌なんですよね。

MVCモデルというのは、オブジェクト指向の発想。

DOMというのは、そもそもDocumentObjectModelでオブジェクト指向

JQueryはそのVを関数型的に扱おうとした拡張

Reactは、これらすべてを一旦ご破産にした。

MVCのVだ、と公式サイト説明されているが、これは半ば皮肉であって、本当はVは存在しない。Cももちろん存在しない。M、モデルロジックしか存在しない。モデル一元論、それがReact。

VであるDOM消滅し、JavaScriptの `x` や `a` などその他の変数と同列のファーストクラス仮想DOMとしてしか存在していない。

まり仮想Vは、M(モデル)内で関数型の文脈自由自在演算できるわけ。

コード最後マウントしておけば、仮想Vは自動的に、実VのDOMとして描画される。

M=ロジックの外に、あらかじめわざわざ決め打ちしたVを用意するよりも、M=ロジックに一元化するほうが賢い。それがReactであり、JSX

2016-04-27

会社フランス人たちがクズすぎる件

弊社には何人かフランス人が働いているが基本クズ

そろいもそろってクズ

能力が低いくせに自信だけは一人前で自分の言い分が通るまでは喧嘩腰。

たとえば「私はプログラムソースコードは読まないよ!だから全行にコメントいれて!コメント入れるのは当たり前の事だよ。私はソースコードを読むときコメント英文よ読むように読んで理解から全行にコメントいれて!」

みたいなよくわからん要求を押し通してくる。(ソース読めない人がプログラマか?あほかと)

これやらないとそれを言い訳文句をいってそもそも仕事してくれない。


SingletonもしらないMVCもしらないJenkinsもしらないコマンドラインもろくに使えない、そんな状態で私はソフトウェア工学を学んだプロみたいな言い方をしてくる。

その自信のせいか人の意見は聞かない。

仕事は終わらせないで帰る、昼飯は二時間戻ってこない、そもそも会社Youtubeばっかり、ミーティングはずっとスマホいじってて話を聞けと言っても「きいてるよー。私はマルチタスクから両方できる」などといってミーティングが終わったらさっきは何の話だったの?と聞いてくる始末。

そして浮気仕事には関係ないからどうでもいいけど、結婚してるのに出会い系サイト出会った女の子に片っ端からあって遊んでる。そして写真にとってそれをいつも自慢してくる

私はチームにいる誰よりも女の子を抱いた事あるよ!なんて自慢してくる

しるか、しね

はい。これが一人目のフランス人

二人目、

技術力が低い。なのに文句ばかり。

企画者がもってきた仕事めっちゃ切れて文句いって仕事しない。

ミーティングしても「いつまでこんなミーティングつづけるんですか!!!!」みたいに

ソースコード問題をみんなで指摘しても「これはこうじゃないとダメなんです!!!」みたいに

基本自分正義自分意見反論してくる奴はみとめないのがフランス人

クズクズ!基本クズ

しね

三人目、

同じように上長に反発しすぎてランクを下げられる

四人目、

社員旅行にいったのに飽きたのか途中で誰も言わずに一人で帰ってくる

みんないなくなって大慌て

旅行が終わっていきなり新幹線切符もってきて開口一番「先に帰ってきたからこれ清算して!」

しね

五人目、

昼頃会社に出社してくる、PCをたちあげるなりおもむろにゲームを開く

夕方までそのまま

そして帰る

一緒にチームを組んでる人は夜遅くまで残業のに

あとのフランス人はしらない

ただでさえ働かないのに本当赤ちゃんをあやすかのごとく機嫌を取ってあげないとダメ

フランスはこんな奴らばかりでどうやって経済なりたたせてるんだ?

クズすぎだろ

あ。弊社にいるフランス人クズなだけか。

まぁそんなやつらを見抜けず採用してるうちの会社ダメなだけか。フランス人以外は外れ少ないんだけどなー


言いたい事はやまほどあるが面倒になってきたのでこれくらいで

これからグルバル(笑)とかでフランス人採用する会社は注意した方がよいかもねー

2016-04-21

転職は5年勤めてから

の方が良い。

後悔しかしませんよ

追記 :

プログラミング技術はある程度自分で調べればわかるから設計ベストプラクティス教えて欲しいな。さすがにTOPページでjson取ってくんのはあんま良くねーと思っちゃった。俺が作ったんだけど。

まぁ、結構勉強になったから良しとする。

追記 : 2015/08/12

社内勉強会を定期的にやってる。今日分析系の話。傾向を分析するのではなく何を分析するかが重要らしい。っ俺の考えと違うかも知れないがすごく意識が変わった。

てか思った。そもそも、傾向分析する必要あんの?減少傾向であれば回復するのは厳しくねっかほぼ無理じゃね?以下の例がうちの会社がやってること。

会員数が減った → 退会した会員の様々な傾向を分析しよう!

これはマジであん意味ない。今日の勉強会の答えは

具体的な原因を突き止めてそれらの傾向を分析する的な感じ。

でもそんなのめんどくさくね?

俺の考えは以下。

会員数が減った → SEOを強化(減った数以上に増やす)。そんなチマチマした改善工数かけんなら新しい機能新規事業を行う。

つーか、そんなに改善点があるアプリじゃないですよ、って言ってあげたかった。mixiみてよ、足跡消したりクソゲー増やしたのが原因じゃないでしょ。飽きられただけ。あとお客を動かす施策意味の無さ。メルマガ、お得系。そんなん変わんねーよアホかよ。

っかこんなん考えること自体が嫌だわ。ちゃんと考えてる同世代は偉いし優秀だわ。ホントはちゃんと考えなきゃいけないね

追記 : 2015/08/14

憂鬱でなければ仕事じゃない」

それなりに偉くなると会議が増える。僕らみたいな下っ端は「いろいろ抱えてて大変だなー」って思う。ように言い聞かせる。そもそも会議ってなんのためにやるんだろう?僕が考えた結果

「モノを実現するための話し合い」

時間も掛けた結果ってのが不透明なまま。不透明って言い方は違うかな?要はないも得ていない安定の不毛会議。これに気付いてるのは僕ら20代の連中だけ。 上記の定義だと会議夢物語を語る場だから会社楽しいかもね。そこは勘違いしちゃいけない、憂鬱でなければ仕事じゃない

追記 : 2015/08/19

会議議事録重要さ。簡単で良い。ある程度の発言をまとめておけばそれ見て答えが出るので物事スムーズにいく。延びる会社ってのはホワイトボードが多いしなー。

あとxamarinの発表。プレゼンの下手さに感動。

ほとんどライブラリ使えるの?とか知らねーよ、だいたい使えるわ。UI共通化は?出来ねーって言ったでしょ。細かいバグはありそうだけど、相当実用的。でも多分これは導入されねぇな!みんなモチベ低い!

ほかプロジェクトが詰んでたやつ、stackoverflowに載ってたっぽい。もっとGoogle翻訳使えよ!!周知しよ、難癖つけられそう笑

追記 : 2015/08/22

すごく重要な話があった。すごく憂鬱になる話。

でもプログラミングが出来る環境は維持されるみたいなんで良かった。SIerときは全員技術者だったから良かったな。っか楽。

よく技術者営業対立があるけど、極端な話、全員営業やる。全員技術者やる。どっちが良い方向になるかわかんねーよな。

営業キツイよなー、成果出なきゃやり甲斐が生まれないでしょ。

もう、みんなプログラミングやろ!楽しいよ!多分

追記 : 2015/08/24

空気が重い。卒論思い出す。

いろいろ考えるから憂鬱な話はあとに効くみたい。

この状況を覚悟してたけど、まさか想定してるなかで最悪な状況に出くわすとか笑。

「一生面倒みる覚悟がないなら助けるな」

大学教授に言われた言葉が身に染みる。多分あの人は地獄をみるだろう。

追記 : 2015/08/26

面談。褒められた。評価評価うるせぇ。評価給料からあんま興味ねーよそこには。給料転職したんじゃねーよ、前の会社の方がよっぽど給料いいわ。技術者出身経営者がいる会社に入りたかったなほんとに。

っかangularjsすごいいいなと。双方向データバインディングHTML拡張フロントと完全分離出来るのがあつい。

追記:2015/09/07

夏休み終了。海外はいいなーやっぱ。いろんな人間見てるだけで楽しーわ、ってことで憂鬱会社まり

僕が設計実装した機能を他プロジェクトに移行する案件で同期に任せてたんだけど、いろいろ未完成すぎて仕事増えた。詰みそうなとこ教えて「問題ないっすよ」って言ってたのに問題ありあり詰んだわ。nugetエグい(近々、エグいの書く)。まぁ、回避たか問題ないけどさ。

追記:2015/09/16

ちょー出世した。事業責任者的な感じ。給料めっちゃあがる。転職して半年プログラムが楽しくてひたすら組んでただけ。前の職場でも無理矢理リーダーさせられたし、無駄な運は持ってるなーと感じる。ひたすら組んでると開発効率だったり、何が出来るか、未来があるかってのを想像するのが好きなんで、それをキャッキャ言いながら楽しそうに話すことと、詰んだときゴリ押し回避方法を生み出すのが得意なんで、出来る奴だなーと思われてるっぽい。

これからはひたすらプログラム組むことは難しくなりそうだなー。あと結果と周りの目、いきなり入ってきた奴が急に出世するから嫌な感じだよね。まだ20代半ばよ、気が重すぎる。まぁ、半年後に急降下する可能性があるから気が楽になったわ。

追記:2015/09/30

今日、いろいろ発表された。なんか抜擢されたかおかしいなーって思ってて、抜擢された奴らを見たらびびった。全員、世渡り上手(俺も)。ちょっとガッカリ自分でもちょっとコード書ける方だなーと思ってたけど、それが理由ではなかったのね。まぁ、同世代スーパーエリートばかりなのになんかおかしいと思った。

もうasp mvc飽きたなー。angular楽しいからまだいいけど。

最近rails楽しいちょっとしたキュレーションサイトを構築中だけど、コード量がaspと比べるとビビるわ。複数モデル使えるとかビックリマークすげーとか。gemもコレねぇかなーとか思ったらだいたいありそう、何より日本語情報多すぎ!但し、サイトいつ出来るかなー。

追記:2015/10/15

やっぱ感情的な人はあんまりきじゃないなー。柔軟じゃなさ過ぎ。極端だけど、討論番組とか見てても感情的な人っておかしからなー。俺も感情だけで転職したけど大失敗だったし。ただ、久しぶりに会いたいって思う人は感情的な人が多い。不思議

っか雇われの身だったらなにかをやってやるって気持ちで臨むと終わるないろいろと。っかなにもしないでも金貰えることは常に頭に入れておかん人間的におかしくなるね。

追記:2015/10/19

いやーやっぱ俺のこと好かねー人多いなー。予想通りっすね。つーか底辺突っ走ってきて就活時期にアルバイトしなきゃいけねーなって思ってた俺が降格なんてビビるはずねぇだろボケ調子乗ってたら激安家賃の家にすまねーだろぅがよぅ!

って感じで愚痴はこれまで。

つーか、整合性は細かい部分じゃなくて決定した時にガツっと決めた方がいいな。まじでいちいち考慮したプログラムかいてられんよ、クソめちゃくちゃなコードになるし。そういう点ではjsはすげー勉強になった。ただ、結構プログラム本質を突いていてjs馬鹿に出来んなーと身を持って感じました。常に整合性を保つってのはその場しのぎのコードになりますね。

追記:2015/12/07

好きなことでお金を稼ぐって非常に難しいことがわかった。俺が転職したのもスキルアップじゃなくて好きなことやりたいって気持ちだったのね。すげー勘違いしてた。後悔してもしょうがないから資格を取ろう。

追記:2016/02/11

小学生の頃と悩みが同じ。希望が持てた一年前の方がずっとマシだ

転職は5年勤めてから

の方が良い。

後悔しかしませんよ

追記 :

プログラミング技術はある程度自分で調べればわかるから設計ベストプラクティス教えて欲しいな。さすがにTOPページでjson取ってくんのはあんま良くねーと思っちゃった。俺が作ったんだけど。

まぁ、結構勉強になったから良しとする。

追記 : 2015/08/12

社内勉強会を定期的にやってる。今日分析系の話。傾向を分析するのではなく何を分析するかが重要らしい。っ俺の考えと違うかも知れないがすごく意識が変わった。

てか思った。そもそも、傾向分析する必要あんの?減少傾向であれば回復するのは厳しくねっかほぼ無理じゃね?以下の例がうちの会社がやってること。

会員数が減った → 退会した会員の様々な傾向を分析しよう!

これはマジであん意味ない。今日の勉強会の答えは

具体的な原因を突き止めてそれらの傾向を分析する的な感じ。

でもそんなのめんどくさくね?

俺の考えは以下。

会員数が減った → SEOを強化(減った数以上に増やす)。そんなチマチマした改善工数かけんなら新しい機能新規事業を行う。

つーか、そんなに改善点があるアプリじゃないですよ、って言ってあげたかった。mixiみてよ、足跡消したりクソゲー増やしたのが原因じゃないでしょ。飽きられただけ。あとお客を動かす施策意味の無さ。メルマガ、お得系。そんなん変わんねーよアホかよ。

っかこんなん考えること自体が嫌だわ。ちゃんと考えてる同世代は偉いし優秀だわ。ホントはちゃんと考えなきゃいけないね

追記 : 2015/08/14

憂鬱でなければ仕事じゃない」

それなりに偉くなると会議が増える。僕らみたいな下っ端は「いろいろ抱えてて大変だなー」って思う。ように言い聞かせる。そもそも会議ってなんのためにやるんだろう?僕が考えた結果

「モノを実現するための話し合い」

時間も掛けた結果ってのが不透明なまま。不透明って言い方は違うかな?要はないも得ていない安定の不毛会議。これに気付いてるのは僕ら20代の連中だけ。 上記の定義だと会議夢物語を語る場だから会社楽しいかもね。そこは勘違いしちゃいけない、憂鬱でなければ仕事じゃない

追記 : 2015/08/19

会議議事録重要さ。簡単で良い。ある程度の発言をまとめておけばそれ見て答えが出るので物事スムーズにいく。延びる会社ってのはホワイトボードが多いしなー。

あとxamarinの発表。プレゼンの下手さに感動。

ほとんどライブラリ使えるの?とか知らねーよ、だいたい使えるわ。UI共通化は?出来ねーって言ったでしょ。細かいバグはありそうだけど、相当実用的。でも多分これは導入されねぇな!みんなモチベ低い!

ほかプロジェクトが詰んでたやつ、stackoverflowに載ってたっぽい。もっとGoogle翻訳使えよ!!周知しよ、難癖つけられそう笑

追記 : 2015/08/22

すごく重要な話があった。すごく憂鬱になる話。

でもプログラミングが出来る環境は維持されるみたいなんで良かった。SIerときは全員技術者だったから良かったな。っか楽。

よく技術者営業対立があるけど、極端な話、全員営業やる。全員技術者やる。どっちが良い方向になるかわかんねーよな。

営業キツイよなー、成果出なきゃやり甲斐が生まれないでしょ。

もう、みんなプログラミングやろ!楽しいよ!多分

追記 : 2015/08/24

空気が重い。卒論思い出す。

いろいろ考えるから憂鬱な話はあとに効くみたい。

この状況を覚悟してたけど、まさか想定してるなかで最悪な状況に出くわすとか笑。

「一生面倒みる覚悟がないなら助けるな」

大学教授に言われた言葉が身に染みる。多分あの人は地獄をみるだろう。

追記 : 2015/08/26

面談。褒められた。評価評価うるせぇ。評価給料からあんま興味ねーよそこには。給料転職したんじゃねーよ、前の会社の方がよっぽど給料いいわ。技術者出身経営者がいる会社に入りたかったなほんとに。

っかangularjsすごいいいなと。双方向データバインディングHTML拡張フロントと完全分離出来るのがあつい。

追記:2015/09/07

夏休み終了。海外はいいなーやっぱ。いろんな人間見てるだけで楽しーわ、ってことで憂鬱会社まり

僕が設計実装した機能を他プロジェクトに移行する案件で同期に任せてたんだけど、いろいろ未完成すぎて仕事増えた。詰みそうなとこ教えて「問題ないっすよ」って言ってたのに問題ありあり詰んだわ。nugetエグい(近々、エグいの書く)。まぁ、回避たか問題ないけどさ。

追記:2015/09/16

ちょー出世した。事業責任者的な感じ。給料めっちゃあがる。転職して半年プログラムが楽しくてひたすら組んでただけ。前の職場でも無理矢理リーダーさせられたし、無駄な運は持ってるなーと感じる。ひたすら組んでると開発効率だったり、何が出来るか、未来があるかってのを想像するのが好きなんで、それをキャッキャ言いながら楽しそうに話すことと、詰んだときゴリ押し回避方法を生み出すのが得意なんで、出来る奴だなーと思われてるっぽい。

これからはひたすらプログラム組むことは難しくなりそうだなー。あと結果と周りの目、いきなり入ってきた奴が急に出世するから嫌な感じだよね。まだ20代半ばよ、気が重すぎる。まぁ、半年後に急降下する可能性があるから気が楽になったわ。

追記:2015/09/30

今日、いろいろ発表された。なんか抜擢されたかおかしいなーって思ってて、抜擢された奴らを見たらびびった。全員、世渡り上手(俺も)。ちょっとガッカリ自分でもちょっとコード書ける方だなーと思ってたけど、それが理由ではなかったのね。まぁ、同世代スーパーエリートばかりなのになんかおかしいと思った。

もうasp mvc飽きたなー。angular楽しいからまだいいけど。

最近rails楽しいちょっとしたキュレーションサイトを構築中だけど、コード量がaspと比べるとビビるわ。複数モデル使えるとかビックリマークすげーとか。gemもコレねぇかなーとか思ったらだいたいありそう、何より日本語情報多すぎ!但し、サイトいつ出来るかなー。

追記:2015/10/15

やっぱ感情的な人はあんまりきじゃないなー。柔軟じゃなさ過ぎ。極端だけど、討論番組とか見てても感情的な人っておかしからなー。俺も感情だけで転職したけど大失敗だったし。ただ、久しぶりに会いたいって思う人は感情的な人が多い。不思議

っか雇われの身だったらなにかをやってやるって気持ちで臨むと終わるないろいろと。っかなにもしないでも金貰えることは常に頭に入れておかん人間的におかしくなるね。

追記:2015/10/19

いやーやっぱ俺のこと好かねー人多いなー。予想通りっすね。つーか底辺突っ走ってきて就活時期にアルバイトしなきゃいけねーなって思ってた俺が降格なんてビビるはずねぇだろボケ調子乗ってたら激安家賃の家にすまねーだろぅがよぅ!

って感じで愚痴はこれまで。

つーか、整合性は細かい部分じゃなくて決定した時にガツっと決めた方がいいな。まじでいちいち考慮したプログラムかいてられんよ、クソめちゃくちゃなコードになるし。そういう点ではjsはすげー勉強になった。ただ、結構プログラム本質を突いていてjs馬鹿に出来んなーと身を持って感じました。常に整合性を保つってのはその場しのぎのコードになりますね。

追記:2015/12/07

好きなことでお金を稼ぐって非常に難しいことがわかった。俺が転職したのもスキルアップじゃなくて好きなことやりたいって気持ちだったのね。すげー勘違いしてた。後悔してもしょうがないから資格を取ろう。

追記:2016/02/11

小学生の頃と悩みが同じ。希望が持てた一年前の方がずっとマシだ

2015-08-21

詳細設計書はどこまで詳細に設計すべきなのか(主に愚痴

今作ってる典型的JavaMVCモデルWebシステムでの話。

結論から言うと、プログラムクエリ和訳したレベルまで細かく書くのは無駄だと思ってる。

特に一番嫌いなのが、クエリ和訳した文をそのまま詳細設計書内に書けって言ってくるレビュアー。今のチームのレビュアーである

テーブルと列、検索条件、ソート順、結合あるなら結合条件も書けと言ってくる。

まあ単純な主キー検索しかないシステムなら別にいい。書くよ。

だがそんな単純なクエリだけでそこらのシステムが成り立ってるならこんなこと言わない。

大体今日びORMも導入せず処理の途中にクエリベタ書きするような糞システムもそうそう無い(とはいいつつ去年見た)っていうのに。

クエリ和訳したような設計書を書くくらいなら、いっそ設計からクエリ自動生成できるようにすればいいじゃないかっていうことで、余所部署で作られたマクロ付きの設計書を拝借してきて今回DB関連は全部そっちで定義してある。

にも関わらず、「ここにもさらっと書いておいてよ」とレビュアー様はのたまう。いやいやさらっと書けないから別のドキュメントにしてるんですが。

んでレビュアー様のご指摘どおりに直していくと、結局別出しにしていたクエリ設計書と全く同じことを詳細設計書にも書くハメになる。

実はこのレビュアー様、似たような前科がある。

そこそこ大きなプロジェクトで、基本設計、詳細設計さらプログラム設計書を作ることになったのだが、このレビュアー様がレビューしまくってして書き直させまくった結果、詳細設計書とプログラム設計書はフォーマットが異なるだけで記載内容がほぼ一緒になってしまったのだ。

当時設計書の修正だけでかなりの工数を使った結果上からも下からも総ツッコミを喰らってかなり痛い目見てるはずなのに、また同じことを繰り返しているから救いようが無い。

プログラムが書けない典型的文系SE様に今更Javaプログラム書ける様になれとは言わない。

ただ詳細設計レビュアーを任されるような立場ならば、せめてそのシステムで使われてる言語フレームワーク特性ぐらいは把握しておくべきだ。

それも嫌ならせめてフロー図くらい読めるようになってほしい。フロー図作れって言っておいていざ作ったら「このひし形って何?」って聞かないでお願いします。

2015-08-03

asp.netmvcテンプレートがわけわからんのよ

ちょっと色々あってVS2013Com起動してさ。

そーいやmvcなるもんあったな、と。

んで空のプロジェクトじゃなくてインターネットApプロジェクト選択してみたわけ。

そしたらゾロゾロファイルが出来上がるわ。F5ですぐそれっぽいのが立ち上がるわ。

凄いけど......何が何だか

とりあえずモデルとビューとコントロールフォルダに色々突っ込めば良いんだろうけどさ、

【既にあるファイルは何をしている?何のためにある?】ってことを察することが出来ない。

まさかとは思うが、ソース全行追いかけろ?おいおい。

こりゃ空のプロジェクトで一から作るしかないな。

......こうやって予めセットでまとめられているテンプレートを以って、作られたサービスシステムってあるのかね。

2015-03-11

ASP.NET 4.0 4.5 4.5.1 4.5.2 MVC で 404 になったら...

MVCアプリなどを .NET Framework 4系列で開発したら、該当するアプリケーションプールの設定をv4.0に設定しなくちゃだね、IIS 管理ツールで。

2014-10-11

アプリ屋がRailsを初めて触ってみて感じた事

Qiitaに書こうかと思ったけど、言いたいことも言えない、こんな世の中じゃ。

発想が古臭い

モバイルファーストAPIファースト文脈ハイブリッドWebをやってきた目からすると、サーバーサイドでHTMLを生成してページ遷移させるなどという90年代調のクラシカルな発想を基本に据えるフレームワークはとても斬新に思えました。HTMLゴリゴリ生成するなんてよほど特殊最適化をしようとするのでなければそもそも発想として出てこないです。それでいてDSLメタプログラミング等のテクニカル技法宝石のように鏤められている様はまるでエジプト時代骨董品を見るかのような趣がありました。turbolinkなどは、かつて表計算ソフトに出しゃばっていたイルカを思い起こさせる味があります。かつて慣れ親しんできたSPAが星のように遠い存在になりました。

モデルMVC

Web界隈の人々がモデルだとかアクティブレコードだとか"MVC"だとかを非常に具象的に話す様を見るにつけ、お前らどんだけPofEAA読み込んでるんだよと畏怖していた時期が僕にもありましたが、どうやら彼等はRailsクラスディレクトリという特定実装について話していただけだったようです。Modelという概念もこれだけ肥大化してしまったら、オリジナル概念で彼等と会話するのは諦めるべきかなと思いましたし、Railsの"MVC"をアンクォートして語るのはもはや害悪であるとすら感じました。

レールから外れる辛さ

Rails界隈の人がよく「Rails流儀」や「正しい"MVC"」というのを口角泡を飛ばし議論しているのを目にするのですが、おそらく外に広がる不条理で火傷を負って快適なRails世界に引き篭もった結果としての一種のストックホルム症候群なのだなと思いました。いまやAjaxとかWebsocketとかWebRTCとかを組み込もうとする至極真っ当な方法論がとてつもない高難度に見えてきます。設定よりも規約、というのも一つの方向性だと思いますが、ドメインサービスレイヤ名前空間を構築しようとしたりコードジェネレーションしようとしたりしただけで地獄のようなCircular Dependency罰を受けてしまったので、自分がとても間違った事をしているような気がしてしまいました。とはいえConcernsに特別名前役割を与えられても正直しんどいので、皆が皆libゴミを放り込んでいく様子にも納得がいきました。

レイヤ?何それおいしいの

RailsAPIサーバーとして使おうとするとまずビューが無くなってMとCだけになりますが、いわゆる"MVC"の文脈で育ったエンジニアがなぜ息を吸うようにFat ControllerやFat Modelを作ってしまうのかという事が良く分かりました。多くのRailsリファクタ手法と称されているものクラスを書くファイルを分割する事以上のものでは無いように思えたので、Rails使いを大きめなAPIサーバー案件に回すときセットポジションDDD青本を投げつける必要が有るなと思いました。

TDDやれんのか

ビューとコントローラを結合させた場合結合テストはCapybaraとかのBDDマークアップサイドとの干渉を恐れながら強い気持ちでメンテしていくしか無いのかなと思いました。おそらく脳に電極を埋め込んでいるか緑色のランプを見るだけでハイになれる特殊な人にしか生き抜けない闇が垣間見えました。コントローラを薄くしてサービスレイヤを挟めばその辺りもうまくいけそうな気がしましたが、ビューからヘルパーモデルがいくらでも透けて見えてしまうという状況では裏側の完全性に自信を持つ事は難しそうでした。

分業とか出来るんだろうか

ビューがRubyを叩いて永続化レイヤと直接コミュニケーション出来るというのはとても生産性が高いのだろうとは思いましたが、こうして出来たパーシャルやら何やらをデザイナーとどうやって共有するかを考えると頭痛が痛くなりました。おそらく適当に切り出して綺麗な空間をassets以下に構築した上でpublicにRPCのような窓口を備えたゴミを量産していくのかなと思いましたが、もっと綺麗な方法はあるのかもしれません。でもきっとRails案件に関われるデザイナーRubyバリバリ書けるに違いないはずなので、ここが問題になる事は無いのだろうなと思いました。

RESTとかきついです

RESTはとても美しいパラダイムではありますが、そもそもHTTPがさほど美しくないので歪んだ空間には目を背けるか勝手解釈を与える事で人は初めてRESTfulを名乗る事が出来るのだと思いますGETbodyを(公式には)持たないという事について美しい説明を与える事は出来ないでしょう。サーチAPIはどうしますか。ステータスコード足りなくないですか。401エラーはどうしますか。そしてRESTあくまリソース抽象化する美しい概念なので、アクション副作用については貧弱です。動詞が足りないですし、一般動詞に狭義の意味を与えてドキュメントするのは二度手間しか見えません。PUTには冪等性があるべきみたいなこだわりは家の猫にでも説教してればいいと思います。というわけで、REST的な設計拝借することはよしとしても、「○○はRESTでは無い故云々~」みたいな注文はやめて頂きたいものです。

そんなに嫌なら他に行けば

とか言わないで欲しいです。こういう時にセットでPHPをディスって悦に浸るのは知る限りRubiestとPythonistaと中学生だけです。それにこれはあくまサーバーサイド初心者感想なので、想像するにこれ系のFWは多かれ少なかれ似たような不満を抱えるものなのかなと思います。というわけで、おそらくこれから選択肢がある限りはRailsを使い続けると思います

だってRuby楽しいんだもの

2014-01-17

http://anond.hatelabo.jp/20140117000313

元増田です。ありがとうございます

モデルで発生するイベントが多く、複雑になるほど、ビューとの関連は密になる。

ここの所は、今回の例ではいまいち見えづらい気がする。

しかに、そうですね… 

攻撃を支持した時点で刀をふりあげて、そのあいだに毒でモンスターが死んだら、納刀する、のような場合では、モデル・ビューの関連が密になる例になるでしょうか。

いや、そのときModel「刀」をつくればいいのか…

Qtsignal/slotなんかはモデル同士の通信にも使える

これは知りませんでした。基本クラスレベルObserverパターンサポートされる!しかタイプセーフ…

Mac OS XCocoaフレームワークにも KVO という同様の仕組みがありますが、型のチェックは自分でする必要があります

MOVEの考え方からいえば、モデルの責務が吸い出されて単なるデータになってしま

MOVEは望まれなかった子 - the sea of fertility

を読んで、MVCを理解した(つもりになった)ので、MOVE設計方針自体スルーしていました。

Modelから責務が吸いだされて、なくなるのが予定調和なら、OVEでよいのでは

http://anond.hatelabo.jp/20140116221703

一理あるご意見いただきました。ありがとうございます

英語として読みにくいなら、メソッド名のほうを変えるよ。

モンスター.attackedBy(勇者.attackPower)

誤解を招いてしまったようですいません。先の理由1では、"能動態のほうが受動態より解りやすい"、ということを主張したかったのです。

あとづけで申し訳ないのですが、その順序で書くのにはもう一つ、MVC的な理由があります

理由3: 入力Controllerのコントロール対象が明確になる

RPG戦闘シーンの入力Controllerは、ユーザーメニュー選択等によって、勇者の攻撃方法攻撃対象モンスターを決定し、攻撃を実行する。

まり、この入力Controllerがコントロールする対象は、勇者と彼の攻撃対象だ。

勇者.attack(モンスター)

と書くと、勇者に命令していることが明示されるので、その設計意図がはっきりする。

攻撃方法型は、モンスター側への攻撃にも、勇者型への攻撃にも使える

なるほど、その設計は思いつきませんでした。〈モンスターへの攻撃と勇者への攻撃を対称に捉える〉という視点目からウロコです。

増田さまへ二つ質問がございます

ひとつめの質問は、攻撃方法型は、具体的にはどんなメソッドフィールドが並ぶのか、です。

考えてみたのですが、どうしても"通常攻撃","ディレイ攻撃","attackPowerの値","すばやさ", などが並ぶ、ディクショナリ(連想配列)的なものが思い浮かんでしまます。そうすると、結局モンスターのattackedByメソッドにif分岐を並べることになってしまうので、増田さまお考えの設計とは違うのでしょう。

ふたつめの質問は、増田さまが推す設計

モンスター.attackedBy(攻撃方法型: ジャンプ攻撃)

の方が良い利点はなんでしょうか。私は"時間的な処理の流れがわかりやすい"設計になりやすいことを主張しました(理由2参照)・

増田さまが考えるほかの利点があればぜひ教えてください。

http://anond.hatelabo.jp/20140116013407

モデルで発生するイベントが多く、複雑になるほど、ビューとの関連は密になる。

ここの所は、今回の例ではいまいち見えづらい気がする。今回の例で複雑になっているのはモデルだけである。ビューがやる事は、「納刀する」「変色した血が飛び散る」イベントをlistenして画面に描画するだけのはず。MVCイベント機構は、モデル→ビューとコントロールモデルメッセージ通知を行うためのもので、モデル同士の通信についてはノータッチモデル内での相互作用に、単なるメソッド呼び出しを超えたあれこれが必要なら、DSLを作るなり自前でイベント機構を作るなり好きにして下さい、というスタンスかなあと思われ。

といってもQtsignal/slotなんかはモデル同士の通信にも使えるわけで、そういう意味最近GUIエンジンMVCの範囲を超えつつある。具体的に「Controllerから入力Modelの自発的な状態遷移も、同じイベント機構で扱いましょう」というのはMOVEの考え方に非常に近い。

http://blog.neo.jp/dnblog/index.php?module=Blog&action=Entry&blog=pg&entry=3442&rand=9193a

MOVEの考え方からいえば、モデルの責務が吸い出されて単なるデータになってしまうのは、むしろコンセプト通りであるとも言える。

なお、単純な例を超えてRPGの実装を自分が考えるなら、オブジェクト指向設計としては攻撃方法型や特殊作用型(毒とか呪いとか)同士の相互作用を主眼に置いた感じになって、モンスター勇者は単なるデータに近付いていくだろうなあ、と予想してみる。組んでみないと分からない事もあるだろうけれども。

2014-01-16

http://anond.hatelabo.jp/20140116013407

MVC以前にオブジェクト指向がしっくりきてないでしょ。

勇者モンスターを攻撃する」。

勇者.attack(モンスター);

という設計だったとする。

これが既にオブジェクト指向的じゃないもの

オブジェクト指向ならさ、

影響を受けるモノ.影響を与える方法(影響を与える外部パラメータ)

ってなるじゃん。

リストライブラリは、

list.append(elem)

でしょ。

勇者モンスターを攻撃する」

ならさ、

で、

モンスター.attack(勇者.attackPower)

になるんでない?

実はMVCってしっくりこないんです

例えばスーファミFFみたいな、古典的RPG戦闘シーンを作っていて、「勇者モンスターを攻撃する」。

勇者.attack(モンスター);

という設計だったとする。

これに「モンスターが毒を受けて、自死する」という挙動を追加するケースを考える。

毒.attack(モンスター);

やや複雑な変更になりそうだが、勇者の攻撃とのタイミングの差で、

のようになるとしよう。

さて、変更する箇所は...

まず、インターフェイス"攻撃者"をつくって、「勇者」、「毒」をその実装とする。加えて...

Model勇者への変更:

斬撃後に死んでいた場合(*) 、納刀する

入力Controllerへの変更:

攻撃前に既に死んでいた場合、攻撃できないようにする

Modelモンスターへの変更:

しかしこの変更は非常に複雑だ...

困ったこと1

この設計変更によって、

が、

の4パターンに増えた(※ただし最後パターンに関しては今回特に修正の必要はなかった)

攻撃者がひとつ増えるごとに、これらの分岐は倍、倍に増えていく怖れがある。

困ったこと2

あらたに攻撃者を追加すると、既存の攻撃者を変更しなければならない。

困ったこと3

この変更によって、全体の時間的な流れがよくわからなくなった。

例えばさらに攻撃者「呪い」を追加したとする。

するとModelモンスターには

  • 既に毒を受けているとき呪いを受けたら
  • 呪いを受けたあとに斬撃で死んだら

等々の分岐が並ぶことになる。この分かりにくさは単にStateパターンを導入しただけでは本質的には改善しないだろう。

考察

MVCにおけるモデル、は振る舞いを持ったデータだ。モデルが状態変化したときイベントが発生する。

しかしその状態変化が別のモデルの状態変化のタイミングに影響をうけるときモデル設計はとても複雑になり、読みにくくなってしまう。

モデルで発生するイベントが多く、複雑になるほど、ビューとの関連は密になる。

このような複雑さをプログラマが支配するのは、とても大変だ。

みなさんも体験したことがないだろうか、GUIで「ホニャララしているときにホゲホゲするとバグる」みたいな挙動を。

例えば私が愛用しているiOSはてなブックマークアプリは、

  1. 「人気」タブを選択して
  2. 記事のリストを(更新するために)下にドラッグしながら
  3. ドラッグしている指を離さないで、(空いてる別の手で)「新着」タブを選択する
  4. そのあと指を離して、再び記事のリストを下にドラッグ

すると、上部に表示される「更新時刻」の表示位置がおかしくなる。

RPG設計は、たとえば下記のように記述できるDSLを導入すると、劇的に改善する。

タイミング:毒 ⇒ 死ぬ ⇒ 斬撃 の順なら、納刀する
タイミング:毒 ⇒ 斬撃 ⇒ 死ぬ の順なら、変色した血が飛び散る

オブジェクト指向ではこれはStateパターンStrategyパターンを組み合わせることで実現できる。

でも、このような設計にすると、勇者モンスターモデルオブジェクト責任は極端に少なくなってしまう。

加えてオブジェクト間のやりとりの複雑さがDSLに押し込められるので、オブジェクト主体性殆ど無くなってしまい、

結果、モデルオブジェクト存在意義が怪しくなるだろう。

うん、ただのデータでいいや。

---------------------------

(*) 攻撃時に相手の状態を問い合わせるのが醜い。これを避けるには、モンスターが毒で死んだ時に勇者イベントを通知して、勇者を”戦意喪失”状態に変化させる手がある。

2013-12-18

ページ送りはMVC表現するとどうなるのだろうか

M、V、C のどれか1つとして表現はできないのではないか

2013-09-26

HTML5アプリケーションとかでも良いから誰か名称つけようよ

下見て思った。

http://mizchi.hatenablog.com/entry/2013/09/25/190313

そもそもこのスタイルキー名称が無いため

知識が離散して蓄積されてない気がする。

シングルページスタイルJavaScriptWebアプリケーションアーキテクチャ

ブラウザHTMLで動くよ!

JavaScriptMVCライブラリを利用するよ!

HTML5ヒストリー関連を利用するよ!

REST-APIを利用するよ!

メリットとかデメリットとかはいつか気が向いたら書く。

とりあえず今回は、乱立する名称候補たちを紹介

HTML5 Applications

 なんか一番ポピュラー。だけどカオス

 HTML5って言いたいだけのJavaScrtipt使ったスマホアプリフレームワークとかも呼ばれたり。

Rich Internet Applications

 このスタイル名称じゃなく、もっと汎用的なもん。

 HTML5とか言われる前にJavaScriptアプリケーションやるとこれになってた。

 GWTとかExtJS,YUIとか懐かしい。

Single Page Application

 アーキテクチャとしては、もっとも正解の名前なのだが、NET系界隈でしかきかん。

 ASP.NET MVC Single Page Applicationは、キー要素がかなり詰まってて、参考になる。

 このあたりのやろうとしてる奴は一度触っておくが吉

Large-scale JavaScript aplication

 JavaScriptMVCライブラリAMD等の依存モジュール管理とか

 最近流行を組み合わせて巨大なアプリを作る指針。

 英語ソースだと結構ポピュラーな感じの名前だが、指針的な匂いアプリケーションとは言わない感も。

 日本でも一時期、大規模Javascript開発とか言われてたが、Bakcbone.jsって名前に変わった。

JavaScript Web Applications

 Node.jsと被るために、このアーキテクチャの説明にはあんまり使われない。

 動物本の、

 「ステートフルJavaScript MVCアーキテクチャに基づくWebアプリケーションの状態管理

 原題は、「JavaScript Web Applications」

 これだけで、どのぐらい困ったか分かる感じ。

 ちなみに、JavascriptMVCアーキテクチャの解説本としてはありなので読むが吉

ダイナミックHTML

 マイクロソフト原理主義

 といっても、10年ぐらい前からXHRHTMLDOMほげるのは

 実はあんまり変わってない。

Thin Server Architecture

 Java界隈から出したかっただけ。oracleが呼んでた気がする。

 Struts死んだけど、JSFでやるの?JSF無理筋だから違うフレームワーク作るの。

 JSFみたいな抽象化使い始めると、コボルみたいにJava世界に閉じそうだけど大丈夫なの?

JavaScriptMVC

 同名のライブラリがあるせいであまり使われない名称

 このあたりのライブラリ使えば、簡単にこのスタイルアプリ作れると思ってるでしょ?

 残念ー、あくまでもMVC構造しか提供しないんすよー

Backbone.js

 上記の、キー検索ワード

 ライブラリ名称なのだが、背負ってるものは、大体この界隈全て

 だけど、使えば、この界隈のアプリが簡単に作れるかというと、そうでもない。

と、まあ名前はいっぱいあるけど、知られてないという感じもする

2013-09-01

BtoBとBtoCの技術が逆転する時代

アーキテクチャWebオンリー偏見満載で語ってるみる。

ここ10年のBtoBの成果は、共通の技術基盤という妄想のために用意された

複雑大規模で、完全に閉じてて、他には誰も使えないEclipseで動く謎のゴミ

JavaっぽいJavaっぽいJavaっぽい何かで

自分達でも持て余して、パッケージ導入とか、結局Strutsスクラッチ開発だったね。

まあ、商売ネタとしては成立してたけど。

Struts1のサポートが切れる蓋を開けた時の状況は、笑いどころか失笑でした。

からってBtoCも凄かったわけじゃない。

やすいはやいゴミを量産する方向にシフトした。

PHPとかPHPとかPHPとかで

そこで事件が起きる。Railsの登場。

ビジネス的には、あんまりインパクトはなかったこれだが、歴史の転換を説明するのには便利。

Railsアーキテクチャは、エンタープライズアーキテクチャパターンを程よい感じに取りこんでいる。

馬鹿にでも使えるようにしたもので、これが世に放たれた。

そこからBtoCのアーキテクチャの質が一気に上がる。

さんざんdisられるPHPの良さは、その哲学の無さだ。

Perlパクりから始まって、Javaクラスパクッて、Railsも速攻パクった。

最近は、所謂関数言語と分類されるパラダイムも最速でパクてる。

そんな感じで、RailsからパクッたフルスタックMVCフレームワークが一気に広まる。

そしてこれらのフレームワークは、金魚のフンSierにとって銀の銃弾だったStrutsを、

鼻で笑えるもので、Strutsドヤ顔してた彼らは、この時点からPHPerからも見下される存在になった。

ORマッパーを知らないおっさん。お元気?

エース開発リーダーさん。そろそろDIコンテナあたりは使えるようになった?

Javaの方が良いとか言うなら、せめてそのぐらいはフォローしたら良いんじゃないですかね。。。

さらには、大手BtoCのアーキテクチャ公開も普通になる。

アーキテクチャは、もはや商売道具じゃなくなった。

長年の秘伝の味を売りにしてたBtoBアーキテクチャは、

その汚い樽が馬鹿にされる時代突入する。

ただ、これは結果から見たもので、本来の本当の流れは、ネットの普及にある。

BtoCの市場が巨大化し、パイが増えて、それだけ技術者も集まった。

人が多ければ、優秀な人材が集まる確率も増える。

優秀な人材プロダクトを作れば、優秀なプロダクトが生まれる確率もあがる。

から進歩も速くなる。

みんなで作れば凄いものが作れるという勘違いは、決してしないように。

これはアーキテクチャにも影響して、その方向性を決めるようになった。

SOAPRESTなんかがまさに象徴

SOAPは、優れていなかったわけじゃない。ただ単に閉じた世界すぎた。

RESTは、実用的なアーキテクチャなんてほとんど無い。ただみんなが適当にやってたのに名前付けただけだ。

だいたい今はそんな感じで

今後はアーキテクチャはBtoCが主導するだろう。



ただし、これはアーキテクチャの話で、品質はまた別ですよ。

そこの社内SEさん。技術キーワードが凄いからって発注しちゃだめよ。

まともなもんが返ってくると期待しちゃいけない。

BtoBは、この鈍行の間、何もしなかったわけじゃない。

たった数パーセント稼働率を上げるために、何十倍時間や金をかけてきた。

実際、そういうものから仕方が無い。

彼らは、そういった品質に命をかけてきた。

設計書の文字のタイポレビューすると、単価計算で1万円以上は余裕でする。

大手Sier役割は、いつまでも必要だろう。

でも、その住人は、そういうものに命を捧ぐ時代である覚悟しないといけない。

2013-08-02

Sails.jsを使ってpixiv検索サービス作った

Pixearch(ピクサーチ)

http://pixearch.net/

node.jsMongoDB勉強がてらpixiv画像タグ検索サービス作りました

はてブタグ検索のようにpixiv投稿された最近画像pixiv内でのブックマーク数でフィルタをかけて検索できるのが特徴です。

検索したり、タグをたどって、ダラダラと良い絵を眺めるのを目的としています

一応スマホからも見られるはず。

普段はブログを書いたりしてないので、今回学んだことのメモがてらの投稿です。

使ったもの

MongoDBを試そうと思ったのがサービスを作り始めた発端です。

Web部分はmongoDBと相性が良さそうなnode.js採用

MVCフレームワークで何か適当ものはないかとググってSails.jsが良さそうだったので今回採用しました。

ホスティング

今回はせっかくnode.js採用したので、噂のnode.jsPaaSのnodejitsuを試しに使っています

500MB分の容量のMongoDB最初から使えるのも大きかったです。

とりあえず最小のプランにしてるのでどのくらい捌けるのか気になるところ。

作ってみての感想
Sails.js

Web開発用のモジュール自分で用意するのがめんどいなー、という人向けな印象。

このくらいの規模のものだったらサクッと作れました。

ただある程度の規模のちゃんとしたサービスを作るのには色々足りてないので、自分カスタマイズしたりできる人じゃないと使うのは辛そうです。

後、ドキュメントも公式のものだけだと説明されてない機能結構あったりします。

デフォルトだとDBMySQL対応していて、MongoDBを使うにはsails-mongoを入れる必要がありました。

開発中に困ったことは、nodejitsuで動かそうとしてsails-mongoでエラーが出て、調べてみたらauthenticationに対応していないというバグがあったことでした。

手元で直したのでpull requestを送ろうかと思ったら既に他の人が送っていて、3日前ぐらいに取り込まれているので今は大丈夫なはず。

https://github.com/balderdashy/sails-mongo/pull/36

現在進行形で色々Issueが上がって修正がされているのでそのうちこなれてくるのに期待。

かいところで設計考慮がちゃんとされてるなーと感じたところも多かったので、node.jsで開発してる人は一回試してみると勉強になりそうです。

MongoDB

最初コレクション操作に戸惑ったのですが、結局JS連想配列なので思ったより早く馴染みました。

$setとか$gteとか特殊な意味を持つキーがいくつかあるので、その辺を把握できてから色々と捗りました。

MySQLに比べて特に更新系で複雑なクエリが発行できるので、ORMで使うと十全に機能を発揮できないのではないかな、と思ったり。

ご存知スキーマレスなので、何も考えずにデータを突っ込んでるとIntegerで保存したい値がStringになっててソートときに困ったりするので要注意。

指定した容量を超えたら自動で消してくれるCapped Collectionがあると知ったので、今回みたいな容量が限られてる場合に便利かなと試してみたのですが、このオプション有効にしたコレクションだとデータアップデートや削除ができなくなりました。

おそらく、追加しかしないログのようなデータの保存に使うもののようです。

nodejitsu

まだ微妙な部分も多かったですが、デプロイとかコマンド一発でできて、設定管理がpackage.jsonでできたりして面白かったです。

今回は、特に問題が起きたとき環境sshで入ったりできないので、表示されてるログだけで問題を調査するのに苦労しました。

MongoLabとMongoHQというMongoDBの外部ホスティングサービスが上述したように使えるのですが、無料の容量を超えて使うにはそこそこお金が掛かるのでモリモリ容量を使うものを考えている場合は注意がいります。(もちろん値段に見合ったプロダクトを提供してくれると思いますが)

ということで、せっかく作ったので是非試してみてください。

ログイン ユーザー登録
ようこそ ゲスト さん