<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>I&#039;m CaLendarW Blog &#187; design</title>
	<atom:link href="http://wongkalun.idv.hk/category/software-engineering/design/feed/" rel="self" type="application/rss+xml" />
	<link>http://wongkalun.idv.hk</link>
	<description>Put the technology in correct places</description>
	<lastBuildDate>Sun, 18 Apr 2010 16:19:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Control of Duplication</title>
		<link>http://wongkalun.idv.hk/2009/05/22/control-of-duplication/</link>
		<comments>http://wongkalun.idv.hk/2009/05/22/control-of-duplication/#comments</comments>
		<pubDate>Thu, 21 May 2009 16:20:46 +0000</pubDate>
		<dc:creator>calendarw</dc:creator>
				<category><![CDATA[database]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[duplication]]></category>

		<guid isPermaLink="false">http://wongkalun.idv.hk/?p=540</guid>
		<description><![CDATA[近期做緊 Application to Database 呢部份, 開始對 Analysis Patterns 一書中既 Knowledge Level 同 Operation Level 多左理解, 除此之外, 仲開始感受既點樣控制重覆!! Duplication, 係 Program 入面係理應避免的, 正如見到重覆既 Code 就應該進行重構一樣, 但在 Database 層面上既管理又可能係另一種講法. 係 Knowledge Level 入面, 儲存既資料應該避免重覆, 因為所做既係最新既資訊, 以最實時既資訊去處理日常既運作, 雖然用既係最新既資訊, 但儲存落 Database 入面就可能要將所有有關既 Value Object 儲存埋, 因為往後既日子如果 Knowledge Level 有所改變, 亦唔應該影響到 Database 入面 Operation Level 完成品既歷史, 方面了解當時既情況, 等同於 Data Mining [...]]]></description>
			<content:encoded><![CDATA[<p>近期做緊 Application to Database 呢部份, 開始對 <a href="http://www.amazon.com/Analysis-Patterns-Reusable-Addison-Wesley-Technology/dp/0201895420">Analysis Patterns</a> 一書中既 Knowledge Level 同 Operation Level 多左理解, 除此之外, 仲開始感受既點樣控制重覆!! </p>
<p>Duplication, 係 Program 入面係理應避免的, 正如見到重覆既 Code 就應該進行重構一樣, 但在 Database 層面上既管理又可能係另一種講法.  係 Knowledge Level 入面, 儲存既資料應該避免重覆, 因為所做既係最新既資訊, 以最實時既資訊去處理日常既運作, 雖然用既係最新既資訊, 但儲存落 Database 入面就可能要將所有有關既 Value Object 儲存埋, 因為往後既日子如果 Knowledge Level 有所改變, 亦唔應該影響到 Database 入面 Operation Level 完成品既歷史, 方面了解當時既情況, 等同於 Data Mining 一樣, 做既唔係避免重覆, 而係有必要地控制重覆, 呢個就係 Database Design 入面一個重要既地方!!</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://wongkalun.idv.hk/2009/05/22/control-of-duplication/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://wongkalun.idv.hk/2009/05/22/control-of-duplication/&amp;title=Control+of+Duplication" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://wongkalun.idv.hk/2009/05/22/control-of-duplication/&amp;title=Control+of+Duplication" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://wongkalun.idv.hk/2009/05/22/control-of-duplication/&amp;title=Control+of+Duplication&amp;desc=%E8%BF%91%E6%9C%9F%E5%81%9A%E7%B7%8A%20Application%20to%20Database%20%E5%91%A2%E9%83%A8%E4%BB%BD%2C%20%E9%96%8B%E5%A7%8B%E5%B0%8D%20Analysis%20Patterns%20%E4%B8%80%E6%9B%B8%E4%B8%AD%E6%97%A2%20Knowledge%20Level%20%E5%90%8C%20Operation%20Level%20%E5%A4%9A%E5%B7%A6%E7%90%86%E8%A7%A3%2C%20%E9%99%A4%E6%AD%A4%E4%B9%8B%E5%A4%96%2C%20%E4%BB%B2%E9%96%8B%E5%A7%8B%E6%84%9F%E5%8F%97%E6%97%A2%E9%BB%9E%E6%A8%A3%E6%8E%A7%E5%88%B6%E9%87%8D%E8%A6%86%21%21%20%0D%0A%0D%0ADuplication%2C%20%E4%BF%82%20Program%20%E5%85%A5%E9%9D%A2%E4%BF%82%E7%90%86%E6%87%89%E9%81%BF%E5%85%8D%E7%9A%84%2C%20%E6%AD%A3%E5%A6%82%E8%A6%8B%E5%88%B0%E9%87%8D%E8%A6%86%E6%97%A2%20Code%20%E5%B0%B1%E6%87%89%E8%A9%B2%E9%80%B2%E8%A1%8C%E9%87%8D%E6%A7%8B%E4%B8%80%E6%A8" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://wongkalun.idv.hk/2009/05/22/control-of-duplication/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://wongkalun.idv.hk/2009/05/22/control-of-duplication/&amp;bm_description=Control+of+Duplication&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://wongkalun.idv.hk/2009/05/22/control-of-duplication/&amp;title=Control+of+Duplication" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://wongkalun.idv.hk/2009/05/22/control-of-duplication/&amp;title=Control+of+Duplication" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://wongkalun.idv.hk/2009/05/22/control-of-duplication/&amp;title=Control+of+Duplication" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://wongkalun.idv.hk/2009/05/22/control-of-duplication/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Control+of+Duplication+-+http://bit.ly/9r1kLD&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>




		<!-- Added by WP-DragToShare-eXtended Plugin -->
		<script type="text/javascript">
			dtsv.dtse_post_540_permalink = 'http://wongkalun.idv.hk/2009/05/22/control-of-duplication/';
			dtsv.dtse_post_540_title = 'Control of Duplication';
		</script>
		<!-- End of WP-DragToShare-eXtended Plugin -->]]></content:encoded>
			<wfw:commentRss>http://wongkalun.idv.hk/2009/05/22/control-of-duplication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Separation Of Concerns</title>
		<link>http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/</link>
		<comments>http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 08:20:24 +0000</pubDate>
		<dc:creator>calendarw</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[SoC]]></category>
		<category><![CDATA[精華]]></category>

		<guid isPermaLink="false">http://wongkalun.idv.hk/?p=477</guid>
		<description><![CDATA[係軟件設計方面, 其實主要都想將唔同既 Concern 分開, 以我做開主要有以下幾個: Flow / Business Logic Input (Import Data, Interface for 3rd Party) Output (User Interface, Report) Database Logging Permission 在以上幾個 Concern 上, 而 Logging 同 Permission 呢兩樣野其實應該可以重用, 而且應該可以視為另一個軟件 / Domain Area. Database 使用方面, 因為市面有不同種類既選擇, 而為左可以應用係唔同 Database 上, 好多人都會加上一個 Data Access Layer, 正常既 implement 手法都係 Object Relational Mapping, 在 .net 主要有 LGPL [...]]]></description>
			<content:encoded><![CDATA[<p>係軟件設計方面, 其實主要都想將唔同既 Concern 分開, 以我做開主要有以下幾個:</p>
<ul>
<li>Flow / Business Logic</li>
<li>Input (Import Data, Interface for 3rd Party)</li>
<li>Output (User Interface, Report)</li>
<li>Database</li>
<li>Logging</li>
<li>Permission</li>
</ul>
<p>在以上幾個 Concern 上, 而 Logging 同 Permission 呢兩樣野其實應該可以重用, 而且應該可以視為另一個軟件 / Domain Area.</p>
<p>Database 使用方面, 因為市面有不同種類既選擇, 而為左可以應用係唔同 Database 上, 好多人都會加上一個 <a href="http://en.wikipedia.org/wiki/Data_Access_Object">Data Access Layer</a>, 正常既 implement 手法都係 <a href="http://en.wikipedia.org/wiki/Object-relational_mapping">Object Relational Mapping</a>, 在 .net 主要有 <a href="http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License">LGPL License</a> 既 <a href="http://nhforge.org/">NHibernate</a>,  Castle Project 既<a href="http://www.castleproject.org/activerecord/index.html ">Active Record</a>, 又或者係 .net 3.5 既 <a href="http://msdn.microsoft.com/en-us/library/bb386976.aspx">Linq To SQL</a> 及 <a href="http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx">Entity Framework</a>, 這些 Module 已經被外國引用成為主流, 因為使用者不用因應不同既 Database 而寫大同小異既 SQL, 避免了因小異而不段尋找問題, 只要學習一套, 其他由 OR Mapper 做便好了.</p>
<p>Logging 方面, Debug Log 其實可以用 <a href="http://en.wikipedia.org/wiki/Apache_License">Apache License</a> 既 <a href="http://logging.apache.org/log4net/index.html">log4net</a>, 而 Audit Log 我覺得應該可以視為另一個軟件而寫到一個 Lib 黎比全公司用, 以統一全公司軟件開發基礎.</p>
<p>Permission 方面主要有 <a href="http://en.wikipedia.org/wiki/Authentication">Authentication</a> 同 <a href="http://en.wikipedia.org/wiki/Authorization">Authorization</a> 兩個部份, 我覺得可以寫得開一個 Lib, 因應唔同需要 (e.g. 用 AD or 自己既 Login Table) 而各自使用同一個 Interface 既唔同 Implementation, 總好過不同 Project 都用緊不同既處理手法.</p>
<p>Input 同 Output 方面其實都幾難重用, 不過都應該可以寫到一 d 相對應既 Lib (e.g. Import/Export Excel, Customize User Control 或者既定的 3rd Party Solution).</p>
<p>Flow 其實係最難重用既部份, 因為應該唔同 Project 都有唔同既 Flow / Business Logic, 而常見既處理手法都會使用 <a href="http://en.wikipedia.org/wiki/Object-oriented_design">Object Oriented Design</a>, 而為了保證質素, 外國 (包括 Microsoft) 寫左套測試系統黎令做 Automate Testing, 有早期自己用開既 <a href="http://www.nunit.org/index.php">NUnit</a>, 或者 Visual Studio 2005 打後既 <a href="http://msdn.microsoft.com/en-us/library/ms243147(VS.80).aspx">Unit Testing Framework</a>, 當然仲有好多其他既 Implementation, 只不過自己用開 NUnit 而無再留意.</p>
<p>綜合以上不同既 Concern, 其實除左 Flow/Business Logic, Input 同 Output 之外, 其他部份應該都可以重用, 如果每個 Project 都可以重用這些 Module, 寫軟件既時間應該可以集中一點在不能重用既部份而提高用家對軟件質素既評價, 亦可以有時間做 Performance Turning 及 Unit Testing, 使軟件能夠提升質量, 有關點解要 Testing 既資料可以參考舊 <a href="http://wongkalun.idv.hk/2009/04/15/why-automate-test/">Post</a>, 而 Performance Testing 其實亦可以靠 Unit Test 黎做監察 (詳見 <a href="http://www.amazon.com/Pragmatic-Unit-Testing-NUnit-2nd/dp/0977616673/">Pragmatic Unit Testing in C# with NUnit</a> 內有關 Performance Testing 一節)</p>
<p>重用既除左可以減少需要 Implement 既時間外, 對新人黎講都會容易跟, 因為套套系統都用緊同一樣野可以減省 Pickup 現有系統既時間.  不過對於重用方面, 公司既軟件管理政策亦同樣重要, 如果個個 Project 都係 Copy 一套出黎用, 那麼發現一個 Bug 就要搵晒全公司既所有 Project 一個個改, 這些處理手法在 <a href="http://www.amazon.com/AntiPatterns-Refactoring-Software-Architectures-Projects/dp/0471197130/">AntiPattern</a> 內亦有提及, 往往做成不良後果.</p>
<p>不過以上既推論都有重要既假設: 一個好既 OO Design 同 Design for Reuse.  如果設計得唔好, 就沒有人會用, 如果不是為重用而設計, 就不能重用.</p>
<p>對我在舊公司管理及維持左 Reusable Lib of Web Module, Data Module 同 Common Module 及不同 Internal Project 年幾時間既我, 加上接近七年前大專開始既軟件開發生涯, 在 OO Design 同 Design for Reuse 都自覺有相當既經驗, 雖然亦有好多不足既地方, 但亦希望跟住呢條路行.  而因未發新公司有現醒啱用既 Lib , 所以自己寫左一些重用到既 Lib, 加上 Project 開始繁忙而盡量希望在 Project 內實行軟件架構, 短期內應該有好多機會提升自己在設計及實行方面既經驗, 希望現實真係可以咁 Ideal 啦.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/&amp;title=Separation+Of+Concerns" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/&amp;title=Separation+Of+Concerns" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/&amp;title=Separation+Of+Concerns&amp;desc=%E4%BF%82%E8%BB%9F%E4%BB%B6%E8%A8%AD%E8%A8%88%E6%96%B9%E9%9D%A2%2C%20%E5%85%B6%E5%AF%A6%E4%B8%BB%E8%A6%81%E9%83%BD%E6%83%B3%E5%B0%87%E5%94%94%E5%90%8C%E6%97%A2%20Concern%20%E5%88%86%E9%96%8B%2C%20%E4%BB%A5%E6%88%91%E5%81%9A%E9%96%8B%E4%B8%BB%E8%A6%81%E6%9C%89%E4%BB%A5%E4%B8%8B%E5%B9%BE%E5%80%8B%3A%0D%0A%0D%0A%09Flow%20%2F%20Business%20Logic%0D%0A%09Input%20%28Import%20Data%2C%20Interface%20for%203rd%20Party%29%0D%0A%09Output%20%28User%20Interface%2C%20Report%29%0D%0A%09Database%0D%0A%09Logging%0D%0A%09Permission%0D%0A%0D%0A%0D%0A%E5%9C%A8%E4%BB%A5%E4%B8%8A%E5%B9%BE%E5%80%8B%20Concern%20%E4%B8%8A%2C%20%E8%80%8C%20Logging%20%E5%90%8C%20Perm" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/&amp;bm_description=Separation+Of+Concerns&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/&amp;title=Separation+Of+Concerns" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/&amp;title=Separation+Of+Concerns" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/&amp;title=Separation+Of+Concerns" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Separation+Of+Concerns+-+http://bit.ly/dmu7Xi&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>




		<!-- Added by WP-DragToShare-eXtended Plugin -->
		<script type="text/javascript">
			dtsv.dtse_post_477_permalink = 'http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/';
			dtsv.dtse_post_477_title = 'Separation Of Concerns';
		</script>
		<!-- End of WP-DragToShare-eXtended Plugin -->]]></content:encoded>
			<wfw:commentRss>http://wongkalun.idv.hk/2009/04/26/separation-of-concerns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Automate Test?</title>
		<link>http://wongkalun.idv.hk/2009/04/15/why-automate-test/</link>
		<comments>http://wongkalun.idv.hk/2009/04/15/why-automate-test/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 15:19:57 +0000</pubDate>
		<dc:creator>calendarw</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[diary]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[nunit]]></category>
		<category><![CDATA[test-driven]]></category>
		<category><![CDATA[建議]]></category>
		<category><![CDATA[精華]]></category>

		<guid isPermaLink="false">http://wongkalun.idv.hk/?p=444</guid>
		<description><![CDATA[Test Driven Development, 係以測試來驅動程式既設計, 目的係為了提高軟件既質素. 好多人覺得測試對軟件方面只在於用戶接受測試 (UAT), 因為只要通過 UAT, 公司就可以袋袋平安. 不過, UAT 通常都浪費人手, 而且該次 UAT 只計對於該次既軟件需求, 當需求需要更改, 所有既測試都要人手重頭做過, 浪費人力物力. 自動化軟件測試既好處係可以減省人手及時間, 以及提高軟件既質素及完整度. 以下係一個由 NUnit 提供既自動化測試例子: // 一個 object oriented 既 Account class namespace bank { public class Account { private float balance; public void Deposit(float amount) { balance+=amount; } public void Withdraw(float amount) { balance-=amount; } [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://zh.wikipedia.org/wiki/%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91">Test Driven Development</a>, 係以測試來驅動程式既設計, 目的係為了提高軟件既質素.</p>
<p>好多人覺得測試對軟件方面只在於<a href="http://en.wikipedia.org/wiki/User_acceptance_testing#User_acceptance_testing">用戶接受測試</a> (UAT), 因為只要通過 UAT, 公司就可以袋袋平安.  不過, UAT 通常都浪費人手, 而且該次 UAT 只計對於該次既軟件需求, 當需求需要更改, 所有既測試都要人手重頭做過, 浪費人力物力.</p>
<p>自動化軟件測試既好處係可以減省人手及時間, 以及提高軟件既質素及完整度.</p>
<p>以下係一個由 <a href="http://www.nunit.org/">NUnit</a> 提供既自動化測試例子:</p>
<pre class="brush: csharp;">
// 一個 object oriented 既 Account class
namespace bank
{
  public class Account
  {
    private float balance;
    public void Deposit(float amount)
    {
      balance+=amount;
    }

    public void Withdraw(float amount)
    {
      balance-=amount;
    }

    public void TransferFunds(Account destination, float amount)
    {
    }

    public float Balance
    {
      get{ return balance;}
    }
  }
}
</pre>
<pre class="brush: csharp;">
namespace bank
{
  using NUnit.Framework;

  [TestFixture]
  public class AccountTest
  {
    // 自動化測試來測試 TransferFunds Method
    [Test]
    public void TransferFunds()
    {
      Account source = new Account();
      source.Deposit(200.00F);
      Account destination = new Account();
      destination.Deposit(150.00F);

      source.TransferFunds(destination, 100.00F);
      Assert.AreEqual(250.00F, destination.Balance);
      Assert.AreEqual(100.00F, source.Balance);
    }
  }
}
</pre>
<p>以上只係其中一個例子用來測試軟件既完成度, 在現實上, Test Case 除左要測驗一般情況外, 仲要測試錯誤情況出來既結果, 保証軟件質素, 所以正常使用既情況係唔會得一個 Test Case 咁少.</p>
<p>要實行 Test Driven Development, 通常要有一個良好既 Object Oriented Design 以及 Design for Test, 如果沒有這兩個設計既技巧, 那測試既質素有可能會受影響.</p>
<p>愈多 Test Case 未必代表軟件的準確率愈高, 正常情況 Test Case 既數量應該多過 Use Case 既數量, 而且會因應不同既考慮點而增加一定的測試數量, 以我所知, 在某些大學既科目中, 有計算要有多少 Test Case 既試題 (因為我都有睇過), 用作驗證是否足夠全面地測試每一行代碼. </p>
<p>在測試失敗時, 有問題既地方除了可能係軟件本身外, 自動化測試部份亦有可能會有錯誤, 錯誤既多少在乎實現 Test Case 既人對軟件測試既知識同經驗所得.</p>
<p>雖然軟件在有測試既環境下推出, 但有時都有可能會在軟件發現有 bug 既情況, 當遇到這個情況下, Programmer / Tester 應該用 Test Case 去模擬問題既環境, 當得出相同既結果後才可以更改軟件, 因為未能模擬出相同環境下更改軟件, 失敗後亦未知是軟件問題定 Test Case 問題, 所以 Programmer 應該先更改 Test Case 後才更改軟件, 而更改軟件途中, Programmer 亦可透過測試來避免 side effect 出現, 所以不段發現問題環境才能提高軟件既完整性, 以及提高軟件人員對軟件既信心.</p>
<p>測試, 除了要滿足軟件既完整性, 亦要滿足不段改變既需求, 世界變, 軟件同測試不變就只會不進則退, 所以為新既需求而更改軟件及擴充其功能既環境下, 自動化測試係必須的.</p>
<p>一年前我工作既地方, 因為無自動化測試, 軟件無 Design for Test, 要用到硬件 及 3rd Party 提供既模擬程式下, 人手測試既時間應該超過一個月, 除了測試一個月既時間外, 測試既人手通常都要兩至三人, 而且大部份都係重複既輸入工作, 以及已改幾句 code 而重做半小時既測試結果既慘況下, 自動化測試變成我寫軟件生活既其中一個有興趣深入研究既地方.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://wongkalun.idv.hk/2009/04/15/why-automate-test/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://wongkalun.idv.hk/2009/04/15/why-automate-test/&amp;title=Why+Automate+Test%3F" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://wongkalun.idv.hk/2009/04/15/why-automate-test/&amp;title=Why+Automate+Test%3F" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://wongkalun.idv.hk/2009/04/15/why-automate-test/&amp;title=Why+Automate+Test%3F&amp;desc=Test%20Driven%20Development%2C%20%E4%BF%82%E4%BB%A5%E6%B8%AC%E8%A9%A6%E4%BE%86%E9%A9%85%E5%8B%95%E7%A8%8B%E5%BC%8F%E6%97%A2%E8%A8%AD%E8%A8%88%2C%20%E7%9B%AE%E7%9A%84%E4%BF%82%E7%82%BA%E4%BA%86%E6%8F%90%E9%AB%98%E8%BB%9F%E4%BB%B6%E6%97%A2%E8%B3%AA%E7%B4%A0.%0D%0A%0D%0A%E5%A5%BD%E5%A4%9A%E4%BA%BA%E8%A6%BA%E5%BE%97%E6%B8%AC%E8%A9%A6%E5%B0%8D%E8%BB%9F%E4%BB%B6%E6%96%B9%E9%9D%A2%E5%8F%AA%E5%9C%A8%E6%96%BC%E7%94%A8%E6%88%B6%E6%8E%A5%E5%8F%97%E6%B8%AC%E8%A9%A6%20%28UAT%29%2C%20%E5%9B%A0%E7%82%BA%E5%8F%AA%E8%A6%81%E9%80%9A%E9%81%8E%20UAT%2C%20%E5%85%AC%E5%8F%B8%E5%B0%B1%E5%8F%AF%E4%BB%A5%E8%A2%8B%E8%A2%8B%E5%B9%B3%E5%AE%89.%20%20%E4%B8%8D%E9%81%8E%2C%20UAT%20%E9%80%9A%E5%B8%B8%E9%83%BD%E6%B5%AA%E8%B2%BB%E4%BA%BA%E6%89%8B%2C%20%E8%80%8C%E4%B8%94%E8%A9%B2%E6%AC%A1%20UAT%20%E5%8F%AA%E8%A8%88%E5%B0%8D%E6%96%BC%E8%A9%B2%E6%AC%A1%E6" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://wongkalun.idv.hk/2009/04/15/why-automate-test/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://wongkalun.idv.hk/2009/04/15/why-automate-test/&amp;bm_description=Why+Automate+Test%3F&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://wongkalun.idv.hk/2009/04/15/why-automate-test/&amp;title=Why+Automate+Test%3F" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://wongkalun.idv.hk/2009/04/15/why-automate-test/&amp;title=Why+Automate+Test%3F" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://wongkalun.idv.hk/2009/04/15/why-automate-test/&amp;title=Why+Automate+Test%3F" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://wongkalun.idv.hk/2009/04/15/why-automate-test/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Why+Automate+Test%3F+-+http://bit.ly/aErDcE&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>




		<!-- Added by WP-DragToShare-eXtended Plugin -->
		<script type="text/javascript">
			dtsv.dtse_post_444_permalink = 'http://wongkalun.idv.hk/2009/04/15/why-automate-test/';
			dtsv.dtse_post_444_title = 'Why Automate Test?';
		</script>
		<!-- End of WP-DragToShare-eXtended Plugin -->]]></content:encoded>
			<wfw:commentRss>http://wongkalun.idv.hk/2009/04/15/why-automate-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Open Source?</title>
		<link>http://wongkalun.idv.hk/2008/11/17/why-open-source/</link>
		<comments>http://wongkalun.idv.hk/2008/11/17/why-open-source/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 15:15:06 +0000</pubDate>
		<dc:creator>calendarw</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://wongkalun.idv.hk/?p=287</guid>
		<description><![CDATA[前排同朋友傾, 佢話曾經有做銀行既 client 質疑 Open Source 既 Security, 怕寫果個人係 Cracker, 因而唔安全, 所以唔 prefer 用 Open Source. 我覺得個 Client 完全唔合邏輯, 係正常情況下, 比起相信一個人 (唔理係咪自己公司既人), 我會相信由唔同國家既 developer 共同參與, 觀察, 開發, 試驗過既 Open Source 安全 d, 我覺得就算係自己公司既人, 都有可能會係一個 Cracker, 而因為 Open Source 有多人參與, Crack 唔出樣. 用 Open Source 既原因, 主要係集眾人既力量來提高軟件質素, 如果有 bug, 只要 1 個人 debug 就可以解決, 提高了可重用性, 亦可以提高軟件既完整性. [...]]]></description>
			<content:encoded><![CDATA[<p>前排同朋友傾, 佢話曾經有做銀行既 client 質疑 Open Source 既 Security, 怕寫果個人係 Cracker, 因而唔安全, 所以唔 prefer 用 Open Source.  我覺得個 Client 完全唔合邏輯, 係正常情況下, 比起相信一個人 (唔理係咪自己公司既人), 我會相信由唔同國家既 developer 共同參與, 觀察, 開發, 試驗過既 Open Source 安全 d, 我覺得就算係自己公司既人, 都有可能會係一個 Cracker, 而因為 Open Source 有多人參與, Crack 唔出樣.</p>
<p>用 Open Source 既原因, 主要係集眾人既力量來提高軟件質素, 如果有 bug, 只要 1 個人 debug 就可以解決, 提高了可重用性, 亦可以提高軟件既完整性.</p>
<p>而減低成本方面, 我相信都有一定效果, 當然市場上有人已經提過, 請識用 Open Source 既人其實佢既人工都會高左, 但對公司黎講應該可以減低成本.</p>
<p>使用方面, 其實大多都係得幾類, 一係工具, 而且可以應用在不同領域; 一係已標準化程序, 就功能更加完善.  所以使用 Open Source 係利多於弊.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://wongkalun.idv.hk/2008/11/17/why-open-source/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://wongkalun.idv.hk/2008/11/17/why-open-source/&amp;title=Why+Open+Source%3F" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://wongkalun.idv.hk/2008/11/17/why-open-source/&amp;title=Why+Open+Source%3F" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://wongkalun.idv.hk/2008/11/17/why-open-source/&amp;title=Why+Open+Source%3F&amp;desc=%E5%89%8D%E6%8E%92%E5%90%8C%E6%9C%8B%E5%8F%8B%E5%82%BE%2C%20%E4%BD%A2%E8%A9%B1%E6%9B%BE%E7%B6%93%E6%9C%89%E5%81%9A%E9%8A%80%E8%A1%8C%E6%97%A2%20client%20%E8%B3%AA%E7%96%91%20Open%20Source%20%E6%97%A2%20Security%2C%20%E6%80%95%E5%AF%AB%E6%9E%9C%E5%80%8B%E4%BA%BA%E4%BF%82%20Cracker%2C%20%E5%9B%A0%E8%80%8C%E5%94%94%E5%AE%89%E5%85%A8%2C%20%E6%89%80%E4%BB%A5%E5%94%94%20prefer%20%E7%94%A8%20Open%20Source.%20%20%E6%88%91%E8%A6%BA%E5%BE%97%E5%80%8B%20Client%20%E5%AE%8C%E5%85%A8%E5%94%94%E5%90%88%E9%82%8F%E8%BC%AF%2C%20%E4%BF%82%E6%AD%A3%E5%B8%B8%E6%83%85%E6%B3%81%E4%B8%8B%2C%20%E6%AF%94%E8%B5%B7%E7%9B%B8%E4%BF%A1%E4%B8%80%E5%80%8B%E4%BA%BA%20%28%E5%94%94%E7%90%86%E4%BF%82%E5%92%AA%E8%87%AA%E5%B7%B1%E5%85%AC%E5%8F%B8%E6%97%A2%E4%BA%BA%29%2C%20%E6%88%91%E6%9C%83%E7%9B%B8%E4%BF%A1%E7%94%B1%E5" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://wongkalun.idv.hk/2008/11/17/why-open-source/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://wongkalun.idv.hk/2008/11/17/why-open-source/&amp;bm_description=Why+Open+Source%3F&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://wongkalun.idv.hk/2008/11/17/why-open-source/&amp;title=Why+Open+Source%3F" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://wongkalun.idv.hk/2008/11/17/why-open-source/&amp;title=Why+Open+Source%3F" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://wongkalun.idv.hk/2008/11/17/why-open-source/&amp;title=Why+Open+Source%3F" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://wongkalun.idv.hk/2008/11/17/why-open-source/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Why+Open+Source%3F+-+http://bit.ly/ca3wZE&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>




		<!-- Added by WP-DragToShare-eXtended Plugin -->
		<script type="text/javascript">
			dtsv.dtse_post_287_permalink = 'http://wongkalun.idv.hk/2008/11/17/why-open-source/';
			dtsv.dtse_post_287_title = 'Why Open Source?';
		</script>
		<!-- End of WP-DragToShare-eXtended Plugin -->]]></content:encoded>
			<wfw:commentRss>http://wongkalun.idv.hk/2008/11/17/why-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Domain Distilled</title>
		<link>http://wongkalun.idv.hk/2008/09/27/domain-distilled/</link>
		<comments>http://wongkalun.idv.hk/2008/09/27/domain-distilled/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 07:57:54 +0000</pubDate>
		<dc:creator>calendarw</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[domain-driven]]></category>

		<guid isPermaLink="false">http://wongkalun.idv.hk/?p=232</guid>
		<description><![CDATA[DDD Charpter 15 講述 Distilled Domain, 入面既野有大部份都以前讀果科 Outsourcing 既理念差唔多, 都係講 Core Competence. Core Competence 係指企業核心能力, 亦都係企業不可代替既競爭力, 等同於 Sony 既電子細小化技術, Mac 既圖象技術一樣, 每間公司能夠待續成長就要有一個 Core Competence!! 而 Distilled Domain 就係個 Core, 經多次程式員同 Domain Expert 討論及詳細理解過後既精華所在, 但如果一個 Core Domain 得不到質量管理, 最後都係發揮唔到佢競爭優勢. Domain-Driven, 因為要解決既問題多數係 Domain Problem, 所以如果 Software Developer 未能理解該 Domain, 其實對軟件既質素長遠都有影響. 而當一個不良既設計存在於一個運行緊既系統內, 作為 Software Developer 係咪真係可以說服到管理層 (通常係 Project [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.anobii.com/books/Domain-Driven_Design/9780321125217/00f4690a1f3fb7b511/">DDD</a> Charpter 15 講述 Distilled Domain, 入面既野有大部份都以前讀果科 Outsourcing 既理念差唔多, 都係講 Core Competence.</p>
<p>Core Competence 係指企業核心能力, 亦都係企業不可代替既競爭力, 等同於 Sony 既電子細小化技術, Mac 既圖象技術一樣, 每間公司能夠待續成長就要有一個 Core Competence!!  而 Distilled Domain 就係個 Core, 經多次程式員同 Domain Expert 討論及詳細理解過後既精華所在, 但如果一個 Core Domain 得不到質量管理, 最後都係發揮唔到佢競爭優勢.</p>
<p>Domain-Driven, 因為要解決既問題多數係 Domain Problem, 所以如果 Software Developer 未能理解該 Domain, 其實對軟件既質素長遠都有影響.  而當一個不良既設計存在於一個運行緊既系統內, 作為 Software Developer 係咪真係可以說服到管理層 (通常係 Project Manager) 去追求質素而去面對一個有可能存在既風險呢?</p>
<p>因為自己對軟件設計有追求及自己不段既進步, 面對住以前寫過既部份質素無咁好既設計(或者係 Code)因為已經運行當中而無法提高品質, 可以做既就係在一個新既系統未設計之前, 盡量去理解 Domain Problem 同 Business Needs 而去做一個精練既設計, 加上軟件架構同良好既編程習慣, 令跟隨者能易於管理及因需要而重構, 自己又能隨著經驗增加而設計出更高質素既 Domain 及周邊工具, 咁先可以有較地提高生產力.</p>
<p>一個好既 Domain Design 亦都好需要一個良好既 Utility 支持, 等同於 Core Competence 入面, 除左 Core 之外, Non-Core 但 Essential 係避免 Outsource 一樣, Utility 亦十分重要, 亦需要得到內部廣泛使用及質量管理 (e.g. Test-Driven Design), 不會抄襲而注重重用, 咁先可以真真正正提高效率, 質素及生產力, 呢幾個理念亦係我對軟件設計既堅持.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://wongkalun.idv.hk/2008/09/27/domain-distilled/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://wongkalun.idv.hk/2008/09/27/domain-distilled/&amp;title=Domain+Distilled" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://wongkalun.idv.hk/2008/09/27/domain-distilled/&amp;title=Domain+Distilled" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://wongkalun.idv.hk/2008/09/27/domain-distilled/&amp;title=Domain+Distilled&amp;desc=DDD%20Charpter%2015%20%E8%AC%9B%E8%BF%B0%20Distilled%20Domain%2C%20%E5%85%A5%E9%9D%A2%E6%97%A2%E9%87%8E%E6%9C%89%E5%A4%A7%E9%83%A8%E4%BB%BD%E9%83%BD%E4%BB%A5%E5%89%8D%E8%AE%80%E6%9E%9C%E7%A7%91%20Outsourcing%20%E6%97%A2%E7%90%86%E5%BF%B5%E5%B7%AE%E5%94%94%E5%A4%9A%2C%20%E9%83%BD%E4%BF%82%E8%AC%9B%20Core%20Competence.%0D%0A%0D%0ACore%20Competence%20%E4%BF%82%E6%8C%87%E4%BC%81%E6%A5%AD%E6%A0%B8%E5%BF%83%E8%83%BD%E5%8A%9B%2C%20%E4%BA%A6%E9%83%BD%E4%BF%82%E4%BC%81%E6%A5%AD%E4%B8%8D%E5%8F%AF%E4%BB%A3%E6%9B%BF%E6%97%A2%E7%AB%B6%E7%88%AD%E5%8A%9B%2C%20%E7%AD%89%E5%90%8C%E6%96%BC%20Sony%20%E6%97%A2%E9%9B%BB%E5%AD%90%E7%B4%B0%E5%B0%8F%E5%8C%96%E6%8A%80%E8%A1%93%2C%20Mac%20%E6%97%A2%E5%9C%96%E8%B1%A1%E6%8A%80%E8%A1%93%E4%B8%80%E6%A8%A3%2C%20%E6%AF%8F" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://wongkalun.idv.hk/2008/09/27/domain-distilled/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://wongkalun.idv.hk/2008/09/27/domain-distilled/&amp;bm_description=Domain+Distilled&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://wongkalun.idv.hk/2008/09/27/domain-distilled/&amp;title=Domain+Distilled" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://wongkalun.idv.hk/2008/09/27/domain-distilled/&amp;title=Domain+Distilled" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://wongkalun.idv.hk/2008/09/27/domain-distilled/&amp;title=Domain+Distilled" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://wongkalun.idv.hk/2008/09/27/domain-distilled/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Domain+Distilled+-+http://bit.ly/cFfjfE&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>




		<!-- Added by WP-DragToShare-eXtended Plugin -->
		<script type="text/javascript">
			dtsv.dtse_post_232_permalink = 'http://wongkalun.idv.hk/2008/09/27/domain-distilled/';
			dtsv.dtse_post_232_title = 'Domain Distilled';
		</script>
		<!-- End of WP-DragToShare-eXtended Plugin -->]]></content:encoded>
			<wfw:commentRss>http://wongkalun.idv.hk/2008/09/27/domain-distilled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming with Domain-Driven Concept</title>
		<link>http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/</link>
		<comments>http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 15:31:13 +0000</pubDate>
		<dc:creator>calendarw</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[domain-driven]]></category>

		<guid isPermaLink="false">http://wongkalun.idv.hk/?p=221</guid>
		<description><![CDATA[之前買果本 Domain-Driven Design 都睇到第 15 章, 基本既理念大致上有: Factory Repository Specification Domain Model with Aggregation 而宜家寫既 Code 大部份都會跟呢個方向做, 雖然有時都無寫 Factory 黎生產 Object, 但自己就將 Repository Inherent DAO, 咁加埋 Spring.net 既 NHibernate Template 就可以更快地寫好一個 Program, 而 Validation 呢部份就用 Specification 黎做, 配合埋 Shared Kernel 就可以支援唔同既 Bounded Context. Subscribe to the comments for this post? Share this on del.icio.us Digg [...]]]></description>
			<content:encoded><![CDATA[<p>之前買果本 Domain-Driven Design 都睇到第 15 章, 基本既理念大致上有:</p>
<ul> Factory<br />
Repository<br />
Specification<br />
Domain Model with Aggregation</ul>
<p>而宜家寫既 Code 大部份都會跟呢個方向做, 雖然有時都無寫 Factory 黎生產 Object, 但自己就將 Repository Inherent DAO, 咁加埋 Spring.net 既 NHibernate Template 就可以更快地寫好一個 Program, 而 Validation 呢部份就用 Specification 黎做, 配合埋 Shared Kernel 就可以支援唔同既 Bounded Context.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/&amp;title=Programming+with+Domain-Driven+Concept" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/&amp;title=Programming+with+Domain-Driven+Concept" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/&amp;title=Programming+with+Domain-Driven+Concept&amp;desc=%E4%B9%8B%E5%89%8D%E8%B2%B7%E6%9E%9C%E6%9C%AC%20Domain-Driven%20Design%20%E9%83%BD%E7%9D%87%E5%88%B0%E7%AC%AC%2015%20%E7%AB%A0%2C%20%E5%9F%BA%E6%9C%AC%E6%97%A2%E7%90%86%E5%BF%B5%E5%A4%A7%E8%87%B4%E4%B8%8A%E6%9C%89%3A%0D%0A%20Factory%0D%0ARepository%0D%0ASpecification%0D%0ADomain%20Model%20with%20Aggregation%0D%0A%E8%80%8C%E5%AE%9C%E5%AE%B6%E5%AF%AB%E6%97%A2%20Code%20%E5%A4%A7%E9%83%A8%E4%BB%BD%E9%83%BD%E6%9C%83%E8%B7%9F%E5%91%A2%E5%80%8B%E6%96%B9%E5%90%91%E5%81%9A%2C%20%E9%9B%96%E7%84%B6%E6%9C%89%E6%99%82%E9%83%BD%E7%84%A1%E5%AF%AB%20Factory%20%E9%BB%8E%E7%94%9F%E7%94%A2%20Object%2C%20%E4%BD%86%E8%87%AA%E5%B7%B1%E5%B0%B1%E5%B0%87%20Repository%20Inherent%20DAO%2C" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/&amp;bm_description=Programming+with+Domain-Driven+Concept&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/&amp;title=Programming+with+Domain-Driven+Concept" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/&amp;title=Programming+with+Domain-Driven+Concept" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/&amp;title=Programming+with+Domain-Driven+Concept" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Programming+with+Domain-Driven+Concept+-+http://bit.ly/c5nofA&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>




		<!-- Added by WP-DragToShare-eXtended Plugin -->
		<script type="text/javascript">
			dtsv.dtse_post_221_permalink = 'http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/';
			dtsv.dtse_post_221_title = 'Programming with Domain-Driven Concept';
		</script>
		<!-- End of WP-DragToShare-eXtended Plugin -->]]></content:encoded>
			<wfw:commentRss>http://wongkalun.idv.hk/2008/09/24/programming-with-domain-driven-concept/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Data Access Object</title>
		<link>http://wongkalun.idv.hk/2008/09/04/data-access-object/</link>
		<comments>http://wongkalun.idv.hk/2008/09/04/data-access-object/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 05:42:14 +0000</pubDate>
		<dc:creator>calendarw</dc:creator>
				<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://wongkalun.idv.hk/?p=129</guid>
		<description><![CDATA[呢兩年寫 code 都會用 Data Access Object(DAO) 黎做 Data Layer 果部份, 因為可以夾返 object-oriented design 同 object-relational mapping, 增加返個 adaptability, 令到個 program 可以由 System.Data 轉去 NHibernate, 或者唔同既 Database Connection 既 Implementation (OleDb, ODBC 等, 雖然我大部份時間都係用 System.Data 入面既 Interface, e.g. IDbConnection, IDbTransaction). 用左 DAO 之後, 大部份既 SQL 都交由 DAO 負責, 除左 DAO 之外, 其他地方應該唔會出現 SQL, 我覺得咁樣會方便管理, 同埋係更改!! 而實際 [...]]]></description>
			<content:encoded><![CDATA[<p>呢兩年寫 code 都會用 <a href="http://en.wikipedia.org/wiki/Data_Access_Object">Data Access Object(DAO)</a> 黎做 Data Layer 果部份, 因為可以夾返 object-oriented design 同 object-relational mapping, 增加返個 adaptability, 令到個 program 可以由 System.Data 轉去 NHibernate, 或者唔同既 Database Connection 既 Implementation (OleDb, ODBC 等, 雖然我大部份時間都係用 System.Data 入面既 Interface, e.g. IDbConnection, IDbTransaction).</p>
<p>用左 DAO 之後, 大部份既 SQL 都交由 DAO 負責, 除左 DAO 之外, 其他地方應該唔會出現 SQL, 我覺得咁樣會方便管理, 同埋係更改!!  而實際 Program 上面, 基本上係拎個 object 舞來舞去, 無乜咁大特別, 舞完一輪就用 DAO Update 返落 Db, 方便易用!!~</p>
<p><a href="http://wongkalun.idv.hk/wp-content/uploads/2008/09/classdiagram.png"><img class="size-medium wp-image-207 alignnone dtse-img dtse-post-129" title="DAO Class Diagram" src="http://wongkalun.idv.hk/wp-content/uploads/2008/09/classdiagram-181x300.png" alt="" width="181" height="300" /></a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://wongkalun.idv.hk/2008/09/04/data-access-object/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://wongkalun.idv.hk/2008/09/04/data-access-object/&amp;title=Data+Access+Object" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://wongkalun.idv.hk/2008/09/04/data-access-object/&amp;title=Data+Access+Object" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://wongkalun.idv.hk/2008/09/04/data-access-object/&amp;title=Data+Access+Object&amp;desc=%E5%91%A2%E5%85%A9%E5%B9%B4%E5%AF%AB%20code%20%E9%83%BD%E6%9C%83%E7%94%A8%20Data%20Access%20Object%28DAO%29%20%E9%BB%8E%E5%81%9A%20Data%20Layer%20%E6%9E%9C%E9%83%A8%E4%BB%BD%2C%20%E5%9B%A0%E7%82%BA%E5%8F%AF%E4%BB%A5%E5%A4%BE%E8%BF%94%20object-oriented%20design%20%E5%90%8C%20object-relational%20mapping%2C%20%E5%A2%9E%E5%8A%A0%E8%BF%94%E5%80%8B%20adaptability%2C%20%E4%BB%A4%E5%88%B0%E5%80%8B%20program%20%E5%8F%AF%E4%BB%A5%E7%94%B1%20System.Data%20%E8%BD%89%E5%8E%BB%20NHibernate%2C%20%E6%88%96%E8%80%85%E5%94%94%E5%90%8C%E6%97%A2%20Database%20Connection%20%E6%97%A2%20Implementation%20%28OleD" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://wongkalun.idv.hk/2008/09/04/data-access-object/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://wongkalun.idv.hk/2008/09/04/data-access-object/&amp;bm_description=Data+Access+Object&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://wongkalun.idv.hk/2008/09/04/data-access-object/&amp;title=Data+Access+Object" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://wongkalun.idv.hk/2008/09/04/data-access-object/&amp;title=Data+Access+Object" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://wongkalun.idv.hk/2008/09/04/data-access-object/&amp;title=Data+Access+Object" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://wongkalun.idv.hk/2008/09/04/data-access-object/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Data+Access+Object+-+http://bit.ly/d2eXIG&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>




		<!-- Added by WP-DragToShare-eXtended Plugin -->
		<script type="text/javascript">
			dtsv.dtse_post_129_permalink = 'http://wongkalun.idv.hk/2008/09/04/data-access-object/';
			dtsv.dtse_post_129_title = 'Data Access Object';
		</script>
		<!-- End of WP-DragToShare-eXtended Plugin -->]]></content:encoded>
			<wfw:commentRss>http://wongkalun.idv.hk/2008/09/04/data-access-object/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smart UI</title>
		<link>http://wongkalun.idv.hk/2008/09/02/smart-ui/</link>
		<comments>http://wongkalun.idv.hk/2008/09/02/smart-ui/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 10:03:47 +0000</pubDate>
		<dc:creator>calendarw</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[anti-pattern]]></category>

		<guid isPermaLink="false">http://wongkalun.idv.hk/?p=173</guid>
		<description><![CDATA[Smart UI 呢個 term 係我由 domain-driven design 本書度見到的, 係一個 anti-pattern, 指一個介面做晒所有 business logic, 佢既好處就係當個 program 係好細好細, 你搞咁多 design 其實係好浪費時間的, 所以係好適合一 d 細既 program, 例如功課上面用的. 不過, 當你 apply 左 smart ui 之後, 其實亦限制左個 software 既可擴展性, 因為所有既 business logic 都係晒個介面度, 如果你寫既 software 愈來愈大, 而 business logic 只可以不段咁 copy and paste, 就會變得複雜同難以管理, 當有 logic 要轉, 就要轉晒所有版面引用過既 code, 呢個亦都係之前我個 [...]]]></description>
			<content:encoded><![CDATA[<p>Smart UI 呢個 term 係我由 domain-driven design 本書度見到的, 係一個 anti-pattern, 指一個介面做晒所有 business logic, 佢既好處就係當個 program 係好細好細, 你搞咁多 design 其實係好浪費時間的, 所以係好適合一 d 細既 program, 例如功課上面用的.</p>
<p>不過, 當你 apply 左 smart ui 之後, 其實亦限制左個 software 既可擴展性, 因為所有既 business logic 都係晒個介面度, 如果你寫既 software 愈來愈大, 而 business logic 只可以不段咁 copy and paste, 就會變得複雜同難以管理, 當有 logic 要轉, 就要轉晒所有版面引用過既 code, 呢個亦都係之前我個 <a href="http://wongkalun.idv.hk/?p=35">post</a> 所講: &#8220;爛於抄, 精於用&#8221; 既道理, 亦正正就係點解要有 software design 同 software architecture 既原因!!</p>
<p>而我自己, 因為係一個太過 OO 既人, 凡事都 object-base, 所以我都會盡量唔比 smart ui 出自我手, 當然工作需要既我就要用, 但我有得選擇既話我一定會行 object-base!!!</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://wongkalun.idv.hk/2008/09/02/smart-ui/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://wongkalun.idv.hk/2008/09/02/smart-ui/&amp;title=Smart+UI" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://wongkalun.idv.hk/2008/09/02/smart-ui/&amp;title=Smart+UI" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://wongkalun.idv.hk/2008/09/02/smart-ui/&amp;title=Smart+UI&amp;desc=Smart%20UI%20%E5%91%A2%E5%80%8B%20term%20%E4%BF%82%E6%88%91%E7%94%B1%20domain-driven%20design%20%E6%9C%AC%E6%9B%B8%E5%BA%A6%E8%A6%8B%E5%88%B0%E7%9A%84%2C%20%E4%BF%82%E4%B8%80%E5%80%8B%20anti-pattern%2C%20%E6%8C%87%E4%B8%80%E5%80%8B%E4%BB%8B%E9%9D%A2%E5%81%9A%E6%99%92%E6%89%80%E6%9C%89%20business%20logic%2C%20%E4%BD%A2%E6%97%A2%E5%A5%BD%E8%99%95%E5%B0%B1%E4%BF%82%E7%95%B6%E5%80%8B%20program%20%E4%BF%82%E5%A5%BD%E7%B4%B0%E5%A5%BD%E7%B4%B0%2C%20%E4%BD%A0%E6%90%9E%E5%92%81%E5%A4%9A%20design%20%E5%85%B6%E5%AF%A6%E4%BF%82%E5%A5%BD%E6%B5%AA%E8%B2%BB%E6%99%82%E9%96%93%E7%9A%84%2C%20%E6%89%80%E4%BB%A5%E4%BF%82%E5%A5%BD%E9%81%A9%E5%90%88%E4%B8%80%20d%20%E7%B4%B0%E6%97%A2%20program%2C%20%E4%BE%8B%E5%A6%82%E5%8A%9F%E8%AA%B2%E4%B8%8A%E9%9D%A2%E7%94%A8" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://wongkalun.idv.hk/2008/09/02/smart-ui/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://wongkalun.idv.hk/2008/09/02/smart-ui/&amp;bm_description=Smart+UI&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://wongkalun.idv.hk/2008/09/02/smart-ui/&amp;title=Smart+UI" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://wongkalun.idv.hk/2008/09/02/smart-ui/&amp;title=Smart+UI" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://wongkalun.idv.hk/2008/09/02/smart-ui/&amp;title=Smart+UI" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://wongkalun.idv.hk/2008/09/02/smart-ui/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Smart+UI+-+http://bit.ly/ajneJr&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>




		<!-- Added by WP-DragToShare-eXtended Plugin -->
		<script type="text/javascript">
			dtsv.dtse_post_173_permalink = 'http://wongkalun.idv.hk/2008/09/02/smart-ui/';
			dtsv.dtse_post_173_title = 'Smart UI';
		</script>
		<!-- End of WP-DragToShare-eXtended Plugin -->]]></content:encoded>
			<wfw:commentRss>http://wongkalun.idv.hk/2008/09/02/smart-ui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Architecture (Updated)</title>
		<link>http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/</link>
		<comments>http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 14:09:15 +0000</pubDate>
		<dc:creator>calendarw</dc:creator>
				<category><![CDATA[daily finding]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[design pattern]]></category>
		<category><![CDATA[uml]]></category>

		<guid isPermaLink="false">http://wongkalun.idv.hk/?p=150</guid>
		<description><![CDATA[呢排係 Code Project 度發現的, 而作者就不斷增加緊 content~~ Software Architecture Interview Questions Part 1 ( Design Pattern ) Software Architecture Interview Questions Part 2 ( Design pattern ) Software Architecture Interview Questions Part 3 ( Design Pattern ) Software Architecture Interview Questions Part 4 ( Design Pattern ) UML Interview Questions Part 1 UML Interview Questions Part [...]]]></description>
			<content:encoded><![CDATA[<p>呢排係 <a href="http://www.codeproject.com/">Code Project</a> 度發現的, 而作者就不斷增加緊 content~~</p>
<ul>
<li><a href="http://www.codeproject.com/KB/aspnet/SoftArchInter1.aspx">Software Architecture Interview Questions Part 1 ( Design Pattern )</a></li>
<li><a href="http://www.codeproject.com/KB/aspnet/SoftArch2.aspx">Software Architecture Interview Questions Part 2 ( Design pattern )</a></li>
<li><a href="http://www.codeproject.com/KB/aspnet/SoftArch3.aspx">Software Architecture Interview Questions Part 3 ( Design Pattern )</a></li>
<li><a href="http://www.codeproject.com/KB/aspnet/SoftArch4.aspx">Software Architecture Interview Questions Part 4 ( Design Pattern )</a></li>
<li><a href="http://www.codeproject.com/KB/aspnet/SoftArch5.aspx">UML Interview Questions Part 1</a></li>
<li><a href="http://www.codeproject.com/KB/aspnet/SoftArch6.aspx">UML Interview Questions Part 2</a></li>
<li><a href="http://www.questpond.com/FreeDesign1.htm">View Video of Design Patterns</a></li>
<li><a href="http://www.codeproject.com/KB/aspnet/SoftArch7.aspx">SOA Interview questions Part 1</a> Recent Added</li>
</ul>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/&amp;title=Software+Architecture+%28Updated%29" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/&amp;title=Software+Architecture+%28Updated%29" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/&amp;title=Software+Architecture+%28Updated%29&amp;desc=%E5%91%A2%E6%8E%92%E4%BF%82%20Code%20Project%20%E5%BA%A6%E7%99%BC%E7%8F%BE%E7%9A%84%2C%20%E8%80%8C%E4%BD%9C%E8%80%85%E5%B0%B1%E4%B8%8D%E6%96%B7%E5%A2%9E%E5%8A%A0%E7%B7%8A%20content%7E%7E%0D%0A%0D%0A%09Software%20Architecture%20Interview%20Questions%20Part%201%20%28%20Design%20Pattern%20%29%0D%0A%09Software%20Architecture%20Interview%20Questions%20Part%202%20%28%20Design%20pattern%20%29%0D%0A%09Software%20Architecture%20Interview%20Questions%20Part%203%20%28%20Design%20Pattern%20%29%0D%0A%09Software%20Ar" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/&amp;bm_description=Software+Architecture+%28Updated%29&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/&amp;title=Software+Architecture+%28Updated%29" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/&amp;title=Software+Architecture+%28Updated%29" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/&amp;title=Software+Architecture+%28Updated%29" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Software+Architecture+%28Updated%29+-+http://bit.ly/cyeoHy&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>




		<!-- Added by WP-DragToShare-eXtended Plugin -->
		<script type="text/javascript">
			dtsv.dtse_post_150_permalink = 'http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/';
			dtsv.dtse_post_150_title = 'Software Architecture (Updated)';
		</script>
		<!-- End of WP-DragToShare-eXtended Plugin -->]]></content:encoded>
			<wfw:commentRss>http://wongkalun.idv.hk/2008/08/19/today-finding-software-architecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feeling on Domain Driven Design</title>
		<link>http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/</link>
		<comments>http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 15:02:47 +0000</pubDate>
		<dc:creator>calendarw</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[diary]]></category>

		<guid isPermaLink="false">http://wongkalun.idv.hk/?p=32</guid>
		<description><![CDATA[經過一個月讀過既幾本有關 Domain Driven Design 既書, 睇落使用性不大. 原因有以下幾點: Highly Involve Client. 呢方面對 External Project 或 Internal Project 既使用性都不大. External 方面, 公司未必希望 Client 一齊 Design, 因為大部份既公司都會 Technology Focus, 所以 Client 比既 Idea 對未完全接受 DDD 既公司黎講未必接受到. Internal 方面, 高層雖然應該會有好既 Domain Knowledge, 以及比較容易做到 Involvement, 但係在於高層既角度又未必抽到咁多時間黎陪你做 Domain Design. Use of infrastructure. 對於香港大部份 SME 黎講, 未必有良好既 infrastructure, 雖然現今有大量良好既 Open Source Project, [...]]]></description>
			<content:encoded><![CDATA[<p>經過一個月讀過既幾本有關 Domain Driven Design 既書, 睇落使用性不大.  原因有以下幾點:</p>
<ol>
<li>Highly Involve Client.  呢方面對 External Project 或 Internal Project 既使用性都不大.  External 方面, 公司未必希望 Client 一齊 Design, 因為大部份既公司都會 Technology Focus, 所以 Client 比既 Idea 對未完全接受 DDD 既公司黎講未必接受到. Internal 方面, 高層雖然應該會有好既 Domain Knowledge, 以及比較容易做到 Involvement, 但係在於高層既角度又未必抽到咁多時間黎陪你做 Domain Design.</li>
<li>Use of infrastructure.  對於香港大部份 SME 黎講, 未必有良好既 infrastructure, 雖然現今有大量良好既 Open Source Project, 但未必適用於公司既原有 framework 同 culture, 而且就算 define 到一個好既 infrastructure, 都未必得到傳統既 Developer 接受.</li>
<li>Test Driven.  香港未必有咁多既 SME 公司會 Apply Test Driven, 因為係香港既社會, 好多 Outsource 既 Project 都會係短時間內完成, 所以係咁既環境下未必 Apply 到 Test Driven.</li>
</ol>
<p>因此, 要將 Domain Driven Design 引入到香港既公司會比較難, 所以對我黎講都係 apply 一部份就算.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/&amp;title=Feeling+on+Domain+Driven+Design" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/&amp;title=Feeling+on+Domain+Driven+Design" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.diigo.com/post?url=http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/&amp;title=Feeling+on+Domain+Driven+Design&amp;desc=%E7%B6%93%E9%81%8E%E4%B8%80%E5%80%8B%E6%9C%88%E8%AE%80%E9%81%8E%E6%97%A2%E5%B9%BE%E6%9C%AC%E6%9C%89%E9%97%9C%20Domain%20Driven%20Design%20%E6%97%A2%E6%9B%B8%2C%20%E7%9D%87%E8%90%BD%E4%BD%BF%E7%94%A8%E6%80%A7%E4%B8%8D%E5%A4%A7.%20%20%E5%8E%9F%E5%9B%A0%E6%9C%89%E4%BB%A5%E4%B8%8B%E5%B9%BE%E9%BB%9E%3A%0D%0A%0D%0A%09Highly%20Involve%20Client.%20%20%E5%91%A2%E6%96%B9%E9%9D%A2%E5%B0%8D%20External%20Project%20%E6%88%96%20Internal%20Project%20%E6%97%A2%E4%BD%BF%E7%94%A8%E6%80%A7%E9%83%BD%E4%B8%8D%E5%A4%A7.%20%20External%20%E6%96%B9%E9%9D%A2%2C%20%E5%85%AC%E5%8F%B8%E6%9C%AA%E5%BF%85%E5%B8%8C%E6%9C%9B%20Client%20%E4%B8%80%E9%BD%8A%20Design%2C%20%E5%9B%A0%E7%82%BA%E5%A4%A7%E9%83%A8%E4%BB%BD%E6%97%A2%E5%85%AC%E5%8F%B8%E9%83" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.mister-wong.com/addurl/?bm_url=http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/&amp;bm_description=Feeling+on+Domain+Driven+Design&amp;plugin=sexybookmarks" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.mixx.com/submit?page_url=http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/&amp;title=Feeling+on+Domain+Driven+Design" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://reddit.com/submit?url=http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/&amp;title=Feeling+on+Domain+Driven+Design" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/&amp;title=Feeling+on+Domain+Driven+Design" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://technorati.com/faves?add=http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Feeling+on+Domain+Driven+Design+-+http://bit.ly/aHOkPn&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>




		<!-- Added by WP-DragToShare-eXtended Plugin -->
		<script type="text/javascript">
			dtsv.dtse_post_32_permalink = 'http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/';
			dtsv.dtse_post_32_title = 'Feeling on Domain Driven Design';
		</script>
		<!-- End of WP-DragToShare-eXtended Plugin -->]]></content:encoded>
			<wfw:commentRss>http://wongkalun.idv.hk/2008/03/14/feeling-on-domain-driven-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
