2007-07-01から1ヶ月間の記事一覧

行動と習慣

「人間の行動の95%は習慣からなる」。 よって、行動を変えたければ、それを習慣とすることが必要になる

テスト。setup_without_fixturesエラー

■リレーションつけて、@student.interview_typeとかテスト内でやったら次のエラーがでた何で? 開発環境では動く。テストDBにもカラムはあるのに。という時に - 3) Error: test_update(StudentTest): NoMethodError: undefined method `interview_types' for…

POSTとリレーション

■POSTでは、オブジェクトそものもを送ることはできない。外部キーとの連携の時、そのオブジェクト との関連付けはどのように行えばいいのか。 【間違い】 interview belogs_to interviewer とする。この時、以下は間違いである。got String〜みたいな エラー…

システム導入後のオペレーションを考えるものSEの仕事

SEの仕事は、システムを作るだけではない。むしろ、業務の全体改善である。その手段としてシステム があるだけである。 よって、例えば、今のプロセスが柔軟すぎてシステムに適さなかったりしたら、そこを修正したり、整える。 システムによって、縛りをつけ…

システムと現実世界が概念的にずれてはいけない

システムを構築する際に重要なことである。モデリングの考え 例えば、面接システムがあったとしよう。その、面接というイベントと、面接官が単純に多:多の リレーションを持つとする。すると、少しおかしい。何故なら、面接イベントのテーブルには、 (おそ…

一番大切なもの

■ある古代神話からの引用である ある村に悪魔がやって来た。悪魔はこういう。 「私は、全てを奪いにやって来た。但し、たった1つだけ、お前達の望むものを奪わないでやろう。 明日の朝、それ以外のものを全て奪いに来る。1つ。残すものを紙に書いておけ」 …

Lahaca展開の際の注意

■フォルダ移行の際に、ラハカ展開するとおかしくなることがある 【症状】 ・元のフォルダにないフォルダができていたりする ・元のフォルダと比べてファイルが足りない 等 【解決策】 一回リブートしたり、デスクトップ内に同じ名前のフォルダがないか確認し…

テスト(これでDBに登録されていないか検出)

■テストの際の不正値によるcreateとかの時に、過って値が反映されていないか調べる assert_raise(ActiveRecord::RecordNotFound){Interview.find( assigns(:interview).id) } updateの場合 assigns(:interview) assert_equal assigns(:interview).interviewe…

成功の秘訣

「成功の秘訣があるとすれば、皆が向かうところを見定め、誰よりも先にそこに辿り着くことである」 これを実践するためにも、常に最先端にいなければならない。規模、経験に関わらず、最先端にいると、 トップの人たちと交流がもてたりする。 つまり、チャン…

効率化に時間をかけたら、それは無駄になる

最近、日記のエントリの中に、ググれば一発ででてくるようなことが書いてある。そんなんまとめても意味なし。(手書きなら覚えることにはなるかもだが) 何故なら、ググるのも、日記を検索するもの時間は同じ。違うのは、その元を作る時間。 日記は自分で書…

includeを使った文字列検索

以下全てtrue "123".include?("1") "123".include?("12") "123".include?("2") "123".include?("23") "123".include?("123") 但し、順番は保存される。以下はfalse "123".include?("13") "123".include?("4") "123".include?("32")

先頭文字は数字の判断

■フォーム入力の検証で、「最初は半角数字」ってやつね これは、"***"[0].class == Fixnumでは判断できない。なぜなら、[0]によって。文字コードが でるから。 全角数字、他の文字もコード化されると数値になってしまうからね。 正しくは、"***" =~ /^\d/ 全…

findメソッドで多:多を検索

■結合テーブルが関連するとやっかいですよね 【状況】 テーブルは3つ。 1つは面接枠のテーブルで、開始時間、面接タイプを持っている。 面接官は、複数の面接を持っており、面接官と、面接タイプは多:多のリレーション。 面接と面接官も多:多 この時、同…

全てはゲームだ!

■ゲームとは、楽しむということ☆本気でやらなければ楽しめない 何をするにも、もっとも悪いことはストレスである。ストレスを感じながらやると、いいものはできない。 何事もまず楽しめ!楽しむ要素を付け加えろ!全てはゲーム。プログラミングなんて正にそ…

内にもifはかけます。

レンダリングは処理がそこで終わるわけではない

■renderってそこで処理が終わるわけではない むしろ、処理が全て終わった結果でレンダリングする。 render :action => "PP" p "PP" とすれば、PPという文字列が表示される。 なので、render ***; returnとしないと、ダブルレンダリングとなる

saveメソッドでは、外部キーの関連がつかない

よって、

多:多の結合テーブルの名前の辞書順

■多:多の場合、結合テーブルが検索されるけど、あの場合の辞書順って?sはどうなる? 例えば、interview_idとinterviewer_idを持つ結合テーブルは? interviewers_interviewsでした。sも含めるんですね

ダブルレンダリングエラー回避

■1つのメソッドにレンダリング処理を条件処理によって分ける場合 通常、1つのメソッド内に2つ以上のrenderとかを書くとエラーするが、returnを使えば平気

Duplicateエラー

Mysql::Error: #23000Duplicate entry '25-6' for key 1: INSERT INTO interviewers_interviews (`interview_id`, `interviewer_id`) VALUES (25, 6) テーブル内に、同じレコードあり!特に多:多テーブルに注意

ハッシュの順序

■ハッシュって順序が不定だけど、生成された時の順序が不定なの? ハッシュは順序不定だが、それはデータを作成する際に主に原因となる。 例えば、次のような場合は順番はもちろん保障される。 a = {"b"=> 2,"c"=>3,"a" => 1,"d"=>4,"z"=>5,"s" => 30,"l" =>…

無限レンダリングとメモリーリーク

■AJAXなど、部分テンプレートを使う際の注意 AJAXなどで、ビューで、レンダリングして、自分のビューを呼び出すことがあったり、 アクションのrender先で、またレンダリングしてそのアクションを読んだりすると、レンダリングの 無限ループ には入る。す…

自己代入、||を使った代入

■Railsでも使えるテクニック a = 1,b = nil a + (b || 5) => 6 こうすると、bがnilの時、代わりの値を出せる。 そのままやるとnilエラーになるし、便利。 (b ||=5)とすると、それ以降bの値が5に書き換わってしまうので注意 nilの値が入ってエラーする場合な…

errors.addは処理を中断しない

■処理が中断すると思っていると、エラーを食らうよ 次のコードはエラーする。 def validate if self.name == nil self.erros.add(:name,"名前を入力して下さい") end print self.name ←ここでnilエラー end 正しくはこう if self.name == nil self.erros.add…

ミラーサイトとは

インターネット上で、あるWebサイトとまったく同じ内容を持つ「複製」サイトのこと。(同一のサイトをURLを換えただけで運営する)人気のあるWebサイトや重要なソフトウェアが置いてあるサイトでは、アクセスが集中して回線が混雑したりWebサーバの処理が追…

スタブとは

あるプログラムが他のプログラムを呼び出す際に仲介となるプログラム。スタブの仲介を受けることで、プロセス間通信やクライアント・サーバ間でのオブジェクト呼び出しなどを、通常の手続き呼び出しと同様に扱うことができるようになる。

ビジネスロジックとは

アプリケーション固有の処理アプリケーション固有の状態遷移を記述した部分具体的に示すとアプリケーションが どのような順番で処理するのか。 どこからどのようなデータを取得するか。 データをどのように処理するか。 正常処理の条件はどうするか。 正常処…

ボトルネックとは

コンピュータの処理速度やネットワークの通信速度の向上を阻む「隘路」となっている要素。「瓶の首のように細く、詰まりやすい」という意味に由来している。コンピュータやネットワークのシステムは様々な要素が複雑に絡み合っているため、全体の性能の向上…

divタグ

■HTMLのdivタグとspanタグに関してです divタグに囲まれた内容は、ひとつのまとまりとして扱うことができます。 spanタグと似ていますが、spanはインライン要素、divはブロック要素に分類されます。 ■ブロック要素 文書の骨組みとなる要素です(例えば見出し…

フォームから送られて来たデータの外部キーへのセット

■外部キーの値をフォームから送る場合、一回受けてセットする形をとる。その際のポイント 【外部キーのセットをfind_by_文字列でなく、idでやる場合】 ちなみに、文字列でやる場合、例えば、面接枠の名前(外部キーが持つname属性)をフォームで送り、 それ…