Time of Update: 2018-12-08
一個中型ERP系統中庫存交易部分的設計裁剪庫房設計: BPML中關於這一塊有詳細的規範可以用來參考,這個設計樣本並不符合是否資產庫房: 與成本計算相關的參數是否屬於供應商庫房、供應商ID: 對類似寄售管理員模式的考慮這些額外的欄位只是用來表示基於庫房的一些其它邏輯相關的設定交易: 庫存期間: 月結、周期性盤點結轉作業的期間設定(對應Martin在賬務模式中提到的有效期間)庫存期間代碼: 唯一標識這個庫存期間,例如200801、200803等形式期間類型:
Time of Update: 2018-12-08
動態代理的使用方法和相關概念可以參考Castle Dynamic ProxyNHibernate實現消極式載入的主要結構: BuildSessionFactory的時候:1. 根據proxyfactory.factory_class的配置建立IProxyFactoryFactory對象2. 如果use_proxy_validator配置為true(預設為true),載入實體映射中繼資料之後,對需要代理的實體使用IProxyFactoryFactory的ProxyValidator進行驗證(
Time of Update: 2018-12-08
搞了一段時間的WPF,深深的被那東西吸引了,用WPF開發個東西實在是忒happy了,儘管剛開始的時候忍不了WPF私吞Exception,忍不了傻不啦嘰的FrameworkElement.Triggers就支援一個EventTrigger,而傻鳥的EventTrigger偏偏沒有個Setter,所以想在某個特定的Event發生的時候對某個屬性賦值還得去繞個大圈等等等等。 據說,SilverLight號稱WPF
Time of Update: 2018-12-08
Entity Identity 實體標識一般採用單一值做為entity identity採用compsite primary key時,必須單獨建立一個表示主鍵的類-primary key class主鍵類。這樣在實體上compsite primary key就可以用一個屬性(primary key class類型)表示持久化架構內部很多地方使用entity identity進行處理,因此primary key
Time of Update: 2018-12-08
概念性模型比較難說清楚,概要性描述:最直觀的例子是組織圖,上級組織與下層組織之間的關係,從具體層面講是一種所屬關係,Martin將它抽象為一種責任關係。人和組織之間的所屬關係是責任關係;管理者與部署之間的關係是責任關係;部門與部門負責人、經理之間的關係是責任關係。書中Martin將這種關係進一步泛化到更廣的範圍,個人認為沒有多少實用價值,因為具體應用中對業務概念不能太泛化,否則將顯得很牽強,即軟體結構中的某些部位、介面責任過重。另外注意書中一開始就提到模型中的所有概念都是面向介面,而非面向實現,
Time of Update: 2018-12-08
緩衝管理面臨的主要問題緩衝作為一個資料中心,具備添加、更新、刪除資料的操作,因此跟資料庫類似,會存在事務性、並發情況下資料一致性等問題需要解決使用緩衝比較典型的方式如下面代碼:Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-08
Object Modeling in Colour,Java Modeling in Color with UML一書中提出這種方法定義4種類的原型,在UML中用不同顏色表示不同原型的對象 1. Party, Place, ThingParty: 事件的參與方,例如某人人、某組織等Place: 事件的發生地,例如倉庫、零售店鋪Thing: Thing classes are those that identify individual items such as individual
Time of Update: 2018-12-08
.NET中序列化通常使用二進位或xml格式,ajax興起之後JSON格式也用的比較多,相比YAML就很少見二進位無法直接閱讀,需在二進位層面編碼解碼;格式由廠商定義,特定應用需要表示的對象很複雜時,格式也非常複雜,例如office 檔案格式;通常需要充分考慮協議的擴充性、相容性,例如windows的檔案格式,DOS header、COFF header、PE、CLR
Time of Update: 2018-12-08
1. 對文法架構結構的整體構思 一方面為了避免過多因素的幹擾,另一方面考慮迭代完善過程,在對文法的整體構思時不要考慮文法樹的結構,以及如何構造文法樹的問題。2. 採用自底向上的方法 因為這樣可以結合ANTLRWorks一步步測試,在Interpreter視窗選擇要測試的規則就可以進行。 例如下面圖中的NoViableAltException表示這個運算式無法解析
Time of Update: 2018-12-08
數量(Quantity)物件模型: 資料模型:Unit: 單位主表,一般儲存度量單位的代碼、文本描述(可能需要處理多語言問題)等Unit_Ratio: 單位轉換率Quantity主要封裝與單位相關的邏輯,例如:Code highlighting produced by
Time of Update: 2018-12-08
Visual Studio:F12: 轉到定義Ctl+-: 向後定位(游標回到前一次的位置,最常用的是F12過去,Ctl+-回來)Ctl+Shift+-: 向前定位Ctl+↑, Ctl+↓: 保持當前游標位置不變化,文檔視圖上下移動Ctl+G: 轉到指定行號Ctl+K+K: 定義、取消bookmarkCtl+K+N: 到下一bookmark處Ctl+K+W: bookmark視窗Ctl+M+O: 摺疊所有代碼Ctl+M+P: 展開所有代碼Ctl+M+M: 摺疊、展開當前代碼Alt+→:
Time of Update: 2018-12-08
InfoQ: Bob大叔談測試驅動開發的適用性對測試驅動的運用,最明顯的幾個感覺是:1. 品質保證方面的改善。正如Bob Martin所說,幾乎不用或者很少使用調試功能了2. 對設計的協助 2.1 top-down的設計方式有利於分離關注點,逐步細化,但沒有看到整個機制具體是如何運作之前,的確有很多問題漏考慮,top-down之時也經常容易被其他各種問題打斷,使設計思路變得淩亂。測試驅動使得top-down的運用變得很清晰、明確,有利於改善設計過程、提高設計品質,使設計、開發過程更順暢
Time of Update: 2018-12-08
項目地址:Castle Dynamic ProxyCastle DynamicProxy動態產生透明代理類型,實體不需要繼承MarshalByRef、ContextBoundObject便可以實現代理類基於透明代理的功能,可以實現對方法調用的攔截處理,例如NHibernate用它實現消極式載入DP的使用非常簡單,內部沒有使用反射,而是採用Emit、委託等方式組建代理程式類型,調用真實類的方法,效能方面也沒有太多損失基本樣本引用的命名空間:using
Time of Update: 2018-12-08
作業系統Windows Server 2003,IE6。裝了IE Developer Toolbar之後不能使用,點擊toolbar的表徵圖沒有反應 IE Developer Toolbar失效的解決方案Tools -> Internet options -> Security Tab -> Local Intranet -> Custom Level -> Run ActiveX Control or PlugIn (Administrator
Time of Update: 2018-12-08
對財務系統沒有經驗,基於自己有限的認識記錄一下對Accounting Model的理解1. 賬務模式基本模型: Account: 如果是指個人財務方面(分析模式書中的樣本情境),當譯做帳號;如果指財務會計方面,當譯做科目Entry: 交易條目Accounting Transaction: 交易簡單ER設計樣本: 加了個"科目平衡 Banalce 1"的表,是因為Martin在這一節中不少地方都使用Account balance:
Time of Update: 2018-12-08
項目地址:Google Code,GitHub實現的特性有:1. AOP2. Dynamic Proxy3. Minxins4. Duck Typing5. Design by Contract基本樣本public class SimpleSamepleEntity{ public SimpleSamepleEntity() { Console.WriteLine("create SimpleSamepleEntity"); } public
Time of Update: 2018-12-08
安裝配置需要JRE或者JDK下載ANTLRWorks: http://www.antlr.org/works/index.html查看DFA需要使用Graphviz,下載安裝: http://www.graphviz.org/運行antlrworks-1.1.7.jar,在菜單File -> Preferences中設定DOT path為Graphviz安裝路徑"bin"dot.exe。這裡還可以設定ANTLR的臨時工作目錄、global
Time of Update: 2018-12-08
項目地址: CorMVC - jQuery-powered Model-View-Controller Frameworkdemo網站: http://www.bennadel.com/resources/projects/cormvc/demo,進入後點CONTACTS進入示範介面實現上很簡單,也很有意思主要機制 以demo網站上的連絡人功能為例,下面這個連絡人清單可以執行edit、delete等操作 Edit按鈕的html如下: <a
Time of Update: 2018-12-08
ANTLR的文法檔案使用擴充巴科斯範式EBNF描述,記得編譯原理的用起來非常簡單,需要進一步瞭解的是怎麼構造自己的recognizer和translator。很多的文法不需要從頭寫,一方面很多語言標準中基本都使用EBNF描述,另一方面ANTLR網站http://www.antlr.org/grammar/list上有大量寫好的文法檔案,可以參考使用。我已經忘得一乾二淨,從頭大致瞭解一下。巴科斯範式擴充符號 EBNF() : 產生式組合? : 產生式出現0或1次* : 0或多次+ :
Time of Update: 2018-12-08
jquery的菜單控制項jquery.menu.js結構解析:jquery menu plugin1. 功能示範菜單html代碼:<ul id="menu_demo"> <li><span>編輯</span> <ul> <li>撤銷</li> <li>重複</li>