這個月工作之餘一直忙於技術研究,本來打算完成:
1.java的大型產品開發架構;2.C#與java的資料互動。
1.完成度70%。
解決了我在javaeye發文章提出的有關多模組能過互相調用但不互相汙染的問題。
原貼:
Java視線論壇 :: 閱讀主題 - 有關於classloader的思考(或者說是困惑)
http://www.hibernate.org.cn/viewtopic.php?t=21288
完成了這部分的編碼。
完成了多模組的定義。
沒完成:
具體aop的事務advisor編寫。
體力活,因為原來寫過:)偷懶。唯寫了個介面
完善的測試。
tdd一直沒習慣:(
一直寫helloworldService來完成測試。
菜鳥~
2.完成度趨近於0%。
本來想好的方式
C#<-->JSON<-->Java
失敗:C#端的實現已經寫好了,java端現成的json-rpc。
失敗原因:
Json格式適合js那種弱類型語言。
否則,java和C#兩端都要解析,大資料量有效能問題。
Java端的實現不夠健壯,太簡單了。
有些地方的代碼有能用眼睛看出來的不成熟之處。
跨ClassLoader都不支援。
雖然可以自己改造,可是覺得不值得。
C#<-->xml<-->Java
失敗:C#端的實現已經寫好了,java端現成的xstream。
失敗原因:
xstream能把任意java對象很簡單的序列化為xml。
並且該項目十分成熟,深入讀代碼感覺十分健壯。
(一看就是公司行為,而json-rpc感覺是愛好者寫的,個人感覺而已)。
著手實現了C#段的xstream。
因為只是需要把C# object序列化成符合xstream的格式。
前面已經開發了json格式的對象屬性遍曆。
還是很簡單的。
昨天順利完成。
但是,測試後發現。
xml格式並不符合我的需求。
冗餘資訊過多,對於很簡單的bean,轉換時都會產生:
<hellotest02.HelloWorld>
<name type="string">abcd</name>
<id type="int">11</id>
<mny type="double">77.0</mny>
<helloChild type="hellotest02.HelloChild">
<childName type="string">kkk</childName>
</helloChild>
</hellotest02.HelloWorld>
這麼一大坨啊。
傳輸效能上不可接受。
現在我想到了個可能更有效率,優雅一些的方法,能滿足我的需要。
正在研究。