游戲開發入門
posted @ 2012-06-01 16:08 零雨其蒙 閱讀(1263) | 評論 (5) | 編輯 收藏
零雨其蒙's Blog做優秀的程序員
隨筆 - 59, 文章 - 13, 評論 - 58, 引用 - 0
|
游戲開發入門
摘要: 游戲服務器:SmartFoxServer:smartfoxserver.com簡單的游戲可以用apache minawebsocket provider:jetty客戶端:可以轉換成任何平臺的開發工具:http://china.unity3d.comHTML5&JS游戲引擎/框架基于HTML5的游戲框架:http://www.cnblogs.com/sc-xx/archive/2011/0... 閱讀全文
posted @ 2012-06-01 16:08 零雨其蒙 閱讀(1263) | 評論 (5) | 編輯 收藏 Oracle Coherence初啼
摘要: 昨天寫了個Coherence的小例子,使用了Oracle Enterprise Pack for Eclipse,直接用它創建了一個ADF項目,連帶創建了JPA項目,在Configuration里添加了Coherence,這樣就有了配套的jar包了。
Coherence利用多播自動組成集群,類可以不實現序列化接口,這... 閱讀全文
posted @ 2012-05-23 16:41 零雨其蒙 閱讀(2093) | 評論 (0) | 編輯 收藏 JVM源碼分析-Java運行
摘要: 最近在看Java并發編程實踐和Inside JVM兩本書,發現如果不真正的了解底層運作,那么永遠是霧里看花。因此從http://openjdk.java.net/groups/hotspot/上下載了源代碼,準備研究一番。要想完全研究懂我覺得得對計算機體系結構,C,C++編程,Linux內核都有比較深入的理解。由于并非從事JVM開發工作,因此不會研究的那么深入。
入手就從“java ... 閱讀全文
posted @ 2012-04-26 18:05 零雨其蒙 閱讀(25623) | 評論 (2) | 編輯 收藏 gigix早年間與andyyehoo的論戰http://www.javaeye.com/topic/8007?page=1 andyyehoo: 比較一下下面的兩段代碼,說真的,雖然說Java效率低一點可以原諒,不過比較一下這兩段代碼的效率,真是..............雖然java效率比C低n個等級大家都接受了,可是不意味著就可以把系統效率丟到爪哇國去了啊 引用 UserManager userManager = new UserManager(); 引用 ServiceRequest bsr = this.getApplicationContext().getBean("businessServiceRequest"); gigix: andyyehoo 寫道: 比較一下下面的兩段代碼,說真的,雖然說Java效率低一點可以原諒,不過比較一下這兩段代碼的效率,真是..............雖然java效率比C低n個等級大家都接受了,可是不意味著就可以把系統效率丟到爪哇國去了啊
andyyehoo: gigix 寫道: 你講這么大一通,我說你純粹扯淡。只要addUser方法里面訪問一次數據庫,你所有那些性能考量全都是白費。哪怕你節約一萬次對象創建和方法調用,連接數據庫的網絡開銷就足以讓你的整個努力化為烏有。你也知道80/20原則,按照80/20原則,J2EE應用根本就不應該考慮性能問題,除非涉及到RPC和I/O操作。你在內存里優化得再好,如果由于架構上的原因多一次RPC調用,整個系統的性能立馬就掉下來了。與其追求這種毫無價值的、微秒級的性能提升,我寧可追求全面的靈活性。 addUser調用數據庫的時間,大家都是一樣的,為什么我不能考慮這里調優? gigix: andyyehoo 寫道 addUser調用數據庫的時間,大家都是一樣的,為什么我不能考慮這里調優? 你是真不明白呢還是故意抬杠?一次數據庫操作或者RPC的速度是十毫秒級的,通常一個J2EE業務操作包括幾次網絡傳輸和幾次數據庫操作,也就是說在最理想的情況下一個業務操作的速度是百毫秒級甚至秒級的。我請問你,你要節省多少次對象創建、多少次方法調用才能把響應時間提升100毫秒?有個成語可以貼切地形容這種優化:杯水車薪。 andyyehoo 寫道 J2EE應用根本就不應該考慮性能問題?那我所有字符串連接都用+好不好?我做一步catch一次exception好不好?我所有Java方法的調用都通過reflection進行好不好?“根本”這個詞用得太過了。 你還真說對了。我所有字符串連接都是用+;我的業務對象外面有動態代理提供的AOP,也就是說所有方法調用都是通過reflection進行的;我的動態代理里面對異常全部做了包裝,也就是說每個方法調用都有try...catch...的包裹。我得到的效果是什么?更清晰的代碼,更優雅的架構,以及,更容易找到系統的性能瓶頸,更容易優化性能。有些事情也許你沒有聽說過,但不代表它不是真的。 andyyehoo 寫道 "我寧可追求全面的靈活性",這個正是問題所在,過分的追求靈活性,將降低效率,我們必須在靈活性和效率中間取得平衡點。xxx說了“添加多一個中間層,可以解決大部分的問題”。中間層越多,當然靈活性約好,但是效率是低了。其實當然,效率這個東西是兩頭大,中間小的一個東西,最耗費時間的,往往是一開始的調用(用戶點擊傳到處理層)和最后的調用(調用數據庫,WEB service),但是這并不意味著,我們就可以無節制的,忽略中間的效率。 同樣一個問題,我換另一個角度來問你:你要做多少次字符串連接,才能浪費100毫秒時間?你可以自己寫個程序,對比一下StringBuffer.append和String.+的性能差距,看看需要多大的字符串才能讓你損失100毫秒。如果你能告訴我這個結果,我一定很有興趣知道。別忘了,100毫秒僅僅是一次普通J2EE業務操作整體響應時間的數十分之一而已。 andyyehoo: 引用: 你還真說對了。我所有字符串連接都是用+;我的業務對象外面有動態代理提供的AOP,也就是說所有方法調用都是通過reflection進行的;我的動態代理里面對異常全部做了包裝,也就是說每個方法調用都有try...catch...的包裹。我得到的效果是什么?更清晰的代碼,更優雅的架構,以及,更容易找到系統的性能瓶頸,更容易優化性能。有些事情也許你沒有聽說過,但不代表它不是真的。
gigix:這也是你的想當然。如果采用一個優雅的架構,普通程序員只需要編寫面向對象的程序就足夠了。他不需要考慮如何管理事務,他不需要考慮如何記錄日志,他甚至不需要考慮如何獲得和關閉數據庫連接,而且他寫的每個模塊都可以從系統中摘出來單獨測試。難道開發這樣的程序會更慢、寫更多的代碼、對開發人員要求更高?相反,如果做太多代碼級的優化,勢必損害架構的優雅和靈活,會導致更多的重復代碼,會使得各個模塊耦合緊密而不能獨立測試,那樣的系統才是代碼量更多、對開發者要求更高的。 andyyehoo: gigix寫道: 這也是你的想當然。如果采用一個優雅的架構,普通程序員只需要編寫面向對象的程序就足夠了。他不需要考慮如何管理事務,他不需要考慮如何記錄日志,他甚至不需要考慮如何獲得和關閉數據庫連接,而且他寫的每個模塊都可以從系統中摘出來單獨測試。難道開發這樣的程序會更慢、寫更多的代碼、對開發人員要求更高?相反,如果做太多代碼級的優化,勢必損害架構的優雅和靈活,會導致更多的重復代碼,會使得各個模塊耦合緊密而不能獨立測試,那樣的系統才是代碼量更多、對開發者要求更高的。 在正規公司里面,分工明確的話,都是專人寫好架構,普通程序員按照架構往里面填代碼就是的啦。正常情況下,他也是不需要如何管理事務,記錄日志,獲得和關閉連接,每個模塊也可以單獨測試。 gigix寫道: 我只舉一個最簡單的例子。你認為如果我們需要一個UserManager,那么就直接new UserManager()好了。
gigix: andyyehoo 寫道 這個是例子這么寫的,需要靈活的部分,我們自然會用其它方法寫。不過在最簡單的情況中,我們是會這么寫,更簡單的情況,直接還調用靜態方法,不會不給吧,呵呵 :lol:
andyyehoo: 引用 別的不多說,就說這一件事好了。我要求所有程序員嚴格遵循“針對接口編程”的原則,每個組件必須提供一個接口和一個實現,獲得組件必須以接口的形式、通過dependency injection獲得。 佩服佩服,沒有程序員抗議嘛? 引用 有時針對接口編程,有時針對對象編程,有時靜態方法實現,也就是說你要求程序員清楚這三種設計的語義區別和利弊權衡。 我們現在是這樣,不過,這個好像是JAVA程序員的基本功吧,雖然現在很多程序員基本功不好,那樣的話,還是我們要求高點,按照你那樣寫的話,都快可以機器產生代碼了,呵呵,可以考慮開始向自動產生代碼發展了。 gigix: andyyehoo 寫道 引用
佩服佩服,沒有程序員抗議嘛? 引用
我們現在是這樣,不過,這個好像是JAVA程序員的基本功吧,雖然現在很多程序員基本功不好,那樣的話,還是我們要求高點,按照你那樣寫的話,都快可以機器產生代碼了,呵呵,可以考慮開始向自動產生代碼發展了。
andyyehoo: 引用 你說“調試比較困難”,我就真的很懷疑你究竟有多少經驗了。任何一個有經驗的J2EE開發者都會知道,OOD做得越好,debug越輕松。OOD做得好,你才可能做出完備的單元測試,然后用單元測試快速鎖定debug的范圍。我們調試比較困難嗎?我真的不知道該怎么回答這個問題,因為我已經好久沒開過debugger了。
gigix: andyyehoo 寫道 引用
所指的bug,是指需要在spring的配置,aop搭建的事務控制,日志中穿梭尋找的bug,不過這個對于你來說應該是很熟了,所以沒什么感覺了,一樣快速鎖定了。應該就是良好的架構使這定位個過程很快的。反正有固定步法的話,走7步和走5步差不多吧,呵呵。
andyyehoo: 引用 說起來,好象你也開始贊成:OOD和良好的架構才是真正重要的,而不是20毫秒的性能提升。 :lol: 我一直的觀點是,OOD和良好的架構當然很重要的,但是要根據項目選擇合適靈活的架構,而不必全部采用最靈活的系統,而在這個基礎上,“20毫秒的性能提升”,也是需要考慮的事情之一,而不可以完全拋之腦后。 posted @ 2008-08-04 15:47 零雨其蒙 閱讀(756) | 評論 (1) | 編輯 收藏 統一軟件開發過程學習筆記統一軟件開發過程 UP的幾個核心概念,也可以說是最佳實踐:用例驅動(所有的分析設計測試都是圍繞用例展開),迭代(因此我們會不斷地編寫用例,繪制用例圖,進行分析,設計,實現,部署和測試活動),基于組件(我們看到最后軟件是由組件構成的),以架構為中心(分層架構,完整的對象模型,核心領域模型)
[1] [Larman03]和Rose的RUP模板中都認為用例實現屬于設計模型,然而本書認為分析模型和設計模型中都存在用例實現,在分析模型中,用例實現表現為領域對象與領域對象之間的交互,設計模型中,表現為設計類與設計類之間的交互。不過由于UP是用例驅動開發的,因此,基于用例的分析與設計,都可以理解為用例實現。 posted @ 2008-06-24 00:11 零雨其蒙 閱讀(650) | 評論 (1) | 編輯 收藏 信管人的財會筆記(記帳)
摘要:
賬戶與會計科目:
會計科目與賬戶是兩個既有區別又有聯系的概念。其共同點在于兩者都按會計對象的內容設置,相同名稱的會計科目與賬戶反映的經濟內容相同。兩者的區別在于,會計科目只是一個名稱,只表明某類經濟內容,而賬戶既有名稱又有結構,可以記錄和反映某類經濟內容的增減變動及其結果。在實際工作中,會計人員往往不加區別地把會計科目與賬戶作為同義語。
賬戶結構如下:
賬戶名稱(會計科目)
... 閱讀全文
posted @ 2008-06-06 14:28 零雨其蒙 閱讀(999) | 評論 (0) | 編輯 收藏 項目組內部推薦書目
摘要: 本文介紹理解本項目所有架構、設計思想和具體技術、工具使用的著作,閱讀以下著作,可以更好的理解我們的項目為何如此架構,為什么要使用這些工具,以及過去在項目中出現的文檔中所簡單描述的內容的背后原理是什么。
閱讀全文 posted @ 2008-02-14 15:27 零雨其蒙 閱讀(834) | 評論 (0) | 編輯 收藏 企業應用架構模式學習筆記(2)
摘要: 這一部分完成了對于該書第一部分的學習,并且學習了領域層模式,特別是領域模型模式,并對于數據層的活動記錄進行了研究 閱讀全文
posted @ 2008-02-01 23:47 零雨其蒙 閱讀(683) | 評論 (0) | 編輯 收藏 企業應用架構模式學習筆記(1)
摘要: Martin Fowler的《企業應用架構模式》,很經典,這一部分的筆記主要對應于書中第一章和第二章的部分內容,對于領域邏輯層進行了部分人討論,對領域模型與事務腳本模式做了簡要分析。還包括對于對象到數據庫映射的簡單討論,與現實使用的DAO模式和Hiberante進行了概念映射 閱讀全文
posted @ 2008-01-27 23:54 零雨其蒙 閱讀(451) | 評論 (0) | 編輯 收藏 |
||||||||||||||||||||||||||||||||||||||||||||