ラベル メモ の投稿を表示しています。 すべての投稿を表示
ラベル メモ の投稿を表示しています。 すべての投稿を表示

2010年12月16日木曜日

オブジェクト指向むつかしい。。

前に教えてもらったサイトを再度目を通してみた。

オブジェクト指向の本懐
http://d.hatena.ne.jp/asakichy/20090421/1240277448

オブジェクト指向の勘違い
継承で処理の共通化
カプセル化してデータを隠蔽
オブジェクトとはデータとメッセージ。

オブジェクト指向とは
責務の分離
直行性
変更部分を抽象化して切り離す。


継承の問題点
変更に弱くなる
再利用性が低下する。
可読性が低下する。


継承よりも集約
共通部分を基底クラスとして抜き出すよりは、
異なる部分だけを抽出してクラスにまとめるか、
共通部分だけを抽出してクラスにまとめておき。
集約の関係をつかってメンバとして持つのが良い。


型としてのクラス。
プリミティブ型はかなり抽象度の高い型であるためラップして別の型を定義することで、具体化した意味のある型として扱える。



2010年11月3日水曜日

のーたいとる

リリース計画
ストーリーポイントでざっくり見積り。

イテレーション計画
ストーリーをタスクに分解して見積もる
収まるか収まらないかでリリース計画を見直す
イテレーションでストーリーが中途半端にならないようにすること。
イテレーションに収まらないストーリは収めないかストーリー分割を行う

イテレーションの長さ。
優先順位が変わらない期間にするとよい。
リリースまでに最低3回以上のイテレーションにするとよい



.

2010年10月12日火曜日

アジャイルな見積りと計画づくり

「見積りとは時間内に作業が完了する確率のことである。」
という帯がついている書籍です。

見積りの誤差。
初期段階では、+75%~-25%

なぜ見積もるのか。
・リスクの軽減
見積もることで予めリスクを知ることができるため、回避方法などを調べることができる。

・不確実性を減らす
機能の価値や開発にかかる工数を

よい計画とはなにか
・見積もり時間と実際の時間の差が少ないこと。
・作業が早く終わることや遅れていることがすぐに解ること。

アジャイルな計画づくりとは。
・計画とはその瞬間のスナップショットでしかないため、計画づくりに重きをおく。
・計画は変更されても構わない。むしろ積極的に変更したい。
・変更することは、チームが知識を得た結果をスケジュールに反映すること。(プラスの面もマイナスの面も含めて)
・知識は最後まで残るが、計画はその場の使い捨て。
・最初にすべてを見積もらない。
・最初の計画を作るために必要な機能のみを見積もる。
・計画は必要な情報を元に算出するようにしておく。



.


2010年9月8日水曜日

XP祭りの平鍋さんの発表をUstreamでみて

自分が感じたことをまとめてみた。

Agile
市場・ビジネス・ITが完全に分離していた。
それを一体化するのがAgile開発
やってみて結果から戦略を作りながら進む

結果を求めるため、プロセスは短期間となり反復開発になる。
7割のレベルで早く試作し実際に使って手直しして完成度を高める。


分割の仕方
機能で切る
層で切らない


Kanban
やっていることを見える化することから始める
みんなで改善してよりよくすること。

仕事
良い仕事をするためには、
家族や自分自身の幸せであることが不可欠
仕事は人生の一部で人生の最も多くの時間を費やす場所として楽しみながら成果をだせるのが一番よい

良いまとめ記事があったので紹介
http://blogs.itmedia.co.jp/hiranabe/2010/09/xp2010-d18d.html


2010年8月31日火曜日

Windows Server 2008のライセンス

Windows Server 2008には仮想化した場合のライセンスが付いている。
ダウングレードしてWindows Server 2003も使えるのでテスト用にも最適。

Windows Server 2008 Standard
サーバーライセンス1
仮想サーバライセンス1


Windows Server 2008 Enterprise

サーバーライセンス1
仮想サーバライセンス4

クライアントライセンス
デバイス単位とユーザ単位がある。
Windows Server 2008にアクセスするのであればどのサーバーにもアクセス出来る。
デバイス単位はPC一台に1ライセンス(アクセスするユーザは誰でもよい)
ユーザ単位はユーザ一人に1ライセンス(アクセスするPCは関係ない)


管理する為だけのアクセスは2デバイスまたは2ユーザまでは無料
Windows Web Server 2008へのアクセスも無料


ライセンス早わかりガイド

クライアントライセンス(CAL)概要



2010年8月24日火曜日

VMWareをざっくりと

VmWare Player
スナップショットはできない
→フリーのツールでスナップショットができる
→NMH http://www.geocities.co.jp/SiliconValley/2994/tool/nhm/nhm.html
→3.0になってから単体で使えるようになった。
→フロントエンド


VmWare Server
→無償
→スナップショットができる。
→リモートからアクセス可能


VmWare Workstation
→有償
→現在のOSの状態をスナップショットとして保存できる。
→スナップショットの履歴を木構造で表示することができる。

.

2010年8月17日火曜日

Hyper-Vをざっくりと

Hyper-V Server
→WindowsServerの仮想化が目的それ以外のゲストOSはサポート外
→Linuxのサポートは弱い。


ホストOS側の物理HDDはゲストOSに割り当てた仮想HDDと仮想メモリに割り当てた分の容量が必要。
仮想メモリ分の容量は起動時に作成される。

1ゲストOSのメモリ割り当て量は 物理容量をコア数で割った数以下がよいらしい。

IPv4だけを使う場合はIPv6の設定を無効にしておくとパフォーマンスがよくなる。

ホストOS、ゲストOSの両方に更新プログラムを当てないとパフォーマンスが悪くなる。


Hyper-Vの分析ツール。
http://biz.mki.co.jp/product/maker/mki/vt_platform/vestat/index.html

Hyper-V Server 無償版
→スタンドアロンでの起動を目的としている。
→ライセンスは無料。

.

2010年5月29日土曜日

プリミティブ型をラップしたクラスを作る。

最近実際に意識している実装方法です。


プリミティブ型をラップしたクラスを作る。
intとかstringという型は抽象的すぎるので、
これを使ってると毎回変数名で意味を表現しなければならない。

ラップクラスを作成するまえは、
変数名がむやみに長くなってしまったり、
短くして意味がわかりにくくなっていました。

string だと文字列の意味しかありませんが、
すごい単純な例ですが
以下のようにTODOという名前のクラスでラップする事により、
stringに意味がつきました。
また必要な関数群を追加していけることもメリットとなります。
後で型を変えたくなっても変更も用意に出来ます。

class Todo
{
public string _todo;
}

出来るだけプリミティブ型は使わない方が、
汎用的に作れると思います。

C++ には便利なtypedefがあり簡単に名前を付ける事が出来るので是非活用したいですね。

.

2010年5月22日土曜日

ボーイスカウトの掟

自分が訪れた状態より、より良い状態にして帰ろう。
そういう目標があるみたいです。
(実際のボーイスカウトの掟とはまた違ってるかも)

それにならって、ソースコードも
自分が見た状態より、より良い状態にしてコミットしよう!

リファクタリング環境が良くなってきているので、
変数名や関数名・クラス名の名前を変更することは
低リスクで実行出来ます。

こういう小さい修正を日々行うことができれば、
綺麗なコードに近づいていくのではないかと思います。

少し探して見つけました。
ボーイスカウトの「3つのちかい」と「8つのおきて」
ちかい
・神と国とに誠を尽くし、おきてをまもります
・いつも他の人々を助けます
・体を強くし心をすこやかに、徳を養います

おきて
・スカウトは誠実である
・スカウトは友情にあつい
・スカウトは礼儀正しい
・スカウトは親切である
・スカウトは快活である
・スカウトは質素である
・スカウトは勇敢である
・スカウトは感謝の心を持つ

【参考文献】
http://bsm5.org/outline/oath.html

.

2009年9月21日月曜日

単体テストについて

最近はテストコードを書く人になっていたので、
書いていて思った事をつらつらと。

・まず目的を設定する。
 何のためにテストコードを書いているのか?
 テストコードを書いて何を検査したいのか?

・テストケースの追加が容易になるようにテストコードを書く
 追加コストが高いと必要なテストケースを後で追加しなくなるため。
 入力と結果の2つを引数にもつ関数を実装していれば問題無いと思う。

・テストコードを書いたらカバレッジも一緒に計測すること
 これが無いとテスト出来ているのかが分からない。
 目で結果が見れるものであれば達成感も味わえる。

・テスト対象のコードとテストコードは同時にビルドすること
 同時にビルドしていないとテストコードのメンテナンスをしなくなり、
 折角書いたテストコードを腐らせていく原因になります。
 
・テストコードを実行させるのは容易か?
 実行コストが高いとテストを実行させない。
 テスト自動化(回帰テスト)の意味が無い。

.

2009年5月22日金曜日

Firefoxのアドオン作成アドオン

jetpackというアドオンを使うことで、
今までより簡単にFirefoxのアドオンを作成できるようになりました。

まだ少ししか触っていないけど、
javascriptのライブラリjQueryが使えたり
FireBugと連携していたり。

なかなか凄いやつです。

■jetpack公式
https://jetpack.mozillalabs.com/

.

2009年3月23日月曜日

だーてぃー

ダーティー。
最近まで知らなかった言葉です。
今の仕事で出てきてなんやこれ?って感じた所に
悪態のプログラマにて記事があったので紹介っと。

■悪態のプログラマ「ダーティなデータ」
http://ameblo.jp/argv/entry-10228407175.html

ダーティー。
これからもちょこちょこ聞く機会がありそうです。
覚えとこっと。

.

2009年1月26日月曜日

3次元ベクトルにあたふた。

ついに関わる事になった。画像処理。
ベクトルの計算が出てきてややこしいのなんのって。

学生時代に学んだ知識のみなんであやふやな知識ばっか。
勉強せねばー。

とりあえず良く出てきた単語を残しときます。

・ベクトル長(対角を結ぶ線の長さ)
三平方の定理やから簡単に求められます。
√(a^2 + b^2+ ...)

・単位ベクトル
Wikipediaで調べると様々な定義があるようですが、
向きが同じでベクトル長が1となるベクトルの事。
x, y ... の格要素をベクトル長で割れば求まる。

・内積
説明が難しいけど。
二つのベクトルの同一平面上において、
一つのベクトルの先からもう一つのベクトルに
垂直な線を引いて交差した点と始点とを結んだ距離を表す。
個人的にはここのサイトが解りやすかったのです。
http://naop.jp/topics/topics14.html

・外積
二つのベクトルの法線ベクトルが求まる。
二つのベクトルの同一平面に垂直に交差するベクトルの長さが求まる。

.

2008年12月24日水曜日

C#文字列のバイト数

何度調べたことか。。。
覚書として残しておきます。

.NET2.0 では、Stringクラスに文字数を取得するLengthというPropertyしかないんよね。
バイト数が知りたいと思ってもメソッドがありません。
全角文字やと1文字が2バイトになり。
入力制限を設けるのに嵌りました。

@ITにそのままの記事があったのでリンクを載せておきます。
http://www.atmarkit.co.jp/fdotnet/dotnettips/012strcount/strcount.html
----抜粋------------
String str;
Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS");
int num = sjisEnc.GetByteCount(str);
--------------------

Encoding のGetByteCountメソッドを使ってバイト数を求めます。
文字コードがUTF-8の場合などはGetEncodingの引数を変更すればOKです。

.

2008年12月16日火曜日

mixiアプリ

巡回サイトを見回っていたところ。
mixiアプリなる言葉を発見。

まだ法人向けにβ版を公開しただけみたいですが、
今後個人にも公開予定だそうです。

ん~楽しみ!
何か考えてみよっかな。作る作らないは別として。。。


詳しくはmixi EngineersBlogに記事があります。
http://alpha.mixi.co.jp/blog/?p=280

mixiアプリの例もmixi Developer Centerにありましたのでリンクっと。
http://developer.mixi.co.jp/appli/example

.

2008年12月15日月曜日

一年のふりかえり。

12月になると毎年行っている
自分の年間ふりかえり。

1月から12月の現在まで様々なあった出来事。
自分自身が去年と変わったこと。
将来像に向かって進んでいるか?
また足りていないのはどこか?
仕事のこと、プライベートのこと。
どんな人と知り合ったか。

僕は一月単位で振り返っています。
時間をたっぷり確保してじっくりふりかえっています。

しっかりふりかえったら、
来年の目標を立て他は忘れる!
そして良い年末年始を迎えましょう!

そろそろふりかえりを始めるかな。
.

2008年12月11日木曜日

.netframeworkのバージョン取得方法と豆知識

VisualStudioで使うframeworkですが
.netframeworkのバージョン取得方法は以下のとおり

System.Environment.Version.ToString ();

現在.netframework2.0に3.0を入れても大丈夫かを
調べ中。今頃な話ですが。。。
そこで見て驚いたのですが
.netframework3.0を上記方法で取得するとバージョンは
v.2.0.50727
って表示されるらしいですねw

3になれなかった.netframework

なんかの題名になりそうww

2008年9月3日水曜日

Google Chrome

ついにGoogleからブラウザがでましたねー。

早速インストールしてみたので感想をっと。

レンダリングエンジンにはsafariと同じ appleWebkitが使われてるため
表示はsafari同様速いです!
javascript も高速化しているとのことなんで全体的に早く感じます。


個人的にはタブのドラッグ&ドロップ中の表示が気に入ってます!
新しいウィンドウにする時に画面のサムネイルが表示されて移動します。

これからのブラウザだと思うので気長に見守っていこうと思います。
拡張機能はユーザーからも作れるようになるというのをどこかで聞いたので、
今後に期待ですね!

プロキシの設定はIE同様のインターネットオプションだったので…
早くプロキシ切り替えの拡張機能が欲しいところです

.

2008年7月16日水曜日

Internet Explorer 8 Beta 1 for Developers ホワイトペーパー

Internet Explorer 8 Beta 1 for Developers ホワイトペーパー(日本語)
が公開されました。

どういうモノになるのか楽しみです!

Internet Explorer 8 Beta 1(英語)はダウンロード可能なので、
興味ある人は試してみてはどうでしょうか?

--
Internet Explorer 8 Beta 1 for Developers ホワイトペーパー
http://msdn.microsoft.com/ja-jp/ie/cc216837.aspx

2008年7月13日日曜日

Protocol Buffers

GoogleがProtocol Buffersなるものをオープンソース化した

僕が感じたイメージは
データを管理するクラスの定義を言語依存せずに記述できるもの。
XMLのスキーマを定義するものに近いと思います。

データクラスの定義。
各メンバの型、変数の定義が可能
C言語でいう enum も定義可能
また、可変長の配列の定義も出来るのが面白いなと思った。

外部に定義したクラスの読み込み(import)も可能
一通り網羅出来ていそうですね。

XMLのスキーマ覚えるよりは簡単そうやし、
時間みつけてちょっと遊んでみようかな

--
■Protocol Buffers, our serialized structured data, released as Open Source
http://google-code-updates.blogspot.com/2008/07/protocol-buffers-our-serialized.html

■Language Guide
http://code.google.com/apis/protocolbuffers/docs/proto.html

ラベル