2013年8月16日金曜日

情報の隠蔽と変更の影響の最小化

指針
・情報を隠蔽し、内部構造は必要がなければ考えないで済むようにする
・変更が発生したときに、その影響を一カ所にとどめるようにする


具体的なプラクティス

・ユーザーとのやり取りをするコードを一カ所に集中させる
・マジックナンバーのハードコーディングは避け、定数として一カ所で定義する

・グローバル変数を避ける(必要以上のデータを渡さない)
・循環依存(AからBを参照し、BからもAを参照する)をしない
・変更されそうな部分を予測して、分離する
・状態変数としてブール型ではなく、列挙型を使う
・状態変数は直接参照せずに、アクセスルーチンを使い抽象化する
・他のモジュールへの依存度を減らし、疎結合(弱い結合)にする


2013年2月5日火曜日

ソフトウェア開発のノウハウ



前提:ソフトウェアの開発 = 知的生産活動
(1)ビジョンステートメント
(2)仕様とアーキテクチャを固めるためのプロトタイピング
(3)スタートダッシュの20%で80%の完成を目指す
(4)頻繁なαリリース



前提:ソフトウェアの開発 = 知的生産活動
クリエイティビティに100%のコストが集中している。
そのため、どれだけ人数とお金を投入したところで、成果が全くでない事がある。
複数の行程に分割して、それぞれの作業コストを見積もるということも難しい。
大事なのはクリエイティビティ。

(1)ビジョンステートメント
最初に作ろうとしているソフトウェアが成し遂げようとしているビジョンを明確に定めて、それは明文化しておく。これを行うことによって、制作の途中で本来何をすべきだったかを忘れて迷走することを防ぎ、さらにはモチベーションを高めることができる。

(2)仕様とアーキテクチャを固めるためのプロトタイピング
実際に形にしてみないと、本当に必要な仕様や最適なアーキテクチャを理解できない。
つくっていく過程で「ここはこうしたい」「こうすれば他でもうまくいく」など新しいアイデアが生まれてくるのである。細部まで作ってからのアーキテクチャの変更は不可能に近いので、この段階で徹底的に妥協無しで作り直しをする必要がある。

2012年8月20日月曜日

ZenCodingショートカットまとめ


Command+Eで展開

HTML5 → html:5
HTML4.01Transisional → html:4t
HTML4.01Strict → html:4s
CSS → link:css
JavaScript → script:src


2012年4月28日土曜日

[Objective-C]配列にオブジェクトを格納する場合のメモリ管理

★iPhoneプログラミングのTips★

配列や辞書(dictionary)周りのメモリ管理について。

メモリリークしないために、オブジェクト生成にメモリを確保(alloc)したら、
deallocでリリース(release)するのが基本だが、

配列・辞書にオブジェクトを格納して管理しようとする場合に、
allocやらretainやらreleaseは必要になるのか?という話。

stackoverflowでわかりやすい説明を発見。
http://stackoverflow.com/questions/885839/with-an-nsarray-of-object-references-do-i-explicitly-release-all-objects-in-the

結論から言うと、配列の中に格納したオブジェクトに関しては、
★allocなりretainなりでリテインカウントを上げる必要がある。
★配列をreleaseしたときに、中のオブジェクトも自動でreleaseされる。

例えばこんな具合。

//配列をグローバル変数にする為にリテインカウントを1上げる。
mojilabelArray = [[NSMutableArray alloc] init];
//配列に格納するオブジェクトに関してもリテインカウントを1あげる。
CCLabelTTF *ttllabel = [[CCLabelTTF labelWithString:moji fontName:@"Arial" fontSize:50] retain];
[mojilabelArray addObject:ttllabel];
//dealloc
[mojilabelArray release];
//ttllabelはmojilabelArrayがreleaseされたとき、同時にreleaseされる。

2011年9月29日木曜日

HTML&CSSパターン【随時更新】

☆リストのマーカーを画像で表示する:その1
☆選択した要素を横中央ぞろえ marigin: 0 auto;
☆選択した要素の子要素を横中央ぞろえtext-align: center;
☆背景画像固定
☆画像テキストボックスと余白
余白はpaddingでとる。ただしpaddingした大きさだけ外枠のwidth,heightをマイナスすることを忘れずに。 例:
.txtbox { width:451px; height:52px;background:url(box.gif) no-repeat; margin: 0 auto; padding: 10px 10px;}
☆テーブル
その1:テーブルタグを使う

2011年8月6日土曜日

ブログ

z The Startup http://thestartup.jp/ (梅木さん、26歳。2009年卒)
z 世界を変えるスタートアップ http://gendai.ismedia.jp/category/startup(鈴木仁士さん、22歳)
z TechCrunch Japan http://jp.techcrunch.com/ (言うまでもなく)
z TechCrunch http://techcrunch.com/ (日本語に訳されていない記事多数)
z VentureBeat http://venturebeat.com/
z TechWave http://techwave.jp/
z Techdoll.jp http://www.techdoll.jp/
z Mashable http://mashable.com/ (この分野では必読。ただし、以下に日本語での紹介もあり)
z ネクスパスブログ http://blog.nexpas.co.jp/ (町田龍馬さん、ニュージーランド、シンガポール留学、24歳)
z Don’t be Lame http://kenichinishimura.blogspot.com/ (西村顕一さん、シンガポール留学後2011年卒)
z NPOにマーケティングの力を http://www.ikedahayato.com/ (イケダハヤトさん、2009年卒)
z クローズドとソーシャルの交差点 http://ststgc.posterous.com/ (瀬戸口翔太さん、大学4年)
z Little_shotaro’s blog http://www.littleshotaro.com/ (植原正太郎さん、23歳、大学4年)
z The Public Returns – 続・広報の視点
http://goo.gl/u9XOT http://goo.gl/W8qbQ http://goo.gl/saf6z
z Social Media 360.jp http://socialmedia360.jp/
z Gamification.jp http://gamification.jp/
z Inside Facebook http://www.insidefacebook.com/
z All Facebook http://www.allfacebook.com/
z ReadWriteWeb http://www.readwriteweb.com/
z Social Commerce Today http://socialcommercetoday.com/
z Social Times http://socialtimes.com/