2007年11月1日 星期四

Programming Habits 1

發現一篇關於程式設計的好文章,可以當作做好編程工作的內功心法,試著將其譯成中文,原作著為 Alexey Radul,目前是MIT的博士班研究生,原著請參考附件連結。

Over the years, I have discovered many things about the art of programming. Some I later discovered to be wrong, others I forgot and then rediscovered, others yet were discoveries of the extent of what I must yet discover. I also developed a set of habits in the domain of administering programming projects, whether they be my own, or by a small group, or larger, corporate affairs. These habits are, on the one hand, essential to the success of any software (that is not so small or so lucky that it manages regardless by sheer chance), on the other hand sufficiently easy to describe as to fit in a single essay, and on the third hand not known and loved as universally as they should be. Therefore, I wrote that single essay, and you are now reading it.

數年以來,我發現許多關於程式設計的藝術。 其中有一些是我之後發現是錯誤的,也有些是我忘記了然後又再想起,更有些是從我已知的知識再加以擴充延展而得。 我也在程式專案管理的領域中找到一些好習慣,無論他們是我自己所發現的或藉助一個小組而來,又或是從更大的企業專案中獲得。 這些習慣一方面是任何成功軟體所不可或缺的 (不是那種太小或太幸運而不需特別管理的軟體), 另一方面它們也十分簡單到容易在一篇文章中描述,更另一方面是它們還未受到世人應有的關注和喜愛。 因此,我寫了這一篇論文,而且你現在正在讀著它。

This document is organized as a collection of individual, bite-sized pieces of advice, grouped about six general topics. One reason for this is that they interact with each other, enough that it is impossible to write them down linearly, without forward references. The other reason is to allow you to jump around, to skip the bits you already know, to revisit bits you want to think about again, or to just run down the list without having to sift through the explanations.

這篇文章是以獨立的、片段式的忠告所組成,並且匯聚成六個主題。 這麼做的一個理由是文章內容與彼此充份互動,不可能直線地把他們依順寫下來而不往後方參考。 另一個理由是允許你得以跳躍式閱讀,略過你已經知道的部份,重訪想再複習的地方,或僅僅略讀標題而不詳看內容。

Version Control 版本控制

Version Control is a means to systematically track the history of a piece of software as it is being developed. This task is carried out by a thing called a version control system, such as CVS or Subversion. Said thing maintains, explicitly or otherwise, a history of the code being controlled, and provides operations to acquire (usually called check out) the current version of the code, to check in or commit one's modifications to it, and to update one's working copy to incorporate changes made by others. The version control system also provides functions for examining the history of the code in various ways, for undoing various changes made and/or returning to previous points in the software's history, and for resolving conflicts (two people changing the same code at the same time in different ways).

版本控制意指系統性地追蹤一個軟體的發展歷史。 這個任務由一個叫做版本控制系統,像是 CVS 或 Subversion, 的東西所進行。 明白地或是暗中地維護著程式碼的修訂歷史,而且提供獲得 (通常被稱為簽出)程式碼的目前版本,簽入交付某人的修改,而且合併他人的修改至某人的工作複本上的功能。這個版本控制系統也提供回覆至先前程式版本與解決衝突(二個人同時針對相同的內容作修改)的功能。

~待續

2007年10月29日 星期一

TeeChart for .Net 與 Dandus .Net 的比較

TeeChart for .Net 與 Dandus .Net 都是執行於Asp.Net上的圖表元件,二者皆提供豐富的Web Chart的能力,最近研究了二者間的差異,有了心得如下...
在經過約三小時的測試TeeChart ActiveX v8 Evaluation之後,
並且綜合之前TeeChart for .NET v3 EVALUATION的使用經驗,
我強烈認為TeeChart 並不是一個好的Web Chart Tool,
並且建議使用Dundas,整理有關TeeChart 的問題如下:
  1. 不論是TeeChart ActiveX v8 Evaluation或是TeeChart for .NET v3 EVALUATION,安裝後的程式都存在嚴重的問題,或許我們會質疑這些都是EVALUATION版才有的問題,但我在乎的是該公司的產品品質,連一個全世界都能Download的評估版都這麼慘,我不敢相信其正式版會好到哪?
    問題簡列如下:
    1. TeeChart ActiveX v8 Evaluation: 功能目錄中包含不可執行的前版(v7.0)程式
    2. TeeChart ActiveX v8 Evaluation: 的Example 竟然是VS.NET 2003的專案,而不是VS.NET 2005的專案
    3. TeeChart ActiveX v8 Evaluation: 的Example 程式中毫無註解
    4. TeeChart for .NET v3 EVALUATION: Example 所有DEMO程式執行後竟然會當,查原因是出在元件本身的問題,如果客戶不信,我可以當場DEMO
  2. TeeChart for .NET 不支援Ajax, 這表示所有與Client端的互動,都必需以Post back的方式處理,別說其技術落後,使用觀感更是不佳
  3. TeeChart ActiveX 與 TeeChart for .NET 都無.Net特有的DataSource ID的觀念,其資料來源不能直接套用.Net的DataBinding架構
  4. 到目前為止我找不到簡單的方法將圖形複製到剪貼簿的功能
  5. 這是我們自己的問題: 我對於ActiveX的實作經驗不足,摸索期可能會較長
  6. 以上是我認為較嚴重的問題,其它可能較為次要的問題如下,雖說次要,但未來是否會變的重要也不一定:
    1. 美工繪圖的質感不佳,與Dandus有一段落差
    2. 沒有Toolbar功能,以便利使用者執行操作
    3. 範例,教學和Dandus相比,明顯較差,這會牽涉到日後開發過程中遇到問題或需求的解決速度
我的結論是,我認為TeeChart 並不是一個適合在ASP.Net平台上使用的圖表元件,或許過去它在Delphi或其它平台上有良好表現,但ASP.Net平台是一個全新,完全不同架構的環境,單機程式和WEB程式的觀念有如天差地別,以過去在Delphi使用過而推論其在ASP.Net也OK,是一種很不專業的想法,應該完全重新放空,將各種元件在同一起點重新檢視才對.就如同前面提過的 ,TeeChart 並不是一個專為ASP.Net平台所設計的元件,它像是從過去版本改良成能支援ASP.Net罷了,任何熟悉ASP.Net的人一比較二者一下子就能感覺出來.
我有發現另一個圖表元件-- ComponentArt http://www.componentart.com/ , 但目前感覺是它的重點在3D美工, 比DANDUS還漂亮, 但沒有2D, 這並不是目前這個專案的需求, 所以可以待日後再說.
最後,DANDUS能支援目前所需的功能, 又切合ASP.NET的開發架構 (DataSource),而TeeChart的模糊空間仍多,複製到剪貼簿的功能還找不到解法,如果棄DANDUS而選TeeChart,我覺得十分不智.

iBatis 與 Hibernate 的論辯

http://www.javaeye.com/topic/41720?page=3
這個網站對於困擾選擇 iBatis 或 Hibernate 的人幫助很大,
不過結論是二者差異很大,定位與功能不同,
沒什麼好比的,專案架構適合用哪一種,便用哪一種.

2007年10月12日 星期五

CMMI Directory Tree Structure

CMMI DIRECTORY TREE STRUCTURE
├─1 Product
├─2 Baseline
│ ├─Engineering
│ │ ├─1P01(R)
│ │ │ └─3E Requirement
│ │ ├─1P02(D)
│ │ │ ├─3E Requirement
│ │ │ └─3F Design
│ │ └─1P03(C)
│ │ ├─3E Requirement
│ │ ├─3F Design
│ │ ├─3G SourceCode
│ │ └─3H Test
│ ├─Management
│ │ └─1P01(P)
│ │ └─3C ProjectManagement
│ │ └─ManagementPlan
│ └─Reference
└─3 Controlled
├─3A ProjectTemplate
├─3B ContractDocument
│ └─RelatedMaterials
├─3C ProjectManagement
│ ├─ManagementPlan
│ ├─ProjectClosure
│ ├─ProjectKickoff
│ ├─ProjectMeeting
│ ├─SAM
│ └─StatusReport
├─3D CM
│ ├─ChangeRequest(Baseline)
│ ├─ChangeRequest(General)
│ └─ChangeRequestForm
├─3E Requirement
├─3F Design
│ ├─BatchInitialScript
│ │ ├─FilesIn
│ │ └─FilesOut
│ ├─DbSchema
│ │ ├─InitialScript
│ │ └─reference
│ ├─SpecApplet
│ │ ├─HyLoyal2007
│ │ └─HySAM_v3
│ ├─SpecCampaign
│ ├─SpecFile
│ ├─SpecHSM
│ └─SpecOnline
├─3G SourceCode
│ ├─Applet
│ ├─DailyJob
│ ├─Host
│ ├─Report
│ ├─Simulator
│ ├─Transfer
│ ├─UnitTest
│ └─web
├─3H Test
│ ├─TestData
│ ├─TestDocument
│ └─TestScript
├─3I Delivery
├─3J Manual
├─3K Training
├─3L SupportMaintenance
│ ├─MaintenanceForm
│ └─MaintenancePlan
├─3M Database
│ ├─DB schema evolution
│ └─Reference
├─3N Technical
├─3O MA
├─3P DAR
├─3Q IssueManagement
├─3R QualityAudit
├─3S Review
└─3T Others
├─Bug_Report
├─ForTest(Round1)
├─ForTest_SRC_Copy_Record
├─ForUITest(Round1)
├─Reference
├─Report template
├─SystemEvolution
│ ├─ApplyForm
│ ├─DBSchema
│ └─System
└─Tools

2007年8月28日 星期二

SQL Server Express - Easy to Use

http://msdn2.microsoft.com/zh-tw/express/aa718378.aspx

The url is offical SQL Server Express 2005 guide site. It's a wonderful site that lead new user to enter SQL Server Express world.
Remember to download SQL Server Management Studio, a free management tool, that you could memege your SQL Server Express 2005.

Microsoft sometimes do good jobs really.

2007年6月14日 星期四

Google第二階段的Interview

距離與Google第二階段的Interview結束已經第三天了,
至今還沒有任何消息傳來,
人生總是不斷會有既期待又怕受傷害的時候,
此刻正是這樣的時候,
沒有消息就是好消息,
我是一直如此告訴自己,
至少人家還沒拒絕你.

面談的內容因為保密協定的關係,不能多講,
雖然我認為其實毫無機密可言, Google實在多慮了,
不過,那也許是對目前這個階段而言,
如果還有後續的階段,可能內容會比較有看頭吧!
測驗我的那位Google工程師程度相當不錯,
至少絕對是硬底子出身,
當然,那也是一般人對於Google工程師的期望...