Time of Update: 2018-12-07
今天在zdnet上看到一篇指責iphone 3GS的資料加密功能行同虛設的文章。"我認為我們(開發人員)中沒人見過如此糟糕的加密實現", 一位iphone開發人員如是說。原文見:http://news.zdnet.com/2100-9595_22-325008.html 然而,其他的手機就安全嗎?文中提到的採用物理方法破解(physical access),對那些使用SD卡加密的Windows
Time of Update: 2018-12-07
文章目錄 擷取Java擷取Hadoop設定環境變數配置hadoop-env.sh配置core-site.xml配置hdfs-site.xml配置mapred-site.xml安裝HDFS啟動Hadoop簡單調試 對我這個之前從未接觸過*nix的使用者來說,使用命令列來做一系列的事情還是廢了一番功夫。特寫這個記錄,以做備份。 擷取Java我的Mac啟動並執行作業系統是OS X 10.7 Lion,之前已經安裝過Java了,可以在工具 +
Time of Update: 2018-12-07
尋找最大的鑽石有多難HUST微軟技術俱樂部又要招新了,在準備招新工作的時候,我順便翻閱了一下去年的筆試題,其中能力測試第一題是這樣的: 電梯問題——一樓到十樓的每層電梯門口都放著一顆鑽石,鑽石大小不一。您乘坐電梯從一樓到十樓,每層樓電梯門都會開啟一次,只能拿一次鑽石,問:怎樣才能拿到最大的一顆﹖(提示:沒有完美的策略,合理的取捨是解決問題的必要手段) 這是一個經典的面試題,如題所言,這道題沒有完美的策略能確保你拿到最大的鑽石。我們所認可的答案有很多種。比如1-3層選出大中小的標準,4-
Time of Update: 2018-12-07
記得以前在看關於講物件導向的書的時候都會拿Dog和Cat來做例子。比如他們都會叫,則他們都應該有個Bark方法,然後進一步抽象到Animal這個類。然後進一步往深處講,則會跟你談到設計類的時候應該要關注這個類的行為,其實也就是方法了。同時它具有哪些對我們有用的欄位和屬性,這裡我們不談這個。但是現在在實際的操作過程中呢?我感覺很多人都是拿了一個問題之後立即開始分析裡面所包含的實體類,這個實體類有哪些欄位和屬性,完了以後加上CRUD方法,最後再在Business
Time of Update: 2018-12-07
Programmatic programming, Declarative programming and Generative programming開發式編程,聲明式編程和產生式編程Author:Anders小明同步自:http://www.blogjava.net/AndersLin/archive/2006/08/31/66968.html開發式編程是編碼的,如:Java,
Time of Update: 2018-12-07
(同步自http://www.blogjava.net/AndersLin/archive/2006/06/15/53086.html )<<Domain Driven Design>> 和<< Patterns of Enterprise Application Architecture >>,令Domain 這個詞很火,也引起了廣泛爭論。我這裡也亂談一把。什麼是領域模型(Domain
Time of Update: 2018-12-07
同事發了一封信討論如何記錄工作日誌。討論很熱烈,發現大夥們也是各顯神通。這裡我列一下自己的方式,工作內容分為三個類型:1. 計劃這個使用Project來管理。好處是可以很容易的對一個主計劃分解出多子計劃,並進行管理。不過對於所有的計劃,我一直只記錄一個狀態。對於原定計劃中未完成的活動沒有記錄原因以及延遲完成的也沒有記錄原定時間以及原因。後來根據同事的提示,發現還是要補充記錄這樣的變化狀態。也有同事使用Excel來管理,不過這樣失去了Project提供的行事曆檢視便利。2.
Time of Update: 2018-12-07
同步自:http://www.blogjava.net/AndersLin/archive/2006/06/24/54806.html在AOSD:應用AOP實現商務邏輯中, 我提出關注的介面; 其原文在javaeye上的討論狼平方也提出可以用event,或者intercepter。 當然不同的方式可以解決不同的問題。這裡要討論一下AspectJ和Event以及intercepter的不同。1.
Time of Update: 2018-12-07
作者:Anders小明同步自:http://www.blogjava.net/AndersLin/archive/2006/11/21/82627.html先看下Booch對物件導向分析和設計的經典論述:OOP:物件導向編程是一種實現方法,程式被組織成對象的協作集合,每一個對象代表某個類的執行個體,對象的類是通過繼承關係聯合在一起的類層次中的所以成員。OOD:物件導向設計是一種設計方法,它包含物件導向的分解過程,以及一種表示方法,用來描寫設計中的系統的邏輯模型與物理模型,以及靜態模型與動態模型。
Time of Update: 2018-12-07
園子的忘卻之都發了一文,大意說是目前OOP感覺不太對,原文如下:http://www.cnblogs.com/gamix/archive/2006/11/26/572580.html這裡給些我的想法:除了實體物件,還有一類我稱為流程對象的。其實在現實中,新增Employee從來就不是HRUser可以決定和完成的,HRUser也只是發起一個新增Employee的流程。這個流程可能需要其它的系統的User來批覆和支援。在系統中,發起新增流傳的動作,更常表現為HRUser可以通過web提交一個請求。當
Time of Update: 2018-12-07
同步自:http://www.blogjava.net/AndersLin/archive/2006/07/01/56100.html是的,我內心很喜歡Tapestry。我喜歡他的開發風格,這和我的工作範圍是有關的。在我參加工作之前,我一直用ASP.NET(工作後轉J2EE開發),工作的第一家公司用的是私人的MVC架構,有類似的實現,同時提供了類似Spring Web
Time of Update: 2018-12-07
同步自:http://www.blogjava.net/AndersLin/archive/2006/08/14/63551.html我在《小議領域模型Domain Model》討論了service和object,以及關聯邏輯(咳咳,該文中的一些觀點我已修正,合適的時候放上來)。關聯邏輯就是本文討論的重點--specification 一、從DDD(Domain Driven
Time of Update: 2018-12-07
Blog好久沒有更新了, 最近一直忙於一個新項目,在這個項目中嘗試很多新的做法,準備收集一下放上blog來,這裡先放一篇關於Web架構的,基本是老調重談了. 該文寫於4月,主要是為了和朋友討論問題,有些地方可能不正確 StrutsJSFTapestryASP.NETArchitecture跳轉模型MVC跳轉模型Front Controller+組件化編程頁面模型Page Controller+組件化編程頁面模型Page Controller+組件化編程Programming Model商務邏輯:
Time of Update: 2018-12-07
同步自:http://www.blogjava.net/AndersLin/archive/2006/08/18/64231.htmlFP不是一個什麼全新的概念,在lisp等語言中被廣泛應用,其設計方法向我們描繪了一個美好的世界,不過在OO的世界裡應用卻還是要費一些力氣的。為了更好的應用FP,需要學習一下現有的實踐。 一、回顧一下函數式編程的幾個特性:1. 閉包計算和高階函數。 函數本身是first class對象,閉包是起函數作用並可以像對象一樣操作的。
Time of Update: 2018-12-07
Author: Anders小明為何要Domain Model傳統的開發方式:基於資料庫的設計開發。資料庫提供的設計模型是表和欄位兩種粒度,這兩種粒度有時並不合適於系統設計:1. 模型的結構化能力1.1. 同一模組組件下的設計優勢;一個model可以來自多張表的資料彙總而成,一張表可以彙總多個Model;一個邏輯是由幾個固定欄位或者非固定欄位彙總;Model間的關聯關係也是使用表無法展示的(外鍵的約束對於系統開發來說實在太有限了)。而這些不論表還是欄位粒度都無法支援的!1.2.
Time of Update: 2018-12-07
基於抽象的分層結構Author:Anders小明(2008-1-8更新)前言:現有已知的分層結構基本上是基於技術結構的,無論是SpringSide(早的還有AppFuse)還是DDD提出的分層結構,都是基於職責角色劃分的。然而對於複雜的公司專屬應用程式系統來說,僅僅以該緯度來劃分,是無法完成邏輯的分解的。我們還需要基於抽象的分層緯度。基於抽象的分層結構眾所周知:抽象是有排列的。進一步,在公司專屬應用程式中,抽象的排列也是分層的;與此同時,抽象還是分模組的,定義良好的互動介面,保持抽象間互動的穩定
Time of Update: 2018-12-07
新的一年做的最有意義的第一件事就是學習了“時間管理”。之所以想起來學習一下時間管理,是因為在過去的一年中自己迷失了目標,浪費了許多的好時光;因此痛定思痛,決定在這一年中利用好所有自己的時間,實現自己年度目標。 一、
Time of Update: 2018-12-07
Interface plays as Placeholder, without any class implement itAuthor:Anders小明有個這個題目是在ApectJ的應用,以及部落格園子中一個blog討論什麼時候用介面(一個很古老的話題)。介面作為一種重要的抽象能力,重要意義在於:模型上看:介面代表做什麼,而實現表示怎麼做!在架構上:介面代表穩定,而實現代表多變!在語言上:介面代表0,而實現代表1,通過物件類型消除if…else…。(這段話我<<Domain
Time of Update: 2018-12-07
Author:Anders小明目前採用是物件導向設計方法,設計的粒度分為兩級:類和方法(屬性),類似於資料庫設計的表和欄位;在現有實現體系下,一個方法內部將包容多個Use Case;同時因為Use Case本身的橫向擴充,也會導致一個Use Case將關聯到多個方法;這是一個多對多的關係,為我們的開發管理帶來巨大的成本。為了有效管理Use Case及其實現映射,AOP技術成為一個好的選擇;AOP允許我們為每個Use
Time of Update: 2018-12-07
dudu發起圖書推薦活動,我整理這些年看的書,去除了經濟學類的,對技術類書籍做了一些減法,以下是我認為不能再精減的書,特此向大家推薦:書名:《Object-Oriented Analysis and Design》作者:Grady Booch, Robert A. Maksimchuk, Michael W. Engel, and Bobbi J. Young 出版社:Addison Wesley推薦理由:物件導向分析設計的經典;理論結合實際而不限於語言。書名:《Aspect-Oriented