目前分類:未分類文章 (30)

瀏覽方式: 標題列表 簡短摘要

「重新建造輪子」是軟體開發領域很常被使用到的一個用語,它是許多程式員很常見的一種迷思,有時候,它甚至是可以說是一種心病。我們時常拿建造一個車子的過程來比喻開發軟體的過程。在這個比喻裡,車子是我們最終想要完成的系統本身,而輪子便是建造車子所需的重要零組件。在軟體開發領域裡,建造系統的重要軟體組件,便時常被比喻為輪子。而重新建造輪子,自然意指著重新開發系統所需的軟體組件。

為什麼說,重新建造輪子甚至是許多程式員的心病呢?這是因為許多程式員無法抵擋心中那個呼喚他們、引誘他們重新打造輪子的魔鬼。為什麼要把重新建造輪子這樣子的活動,說的好像是十分邪惡的一件事情一樣?

無庸置疑的,軟體開發的生產力,絕對是現代軟體開發最看重的指標之一,也是許多軟體開發所追求的重要目標。我們在軟體開發上,除了品質的確保之外,加速軟體開發的進程,同樣也是我們所會面臨到的最大挑戰。許多軟體專案的開發延遲,造成產品或服務推出市場的時間失去先機,甚至遲遲無法完成,多半都歸因於開發生產力的不彰。因此,許多開發流程的導入、軟體設計的技巧及方法,都著眼於生產力的提昇。

而輪子的重新建造,意謂著的便是很大的生產力浪費。原本已經存在的軟體組件,在過去肯定花費不少時間於需求的分析、界面的設計、程式的撰寫、以及反覆的測試。而且軟體組件存在的目的,便是要讓多個開發專案所共同運用。這意謂著,每個軟體組件,都經歷了許多專案現實又殘酷的考驗才能夠生存下來。在這些現實又殘酷的考驗中,這些軟體組件等於是經歷了更為廣泛的實戰測試,存在於其中的軟體瑕疵,多半都已獲得修正。我們可以說,既存的軟體組件,多半都有一定可信賴的品質。重新建造輪子,背後代表的意義,往往是得重新再經歷相似的過程、投入資源及時間(通常佔去最多的並不是開發時間,而是最容易被忽略的測試時間),最後得到一個或許可能比較好的組件。但是這又如何呢?或許重新建造的組件的確優於舊有的組件,它可能更有彈性、更通用、適用範圍更廣、能被更多的專案重覆使用、滿足更為多變的需求,但或許在你未來的系統中,這些優點不見得會被完全的利用,兩相權衡下,不見得可以得到好處,但在當下卻是確切的把生產力給浪費掉了。

既然如此,為什麼程式員們總會受到心魔的引誘,一而再、再而三的將寶貴的開發生產力給浪費掉了呢?尤其我要說,愈是優秀、對自我期許高的程式員、愈是受不了這樣子的誘惑,反而愈是平庸的程式員,愈不容易發生重新建造輪子的問題。

這其中的原因究竟為何呢?不妨讓我細細道來。雖然許多人都說程式員這一行是吃青春飯,但我認為程式設計終究是一個大量倚重經驗以及視野的工作,而不像許多人心中所想像的,體力以及對新技術的熟悉佔去極大的比重。我相信許多程式員都會和我有一樣的感受,每經過一段時日,就會覺得自己又「昇級」了,基於這段日子的經驗積累,視野又大有所不同。而這些「昇級」的動力例如像是學習、體會到了某個設計方法論或是架構的好處。當你「昇級」了之後,再回過頭去檢視自己舊時的作品,反而多半都會抱持著負面的觀感。面對過去的自己,時常會有一種「年少無知」、甚至是「年少輕狂」的感覺,真希望「昨日種種譬如昨日死,今日種種譬如今日生」。剛對設計方法或架構有了更深一層感受的你,對比起來,更明白過去所做的設計,究竟存在那些問題以及缺陷,它可能不夠通用、不夠彈性、也難以擴充。倘若你是個自我期許較高的程式員,免不了難以壓抑心中的衝動,這些問題及缺陷,便有如眼中令人難受的沙子,非得立即除之而後快。所以,對於那些既存但卻又看不順眼的輪子們,會興起再次重新打造的念頭,也就不足為奇了。

可是,人總是持續的在成長,你的能力、視野同樣的隨著時間在不斷的進展,或許輪子的確不夠好,但在某個程度上,它總是足堪使用。但如果只是因為你知道有更好的設計方法或架構,就非得要重新再把這些輪子再做過,無疑的只是陷入無止盡的輪子再造地獄之中,也持續的浪費無所謂的生產力在上頭。你或許有所得,但失去的卻更多。

雖然重造輪子,會帶來生產力的浪費,但這也不完全意謂著我們永遠不會重新改寫既有的軟體組件。有些人剛好和喜歡重造輪子的人形成對比,他們總是不喜歡更動舊有的程式碼(通常稱為legacy code),因為他們深怕更動了舊有的程式碼後,引發副作用。當然,他們更不喜歡改寫既有的軟體組件,因為他們相信「做對的事,何必再改變」。何況,重新改寫更是一件浪費生產力的事情。

但是,這種堅持不重新設計所用軟體組件的想法,卻會引發另一個問題,也就是舊有的組件因為設計可能較為不良的關係,先天缺乏通用性的體質就無法因應新的需要,但你又不願意加以重新設計。這使得你得採取繞路的方式,迂迴的達成目的,把額外的地方加諸在其他的組件或甚至是你的應用系統之上,最後就是疊床架屋,持續的在不穩固的基礎上,繼續的加蓋違章建築。而這種情境,在我們日常的開發生活中,其實也是屢見不鮮、時有所聞。

上述的這兩種立場,看起來就像是在天平的兩端、互相衝突,一邊的優點正好是另一的缺點。這或許令人感到困惑,究竟什麼樣的態度才是正確的態度呢?

我常說,軟體設計之道就是取捨之道,也就是說,不論做什麼設計決策,你都會得到某些東西,但也同時會失去某些東西。而這中間的取捨,端視你所位在的情境以及所面對的目標而定。我們形同要找到一個合適的支點去支撐這有著兩個極端的天平,並且使之平衡。太過頻繁的重新建造輪子固然不對,但總不能在輪子的胎紋都磨平了,還勉強裝上車子並且行車上路吧?這中間存在一個適當的平衡點,而好的設計者,便會考量相關的背景因素,決定這平衡點究竟要設定在那一個位置之上。

對應到建造輪子的問題上,決定了一個好的平衡點,你就不會太過頻繁不斷建造輪子,但也不會總是使用同樣的輪子,你會決定適當的更新週期來汰換不合時宜的輪子,同時滿足新的需要。你在生產力和其他像是通用性之類的指標之間取得了一個好的平衡。

怎麼決定支點在何處,是一門藝術,也是判斷設計者功力高下的所在。


末三 發表在 痞客邦 留言(0) 人氣()

http://www.wretch.cc/blog/solnone/7575229
-- 取得 Table 註解
SELECT

末三 發表在 痞客邦 留言(0) 人氣()

1. http://briian.com/?p=5193

可取得2003版本對2007支援

2. http://blog.ofset.org/ckhung/index.php?post/081-nodocx

洪教授您好
其實早在這篇文章(2008版)之前就曾拜讀過您的 「我不用 .doc 檔」、「好公民不助長非法拷貝 -- 請停止散佈 .doc 檔」,Regular expression也是從您的教學文章啟蒙。當時小弟的確深表贊同不要散佈.doc檔的概念;但這篇Office2007的文,小弟卻難以同意您的看法,這一次Office的改版,不再僅只是微軟想個辦法另外取個新檔名強迫大家昇級,您可以注意到所有的office文件的副檔名都多了一個X

末三 發表在 痞客邦 留言(0) 人氣()

http://sharedderrick.blogspot.com/2008/01/ssis-excel-2007-xlsx-xlsb.html

2008/1/3

SSIS 與 Excel 2007 (*.xlsx , *.xlsb)


在使用 Excel 2003(*.xls)時,有數項條件限制,例如:

  • 最大資料列筆數是 65,536 列。Excel 匯出選項會檢查此數值,若超過此限制,會在 Excel 中顯示錯誤。
  • 最大資料行數是 256 行。Excel 匯出選項會檢查此數值,若超過此限制,會在 Excel 中顯示錯誤。

要解決此問題,可能有幾個方法:

  • 當資料筆數會超過 65,536 筆數時,採用新增工作表的方式,讓每個工作表的資料列筆數,不會超過 65,536 筆數的軟體限制。
  • 改用 Excel 2007 ,存檔成 *.xlsx 的檔案格式,也可以解決此問題。

末三 發表在 痞客邦 留言(0) 人氣()

幹 原來我這個症狀叫做 OL症候群

http://tw.news.yahoo.com/article/url/d/a/090203/1/1du0i.html

 

更新日期:2009/02/03 11:35

春節連續九天假期,部份民眾狂上網,後遺症也開始出現.嘉義市一名33歲女子,長期緊盯電腦螢幕,加上坐息飲食不正常,導致眼睛疼痛,每天睡醒時,眼皮緊黏眼珠,一開眼就痛得要命,有如黏到<強力膠>一般,眼科醫師表示,這種情況就是「OL症候群」,長期下來,患者眼角膜會受損,輕則視力減退,重則失明,不可不慎。

〔龐清廉報導〕

  住家嘉義市六十五年次的林小姐,是一位俗稱OL(OFFICE LADY )的上班族,平日上班時,每天待在冷氣房打電腦的時間,都超過8小時,經常工作到半夜十一、二點,過年前眼睛就不舒服,過年連續九天假期,仍然天天日夜上網聊天打電動,眼睛問題越來越嚴重,最近幾天,每天睡醒時,眼皮就像是黏在眼球上,乾澀又疼痛,極不舒服,趕忙就醫.

  經署立嘉義醫院眼科醫師賴麗如檢查後,確定為典型的「OL症候群」,醫師說長期待在有空調的辦公室,加上眼睛一直盯著電腦螢幕看,三餐隨便吃,飲食不均衡,缺少水分與維他命C,就會導致眼睛乾澀,眼球與眼皮間缺乏潤滑,睡眠時眼球很容易與眼皮黏住,用力睜開眼睛,就會造成眼角膜受傷,以及眼角「點狀」破皮。

  醫師指出,「OL症候群」的患者,必須改變長時間上網,緊盯電腦螢幕的習慣,約二十分鐘就要讓眼睛離開螢幕一下,並且要多喝水.早就寢,睡前再使用眼藥膏,讓眼睛保持濕潤,慢慢改善乾澀情況,症狀較輕的患者,治療後約一、二個禮拜,眼睛就能恢復正常,如果一直不看醫生,會導致視力受損,甚至失明,千萬不可輕忽。

末三 發表在 痞客邦 留言(0) 人氣()

http://www.wretch.cc/blog/solnone/14198678

若想用父類別來操作,而不想 use 各子類別,則可以類別名稱來動態建立子類別物件
在 unit Classes 中,有RegisterClass, GetClass, FindClass 和 UnRegisterClass

末三 發表在 痞客邦 留言(0) 人氣()

末三 發表在 痞客邦 留言(0) 人氣()

http://www.nch.com.tw/guestbooks.php?sid=82474&pages=1

當人們發生衝突的時候,根本原因並不在於各自說了些什麼。而是大家在說完所想要說的話之後的最後的那句話。沒有這句話,大家都很友好地交流,一旦加上了這句話,交談就變成了吵嘴,並且愈演愈烈,最終局面無法收拾。問題在於,這句話的內容往往和大家要說的事情毫不相干,所以,把它稱為「多餘的最後一句話」。

舉個例子吧。

我那天坐公共汽車去辦事,車上人不多,但也沒有空位子,有幾個人還站著,吊在拉手上晃來晃去。一個年輕人,乾乾瘦瘦的,戴個眼鏡,身旁有幾個大包,一看就是剛從外地來的。他靠在售票員旁邊,手拿著一個地圖在認真研究著,眼不時露出茫的神情,估計是有點兒迷路了。

他猶豫了半天,很不好意思地問售票員:「去頤和園應該在哪兒下車啊?」售票員是個短頭髮的小姑娘,正剔著指甲縫呢。

她抬頭看了一眼外地小夥兒說:「你坐錯方向了,應該到對面往回坐。」要說這些話也沒什麼,錯了,大不了小夥兒下站下車馬路對面坐回去唄。但是售票員可沒說完,她說那多餘的最後一句話了。「拿著地圖都看不明白,還看什麼勁兒啊!」

售票員姑娘眼皮都不抬地說。外地小夥兒可是個有涵養的人,他嘿嘿笑了一笑,把地圖收起來,準備下一站下車換車去。

旁邊有個大爺可聽不下去了。他對外地小夥兒說:「你不用往回坐,再往前坐四站換904也能到。」

要是他說到這兒也就完了,那還真不錯,既幫助了別人,也挽回北京人的形象。可大爺哪兒能就這麼打住呢,他一定要把那多餘的最後一句話說完:「現在的年輕人哪,沒一個有教養的!」

我心想,大爺這話真是多餘,車上年輕人好多呢,打擊面太大了吧!

可不,站在大爺旁邊的一位小姐就忍不住了。「大爺,不能說年輕人都沒教養吧,沒教養的畢竟是少數嘛。您這麼一說我們都成什麼了!」這位小姐穿得挺時髦,兩根細帶子吊個小背心,臉上化著鮮豔的濃妝,頭髮染成火紅色。

可您瞧人這話,不像沒教養的人吧,跟大爺還『您』啊『您』的。可誰叫她也忍不住非要說那多餘的最後一句話呢!

「就像您這樣上了年紀看著挺慈祥的,一肚子壞水兒的可多了呢!」

沒有人出來批評一下時髦的小姐是不正常的。可不,一個中年的大姐說了:「你這個女孩子怎麼能這麼跟老人講話呢,要有點兒禮貌嘛。你對你父母也這麼說話嗎?」

您瞧大姐批評得多好!把女孩子爹媽一抬出來,女孩子立刻就不吭氣了。

要說這事兒就這麼結了也就算了,大家說到這兒也就完了,大家該幹嘛幹嘛去。可不要忘了,大姐的「多餘的最後一句話」還沒說呢。「瞧你那樣,估計你父母也管不了你。打扮得跟雞似的!」

後面的事大家就可想而知了,簡單地說,出人命的可能都有。這麼吵著鬧著車可就到站了。車門一開,售票員小姑娘說:「都別吵了,該下車的趕快下車吧,別把自己正事兒給耽誤了。」

當然,她沒忘了把最後一句多餘的話給說出來:「要吵統統都給我下車吵去,不下去我車可不走了啊!煩不煩啊!」

煩不煩?煩!不僅她煩,所有乘客都煩了!整個車廂這可叫炸了窩了,罵售票員的,罵外地小夥兒的,罵時髦小姐的,罵中年大姐的,罵天氣的,罵自個兒孩子的,真是人聲鼎沸,甭提多熱鬧了!

那個外地小夥兒一直沒有說話,估計他實在受不了了,他大叫一聲:「大家都別吵了!都是我的錯,我自個兒沒看好地圖,讓大家跟著都生一肚子氣!大家就算給我面子,都別吵了行嗎?」

聽到他這麼說,當然車上的人都不好意思再吵,聲音很快平息下來,少數人輕聲嘀咕了兩句,也就不說話了。但你們不要忘了,外地小夥兒的『多餘的最後一句』還沒說呢。

「早知道北京人都是這麼一群不講理的王八蛋,我還不如不來呢!」

想知道事情最後的結果嗎?我那天的事情沒有辦成。我先到派出所錄了口供,然後到醫院外科把頭上的傷給處理了一下。我頭上的傷是在混戰中被售票員小姑娘用票匣子給砸的。

你們可別認為我參與了他們打架,我是去勸架來著。我呼籲他們都冷靜一點兒,有話好好說,有沒什麼大事兒,沒什麼必要非打個頭破血流。

我的多餘的最後一句話是這麼說的:「不就是售票員說話不得體嗎?你們就當她是個傻蛋,和她計較什麼!」


末三 發表在 痞客邦 留言(0) 人氣()

星期五, 四月 13, 2007

免費剪貼簿增強軟體:ClipX 1.0.3.8

ClipX02

前幾天在TAKOL 的部落格裡面看到介紹了一款剪貼簿強化工具:Clipoard Magic,在該篇文章的留言裡也有人介紹了「Clipboard Recorder」、「Ditto」等同類型的軟體,我自己則是從很久以前開始,就一直習慣使用「ClipX」這款剪貼簿增強工具。我們知道Windows系統裡面,內建就有剪貼簿的功能,除了使用滑鼠右鍵功能表複製貼上外,你也可以使用「Ctrl + C」快速複製,「Ctrl + V」快速貼上,或者使用「Print Screen」複製桌面為圖片,但是內建的剪貼簿有一個很大的缺點,就是只能貼上最後一項複製的內容。我相信複製與貼上是使用電腦的人都會常常用到的功能,因此大家可能都會需要一款剪貼簿輔助工具,這將幫助你更快速、更方便的完成各種作業。

末三 發表在 痞客邦 留言(0) 人氣()

    肖蛇人今年事业有更进一步发展,如猛虎一般,得以好好发挥。事业有更进一步发展,争赢的机会较大。打工一族今年是晋升年,要好好把握机会。上司将会更重用您,有晋升加薪的机会,同时工作上将会有突破性的发展。

末三 發表在 痞客邦 留言(0) 人氣()

«12