<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7249143428574041052</id><updated>2024-09-12T19:48:07.359-07:00</updated><category term="讀書心得"/><category term="寫程式的碎碎唸"/><category term="FFXI"/><title type='text'>超級小海豚的大城市</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-5033472709491255488</id><published>2010-07-12T02:13:00.000-07:00</published><updated>2010-07-12T03:11:26.578-07:00</updated><title type='text'>敏捷軟體開發 原則, 樣式, 及實務</title><content type='html'>因為讀碩士關係很久沒好好咬一本磚頭書了（教科書跟論文不算的話...）&lt;br /&gt;好不容易這幾天看完，乘著記憶猶新打一下筆記&lt;br /&gt;&lt;br /&gt;先說說整體感想，&lt;br /&gt;這是個可以看到很多思考過程的書，而不是條列式列一推優缺點的，也沒甚麼亂憑空喊話。&lt;br /&gt;隨處可見用直接用程式碼跟UML思考（不是輔助用喔！），對我這程式黑手而言好多了。&lt;br /&gt;翻譯也是上上之作，基本上直接靠敘述用中文思考就ok。&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 102);&quot;&gt;內容&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1,2章：不免俗的還是宣揚一下門派心法及教義。&lt;/li&gt;&lt;li&gt;3,4,5章：敏捷開發中耳熟能詳開發方式， Plan, Test, Refactor。&lt;/li&gt;&lt;li&gt;6章：兩個人共同寫一個保齡球計分，藉由互相討論慢慢組合出一個程式來，而不是一個人悶著頭寫，可以看得出來Plan, Test, Refactor是慢慢延生出來。說實話，這種互動對我而言是一個很妙的體驗，而且居然能產生出個還挺精美的程式，跟中間思考過程比起，我想對於搭擋編程的認識或許是更重要。&lt;/li&gt;&lt;li&gt;7章：嗅出程式那裏會壞掉。&lt;/li&gt;&lt;li&gt;8. SRP： 類別改變的原因只有一個。&lt;/li&gt;&lt;li&gt;9. OCP： 可對外擴充並對內部修改封閉，但要決定封閉跟擴充那些東西是很困難的，這要來自抽象化慨念本身的合理性，抗拒草率的抽象畫跟抽象化本身一樣重要。&lt;/li&gt;&lt;li&gt;10. Liskov代換：子類別必須可以替換他們的父類別。&lt;/li&gt;&lt;li&gt;11. DIP：高階與低階應依賴於同一抽象概念，實做細節要依賴抽象。&lt;/li&gt;&lt;li&gt;12. ISP：介面必須切割成它應該做的事，也就是內聚力。&lt;/li&gt;&lt;li&gt;13~17章：薪資系統，主要有一些簡化靜態結構的Patterns，像Command, Singleton, NullObject之類的。&lt;/li&gt;&lt;li&gt;17~19章：思考如何修改或擴充系統，也是前面的幾個Pattern的真正延伸，我覺得這邊也很棒，而不像有些書只說Pattern好，也不知道好在哪...orz。&lt;/li&gt;&lt;li&gt;20~22章：用測量方式量化依賴度跟穩定度，過程大略還懂，不過真的要自己做就沒法度了。&lt;/li&gt;&lt;li&gt;23~27章：氣象台研究，複雜的互動，處理不同版本差異，外部Library處理的Patterns應用。&lt;/li&gt;&lt;li&gt;28~30章：教育訓練系統，只看懂用Vistor做報表...囧。&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 102);&quot;&gt;總結&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;個人及互動勝過流程與工具&lt;/li&gt;&lt;li&gt;可用的軟體勝過詳盡的文件&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;良好溝通做出來的可用軟體才是好軟體。&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/5033472709491255488/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/5033472709491255488' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/5033472709491255488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/5033472709491255488'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2010/07/blog-post.html' title='敏捷軟體開發 原則, 樣式, 及實務'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-3390196221253764644</id><published>2009-03-14T09:19:00.000-07:00</published><updated>2009-03-14T09:36:57.520-07:00</updated><title type='text'>JavaTwo參加感想</title><content type='html'>&lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;平常&lt;span lang=&quot;zh-TW&quot;&gt;在學校老是裝&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Java&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;之神招搖撞騙&lt;br /&gt;難得這次&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;JavaTwo&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;有機會再吸收點日月精華&lt;/span&gt;&lt;br /&gt;於是&lt;span lang=&quot;zh-TW&quot;&gt;早早就報了名，以利日後妖言惑眾&lt;/span&gt;&lt;/p&gt;    &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;我不太會&lt;span lang=&quot;zh-TW&quot;&gt;認&lt;/span&gt;路&lt;span lang=&quot;zh-TW&quot;&gt;，於是早了幾分鐘出門&lt;br /&gt;一上捷運，就鎖定一個休閒背包裝筆電的宅男&lt;/span&gt;&lt;br /&gt;果然跟著&lt;span lang=&quot;zh-TW&quot;&gt;跟著就到了台北國際會議中心&lt;/span&gt;&lt;/p&gt;     &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;一進場，廣告就強力放送&lt;br /&gt;「&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Java can do everything ....&lt;/span&gt;」&lt;br /&gt;「&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Java is everywhere, in your computer~~~ in your cellphone~~~ ....&lt;/span&gt;」&lt;br /&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;All right, All right, i got it.&lt;/span&gt;&lt;/p&gt;   &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;梅老師比我早到許久&lt;br /&gt;我挑老師旁邊的位置坐下，寒喧幾句殺殺時間&lt;/p&gt;     &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;span lang=&quot;zh-TW&quot;&gt;不消&lt;/span&gt;一會兒，開場時間就到了&lt;br /&gt;當然不可免俗的必須來個總經理跟教育長的&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Opening&lt;/span&gt;&lt;br /&gt;類似歡迎各位大金主駕到云云&lt;br /&gt;好了快下台啦，我知道您老比&lt;span lang=&quot;zh-TW&quot;&gt;咱家&lt;/span&gt;校長還會講&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/p&gt;      &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;首先第一個就是重頭戲&lt;br /&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Thinking in Java&lt;/span&gt;作者 &lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Bruce Eckel &lt;/span&gt;的演講&lt;br /&gt;然後這外國大叔居然&lt;span lang=&quot;zh-TW&quot;&gt;給我滑雪摔斷了左腿，&lt;/span&gt;在家裝死&lt;br /&gt;昇陽&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;!&lt;/span&gt;退錢阿&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;!!?&lt;/span&gt;以為我為何乖乖的掏出&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;1200NTD!?&lt;/span&gt;&lt;br /&gt;開玩笑的，其實我來之前就知道了，不過還是感覺很可惜的&lt;br /&gt;取而代之是介紹&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Dynamic Language on the JVM(JPython)&lt;/span&gt;一段影片&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;(&lt;/span&gt;附中文字幕&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;)&lt;/span&gt;，&lt;/p&gt;      &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;前半段是在介紹&lt;br /&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Dynamic Language (&lt;/span&gt;動態語言，如&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Javascript,Python) &lt;/span&gt;的好處&lt;br /&gt;跟一般強型別語言&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;(Java, C#)&lt;/span&gt;的差異，&lt;br /&gt;以及他對學習 &lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Language&lt;/span&gt;的一些看法&lt;br /&gt;（又看到&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Martin Fowler&lt;/span&gt;的名字了，最近好像一直看到？）&lt;/p&gt;      &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;後半段再講&lt;br /&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Python &lt;/span&gt;跟 &lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Java &lt;/span&gt;不同的語法比較&lt;br /&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;{}&lt;/span&gt;區塊跟用縮排&lt;br /&gt;變數宣告跟回傳&lt;br /&gt;物件的建構方式，等等&lt;/p&gt;       &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;對我而言，聽起來滿有意思的&lt;br /&gt;之前都是自己亂摸亂玩而已，跟本沒在比較兩個語言的差異&lt;br /&gt;被這樣一比較，興奮感突然又冒上來&lt;br /&gt;做一半的&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;SpringPetStore Python&lt;/span&gt;移植版，又想再拿出來玩玩&lt;/p&gt;   &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;「這根本是來介紹&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Python&lt;/span&gt;的」老師&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;?&lt;/span&gt;道&lt;br /&gt;「阿！？喔喔？真的ㄝ」&lt;br /&gt;&lt;span lang=&quot;zh-TW&quot;&gt;被騙了．．．突然才想起這裡是&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;&quot;Java&quot; TWO&lt;/span&gt;，怎麼會變成&lt;span lang=&quot;zh-TW&quot;&gt;Python&lt;br /&gt;瘸腳&lt;/span&gt;大叔難怪不敢來 ，&lt;span lang=&quot;zh-TW&quot;&gt;大概&lt;/span&gt;是怕被蓋布袋？&lt;/p&gt;     &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;話再講回來，&lt;br /&gt;可以看出&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Bruce Eckel &lt;/span&gt;真的對&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Programming Language&lt;/span&gt;很有熱忱，&lt;br /&gt;或許該用狂熱形容&lt;br /&gt;而且鑽研的非常深入，不能見到本人心中又多了點惆悵&lt;/p&gt;&lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;/p&gt;     &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;第二場是&lt;br /&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;FreeSoftware&lt;/span&gt;與&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;OpenSource&lt;/span&gt;的&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Licence&lt;/span&gt;，&lt;br /&gt;我沒何興趣，&lt;br /&gt;主要是講一些自由軟體授權上的分別，&lt;br /&gt;什麼&lt;span lang=&quot;zh-TW&quot;&gt;BSD,GNU,copyleft,Business Model?&lt;br /&gt;喔～這&lt;/span&gt;隨便&lt;span lang=&quot;zh-TW&quot;&gt;啦&lt;/span&gt;，等我發達了再來煩惱這個&lt;/p&gt;&lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;結果整個上午就結束了，廣告都亂演&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;, Where is Java ?&lt;/span&gt;&lt;br /&gt;～～～午餐還不錯吃&lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;ok, Java did come in the afternoon&lt;/span&gt;&lt;br /&gt;三個時段各有三個不同主題的場次，我當然都挑&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;A&lt;/span&gt;&lt;br /&gt;因為我喜歡後端資無趣資料庫，&lt;br /&gt;另一邊的那種就交給有藝術天份的天才煩惱吧&lt;/p&gt;&lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;/p&gt;    &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;1.EJB3&lt;/span&gt;的理想與現&lt;span lang=&quot;zh-TW&quot;&gt;實&lt;/span&gt;&lt;br /&gt;我來這的主要目的之二，真的是來對了&lt;br /&gt;&lt;/p&gt;    &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;&lt;span lang=&quot;zh-TW&quot;&gt;首先&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;EJB&lt;/span&gt;的歷史&lt;br /&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;EJB1. &lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;先進的思考，小巧玲瓏，功能很少&lt;br /&gt;EJB2. &lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;技術的進步，變的功能龐大，也變的更難用沒彈性&lt;/span&gt;&lt;br /&gt;最後&lt;span lang=&quot;zh-TW&quot;&gt;被&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Hibernate+Spring&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;聯手幹掉&lt;br /&gt;EJB3. &lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;打不過它們，就加入它們，３以後變成只有規格跟一些介面&lt;/span&gt;&lt;br /&gt;實作&lt;span lang=&quot;zh-TW&quot;&gt;就交給&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Hibernate &amp;amp; Spring (&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;還有他們的對手&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;&lt;span lang=&quot;zh-TW&quot;&gt;簡介一下&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;EJB3&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;架構跟&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;SimpleCode&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;，&lt;/span&gt;這裡&lt;span lang=&quot;zh-TW&quot;&gt;不多寫&lt;/span&gt;&lt;/p&gt;      &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;後半談主講人使用過的感想&lt;span lang=&quot;zh-TW&quot;&gt;（理想與現實比較好聽），&lt;br /&gt;全部都在講&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;JPA(Java Persistence Application)&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;，好&lt;/span&gt;幾個想法跟我之前使用時&lt;span lang=&quot;zh-TW&quot;&gt;感覺&lt;/span&gt;一樣&lt;br /&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Annotation&lt;/span&gt;設定果然比&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;XML&lt;/span&gt;設定好用&lt;br /&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;EntryManager&lt;/span&gt;陽春陽春&lt;br /&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;EJB3&lt;/span&gt;萬歲，&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;EJB2&lt;/span&gt;死死去&lt;/p&gt;   &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;&lt;span lang=&quot;zh-TW&quot;&gt;還有&lt;/span&gt;些&lt;span lang=&quot;zh-TW&quot;&gt;我沒用過，沒啥感覺，&lt;br /&gt;不過大哥是對的！聽他的就是&lt;/span&gt;&lt;/p&gt;    &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;&lt;span lang=&quot;zh-TW&quot;&gt;最後是&lt;/span&gt;各家&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;ORM&lt;/span&gt;的實作品比較&lt;br /&gt;不愧是&lt;span lang=&quot;zh-TW&quot;&gt;業界高手，還能分析比較，&lt;/span&gt;&lt;br /&gt;我只用過&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Hibernate&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;，而且都只是基本語法&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;不過&lt;span lang=&quot;zh-TW&quot;&gt;我下個專案打算追隨大哥 ，用看看&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;EclipseLink(&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;不過這好像是&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Oracle&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;的&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;....)&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;2.&lt;/span&gt;在雲端上喝咖啡&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;(Hadoop)&lt;/span&gt;&lt;/p&gt;   &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;span lang=&quot;zh-TW&quot;&gt;介&lt;/span&gt;紹&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Cloud computing&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;，&lt;br /&gt;相信大家都很熟的，不熟的自己點共筆找！&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;&lt;span lang=&quot;zh-TW&quot;&gt;介紹&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;MapReduce&lt;br /&gt;一樣自己點共筆找吧，都在深網技術&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;(Deep Web&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;下面&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;     &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;&lt;span lang=&quot;zh-TW&quot;&gt;聽著聽著，&lt;/span&gt;我快&lt;span lang=&quot;zh-TW&quot;&gt;睡死了&lt;br /&gt;但是&lt;/span&gt;左邊&lt;span lang=&quot;zh-TW&quot;&gt;的男同學居然還能抄筆記&lt;/span&gt;&lt;br /&gt;還有&lt;span lang=&quot;zh-TW&quot;&gt;右邊的女同學，妳聽得津津有味就算了，&lt;br /&gt;不用狂點頭表示贊同啦，我會心虛的&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;&lt;span lang=&quot;zh-TW&quot;&gt;強忍睡意，&lt;/span&gt;終於到了&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;DEMO&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;時刻&lt;br /&gt;Hadoop&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;雖然是&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;JavaCode &lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;，但是還是很複雜，&lt;br /&gt;用了大概八九個&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Class&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;才搞定吧&lt;/span&gt;&lt;br /&gt;這時候&lt;span lang=&quot;zh-TW&quot;&gt;怎麼不來個&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Class Diagram or Sequence Diagram?&lt;/span&gt;&lt;br /&gt;而且&lt;span lang=&quot;zh-TW&quot;&gt;我也還不太了解要怎麼真正做到分散式的運算&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;這種東西&lt;span lang=&quot;zh-TW&quot;&gt;果然是要自己摸才會&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;...orz&lt;/span&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;3.lwdba-&lt;/span&gt;開放原始碼的輕量級資料庫存取程式庫&lt;/p&gt;     &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;lwdba &lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;，一個&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Relational Database&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;的程式庫&lt;/span&gt;&lt;br /&gt;簡單&lt;span lang=&quot;zh-TW&quot;&gt;講，功能比ＪＤＢＣ強大，但是比&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Hibernates(JPA)&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;弱小&lt;/span&gt;&lt;br /&gt;當然&lt;span lang=&quot;zh-TW&quot;&gt;學習門檻低跟環境設定複雜度會更簡化&lt;br /&gt;專案主持人兼主講人同時&lt;/span&gt;也是&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Thinking in Java&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;的中文譯者：王建興先生&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;&lt;span lang=&quot;zh-TW&quot;&gt;整場都在&lt;/span&gt;講&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;lwdba&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;的使用方法&lt;/span&gt;&lt;/p&gt;      &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;雖然&lt;span lang=&quot;zh-TW&quot;&gt;沒用過，但是我感到很親切．．&lt;br /&gt;因為我也做過類似封裝ＪＤＢＣ的事，如同往事歷歷在目&lt;/span&gt;&lt;br /&gt;建議&lt;span lang=&quot;zh-TW&quot;&gt;同學有機會可以用用，尤其沒經驗又要寫資料庫應用的，&lt;br /&gt;會比直接用&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;JDBC&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;少非常多麻煩，&lt;/span&gt;&lt;br /&gt;我&lt;span lang=&quot;zh-TW&quot;&gt;應該也會用看看&lt;/span&gt;&lt;/p&gt;   &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style=&quot;margin-bottom: 0cm;&quot;&gt;最後&lt;span lang=&quot;zh-TW&quot;&gt;的最後，總經理跟教育長的老梗&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Ending&lt;/span&gt;&lt;br /&gt;抽獎時間&lt;span lang=&quot;zh-TW&quot;&gt;，&lt;/span&gt;老師那張差一號中&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;iphone&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;，殘念&lt;/span&gt;&lt;/p&gt;     &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;&lt;br /&gt;總結&lt;span lang=&quot;zh-TW&quot;&gt;，&lt;br /&gt;原本是打算做的看熱鬧的鄉民，&lt;/span&gt;不過意外的&lt;span lang=&quot;zh-TW&quot;&gt;收穫頗多，&lt;br /&gt;實體&lt;/span&gt;戰利品&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;: Duke&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;一隻，&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Sun&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;牌&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;T-Shirt&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;一件，背包一個，筆記本與筆少許，補習班宣傳單無數&lt;br /&gt;技術面的話聽到&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;Python&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;與Java比較，&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;EJB&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;3高手用後感，&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;lwdba &lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;原設計者的建議跟想法&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin-bottom: 0cm;&quot; lang=&quot;zh-TW&quot;&gt;&lt;span lang=&quot;zh-TW&quot;&gt;當然有&lt;/span&gt;下次&lt;span lang=&quot;zh-TW&quot;&gt;我還會去，我跟某外國&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman,serif;&quot;&gt;B&lt;/span&gt;&lt;span lang=&quot;zh-TW&quot;&gt;大叔不一樣，打斷腿我也去&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/3390196221253764644/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/3390196221253764644' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/3390196221253764644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/3390196221253764644'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2009/03/javatwo.html' title='JavaTwo參加感想'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-1180800903060056811</id><published>2008-10-07T05:04:00.000-07:00</published><updated>2008-10-07T05:33:49.400-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="讀書心得"/><title type='text'>寫給大家的平面設計書</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixB-ayi7xTa8eEh8JyystSqaD7omLDw1zVkeTvQAKcIVoytVeo5pEt9DJ0N7w2jnfM7YFKIcdPxS880Xouw8q6We8bs3k-CBZErxpdtUQY4gXrKO7JSQdle0iT-_y1GuUqkBC4jRR6DoOZ/s1600-h/yumau9867581334.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixB-ayi7xTa8eEh8JyystSqaD7omLDw1zVkeTvQAKcIVoytVeo5pEt9DJ0N7w2jnfM7YFKIcdPxS880Xouw8q6We8bs3k-CBZErxpdtUQY4gXrKO7JSQdle0iT-_y1GuUqkBC4jRR6DoOZ/s320/yumau9867581334.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5254383895584392610&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;平面設計，一項平凡又艱深的課題&lt;br /&gt;&lt;br /&gt;隨手翻幾頁後個感想&lt;br /&gt;嗯，好極了&lt;br /&gt;顯然看起來大家是包含了我，&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;內容：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;書前半是用四項原則&lt;br /&gt;&lt;ul&gt;&lt;li&gt;相近 Proximity&lt;/li&gt;&lt;li&gt;對齊 Alignment&lt;/li&gt;&lt;li&gt;重覆 Repetition&lt;/li&gt;&lt;li&gt;對比 Contrast&lt;/li&gt;&lt;/ul&gt;並舉出實例來展現，&lt;br /&gt;&lt;br /&gt;後半段則是講各種字型及大小造成視覺上的差異&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;心得：&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;貫通本書，大概感覺是&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(204, 0, 0);&quot;&gt;掌握設計基本原則&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0); font-weight: bold;&quot;&gt;然後大膽實驗，用心體會&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0); font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;再來就是多做多看&lt;br /&gt;聽起來跟台上老師的廢話一樣XD...&lt;br /&gt;&lt;br /&gt;不過我還是有感受到一些設計原則&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;留白：眼睛是需要休息的，連續讀字也是很累的&lt;/li&gt;&lt;li&gt;邊線：所有的圖文字，都需要一條看不到的隱形線支撐&lt;/li&gt;&lt;li&gt;對比：要一眼就看出有差異(例如12px的字對上24px的字)&lt;/li&gt;&lt;li&gt;字型：原來字型還有自己所屬的Family&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;總結：&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;原來平面設計這麼博大精深，我還是回去寫程式好了 ...Q口Q&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0); font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/1180800903060056811/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/1180800903060056811' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/1180800903060056811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/1180800903060056811'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/10/blog-post.html' title='寫給大家的平面設計書'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixB-ayi7xTa8eEh8JyystSqaD7omLDw1zVkeTvQAKcIVoytVeo5pEt9DJ0N7w2jnfM7YFKIcdPxS880Xouw8q6We8bs3k-CBZErxpdtUQY4gXrKO7JSQdle0iT-_y1GuUqkBC4jRR6DoOZ/s72-c/yumau9867581334.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-6407523059494757181</id><published>2008-08-20T06:56:00.000-07:00</published><updated>2008-08-20T07:16:59.752-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="FFXI"/><title type='text'>FFXI</title><content type='html'>FFXI(Final Fantasy 11)&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;http://www.playonline.com/ff11us/index.shtml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;一個我玩了6年的網路遊戲&lt;br /&gt;總遊戲時數快破萬了，也經歷過大大小小事&lt;br /&gt;可是居然沒替它寫過任何文章，真是詭異&lt;br /&gt;&lt;br /&gt;不過沒關係，從現在開始好了&lt;br /&gt;先貼幾張近況照片&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhc7OO6t3tgvZG1cTsHdSBC0XGRPPKxxv-xwWPI2aoL9v1bYH3n_8Wy7iFFSL8ZOeqKobw8SSjPhyn0TWy60sXSwpd4TWf8Tu573MZTGOoWKoJZAA9NWBbEN3rmTM8PB-s0K0rvPH1cfGO/s1600-h/FFXIstatus20080820.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhc7OO6t3tgvZG1cTsHdSBC0XGRPPKxxv-xwWPI2aoL9v1bYH3n_8Wy7iFFSL8ZOeqKobw8SSjPhyn0TWy60sXSwpd4TWf8Tu573MZTGOoWKoJZAA9NWBbEN3rmTM8PB-s0K0rvPH1cfGO/s320/FFXIstatus20080820.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236602138540895442&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx3ZYmeAM2ziv5UY5bffLzPFB4FPPqZr0ylxOwwcwDz0qYpaAYx6O122qxk2TDmyswlVZv2Rx8AEkvAICwam4OfHtfXV-k8zsN2sW2LrBb3zwn97D4cSfy59DmyJsa_dAaqtmtjhklUiBB/s1600-h/FFXIcreate20080820.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx3ZYmeAM2ziv5UY5bffLzPFB4FPPqZr0ylxOwwcwDz0qYpaAYx6O122qxk2TDmyswlVZv2Rx8AEkvAICwam4OfHtfXV-k8zsN2sW2LrBb3zwn97D4cSfy59DmyJsa_dAaqtmtjhklUiBB/s320/FFXIcreate20080820.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236603659953070002&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;萬事起頭難，先這樣就好</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/6407523059494757181/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/6407523059494757181' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/6407523059494757181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/6407523059494757181'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/08/ffxi.html' title='FFXI'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhc7OO6t3tgvZG1cTsHdSBC0XGRPPKxxv-xwWPI2aoL9v1bYH3n_8Wy7iFFSL8ZOeqKobw8SSjPhyn0TWy60sXSwpd4TWf8Tu573MZTGOoWKoJZAA9NWBbEN3rmTM8PB-s0K0rvPH1cfGO/s72-c/FFXIstatus20080820.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-8715248310063422506</id><published>2008-08-12T05:02:00.000-07:00</published><updated>2008-08-20T06:56:25.220-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="讀書心得"/><title type='text'>輕快好Java(Better,Faster,Lighter Java)</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9VJ0jLd2vP949mgxUcvXHRjPxwxJTPu8OnY01xC6uUS7HBXG_kkSdQWQ4chNieLAeepZ1uJZjCbIQ4tY8odJbMEO8uWehT9ARt5cScghSgZxb7fJRoYAJuKUiZGY9zgfJ1pNNwqO5DXS6/s1600-h/a168_b.gif&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9VJ0jLd2vP949mgxUcvXHRjPxwxJTPu8OnY01xC6uUS7HBXG_kkSdQWQ4chNieLAeepZ1uJZjCbIQ4tY8odJbMEO8uWehT9ARt5cScghSgZxb7fJRoYAJuKUiZGY9zgfJ1pNNwqO5DXS6/s320/a168_b.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5233642637974757202&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;最近在玩RoR 10分鐘架站&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;突然想到一個問題，&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;「如果不靠框架和IDE，寫一個有購物車的網站要會多少東西？」&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;嗯..Web API, HTML , SQL  (Java就不用說了)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;「如果不靠框架和IDE，寫一個&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;結構良好&lt;/span&gt;有購物車的網站要會多少東西？」&lt;br /&gt;OOP? Hibernate + Spring + Structs ?&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;「如果不靠框架和IDE，寫一個&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;結構良好且有分析文件&lt;/span&gt;的有購物車的網站要會多少東西？」&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;OOAD?  UML? JUDE?  Word + Excel (文書處理也很重要阿)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;「如果不靠框架和IDE，寫一個&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;結構良好且有分析文件&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;且美觀&lt;/span&gt;的有購物車的網站要會多少東西？」&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;CSS ? Dreamweaver ? Photoshop ? 照相技術?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;「如果...」&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;好吧..真是夠了&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;於是又把這本書挖出來懷念一下&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;心得：&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;全書就只有五個宗旨&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;保持簡單&lt;/li&gt;&lt;li&gt;一次做好一件事&lt;br /&gt;&lt;/li&gt;&lt;li&gt;力求通透&lt;/li&gt;&lt;li&gt;開放擴充&lt;br /&gt;&lt;/li&gt;&lt;li&gt;吃什麼像什麼&lt;/li&gt;&lt;/ol&gt;是阿，我老母也懂阿，這不是看起來跟廢話一樣&lt;br /&gt;可是有寫過複雜一點程式(約一萬行上下)的人就知道&lt;br /&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;每一樣都好難&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;說實話，這種講玄學的書，我還不夠格寫心得&lt;br /&gt;不過我可以提出一個我的經驗&lt;br /&gt;&lt;br /&gt;有天，我接到個需求，一個別人的ASP程式需要call我的Java程式，&lt;br /&gt;  嗯，這是個不同語言溝通的問題&lt;br /&gt;  答案很簡單，顯然是WebService，&lt;br /&gt;  是阿，但是重點是我用的是UltraEdit，&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;如何在純文字模式下建立WebService&lt;br /&gt;  &lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;SOAP,xml,WSDL,UDDI,AXIS...立即排山倒海而來&lt;br /&gt;　&lt;br /&gt;　奮鬥了一個下午之後，我真的受不了了&lt;br /&gt;　「有人知道如何不用工具直接建WebService嗎？」&lt;br /&gt;  「．．．」&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;（辦公室安靜無聲）&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;　「有人知道如何不用工具直接建WebService嗎？」&lt;br /&gt;  「＃※＃※&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;＃※＃※&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;」&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;（JavaWorld又好多火星文了）&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;　當下我只覺得用FTP傳txt才是好主意 &lt;/span&gt;&lt;br /&gt;  「這怪東西實在太複雜拉...囧」&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;總結：&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;我很喜歡這本書，&lt;br /&gt;就同序所寫，這本是寫給「受挫的人看的」(沒錯，就是我！)&lt;br /&gt;內容不一定每人都同意，不過我相信能不同意的一定是天才&lt;br /&gt;&lt;br /&gt;每看一次心中就無比暢快，總算有人出來發聲了&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/8715248310063422506/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/8715248310063422506' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/8715248310063422506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/8715248310063422506'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/08/javabetterfasterlighter-java.html' title='輕快好Java(Better,Faster,Lighter Java)'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9VJ0jLd2vP949mgxUcvXHRjPxwxJTPu8OnY01xC6uUS7HBXG_kkSdQWQ4chNieLAeepZ1uJZjCbIQ4tY8odJbMEO8uWehT9ARt5cScghSgZxb7fJRoYAJuKUiZGY9zgfJ1pNNwqO5DXS6/s72-c/a168_b.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-4996905715544172421</id><published>2008-07-27T22:27:00.000-07:00</published><updated>2008-08-12T08:13:33.551-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="寫程式的碎碎唸"/><title type='text'>昨天,今天,明天</title><content type='html'>小時候，我媽是個銀行會計襄理&lt;br /&gt;工作的銀行後門就有個幼稚園&lt;br /&gt;平時就把我寄放在那，下班後就一起回家&lt;br /&gt;&lt;br /&gt;因為古時電腦不發達，銀行少，業務相對多&lt;br /&gt;傳票支票現金疊的滿滿跟山一樣，常常都要忙到六點多才能回家，&lt;br /&gt;所有人都一樣&lt;br /&gt;&lt;br /&gt;每天放學到下班中間&lt;br /&gt;一個小鬼在銀行裡面活蹦亂跳&lt;br /&gt;&lt;br /&gt;「媽咪~~偶功課寫完了 -w-//」&lt;br /&gt;「乖～拿這邊的白紙去畫畫，不要吵摟」&lt;br /&gt;於是我拿了一堆印壞報表紙畫無敵鐵金剛&lt;br /&gt;&lt;br /&gt;「媽咪~~偶肚子餓了 &gt;o&lt; ... 」&lt;br /&gt;「乖～這裡有１０塊先去買麵包吃，不要吵摟」&lt;br /&gt; 於是我買了四個小餐包，吃的渣掉滿地  &lt;br /&gt;&lt;br /&gt;「媽咪~~好無聊想回家睡覺了  zzz ... 」&lt;br /&gt;「乖～先去後面趴著回家在叫你，不要吵摟」&lt;br /&gt;於是不知誰的辦公桌被我沾滿口水   &lt;span style=&quot;color: rgb(255, 0, 0); font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;br /&gt;沒錯，&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;是每天&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;連帶童年也分非常的銀行文化&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;那時不過六歲，我知道傳票跟支票的差別(因為叔叔都叫我幫忙拿)&lt;br /&gt;那時不過六歲，我知道什麼叫會計年度(因為那天都好晚才能回家)&lt;br /&gt;那時不過六歲，我知道開關金庫的方法(因為關好門才能回家)&lt;br /&gt;那時不過六歲，我知道哪些數字容易混淆，比方說:17,06  (因為阿姨都叫我幫忙抓)&lt;br /&gt;那時不過六歲，我知道會計襄理的章要蓋在支票的哪格(因為我媽蓋不完叫我幫忙蓋)&lt;br /&gt;&lt;br /&gt;幼小的記憶真是好蠢，是吧&lt;br /&gt;但我相信不只我一個&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;歲月不饒人，今天，銀行滿街而立，科技進步，網路發達，&lt;br /&gt;每個行員加班都是推業務，&lt;br /&gt;誰還對帳？誰還對傳票？誰還戴眼鏡仔細看17跟06？&lt;br /&gt;&lt;br /&gt;我以為不會有這種故事了，那只是個時代的悲劇&lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;直到我看到ＸＸ軟體公司的一個精美桌上月曆，&lt;br /&gt;每個月份都有一幅員工子女畫的圖，還有寫給父母的話&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(204, 0, 0); font-weight: bold;&quot;&gt;爸爸都很晚回家／媽媽在家還工作／一星期見不到幾次面／假日都沒辦法帶我出去玩&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(204, 0, 0); font-weight: bold;&quot;&gt;1-12月都差不多內容&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;我驚覺，故事不過換個地點罷了&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;而且內容更加驚心動魄，&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;只慶幸，演員數目少了一點點&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold;&quot;&gt;&lt;br /&gt;＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;最近有個在軟體公司上班的&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;朋友離職了，&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;每天工作超過１４小時，程式一改再改，&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;CMMI也只是助纣為&lt;/span&gt;虐&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;舊的人一直跑，新人一直補&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，整間公司不知道再幹麻&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;．．．&lt;br /&gt;&lt;br /&gt;罄竹難書&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;跟他聊天的時候又回憶到此事&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;我把故事說給他聽，再一直感謝他的英勇奮鬥&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold;&quot;&gt;「時代考驗青年，青年創造時代」&lt;/span&gt;這種都出來了&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0); font-weight: bold;&quot;&gt;「放屁！」&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;他只回我兩個字&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-weight: bold;&quot;&gt;＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;很多人跟我說，寫程式的宿命就是這樣，加不完的班，改不完的Code&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0); font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;(如果還加上補不完的文件...)&lt;br /&gt;&lt;br /&gt;如果有時光機回到２０年前，你跟我講會計年度結帳那天能準時回家&lt;br /&gt;六歲的我會笑你不懂&lt;br /&gt;&lt;br /&gt;所以&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;我不相信&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;宿命之類的&lt;/span&gt;，既然電腦能改變別人人生，為何不能改變我們自己的？&lt;br /&gt;&lt;br /&gt;看看每個新技術背後，不都是想多擺脫一些這種&quot;宿命&quot;？&lt;br /&gt;看看每個方法論背後，不都是想多解脫一些這種&quot;包袱&quot;？&lt;br /&gt;[Mythical Man-Month][Peopleware]兩本書加起來都50年了&lt;br /&gt;&lt;br /&gt;沒有銀彈，還是要尋找，最少我們有好幾顆銅彈了&lt;br /&gt;&lt;br /&gt;或許有天我發覺我自己也是被宿命玩弄，&lt;br /&gt;也許有一天我會很累想放棄，&lt;br /&gt;但是不在此時，不在此地</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/4996905715544172421/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/4996905715544172421' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/4996905715544172421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/4996905715544172421'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/07/blog-post_27.html' title='昨天,今天,明天'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-6740481313877399386</id><published>2008-07-26T09:01:00.000-07:00</published><updated>2008-07-30T09:22:04.377-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="讀書心得"/><title type='text'>人月神話</title><content type='html'>這是一本軟體專案開發的書&lt;br /&gt;而且是40年前的&lt;br /&gt;嗯？40年前？那時候我都沒出生勒，&lt;br /&gt;而且我懷疑那時候的字典根本沒有「Computer」這個單字！&lt;br /&gt;&lt;br /&gt;站在書店翻著這書心中還一直唸「這我早知了」&lt;br /&gt;但是不爭氣還是買了&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;心得概要：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;其實都是一些很古老的&quot;老梗&quot;&lt;br /&gt;一直到今天 ,該死人類還是玩不出新把戲&lt;br /&gt;&lt;ol&gt;&lt;li&gt;程式設計有苦也有樂，樂趣在能輕鬆創造，就跟魔法一樣；苦在必須事事完美，最常出現的bug總是很蠢 ,etc:大小寫,正負號,if先後順序&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;人月是個神話&lt;/span&gt;：人多並不會贏，因為寫程式工作大都是&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;連續且不可分割 &lt;/span&gt;，十幾個人一起做再加上溝通的時間，搞不好比兩三個人做慢&lt;/li&gt;&lt;li&gt;系統需要&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;整體概念&lt;/span&gt;，這個讓一個人決定就好&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;為何進度會落後這麼多，因為每天落後一點點&lt;/span&gt;；所以定mileStone的時候要夠明確，明確到自己騙不了自己&lt;/li&gt;&lt;li&gt;文件的寫法？該寫那些？總是配合人類需要，而不是電腦需要：&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;直覺，經濟，人性&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;color: rgb(0, 0, 0);&quot;&gt;越成功的系統，開發者與客戶間的互動越頻繁&lt;/li&gt;&lt;li style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;沒有銀彈&lt;/span&gt;：其實拿來打電腦那一個現在不錯了&lt;span style=&quot;font-style: italic;&quot;&gt;(雖然&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;java裡面那些api，還是多的跟怪物一樣，一堆還要套Design Pattern，看懂Design Pattern也要花不少時間&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;，不過總比跟記憶體跟CPU排程搏命好)&lt;/span&gt;，可是打人類的那把卻越來越噁心&lt;span style=&quot;font-style: italic;&quot;&gt;(一堆怪方法論，怪工具&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;，&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;怪技術都出來了)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style=&quot;color: rgb(0, 0, 0);&quot;&gt;軟體工程這條路還很漫長XD&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;總結：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;其實書的內容比我寫的還多很多，像是跟預估跟第二系統之類的，有些則是我太年輕沒辦法體會(OS/360??組語寫薪資系統???)，但每每看到某個片段，就好像看到人生以前的走馬燈，歷歷在目，又好像能預測接下來的歲月，如猶在耳，只能說這條路還很漫長，但我相信走下去一定有終點，一定有！</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/6740481313877399386/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/6740481313877399386' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/6740481313877399386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/6740481313877399386'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/07/blog-post_26.html' title='人月神話'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-3375075088491193657</id><published>2008-07-21T05:33:00.000-07:00</published><updated>2008-07-22T06:35:04.314-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="讀書心得"/><title type='text'>深入淺出SQL(Head First SQL)</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdSNt1dswMLijkx7rsYCdMFJQR6r0iymu7mSl0PrAWY90MfkQbDUV2VI9asoEzPNT-PxhDAvmTvnKOCFAgL5K7dtjBrsFkAQ673DWupZIe2AhkllF4OQxfvFFiDUzJwJIjsro_4ZhbBgOE/s1600-h/a227_b.gif&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdSNt1dswMLijkx7rsYCdMFJQR6r0iymu7mSl0PrAWY90MfkQbDUV2VI9asoEzPNT-PxhDAvmTvnKOCFAgL5K7dtjBrsFkAQ673DWupZIe2AhkllF4OQxfvFFiDUzJwJIjsro_4ZhbBgOE/s320/a227_b.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5225827493472332626&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;這本書出的時候，已經工作兩年多了&lt;br /&gt;&lt;br /&gt;SQL也差多不用兩年了，大概不用深入淺出了？&lt;br /&gt;但我只能說&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-style: italic; color: rgb(255, 0, 0);&quot;&gt;「相見恨晚」&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;要是能早點看到就能少走點冤枉路&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;我讀了多少：&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;速讀了一遍，但是除了正規化、Subquery&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;、join&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;、&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;union&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，這幾部分有仔細看&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;關於此書：&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;這是我看過的第四本HeadFisrt&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，所以我對裡面的&lt;span style=&quot;font-style: italic;&quot;&gt;詭異內容&lt;/span&gt;已經很習慣了XD&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;這系列的書除了易讀還有一個好處&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，會做一遍錯的事給你看&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;而且這本寫的&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;不該在SQL做的事..我100%全部幹過,&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0); font-style: italic;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;....而且不只錯一遍&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;心得：&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;資料與表：基本的格式跟資料型態，還有那該死的DB Null，他原來不是真的Null(相對於物件世界)&lt;/li&gt;&lt;li&gt;Select,Update,Delete：我的青春阿.....&lt;/li&gt;&lt;li&gt;正規化：我從沒看過一本SQL書在講正規化的時候，花１６頁講一個沒正規化的Table，然後在本章最後一頁才完成正規化定義，真的很瘋狂，但是很有效率&lt;/li&gt;&lt;li&gt;Alter：我都用GUI工具調整Table格式，從沒用過Alter，我錯了對不起&lt;/li&gt;&lt;li&gt;order,group,sum,count,limit：常用，看看而已&lt;/li&gt;&lt;li&gt;複數Table設計，複數Table操作：Table與Table之間到底該怎麼互連，也是跟Excel最大的差異(我認為!)，我自己寫過很多爛Table，就是因為沒考慮好互相之間的關聯，最後才會遇到複雜一點的指令就兵敗如山倒，我終於懂了！&lt;/li&gt;&lt;li&gt;subquery：比較少用，算是重新認識一下&lt;/li&gt;&lt;li&gt;outer join,union,except：這是數學！這是集合！&lt;/li&gt;&lt;/ol&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;結論：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;想當初我再上課的時候，老師都教的好難&lt;br /&gt;或者我該說，&lt;span style=&quot;color: rgb(255, 0, 0); font-style: italic;&quot;&gt;太正常了&lt;/span&gt;，可是工作的時候通常&lt;span style=&quot;color: rgb(204, 0, 0); font-style: italic;&quot;&gt;大部分時間在處理不正常&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;所以變的學校教的好像沒用？&lt;br /&gt;&lt;br /&gt;其實並不是，只是我還不曉得&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;如何避開危險&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;看完後&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;最大收穫，我對這些危險又有更多認識&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0); font-style: italic;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/3375075088491193657/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/3375075088491193657' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/3375075088491193657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/3375075088491193657'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/07/sqlhead-first-sql.html' title='深入淺出SQL(Head First SQL)'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdSNt1dswMLijkx7rsYCdMFJQR6r0iymu7mSl0PrAWY90MfkQbDUV2VI9asoEzPNT-PxhDAvmTvnKOCFAgL5K7dtjBrsFkAQ673DWupZIe2AhkllF4OQxfvFFiDUzJwJIjsro_4ZhbBgOE/s72-c/a227_b.gif" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-8299829596076952730</id><published>2008-07-19T09:46:00.000-07:00</published><updated>2008-07-19T11:08:51.476-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="讀書心得"/><title type='text'>Don&#39;t Make Me Think</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4vubVEhpjIRT-HELdGuaN_g9weCkuStnvTX9JdWVl47ZtnTCW1MSXUtxt54_nNwTNs7LudpEOVK3fLeQkV-Gg9CMoSCMOD2BSH1pvsj6tnlKg4O61N4tLa7YS8L4WYravIlgsQwJrhEek/s1600-h/dmmt.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4vubVEhpjIRT-HELdGuaN_g9weCkuStnvTX9JdWVl47ZtnTCW1MSXUtxt54_nNwTNs7LudpEOVK3fLeQkV-Gg9CMoSCMOD2BSH1pvsj6tnlKg4O61N4tLa7YS8L4WYravIlgsQwJrhEek/s320/dmmt.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5224778325805971714&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;好吧，我承認我買這本書的原因是我很喜歡這句話&lt;br /&gt;&lt;br /&gt;「Don&#39;t Make Me Think ！」&lt;br /&gt;&lt;br /&gt;腦殘才是王道！&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;本書內容：&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;大概是在講網站的使用性跟親合力之類的，一些以使用者角度來看的網站設計原則&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;心得：&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;別讓我思考：使用性(usability)最高原則，用語越簡單越好&lt;/li&gt;&lt;li&gt;人讀網頁跟讀報紙差不多，都是用掃描的，不太可能有人真的一字字看&lt;/li&gt;&lt;li&gt;導覽列(Navigator)很重要，要在網頁上造出人類的空間概念都得靠他&lt;/li&gt;&lt;li&gt;首頁應該如何配置？放上使用者覺得重要的東西，而不是業務單位(這裡我的想法又被證實一次，讓讀資工這種腦袋放磚頭的人管首頁，是很危險的！)&lt;/li&gt;&lt;li&gt;如果遇到使用性的問題，找個人試試看好不好用，比在會議桌上爭論來的好&lt;/li&gt;&lt;/ol&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;結論：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-weight: bold;&quot;&gt;Yes, Dont make me think!&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/8299829596076952730/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/8299829596076952730' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/8299829596076952730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/8299829596076952730'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/07/dont-make-me-think.html' title='Don&#39;t Make Me Think'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4vubVEhpjIRT-HELdGuaN_g9weCkuStnvTX9JdWVl47ZtnTCW1MSXUtxt54_nNwTNs7LudpEOVK3fLeQkV-Gg9CMoSCMOD2BSH1pvsj6tnlKg4O61N4tLa7YS8L4WYravIlgsQwJrhEek/s72-c/dmmt.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-8017593048269052750</id><published>2008-07-15T05:12:00.000-07:00</published><updated>2008-07-16T07:49:21.861-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="寫程式的碎碎唸"/><title type='text'>火箭說明(Retro-specification)</title><content type='html'>&lt;span style=&quot;font-style: italic;&quot;&gt;火箭說明(Retro-specification)：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;在項目已經啟動之後才開始寫技術、功能說明 &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;By wiki&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;白話一點就是先寫程式才後生文件&lt;br /&gt;&lt;br /&gt;不過其實英文原文(Retro)字義並不是要講火箭，而是只另外一個&quot;倒退&quot;;&quot;追溯&quot;的意思&lt;br /&gt;但是我很喜歡&lt;br /&gt;因為這種文件通常跟火箭一樣看起來很炫，但是實用價值很低&lt;br /&gt;&lt;br /&gt;我不太會寫文件，&lt;br /&gt;但是我知道不是跟Code一起或是早一步出來的文件，基本上都沒參考價值&lt;br /&gt;(逆向工程不算)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;好的文件通常說明「&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;人類做什麼&lt;/span&gt;」，是表達&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;人的心智模型&lt;/span&gt;&lt;br /&gt;大部分的都是&lt;span style=&quot;font-style: italic;&quot;&gt;火箭說明&lt;/span&gt;都變成在說明「&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;電腦做什麼&lt;/span&gt;」，是參考&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;程式碼&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;所以說我不看文件&lt;/span&gt;&lt;/span&gt;，直接&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;程式碼一行行看&lt;/span&gt;&lt;/span&gt;，&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;搞不好更快能弄懂程式再寫什麼&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;現在很多大公司都搶著通過什麼CMMI，ISO之類的東西&lt;br /&gt;讓我想到國中歷史課教的滿清末年的自強運動&lt;br /&gt;改革只學外人船堅砲利，而不是其思想文化&lt;br /&gt;最後結果大家都知道是失敗收場&lt;br /&gt;&lt;br /&gt;我許多同學的公司都有通過，&lt;br /&gt;在下資歷尚淺，不敢妄談成功失敗&lt;br /&gt;但是就我聽到的而言，沒半個有學其精神&lt;br /&gt;&lt;br /&gt;歷史老師都會說要記取歷史的教訓&lt;br /&gt;諷刺的是，歷史的教訓告訴我們歷史只會一再重複&lt;br /&gt;&lt;br /&gt;對寫程式的人而言，&lt;br /&gt;文件的目的在於能&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;節省了解或撰寫系統的時間，而不是浪費更多&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/8017593048269052750/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/8017593048269052750' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/8017593048269052750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/8017593048269052750'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/07/retro-specification.html' title='火箭說明(Retro-specification)'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-7453530999431399255</id><published>2008-07-15T04:38:00.000-07:00</published><updated>2008-07-16T08:01:33.869-07:00</updated><title type='text'>寫給SA的UML/MDA實務手冊</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm7FjdnDMJ3Qw8r3NigiSLhYyzU2REpMDok0quL8vOY3NFV_tDtePO9yyWh7TlO7p70T0DK0ihlOy8nH-y7Afm_2AVAQ6zpD1F8IxCJ8kz-6T-umzKbN2ZPT98EpF6L9IhKA47Or3Y1CGN/s1600-h/9789866884597.jpg&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 163px; height: 204px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm7FjdnDMJ3Qw8r3NigiSLhYyzU2REpMDok0quL8vOY3NFV_tDtePO9yyWh7TlO7p70T0DK0ihlOy8nH-y7Afm_2AVAQ6zpD1F8IxCJ8kz-6T-umzKbN2ZPT98EpF6L9IhKA47Or3Y1CGN/s320/9789866884597.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5223627145645606210&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;學UML到底有什麼用？&lt;br /&gt;&lt;br /&gt;是很多人的疑問，我也是&lt;br /&gt;我剛開始工作的時候，UML一個也不會，程式照樣寫的出來&lt;br /&gt;後來多會一點，其實也是半知半解，畫出來的東西殘破不堪，也毫無參考價值&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;這本是我看過的UML書裡面&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，最感覺是有真的用uml在解決問題&lt;/span&gt;&lt;/span&gt;，整個就很有質感&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;本書內容&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;：&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;用OOAD/UML的做法，來實作一個分析設計案例，&lt;br /&gt;大部分都在畫圖跟跟使用者對談&lt;br /&gt;換句話說，程式碼一行也沒有&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;我看了多少：&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;看到第八章就沒看了，大約４／５吧&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;心得&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;：&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;一個基金的申購&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;從Use Case開始&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;一直到商業邏輯的Class Diagran跟Sequence Diagram&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，一直&quot;很順利&quot;做下去&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;(為何我做的都沒發生過這種事？大概是程度差吧....囧)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;滿難形容的&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，大概看了才知道&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;結論：&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;我對分析不是很拿手&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，所以也不太看的很懂&lt;br /&gt;只知道有個高手秀了一手給我看&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，就當看看熱鬧Ｑ&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/7453530999431399255/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/7453530999431399255' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/7453530999431399255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/7453530999431399255'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/07/saumlmda.html' title='寫給SA的UML/MDA實務手冊'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm7FjdnDMJ3Qw8r3NigiSLhYyzU2REpMDok0quL8vOY3NFV_tDtePO9yyWh7TlO7p70T0DK0ihlOy8nH-y7Afm_2AVAQ6zpD1F8IxCJ8kz-6T-umzKbN2ZPT98EpF6L9IhKA47Or3Y1CGN/s72-c/9789866884597.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-2505862157433091030</id><published>2008-07-02T07:36:00.000-07:00</published><updated>2008-07-03T09:06:57.774-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="寫程式的碎碎唸"/><title type='text'>別說你忘了他</title><content type='html'>「這段程式在寫什麼？」&lt;br /&gt;&lt;br /&gt;「我忘了，要Trace一下看看...」&lt;br /&gt;&lt;br /&gt;這段故事有沒有很熟悉？&lt;br /&gt;上一次出現這台詞的時候，你是問的人還是答的人？&lt;br /&gt;還是自問自答？&lt;br /&gt;&lt;br /&gt;人類本來就很健忘，所以應該無時無刻留下提醒自己的紀錄&lt;br /&gt;文字也好，uml也好，註解也好，便利貼也好，&lt;br /&gt;總比看一行行的神秘符號來的好&lt;br /&gt;&lt;br /&gt;剛開始工作時，我也沒寫註解的習慣，&lt;br /&gt;仗勢自己的小聰明，只管Code能Run就好，管他啥註解跟文件的&lt;br /&gt;不過久了後，覺得老是自己在整自己，&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;昨日之我永遠比今天之我還聰明&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;試著寫一點註解以後，才發現這樣以後看起Code來快多了&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;/span&gt;&lt;br /&gt;我才了解到，與其浪費生命在Trace火星文，到不如多花時間留下點記憶&lt;br /&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;/span&gt;&lt;br /&gt;有些人會說，註解/文件寫的濫的要死，有跟沒有還不是一樣&lt;br /&gt;不過我覺得&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;這是做與不做的問題，而不是好跟不好的問題&lt;/span&gt;&lt;br /&gt;註解/文件寫的好是一種藝術，那需要很多的經驗跟天份&lt;br /&gt;但是，&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;有或沒有是一種態度，程式人&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;該有&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;的責任&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;為自己的程式負責，能動的不代表完成&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/2505862157433091030/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/2505862157433091030' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/2505862157433091030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/2505862157433091030'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/07/blog-post.html' title='別說你忘了他'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-7553666763834488271</id><published>2008-06-29T05:43:00.000-07:00</published><updated>2008-06-30T07:42:50.888-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="讀書心得"/><title type='text'>UML2.0 學習手冊</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXFQowYg1lF8Xzt-Jil9qvF_U4RHpIenCq-hY5oYt4c0DjHuB_lVUQE9EZrNcWkNwvy-TQ-olFMcNaw3BhNjLyAAO04KdqOHFHoDozoGCMMDJsP1c3ebOy9DwMdkChehzyEdegxDW0tHcz/s1600-h/a200_b.gif&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXFQowYg1lF8Xzt-Jil9qvF_U4RHpIenCq-hY5oYt4c0DjHuB_lVUQE9EZrNcWkNwvy-TQ-olFMcNaw3BhNjLyAAO04KdqOHFHoDozoGCMMDJsP1c3ebOy9DwMdkChehzyEdegxDW0tHcz/s320/a200_b.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5217675233048016466&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt; UML的書很多，有很難也有簡單，或是特別偏重某部分，尤其帶有完整範例的，很容易會變成 UML for XP , UML for SA , UML for SD ....&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;本書特點：&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;簡單易讀，但是都是關鍵且重要的部分&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;我讀了多少&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;：&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;讀完一遍&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，似乎沒什麼不懂&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，但是要用的時候還是要查一下&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;重點心得：&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;UML來自於OO&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，不用OOP威力大減&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Use Case(使用者案例)：UML裡面最沒定義的東西&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，算是最接近人類需求的一個&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;盡量也讓使用者看的懂&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Activity Diagram(活動圖)：表達工作處理的過程&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，通常表達重要的商業邏輯&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Class Diagram(類別圖)：其實本章都在講OO概念&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，不過有趣的是配上UML看起來格外搭&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Obejct Diagram (物件圖)：表達物件實際上怎麼工作的&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，或為Class Diagram舉個實際例子&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Sequence Diagram(循序圖)：表訊息的流通方式&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，或物件之間互相合作的情形&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Timing Diagram (時序圖)：第一次看到這個&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，沒用過不太懂&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Internal-Structure Diagram (內部結構)：表示複雜的內部結構&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，跟package不一樣的是要表達物件的合作關係&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Package Diagram (套件圖)：表達package之間的合作關係&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，尤其依賴性要注意&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，如果沒弄好&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，往高階就變Jar地獄&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，往下就會變程式不好改&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;且難以追蹤，&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Deployment Diagram &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;(配置)：&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;把實體的系統和機器畫成圖，&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;看起來簡單卻意外有用&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，我把跟我有關的系統之間的關係畫一遍&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，變的很容易掌握&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;附錄C的UML簡史滿有趣的&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;結論：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;簡單易懂的好書&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/7553666763834488271/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/7553666763834488271' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/7553666763834488271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/7553666763834488271'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/06/uml20.html' title='UML2.0 學習手冊'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXFQowYg1lF8Xzt-Jil9qvF_U4RHpIenCq-hY5oYt4c0DjHuB_lVUQE9EZrNcWkNwvy-TQ-olFMcNaw3BhNjLyAAO04KdqOHFHoDozoGCMMDJsP1c3ebOy9DwMdkChehzyEdegxDW0tHcz/s72-c/a200_b.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-795660016408341317</id><published>2008-06-25T06:10:00.000-07:00</published><updated>2008-06-26T07:36:47.703-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="讀書心得"/><title type='text'>深入淺出設計模式(Head First Design Pattern)</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMYR7GTtuJz9qPF_XFo9DE6XxBJXcl5ceEtHvJSttIHNiRqw2u7cB7ima0w0SGApttLL7rVUKoB-4hUe5ii2ZUuoDQwjLXgUxD7uCjciQtegYzFA3UxTbiajh5V4cKqiZsQtHJYQm6SXQK/s1600-h/a163_b.gif&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMYR7GTtuJz9qPF_XFo9DE6XxBJXcl5ceEtHvJSttIHNiRqw2u7cB7ima0w0SGApttLL7rVUKoB-4hUe5ii2ZUuoDQwjLXgUxD7uCjciQtegYzFA3UxTbiajh5V4cKqiZsQtHJYQm6SXQK/s320/a163_b.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5216199115517056818&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;「什麼是Design Pattern？」同學問&lt;br /&gt;&lt;br /&gt;「不知道ㄟ，教授沒教過，應該不重要．．．吧？」我回答&lt;br /&gt;&lt;br /&gt;「很重要吧」&lt;br /&gt;&lt;br /&gt;「沒差拉，考試又不考，Case Study啦～～」&lt;br /&gt;&lt;br /&gt;那時的我，大學三年級&lt;br /&gt;&lt;br /&gt;=============ｎ年後===============&lt;br /&gt;&lt;br /&gt;「連Factory Pattern跟Observer Pattern都不會？」我歇斯底里的怒吼&lt;br /&gt;&lt;br /&gt;「咦？這些是什麼東西？」學弟滿臉疑惑說道&lt;br /&gt;&lt;br /&gt;「就是說$!@#%$~~~~~，瞭了嗎？」&lt;br /&gt;&lt;br /&gt;「....？」&lt;br /&gt;&lt;br /&gt;「....orz」我放棄了&lt;br /&gt;&lt;br /&gt;但其實回過神來仔細想想，跟當年的我不也是這樣嗎&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;所以說，Design Pattern到底是什麼？&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Ｗｉｋｉ說：&lt;/span&gt;&lt;/span&gt;是對&lt;a class=&quot;new&quot; title=&quot;軟體設計 (尚未撰寫)&quot; href=&quot;http://www.blogger.com/w/index.php?title=%E8%BB%9F%E9%AB%94%E8%A8%AD%E8%A8%88&amp;amp;action=edit&amp;amp;redlink=1&quot;&gt;軟體設計&lt;/a&gt;中普遍存在（反覆出現）的各種問題，所提出的解決方案&lt;br /&gt;本書說：是種可再利用的經驗與智慧&lt;br /&gt;良葛格說：是在解決問題的過程中，一些良好思路的經驗集成&lt;br /&gt;我說：是&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;經過無數血與淚所堆砌出的智慧結晶&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;在物件導向語言(C++,Java,C#.Net,VB.Net)中&lt;br /&gt;它已經是個&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;隨處可見的真理&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;我讀了多少&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;：&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;次數多到不清&lt;/span&gt;&lt;/span&gt;，不過會用才是真的會&lt;span style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;重點心得&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;：&lt;/span&gt;&lt;br /&gt;&lt;ol style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 102, 0);&quot;&gt;Obersver(觀察者)&lt;/span&gt;：愛稱為電台模式，通常是為解決一個Model對應到多個View之間的互動，寫Swing常用到      &lt;span style=&quot;font-style: italic;&quot;&gt;－－『甲愛貢，那Ａ謀企電台貢厚全台灣聽』&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 102, 0);&quot;&gt;Decorator(裝飾者)&lt;/span&gt;：又稱之為裝甲模式，通常我用都會包太多層並難以理解，不過卻相當程度能動態調整　&lt;span style=&quot;font-style: italic;&quot;&gt;－－『你妝會不會化太濃了』&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 102, 0);&quot;&gt;Factory(工廠)&lt;/span&gt;：我第一個用的Pattern，是拿來解決，不同資料來源搭配到同一個介面上的問題　&lt;span style=&quot;font-style: italic;&quot;&gt;－－『又到了開分公司的時候了』&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 102, 0);&quot;&gt;Singleton(獨體)&lt;/span&gt;：個人覺得是最簡單也最困難的一個，我只拿來做紀錄Log到檔案用過&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 102, 0);&quot;&gt;Command(命令)&lt;/span&gt;：愛稱遙控器模式，我常拿來做權限部分，拿來分離登入物件及功能&lt;span style=&quot;font-style: italic;&quot;&gt;    －－『不要亂拿遙控器&lt;/span&gt;，很危險的&lt;span style=&quot;font-style: italic;&quot;&gt;』&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 102, 0);&quot;&gt;Adapter(轉接)&lt;/span&gt;，據說能解決銜接舊系統的問題，沒用過&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 102, 0);&quot;&gt;Facade(表象)&lt;/span&gt;，愛稱幻覺，整理一駝亂的好幫手，趕時間或感覺Class拆太多的時候不錯&lt;span style=&quot;font-style: italic;&quot;&gt;   －－『雖然一切都是幻覺&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;，但是真的&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;嚇到我了&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;』&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 102, 0);&quot;&gt;Template(樣板)&lt;/span&gt;，整理很相似的Code時候用的，我不太常用&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 102, 0);&quot;&gt;Iterator(反覆)&lt;/span&gt;，有效做重複的事，看到很多for - if - for -if 能考慮用這個，看起來沒什麼了不起，但常常意外的有效果  &lt;span style=&quot;font-style: italic;&quot;&gt;－－&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;『下一位&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;，&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;下一位&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;，&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;下一位&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;』&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 102, 0);&quot;&gt;Composite(合成) &lt;/span&gt;，樹狀結構跟XML的好朋友，在複雜的加總或計算中算好用 ，尤其是用for loop或SQL指令會做很亂的那種  &lt;span style=&quot;font-style: italic;&quot;&gt;－－『無.敵.合.體.&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;』&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 102, 0);&quot;&gt;State(狀態)&lt;/span&gt;，通常改變狀態代表邏輯行為也要改變，這個Pattern能讓人先專注在狀態變化，而不是行為   &lt;span style=&quot;font-style: italic;&quot;&gt;－－『Oh！It is another Final State Ｍachine！』&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 102, 0);&quot;&gt;Proxy(代理人)&lt;/span&gt;，也是個看起來簡單但變化很多的Pattern，不是很常用&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 102, 0);&quot;&gt;Model -View -Control (MVC) &lt;/span&gt;，每個寫過網頁的都號稱會用MVC，但其實MVC沒這麼簡單，有時候把Code要放在 Model or View or Control 不是非常直覺的事，我很懷疑都沒人有這種煩惱嗎？&lt;/li&gt;&lt;/ol&gt;&lt;span style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;結論&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 255); font-weight: bold;&quot;&gt;：&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;span style=&quot;color: rgb(51, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Design Pattern不是萬能的，但是看不懂可是萬萬不能，使用的太普遍了&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;生平不識模式趣，寫盡程式也枉然&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;推薦本書：&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Design Pattern 一直被當作很難或很高深的理論(起碼對我而言)&lt;/span&gt;&lt;/span&gt;，但是Head First系列的變態作者，加上大師級的翻譯，就是有辦法寫到連我這笨蛋都看的懂，還帶我看到不一樣的世界，我衷心佩服且感恩&lt;br /&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;不管懂不懂&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;Design Pattern&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;，一定要看一次&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/795660016408341317/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/795660016408341317' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/795660016408341317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/795660016408341317'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/06/head-first-design-pattern.html' title='深入淺出設計模式(Head First Design Pattern)'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMYR7GTtuJz9qPF_XFo9DE6XxBJXcl5ceEtHvJSttIHNiRqw2u7cB7ima0w0SGApttLL7rVUKoB-4hUe5ii2ZUuoDQwjLXgUxD7uCjciQtegYzFA3UxTbiajh5V4cKqiZsQtHJYQm6SXQK/s72-c/a163_b.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-2491057575337705251</id><published>2008-06-24T06:16:00.000-07:00</published><updated>2008-06-24T20:22:28.082-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="讀書心得"/><title type='text'>操作介面設計模式</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqvmNtshqXhczHEHKqB7fEPOlCq0dIa295_sgBOIgDRUmfAtYq6Q-5GmnlqpTZh88yHUovW-mS24FxGSiopmJ_CkdngJbUyU84CB9slaIrX5zMB-4Aj1bbsd1svRGKmWbXjYRw3oDsvZRa/s1600-h/a191_b.gif&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqvmNtshqXhczHEHKqB7fEPOlCq0dIa295_sgBOIgDRUmfAtYq6Q-5GmnlqpTZh88yHUovW-mS24FxGSiopmJ_CkdngJbUyU84CB9slaIrX5zMB-4Aj1bbsd1svRGKmWbXjYRw3oDsvZRa/s320/a191_b.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5215654259685176546&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;「我忘記我選到什麼了？」&lt;br /&gt;&lt;br /&gt;「我找不到確定鍵在那！」&lt;br /&gt;&lt;br /&gt;「為什麼點這個沒反應？」&lt;br /&gt;&lt;br /&gt;「這顏色好亂，我看的眼睛好累」&lt;br /&gt;&lt;br /&gt;很多人都遇過，使用者抱怨介面太花，配置很亂，操作不夠Friendly&lt;br /&gt;但如果遇到一個讀資工的宅男，要求介面簡直是緣木求魚，或者我該說雪上加霜？ XD&lt;br /&gt;&lt;br /&gt;工作以後，我就一直被介面問題煩惱&lt;br /&gt;也找過幾本書，但都只是只會其型，不知其意&lt;br /&gt;&lt;br /&gt;直到我拿到這本為止&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;本書內容：&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;介面設計的型錄，&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;多半以人的角度思考&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;，&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;並講解其原理&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;人類到底看見了什麼，人類到底想做些什麼&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;我看了多少：&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;全讀完&lt;/span&gt;，基本上不太可能看不懂，只是有沒有練熟的問題&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;重點心得&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;：&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;使用者做什麼：使用者為什麼要用這個程式，會做何種程度的嘗試，&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;/span&gt;利用基本原則引導使用者熟練系統，因為&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;文件沒人會去看&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;color: rgb(0, 0, 0);&quot;&gt;組織內容：空間的規劃，不同類型的資料，在人類心中有各自&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;適合的心智模型&lt;/span&gt;，再對應到介面上擺放方式&lt;/li&gt;&lt;li style=&quot;color: rgb(0, 0, 0);&quot;&gt;到處走走：路徑的規劃，一步步走向正確的地方，不能讓使用者迷路，&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;好的路標&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;不是強迫到&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;正確的位置&lt;/span&gt;，&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;而是&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;指出使用者前進的方向&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;組織規畫&lt;/span&gt;&lt;/span&gt;：頁面的配置，視覺流的影響，物件型態(這裡指的是視覺外觀)的所造成的關聯性，應該有系統的分門別類，而不是雜亂無章，看網頁或視窗時，人&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;不會照順序看，而是憑感覺&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;color: rgb(0, 0, 0);&quot;&gt;做事：如何讓[按鈕]/[選單]/[連結]看起來是能用的，讓不同的元件負擔起不同責任，例如下拉式選單(DropDownList)負責&quot;選擇&quot;，按鈕(Button)負責&quot;執行&quot;，拖放(Darg-and-Drop)負責&quot;移動&quot;等等，還有得注意文字盒(TextBox)的使用，這東西通常很難用&lt;/li&gt;&lt;li style=&quot;color: rgb(0, 0, 0);&quot;&gt;資訊圖形：千言萬語不如一張好圖，圖形的力量比想像中的還可怕，把形狀放大或是顏色改辦一下，對看的人而言就意義完全不同，&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;利用大小顏色聚焦資訊，不重要不代表不需要&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;結論：&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;其實嚴格來說&lt;/span&gt;&lt;/span&gt;，這應該算是心理學家跟藝術家的事，而且是很抽象的東西，我們搞技術的人大部分都不擅長這些，但程式畢竟是要給人用的，既然如此，那我們就看些簡單的基本原理，然後&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;用抄的就好&lt;/span&gt;，本書不但提共抄襲的好材料，又沒有困難的理論，值得一讀</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/2491057575337705251/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/2491057575337705251' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/2491057575337705251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/2491057575337705251'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/06/blog-post_24.html' title='操作介面設計模式'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqvmNtshqXhczHEHKqB7fEPOlCq0dIa295_sgBOIgDRUmfAtYq6Q-5GmnlqpTZh88yHUovW-mS24FxGSiopmJ_CkdngJbUyU84CB9slaIrX5zMB-4Aj1bbsd1svRGKmWbXjYRw3oDsvZRa/s72-c/a191_b.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-1617418007176459100</id><published>2008-06-23T05:32:00.000-07:00</published><updated>2008-06-23T07:51:42.179-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="讀書心得"/><title type='text'>ＳＱＬ之美學</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvwISoHaILHqvuaSp21awMhXDFLtJrBZMxhew6VA7zqb3TmV96rMOn5Nd2EyoFEwDP3w-gIiiOkEg3z_UUOhygvWuoyFypU_5_l5npcrLgqlr-w081BAh9eXcbYOP7BZFZiyPF31mXzjYD/s1600-h/a201_b.gif&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvwISoHaILHqvuaSp21awMhXDFLtJrBZMxhew6VA7zqb3TmV96rMOn5Nd2EyoFEwDP3w-gIiiOkEg3z_UUOhygvWuoyFypU_5_l5npcrLgqlr-w081BAh9eXcbYOP7BZFZiyPF31mXzjYD/s320/a201_b.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5215089629746781794&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;「ＳＱＬ不就是ＳＱＬ？哪來什麼美學」我看到本書的第一個想法&lt;br /&gt;&lt;br /&gt;不過聳動的標題，還是促使我從架子拿下來翻幾頁，&lt;br /&gt;&lt;br /&gt;「喔喔！？我好像遇過這件事？」&lt;br /&gt;&lt;br /&gt;「原來學校教的離散數學跟檔案結構不是在騙我！？」&lt;br /&gt;&lt;br /&gt;於是我把它買回家&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 153);&quot;&gt;本書內容：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ＳＱＬ的理論，但是是&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;對於實作極度重要&lt;/span&gt;的理論&lt;br /&gt;實作以戰爭比喻，而理論部分以兵法比喻&lt;br /&gt;很多內容，會&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;/span&gt;提出某SQL指令或Table設計，&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;為何資料庫會這麼做，它到底在想些什麼&lt;/span&gt;，進而產生對應的效率問題&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;讀了多少&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 153);&quot;&gt;：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;全精讀完，讀懂約七成&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;重點心得&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 153);&quot;&gt;：&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;正規化的重要性，與Null的潛藏危險：『以正合，以奇勝』，&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;正規化跟非Null是「正」，反正規化跟允許Null是「奇」&lt;/span&gt;，問題是何時該反正規化，而不是為何要正規化，正規化跟非Null是必備&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;索引是雙面刃&lt;/span&gt;，在&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;特定條件&lt;/span&gt;下會增加Select效率，但是&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;一定&lt;/span&gt;會降低Insert效率&lt;/li&gt;&lt;li&gt;SQL的本質是集合理論&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;/span&gt;，跟資料庫核心接近程度為資料＞關聯式&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;(如join,union,group by)＞非關聯式(如 order by, case when )&lt;/span&gt;，&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;Query指令越接近核心速度越快&lt;/span&gt;，所以當有複雜的查詢時，關聯度高子查詢要先放在內層&lt;/li&gt;&lt;li&gt;最佳化處理器(SQL Optimizer)，跟前三點有正相關，&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;跟理論背離的Query指令會無法達成最佳化&lt;/span&gt;，甚至有時候會搞砸更多事&lt;/li&gt;&lt;li&gt;鎖定(Lock)&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;/span&gt;是為了保持資料同步下正確，但是ＳＱＬ通常是處理＂整批＂資料；所以換句話說，反正規化，條件限制少的Query指令，或牽涉超出集合理論能做的部分，&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;為了保持資料正確性，SQL會加大鎖定範圍&lt;/span&gt;&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;效率跟前面有前五點必然相關，通常&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;不佳的效率來自於反覆執行的小型指令&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;階層式(hierarchy)結構或樹狀結構不適合關聯式資料庫，可以的話盡量用程式解&lt;/li&gt;&lt;li&gt;SQL結構彈性取決於&lt;span style=&quot;color: rgb(204, 0, 0);&quot;&gt;與真實世界符合程度&lt;/span&gt;，而非過度動態的表格或高深莫測的語法&lt;/li&gt;&lt;/ol&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;結論&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 153);&quot;&gt;：&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;其&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;實這本書不像封面看起來的無趣&lt;/span&gt;&lt;/span&gt;，只是有些地方必須要先學過相關的數學或電腦知識，在配上相關實務經驗，才會有豁然開朗的感覺&lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/1617418007176459100/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/1617418007176459100' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/1617418007176459100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/1617418007176459100'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/06/blog-post_23.html' title='ＳＱＬ之美學'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvwISoHaILHqvuaSp21awMhXDFLtJrBZMxhew6VA7zqb3TmV96rMOn5Nd2EyoFEwDP3w-gIiiOkEg3z_UUOhygvWuoyFypU_5_l5npcrLgqlr-w081BAh9eXcbYOP7BZFZiyPF31mXzjYD/s72-c/a201_b.gif" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7249143428574041052.post-9181918709975545687</id><published>2008-06-20T00:33:00.000-07:00</published><updated>2008-07-13T07:08:52.488-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="讀書心得"/><title type='text'>SCJP5.0猛虎出閘</title><content type='html'>「看，SCJP」我好友拿出張卡片&lt;br /&gt;&lt;br /&gt;「嗯嗯．．」&lt;br /&gt;&lt;br /&gt;「Java的國際證照，酷吧，跟你說$#@!!!$5.... 」他滔滔不絕的講著&lt;br /&gt;&lt;br /&gt;「嗯嗯．．」.....有個愛炫燿的朋友真受不了&lt;br /&gt;&lt;br /&gt;於是受個刺激(誘惑?)的我也買本書去考&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;考試買這本書到底有沒有用：&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;有&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;讀書心得：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;１到４章為基本語法－感覺還都能了解，只是很多小地方沒注意到，特別是三章物件導向，我才知道所謂的&quot;物件&quot;原來是這樣用&lt;/li&gt;&lt;li&gt;５章執行緒－如同惡夢般的mutilthread被講的很簡單&lt;/li&gt;&lt;li&gt;６章資源回收－讓用不到的物件早點超生&lt;/li&gt;&lt;li&gt;７章集合與泛形－看完後有恍然大悟的感覺，發現自己的程式能少用點陣列，有更適合的資料結構&lt;/li&gt;&lt;li style=&quot;color: rgb(0, 0, 0);&quot;&gt;８章ＩＯ－我後來才知道，看起來很複雜，其實一切都是DecatorPattern&lt;br /&gt;&lt;/li&gt;&lt;li style=&quot;color: rgb(0, 0, 0);&quot;&gt;９章其他－雖然考試不考，但是實際中很常用到，也很常遇到&lt;/li&gt;&lt;li style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;模擬考題－想考高分就多做吧&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;結論：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;看完後第一個感想：「XX娘的，原來我這麼不懂Java」&lt;br /&gt;&lt;br /&gt;算是帶我重新認識Java的一本好書，從此以後我也對物件導向有比較深的了解&lt;br /&gt;也是算開始&quot;覺悟&quot;到要擺脫結構化程式語言的開始&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 153);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 153); font-weight: bold;&quot;&gt;炫燿一下XD：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;我是2007年8月考的，87分，但是說實在不重要就是 ~3~;</content><link rel='replies' type='application/atom+xml' href='http://supersmalldolphin.blogspot.com/feeds/9181918709975545687/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7249143428574041052/9181918709975545687' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/9181918709975545687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7249143428574041052/posts/default/9181918709975545687'/><link rel='alternate' type='text/html' href='http://supersmalldolphin.blogspot.com/2008/06/scjp50.html' title='SCJP5.0猛虎出閘'/><author><name>超級小海豚</name><uri>http://www.blogger.com/profile/02587979427131478488</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>