[Qiita] インスタンスメソッド内での @ と self の違い
上記記事に関連するソース
(paiza.IOを使っています。)
boku.think unless boku.dead?
エンジニアの端くれのひとりごと。
2014年12月19日金曜日
2014年3月13日木曜日
スクラム開発の特徴と、チームメンバーの役割
特徴
・実践するのは簡単です!でも、修得するのは難しいです!・スクラム開発はフレームワーク(枠組み)です
・複雑で変化の激しい問題に対応するためのものです
X 対応する手段
O 対応する手段をみんなで模索しながら、製品を作り上げる
スクラム開発に登場する役割
プロダクトオーナー(1人)
・「何を作るか」の責任者・技術的な知識は必ずしも必要ではありません
・作成する優先順位を決定します
・ちゃぶ台返しOK(優先順位の変更、仕様の追加、変更、破棄)
・製品が仕様どおりかどうかチェックします
・製品をリリースするかどうか判断します
開発チーム(3〜9人)
・協力して製品を作り上げます・見積もりは開発者が決定します
・作業分担は立候補制です
・一つの作業に複数人でとりかかってもよいです
・むしろどんどん協力しましょう。スクラムですから!
・専門外の仕事も積極的に手伝いましょう
スクラムマスター(1人)
・「どのように作るか」の責任者・「スクラム開発よくわかんない」ってときはこの人に聞きましょう
・チームにスクラムのルールを守ってもらうよう促します
・チームを守り、支えます
・技術的な知識は必要です
※リーダーやマネージャーはいません
※スクラム開発にじゅうぶん慣れたら、
スクラムマスターもいなくてOKです
2013年5月28日火曜日
Rails3.2 ActiveRecordに関するメモ
ActiveRecordのサブクラスであるModel(以下Model)の機能に関する覚書。
一意性制約を定める
Modelに次のように記述する
validates_uniqueness_of :column_name
Migrationに次のように記述し、実行する
add_index :table_name, :column_name, :unique => true
validate?の挙動
前提条件:ModelAとModelBの間にリレーションが定められている
ModelA.valid?の戻り値がfalseの場合、
ModelB.valid?の戻り値もfalseとなる。
つまり、リレーションが定められているModelをsaveするときには、
すべてのModelでバリデーションが実行される。
saveで保存されるオブジェクト
前提条件:ModelAとModelBに多対多のリレーションが定められている
ModelA.saveを呼び出すと、下記のModelが保存される
(関連テーブルのインスタンスは自動的に生成される)
つまり、下記のようなコードで事足りる。
modelA = ModelA.new(hoge: 'hoge') #モデルAをインスタンス化
modelB = ModelB.new(foo: 'foo') #モデルBをインスタンス化
modelA.modelBs << modelB #モデルAとモデルBを関連付ける
modelA.save #関連テーブルのModelが自動生成され、すべてのModelが保存される
一意性制約を定める
Modelに次のように記述する
validates_uniqueness_of :column_name
Migrationに次のように記述し、実行する
add_index :table_name, :column_name, :unique => true
validate?の挙動
前提条件:ModelAとModelBの間にリレーションが定められている
ModelA.valid?の戻り値がfalseの場合、
ModelB.valid?の戻り値もfalseとなる。
つまり、リレーションが定められているModelをsaveするときには、
すべてのModelでバリデーションが実行される。
saveで保存されるオブジェクト
前提条件:ModelAとModelBに多対多のリレーションが定められている
ModelA.saveを呼び出すと、下記のModelが保存される
- ModelA
- ModelB
- ModelAとModelBの関連テーブルのModel
(関連テーブルのインスタンスは自動的に生成される)
つまり、下記のようなコードで事足りる。
modelA = ModelA.new(hoge: 'hoge') #モデルAをインスタンス化
modelB = ModelB.new(foo: 'foo') #モデルBをインスタンス化
modelA.modelBs << modelB #モデルAとモデルBを関連付ける
modelA.save #関連テーブルのModelが自動生成され、すべてのModelが保存される
2013年2月25日月曜日
2013年1月30日水曜日
coffeescript+jQueryでDOM操作
やりたいこと
coffeescriptで生成したjavascriptでDOM操作をしたい今回学んだこと
coffeescriptの1行目に$ ->
と記述することで、それ以下の命令がdocument読み込み完了時に実行される。
jQueryの下記の記述と同等。
$(function() {
//何らかの処理
});
ディレクトリ構造
shusuke@shusuke-VirtualBox:~/practice/coffee$ pwd/home/shusuke/practice/coffee
shusuke@shusuke-VirtualBox:~/practice/coffee$ tree
.
├── bin
│ └── hello.js <-coffeescriptをコンパイルしてできたJSファイル
├── lib
│ └── jquery-1.9.0.min.js
├── src
│ └── hello.coffee <-coffeescriptのソースファイル
└── view.html <-練習用のHTML
view.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="Content-Language" content="ja" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="./lib/jquery-1.9.0.min.js"></script>
<!-- javascriptを読み込む -->
<script type="text/javascript" src="./bin/hello.js"></script>
</head>
<body>
<div id="apple">りんご</div>
<div id="banana">バナナ</div>
<div id="hoge">HOGE</div>
</body>
</html>
src/hello.coffee
$ ->console.log "LOG TEST"
hoge = $('#hoge')
msg = if hoge is null then "hoge is null" else "hoge is not null"
console.log msg
console.log hoge.html()
bin/hello.js
// Generated by CoffeeScript 1.4.0(function() {
$(function() {
var hoge, msg;
console.log("LOG TEST");
hoge = $('#hoge');
msg = hoge === null ? "hoge is null" : "hoge is not null";
console.log(msg);
return console.log(hoge.html());
});
}).call(this);
実行結果(HTML表示時のjavascriptコンソール)
[23:24:31.514] LOG TEST[23:24:31.514] hoge is not null
[23:24:31.515] HOGE
2012年3月5日月曜日
在庫数量の決め方(1)
必要以上に在庫を抱えないためには、必要以上に商品を仕入れないようにすればよい。では、仕入れる量はどのようにして決めればよいだろうか。
例えば、現在の在庫が最大である60個だとしよう。発注から入荷までに必ず2日かかり、1日に必ず20個の商品を売り上げている場合、発注数量はいくつにすればよいだろうか。
今日発注すると2日後に入荷する。売上ペースから計算すると、入荷時の在庫数量は20/60個となり、40個を補充することができる。よって、40個発注すれば、品切れを起こさず、かつ倉庫内に収めることができる。
では、在庫量をより少なくすることはできないだろうか。これを考えるには、発注から入荷までの時間と、売上ペースに注目するとよい。最大在庫数量を40個に設定すれば、2日に1度、商品を40個発注することで在庫を維持できる。
まだ改善の余地はある。発注から入庫までには2日かかるという制約はあるが、2日に1度しか発注できないという制約はない。つまり、毎日20個発注すると決めれば、最大在庫数量を20個まで減らすことができる。
これが、在庫管理の根本となる考え方だ。実際には、様々なことを考慮して、最大在庫数量や発注数量などを決定することになる。ここでは、説明を簡単にするために極端な例を示した。
例えば、現在の在庫が最大である60個だとしよう。発注から入荷までに必ず2日かかり、1日に必ず20個の商品を売り上げている場合、発注数量はいくつにすればよいだろうか。
在庫数量(個) | 60/60 |
発注から入荷まで | 2日 |
売上ペース | 20個/日 |
では、在庫量をより少なくすることはできないだろうか。これを考えるには、発注から入荷までの時間と、売上ペースに注目するとよい。最大在庫数量を40個に設定すれば、2日に1度、商品を40個発注することで在庫を維持できる。
まだ改善の余地はある。発注から入庫までには2日かかるという制約はあるが、2日に1度しか発注できないという制約はない。つまり、毎日20個発注すると決めれば、最大在庫数量を20個まで減らすことができる。
これが、在庫管理の根本となる考え方だ。実際には、様々なことを考慮して、最大在庫数量や発注数量などを決定することになる。ここでは、説明を簡単にするために極端な例を示した。
2012年3月2日金曜日
在庫を抱えすぎることによる弊害
在庫を抱えすぎると、店の経営に様々な問題が発生する。
第一に、在庫スペースの維持に費用がかかることだ。倉庫が大きければ大きいほど、地代や固定資産税がかさみ、経営を圧迫する。
第二に、需要の変化に対応するのが難しくなる。古い製品が在庫スペースを占領していると、新商品を仕入れることができなくなる。結果として、新商品を販売する機会を逃してしまう。
第三に、現金や預金が少なくなることで、資金繰りを悪化させる。仕入れに大量の資金を費やしたばかりに、取引先への支払いや借金の返済が遅れてしまうことがあり、黒字倒産になりかねない。
これらを踏まえて、適切な量の商品を仕入れることが在庫管理の基礎といえる。では、具体的にはどのように仕入れたらよいのだろうか。それについては次回。
登録:
投稿 (Atom)