l
顯示具有 生活 標籤的文章。 顯示所有文章
顯示具有 生活 標籤的文章。 顯示所有文章

2023年9月20日 星期三

鐵帽子王事件的Teddy觀點

September 20 12:30~14:43 

▲先看個貓照片消消火 XD

 

緣起

Teddy明明是一位被鄉民認證過的文人,這幾天卻搞得好像變成武將一樣。Teddy就再講一個文人與水球潘的故事,扳回點文人的形象。

幾年前,水球潘加Teddy FB好友。認識Teddy的鄉民應該知道,Teddy基本上不加沒在真實世界見過面的人為好友,但Teddy加了水球潘。為什麼?因為看到Teddy的指導教授鄭老師,也是水球潘的好友。

Teddy看了一下水球潘公開在FB的基本資料,事隔多年如果記憶有錯請更正,他是銘傳大學畢業,當時正在唸台大資工碩士。

Teddy知道鄭老師認識台大資工系的老師,於是自己腦補:「會不會是教授們彼此有交流合作,因此當時還是學生身份的水球潘,才會認識鄭老師?」

Teddy也不會為了這麼小不拉機的事跑去跟鄭老師求證,於是就加了水球潘好友。

這中間,如果沒記錯,Teddy應該沒有跟他有什麼互動。一直到疫情期間的某一天水球潘分享一個Clean Architecture範例。Teddy也在教Clean Architecture,因此下載來參考看看。這是一個很小的專案,Teddy覺得水球潘的Repository設計有可以改善之處,於是留言告訴他。

當時Teddy對於水球潘的反應就覺得有點奇怪,說不上來,有一點他不太歡迎Teddy給他的建議的感覺。

***

第二次接觸

第二次是水球潘在「搞笑談軟工臉書社團」跟Teddy討論Value Object,Teddy覺得水球潘對於DDD Building Block的一些基本認知,從Teddy的角度來看,是錯的。一開始Teddy很有耐心地跟他討論,但後來對於他那種幾乎可以說是詭辯的態度,真的受不了,放棄。

認識Teddy的人應該看得出來,Teddy對水球潘的耐心,已經超過對一般鄉民的耐心。為何?還不是看在鄭老師的面子上,自己腦補說,總是老師認識的學生,就包容一些。

接下來就是今年8/11~13,Teddy在上「Design Patterns這樣學就會了–入門實作班」,有學員跑來問Teddy是否認識水球潘?他用跟Teddy一樣的講法也在教Design Patterns。

 

 

 

這事件,因為「鐵帽子王」事件(水球潘在搞笑談軟工FB社群送給Teddy的幾頂帽子)發生後,Teddy才在FB公開。如果Teddy在意,在八月上課當下就馬上在FB發文了酸水球潘,不會忍到前幾天。Teddy當時笑笑地告訴學員:「我知道這個人,他有加入搞笑談軟工社團,我跟他不熟,印象中是很認真(我知道他有弄社群活動)的人,也很有主見。之前他跟我在FB討論過事情,但雙方看法不同。」

當時問Teddy問題學員,好像有參加水球潘的活動,如果有看到,可以出來佐證。

當時Teddy對於水球潘,一句不好聽的話都沒說,甚至還小小小的誇他。

為什麼?還不是看在鄭老師的面子上。

***

現況

再來就是這幾天發生的事。上禮拜日下午,因為禮拜六剛參加完DDD TW 2023年會,想說在YouTube找看看有沒有更新什麼影片上去,於是下了DDD關鍵字,就看到水球潘的影片。點開一看,一開頭解釋DDD的Design,Teddy覺得基本觀念就錯了。以下是Teddy當時的貼文:

閒來無聊在YouTube找DDD的影片,看到這個影片中說到:DDD的「Design的意思其實就是品質。」
Domain-Driven Design的「Design」不是在講品質,而是「決定邊界」,這是基本中的基本。

我只聽到這裡,後面的內容我就沒聽了。

 

 

水球潘一開始非常強勢,覺得Teddy是「文人相輕」故意找他麻煩。但他卻後來又自己承認,他的說法應該稍加修正。一般人遇到這種情況,就說聲:「噯呀,口誤」,這不就沒事了。

後續水球潘的回應,就是給Teddy扣帽子、潑髒水。更有趣的是,水球潘還自爆內幕:



既然他都自爆他向Teddy「致敬」的內幕,那就不好意思,水球潘已經用完鄭老師面子點數。

***

內心話

這中間還穿插一些,從Teddy的角度來看,屬於幼幼班行為的事情,就不提了。

事情演變至此,問題已經不是原本討論關於「Design」定義。Teddy早上去復健,吊脖子的時候在想,以Teddy的身分,在台灣軟工界,不敢說是大佬,好歹也是小佬:

Teddy寫文章、經營泰迪軟體、寫書、辦C. C. Agile社群活動(曾經XD)、經營臉書社群,都已經十年以上,還有最近釋出DDD、DBC與BDD/SBE開源軟體、錄製YouTube頻道等。另外,Teddy的學歷,再怎麼不濟,好歹也是個本土博士(北科大資工)以及北科大兼任助理教授。

Teddy這樣的人,水球潘都敢跑到Teddy經營的「搞笑談軟工社團」來鬧。如果Teddy這次又包容水球潘,日後一般軟體工程師對於水球潘的分享如果有任何疑問,誰還敢發言啊?

看到有些鄉民的思維,有時Teddy都會懷疑:這是在台灣還是在中國?喔,你放在網路上公開廣告的教材內容,不准任何人公開提出疑問?那你不會不要放廣告膩,這樣就沒人會批評了啊!

***

若干年前神收割了一波小白韭菜,很抱歉當時Teddy實力不夠,也不懂神的技術,幫不上忙。但Teddy自己偷偷覺得,應該有小小阻擋了一下神的勢力蔓延到Agile這邊。賣東西卻不允許別人討論產品內容,態度還這麼囂張,這是什麼樣的生意可以這樣?想想這些轉職者與技術小白,真的是挺可憐的,想要努力變好,還要被騙。有種海龜寶寶破殼而出,努力爬向大海的途中,還有一堆海鳥等在旁邊要吃他們的即視感。

***

友藏內心獨白:我不入地獄,誰入地獄。

2023年7月4日 星期二

買到還不錯用的筆電收納架

July 04 18:48~19:22


  

▲圖1:把兩台筆電立起來收納

前言

Teddy有兩台筆電,第一台是2018年從Amazon買的LG gram 15,這台筆電非常棒,很輕續航力又強,這的是沒什麼好挑的。唯一的問題是年華老去,速度有點跟不上,去年不知哪根神經不對勁,居然買了Asus UX5401Z。Asus 這台筆電,才14吋但體感重量比起LG gram 15,有種沉甸甸的感覺。如果是買水果沉甸甸也就算了,買筆電沉甸甸真的不優。

不過今天不是要談筆電,而是要談筆電收納。Teddy平常在家中工作,使用的是2019 iMac 27”,筆電只有外出上課時才會用到。這兩台筆電,平時就被Teddy丟在不同的位置,平躺著有點占空間。前天晚上在PChome上面隨意選了「YUNMI 重力感應筆電直立式收納支架」,收到之後沒想到還不錯用。今天介紹這個支架,提供有需要的鄉民做為參考。

***

非廣告


 ▲圖2:PChome的產品介紹畫面

 

502元,價錢還可以。Teddy以前曾經想買一個筆電收納架放Apple Air與MacBook Pro,但後來換了iMac之後就作罷。這次是整理書桌,順便把找個架子收納筆電。看到這個產品,可以收納多台筆電,抱著可能採雷的覺悟,就買了。

 

▼開箱之後就一個塑膠做的架子,長成下面這樣。


  

▼準備放下兩台筆電,還沒放到底部,此時筆電架還沒有夾緊。


▼放到底部之後,筆電架就將兩台筆電夾緊。

   

▼空拍圖


***

結論

▼收納之後將筆電放在書桌後方,留一條Type C線讓兩台筆電輪流充電,還行。

 

***

友藏內心獨白:可能因為難得沒採雷所以特別高興。

2022年10月11日 星期二

重辦護照

Oct. 11 11:25~12:02

▲現場辦理護照的排隊人龍

 

疫情前Teddy和Kay每年至少會固定出國兩次,因為疫情緣故已經兩年多沒出國。最近政府宣布國境解封,護照在明年中即將過期,差不多要重辦護照。

上次辦護照已經是近10年前,記得是某天晚上等Kay下班後一起去外交部領事事務局辦理。幾天前上網查詢,發現申請新護照方便很多,只要先上網填寫資料,然後預約辦理的時間,到時候到外交部領事事務局一樓用機器報到,領取號碼牌之後到三樓窗口辦理即可。

詳細流程可參考:外交部領事事務局個人申辦護照網路填表及預約系統,或申辦護照流程短片。

***

護照申請流程網路上資料很多,Teddy就不在重複。這篇簡短分享今天早上去外交部領事事務局辦理辦理護照的幾個心得:

  • 報到時間:Teddy預約的時段是10:30~11:00,抵達現場的時間是10:25。經工作人員告知,可以直接在一樓的公共事務機報到領取號碼牌,不用等到10:30。


▲公共事務機長這樣,圖片節錄自申辦護照流程短片。

 

  • 可現場列印護照申請表格:在報到的同時可透過機器選擇列印護照申請表格。Teddy已經事先上網填寫資料並且在家裡用彩色印表機列印出申請表格,所以不需要重複列印表格。如果家中沒有印表的朋友,可以現場列列申請表(表格會帶出網路預約時所填好的基本資料,包含彩色照片,只要將表格印出來簽名即可)。但是這裡有一點要注意,如果你是幫別人(例如親屬)代辦護照,就無法現場列印表格,要在家裡印好,請委託者簽好名帶過來。
  • 過號:拿到號碼牌之後Teddy就立刻搭電梯到三樓,沒想到居然已經過號了,有點傻眼(有兩個網路預約的專門辦理窗口)。請問工作人員,對方很親切地說:「沒關係,你就排在後面,等前面一位辦好後跟工作人員說你過號就可以。」在辦理的過程中,發現也有其他人遇到過號的問題,所以這可能是….正常現象吧。
  • 辦理時間:從抵達現場到辦好護照手續、請郵局寄送護照,一共花了15分鐘,算是非常快了。但是,有很多民眾是現場辦理,沒有網路預約,排隊的人潮就很多。

***

現場排隊的人真的很多,Teddy預估至少要等一小時吧。在離開時Teddy就聽到有已經抵達現場的民眾說:「我們回家網路預約,之後再來好了。」如果不想等太久,網路預約方便很多。

***

友藏內心獨白:難得覺得政府系統做得還不錯。

2021年12月31日 星期五

2021年終心得:Coding & Learning

Dec. 31 20:34~22:08



上次寫年終心得是〈2019年終心得:突破〉,這兩年疫情爆發,也發生了不少事,加上晚上有空,寫個2021年回顧好了。
今年的心得可以用Coding & Learning兩個字來概括。

2021年泰迪軟體的重大事件有:

***

業績

今年泰迪軟體的營業額是成立以來最高的一年,比2019年的高點還要多一點點。雖然因為疫情緣故很多傳統的課程像是Scrum、Design Patterns公開班今年都只開了一次,重構與測試的公開班課程則是完全停開,但受惠於【領域驅動設計與簡潔架構入門實作班】頗受鄉民歡迎,開了好幾梯次的公開班與企業內訓,反倒是增加不少收入。

但【領域驅動設計與簡潔架構入門實作班】之所以受歡迎,源自Teddy在2019年說過的一段話:「研究許久的Clean Architecture(簡潔架構)與Domain-Driven Design(領域驅動設計),今年結合了這兩者,發現無論是在架構上、problem modeling以及coding,軟體開發與維護變得比較容易也更系統化。」

加上從2020年6月底開始,Teddy與北科大軟體系統實驗室的ezKanban團隊開始mobbing,至今花了超過1500小時的時間一起開發ezKanban。在這個過程中大量套用DDD、Event Storming、Clean Architecture、Event Sourcing、CQRS、TDD、Design by Contract(DBC)、Exception Handling、Specification by Example(SBE)、Living Documentation、Continuous Integration、Refactoring等方法,幾乎快把Teddy畢生所學都用在上面。

Teddy很喜歡Kent Beck說過的一句話:「If you stop coding, you stop learning」身為一位軟體開發從業人員,不管到了什麼階段,還是應該持續保持寫程式的習慣。寫程式的目的不一定是要拚production code的數量,而是要從中學習。這種學習的深度,會與所寫的程式數量成正比。寫得越多,領得越多。啊,不對,是寫得越多,學得越多。

今年七月ezKanban幾位研二學生畢業之後團隊只剩下3位學生,後來OIS團隊加入,增加了一搏、二碩、三大,一共六個人。感謝這幾位學生今年和Teddy一起mobbing,度過許多美好的coding時光。

***

畢業

2019年Teddy提到Erica已經能夠獨立作業,在敏捷教練、引導、敏捷需求管理方面也有不錯的成績。今年9月底Erica從泰迪軟體畢業,回到她的家鄉生活與工作。

泰迪軟體一開始就只有「Teddy」一個人,Erica加入之後,幫了很多忙,很多事情是Teddy能力範圍以外,剛好是Erica比較擅長,兩人互補。Erica剛到泰迪軟體的時候,Teddy告訴她:「我沒有把你當成員工,而是把你當成博士生來看待。我對你的責任就是希望能夠讓你有一技之長,別人不是因為你是泰迪軟體的Erica而付你錢,而是因為你是Erica而付你錢。這一天到來,就等於你博士班畢業。」

其實Erica的「點數」在2019年已經集滿,達到畢業的標準,算是在泰迪軟體多幫忙2年。當年Teddy博士班唸了N年,雖然捨不得但終究還是要離開實驗室。「畢業」,是另一個成長的開始,不是結束。


泰迪軟體又回到只有Teddy的公司,反映公司的名稱,可能是當初取名子就已經決定好的宿命XD。

***

感恩


▲難得三喵同床

 

明年Teddy預計將ezKanban部署成微服務架構,在微服務架構上再多花點時間深入研究,同時準備這方面的新課程。另外,最近Teddy找到一個在DDD中簡單落實Living Documentation的方法,明年也會花點時間在這上面。

最後感謝2021年直接或間接金援泰迪軟體的所有鄉民與親朋好友。沒有金錢的幫助,泰迪軟體無法經營下去,當然也就沒有現在的Teddy。

對於一個不拉幫結派、不搞花俏行銷、不造神,相信把自己的專長持續做到最好就有一線生機的笨蛋,還可以在這片土地上生存下去,而且活得快樂、活的有尊嚴。除了感恩,還是感恩。

***

友藏內心獨白:想不到更好的,重複使用了2015、2019年的結語。

2021年9月14日 星期二

有沒有發出聲音?

September 14 10:25~11:16

▲電影《達摩》畫面

 

幾年前讀了某本與禪學有關的書,書中提到一個公案:

「在深山中有一片茂密的森林,一棵大樹倒下,發出巨大聲響,但沒有任何人聽到。請問這棵樹有發出聲音嗎?」

***

梁武帝

梁武帝是一位篤信佛教的皇帝,在電影《達摩》中他與達摩會面,他問達摩:

梁武帝:「自朕登基以來,修佛寺,造佛像,抄寫經卷,供養僧侶無數。敢問大師,朕有何功德?」

達摩:「無功無德。」

***

一棵大樹倒下,它不甘寂寞,怕沒有人知道它輝煌的一生,所以問了大師自己有何功德?

在電影中志公大師對梁武帝說:「皇上本有功德,但常掛口中,要人稱讚,便是刻意貪圖功德。善惡抵銷,也就沒有功德啦!」

***

政客

很多時候,政客為了自己的政治利益,大撒幣搞大內宣,明明沒有任何樹倒下硬是要誇稱自己做了什麼偉大的事。例如:台灣政府購買的疫苗數量已經夠了、廣告說明是劉德華演唱會,現場來的卻是蘆洲劉德華、演講題目是介紹DDD,但實際內容卻是資料庫驅動設計。

正所謂三人成虎,這種似是而非的大內宣,講久了還真的可能有人會相信。反正政客服務的對象原本就不是全體國民,只要能夠騙到「韭菜」就可以了。

梁武帝至少還做了點什麼,但政客型的人,光靠一張嘴騙選票,刻意貪圖功德的本領遠勝於梁武帝。

***

什麼是真的?

什麼是真理?這是一個很困難的哲學問題。樹的確倒下了,但世界上沒有人發現。從人的角度來看,並未觀察的樹倒下,不知道的事情等於不存在,這也是很合理的觀點。

對樹而言,我倒下了有必要到處宣傳讓人知道嗎?

你想要成為怎樣的樹?

***

友藏內心獨白:Quality Without A Name。

2020年10月30日 星期五

能力 = 紀律 * 技能

Oct. 31 17:29~18:10


在北科資工所兼課這幾年,Teddy在每學期第一堂課都會與學生約法三章,要求學生上課:

  • 不能遲到
  • 不可以使用手機、筆電等3C產品
  • 要參與課堂互動

如果同意再修這門課。

***

曾經有一次在檢討考卷的時候學生拿手機拍照被Teddy發現,學生的理由是:「我看不到投影幕上面的字,所以拍照起來放大」。Teddy只能佩服這位學生的臨場反應能力真的有夠敏捷,但什麼理由都不是理由,違反規定一律請出教室。

還有一次在分組討論的時候有學生使用手機,他的理由很正當:「我在找討論內容的資料」。沒什麼好說的,還是請他離開教室。

最近一次是學生把手機放在桌上,用手指滑了幾下手機。這位學生的理由是:「我沒有玩手機,是手機螢幕上有灰塵,我把灰塵清走」。好吧,這位愛乾淨的同學,下次上課再見。

***

Teddy是台北工專電子科畢業的,在那個時代,念書除了學習技能(skill),也很講求紀律(discipline)。能力再好,做事態度隨隨便便,無法成為一位專業的工程師。

幾年前讀了《Management 3.0: Leading Agile Developers, Developing Agile Leaders》,書中提到:

discipline * skill = competence(紀律 * 技能 =  能力)

Teddy看了是相當認同。紀律,不是要無腦的聽老闆命令,或是拍老闆馬屁,而是要遵守團隊或專業領域中做事的共同規範。例如,你自認自己能力很強,沒把團隊的DoD(Definition of Done)當一回事;開會姍姍來遲;不遵守團隊的working agreement。這種人,除非真的是千年一遇的軟體奇才需要特別加以保護,否則不用也罷。

***

在學校上課,學習技能是基本的,但學習紀律的機會就比較少。Teddy兼任的課程剛好都是敏捷開發相關課程,敏捷開發講的就是人和軟體,在課程中加入一些「紀律」的要求,也是理所當然之事,絕對不是Teddy心理變態想要刁難學生。

***

友藏內心獨白:有時候不須講理由,只需承擔結果。

2020年5月12日 星期二

等一個人春天

May 12 14:25~15:50

▲浪浪也會自己生長。


緣起

《Domain-Driven Design: Tacking Complexity in the Heart of Software》這本書出版於2004年,當時Teddy正在念博士班,忙著準備資格考與論文,根本不知道有這本書。後來好像曾經聽過DDD這個名詞,當時自己一直把它腦補成MDA(Model-Driven Architecture)。因為自己對MDA沒什麼好感,當然對DDD也就沒興趣 Orz。

***

一面之緣

2013年,在這本書出版9年之後,Teddy忘了在什麼機緣之下買了它。翻了翻書的內容,覺得:

  • Model-Driven Design和以前學過的OOAD(物件導向分析與設計)建domain model的內容大同小異。
  • Ubiquitous Language是一個新名詞,但是它目的和Alexander的Pattern Language很像—A common ground for communication,而且比Pattern Language還要簡單。

以上這兩個模式(Patterns)算是DDD的核心,先被Teddy給「鄙視」一番。繼續往下看,覺得比較「有用」的模式是:

  • Aggregate,將一群緊密相依的物件放在一起,這是一種人為的模組化單位,可以彌補一般程式語言在Package與Class之間的空白。
  • Context Map,表達bounded context之間的關係。

然後呢?就沒有然後了,書就被Teddy丟在一邊。

***

再續前緣

三年前指導教授想把他手邊的軟體架構這門課交給Teddy來教,Teddy參考了近10本軟體架構的書,最後選了當時剛出版的《Clean Architecture: A Craftsman's Guide to Software Structure and Design》。教軟體架構和DDD原本沒什麼直接的關係,因為實作Clean Architecture核心層(Entity Layer)需要建立domain model,而Teddy又不想只是使用原本OOAD的方法,想起DDD關於建立domain model的一些設計模式,於是又回頭探索DDD。

又過了一年,有一天Teddy在YouTube聽一個DDD演講,內容和講者是誰已經忘了,但是聽到一句ubiquitous language in code,好像被雷打到一樣,突然醒過來。這種感覺,就好像當年六祖慧能聽到金剛經的「應無所住而生其心」一樣,當下頓悟XD。

Alexander的pattern language使用對象是人,人用它來設計住宅以及都市規劃。如果將pattern language應用在軟體開發上,則可以想像成套用了一群(數個)設計模式來解決一個大的設計問題,這也是原本Teddy對於ubiquitous language的看法。

但是,ubiquitous language不只是這樣。DDD的Model-Driven Design與Ubiquitous Language這兩個模式是一體兩面,如果只把它們應用在「概念層次」,只用來作為領域專家與開發團隊溝通的工具,那就只發揮了DDD一半的功力。還有另一半,而且是打通任督二脈的另一半,就是要將Ubiquitous Language表達在程式碼裡面。所以光是只談ubiquitous language還不夠,加上in code,才是畫龍點睛,才是幫佛像開光。

***

自然生長

Ubiquitous language in code,同樣一句話,當時的Teddy聽了有感覺,換成別人就不一定。就算是Teddy本人,如果早個幾年聽到這句話,也不一定有感覺。

奧修在《草木自己生長:禪的真隨》引用禪師齊內林的話:「靜靜地坐著,什麼事都不做,當春天來臨,草木就自己生長。」雖說「什麼事都不做」,實際上並不是「什麼事都不做」。而是以平常心,認真去做好每一件該做的事情。

等到時機成熟,春天到來,草木自然生長。

***

友藏內心獨白:不能揠苗助長啊。

2020年3月11日 星期三

可是誤一生

March 11 12:36~13:47

▲Ada:我有問題!


可是思維

成立泰迪軟體這些年,教過的學員也有數幾千人次。Teddy很歡迎學員發問,從問題中可以了解學員的困難以及學習狀況,也可以檢驗自己的知識是否足以回答問題,並刺激自己思考的角度。

但有一種學員的反應讓Teddy很無言,Teddy稱之為可是學員,他們總是在聽了你的建議之後,經常使用可是作為拒絕改變的藉口。

***

可是學員:我們軟體的bug很多,有沒有什麼做法可以改善這個問題?

Teddy:你們有寫單元測試嗎?

可是學員:沒有。

Teddy:是不是可以考慮先從寫單元測試開始,至少可以確定基本軟體元件的正確性。

可是學員:可是我們工程師都沒時間啊,程式就寫不完了不可能要求他們寫單元測試。而且他們也不知道怎麼寫,專案時程那麼趕也沒時間讓他們學。要讓他們寫單元測試這不可能啦。

Teddy:Code review呢?

可是學員:可是我們工程師程度都不好,沒有能力review別人的程式。

Teddy:難道都沒有資深工程師嗎?

可是學員:是有幾位資深工程師,可是他們覺得code review很浪費時間,沒人想做。

Teddy:是不是可以跟團隊成員溝通,透過code review可以協助資淺人員能力成長,改善產品品質,提升整個團隊的能力?

可是學員:可是公司也不想浪費資深人員的時間,畢竟他們的薪水比較高。公司希望他們專心開發核心程式,而不是花時間去幫其他人做code review。

Teddy內心獨白: (我的棍子放在哪裡!)

Teddy:有試過Pair Programming嗎?

可是學員:我在社群活動中有聽過Pair Programming介紹,可是公司一定不會同意。專案那麼趕怎麼可能讓兩個人一起寫程式,這不可能,打死都不可能。

Teddy:那……找QA或工讀生,用人工測試呢?

可是學員:可是公司根本沒有QA部門,也不可能撥預算找工讀生來測試。

Teddy:那還有一招,外包給客戶,請客戶幫你們測了。

可是學員:我們現在就是這樣啊。

***

挑戰現況

凡事把可是兩字掛在嘴邊,很可能是一種不思改變只想找藉口拒絕改變的反射性動作。如果只是朋友之間互相訴苦,並不是真的想解決問題,那倒也無妨。但若是工作上遇到問題也抱持著這種心態,就無法突破現況並有所改善。

軟體工程,特別是敏捷實務做法,並不是什麼艱深理論,都是經過多年、多人、多團隊、多公司的實務經驗。也許這些經驗與你自己目前狀況不符,但也不要立刻否定,先把它當成一種假設,然後思考要做出何種改變、要如何努力,才有可能讓假設成真。

學員:我們軟體的bug很多,有沒有什麼做法可以改善這個問題?

Teddy:你們有寫單元測試嗎?

學員:沒有。

Teddy:是不是可以考慮先從寫單元測試開始,至少可以確定基本軟體元件的正確性。

學員:我們工程師都忙到沒時間,程式寫不完了要如何讓他們願意寫單元測試?

Teddy:你們應該是把寫production code和test code 看作是兩件事,而工作上只有要求完成production code即可,才會有這種「程式都寫不完了哪有時間寫測試」的想法。

學員:對啊,不都是這樣嗎?

Teddy:我認為單元測試是開發不可分割的一部分,所以做完的定義不是只有production code寫好就可以,應該也要包含足夠的單元測試。這在敏捷開發(Scrum)裡面叫做DoD—Definition of Done。藉由調整DoD(逐步增強),可以改善團隊的產品品質。

學員:聽起來滿有趣的,但我們團隊目前都沒有這樣的觀念,還是停留在犧牲品質以便趕上進度的狀況。短期間或許可以交差,但是對公司來說中長期發展會受到傷害。像最近客戶對於品質不良的抱怨聲音就很大,而且團隊成員工作也沒有成就感,流動率很高。

Teddy:解決方法不一定只有或只是單元測試,還有很多種解決方案,依據你們專案的情境(Context)可以選擇不同的方式。

學員:我回去跟我老闆討論一下,看看有沒有可能找一個新的小專案來試看看,做出一些改變。

***

想解決問題但卻不想做出任何改變,只想從別人口中聽到「你好辛苦」、「你好委屈」、「你好棒棒」、「公司好爛」、「同事好混」這類的話,那還是不要開口問Teddy問題好了。

***

友藏內心獨白:這樣不就不溫柔了XD。

2019年12月31日 星期二

2019年終心得:突破

Dec. 31 08:45~10:02


停了三年沒寫年度心得報告,前幾年的心得分別是〈2012年終心得:堅持〉、〈2013年終心得:淡定〉、〈2014年終心得:專注〉與〈2015年終心得:學習〉,今年的心得可以用「突破」兩個字來概括。

2019年重大突破事件包括:

***

業績

今年泰迪軟體的營業額是成立以來最高的一年,說「高」也沒有到達真正「發大財」讓Teddy可以財務自由提早退休的地步,但的確是比往年都要來得好。

Teddy 猜想可能是敏捷在台灣近幾年比較流行的關係,市場變大,機會也變多了。泰迪軟體從2012年7月成立至今,始終沒有改變初衷,持續耕耘於敏捷開發的各個主題上,因此累積了許多老客戶。很多新的業務機會都是靠老客戶介紹,真的非常感謝。因為除了寫寫部落格,在Facebook上發發廢文以外,Teddy也沒什麼行銷能力去拉新客戶,只能被動地靠口碑行銷了。

***

同事

泰迪軟體只有兩位員工,Teddy與Erica。Teddy在〈2015年終心得:學習〉提過,Erica到泰迪軟體之後Teddy一直抱持著「訓練博士生」與「培養合作夥伴」的態度來與Erica互動。2019年Erica已經能夠獨立作業,在敏捷教練、引導、敏捷需求管理方面也有不錯的成績。

今年公司業績創新高有很大一部分也是因為Erica獨立接案的關係,畢竟Teddy一個人一年能夠賺的錢也就那麼多(少 Orz),公司有「兩顆CPU」當然是要「並行處理」才能夠擴大營收XD。

***

Teddy

精實開發有一句話:「沒有最好,只有更好」,今年Teddy也有一些長進。研究許久的Clean Architecture(簡潔架構)與Domain-Driven Design(領域驅動設計),今年結合了這兩者,發現無論是在架構上、problem modeling以及coding,軟體開發與維護變得比較容易也更系統化。

Teddy一直相信敏捷開發是一種軟體從業人員追尋「The Timeless Way of Software Development」(軟體開發的永恆之道)的一種嘗試。永恆之道,沒有固定的形式,但任何認真於此道的人只要一看到就會知道:「啊,對了,就是這個樣子。」

這就是Quality Without A Name。

***

另外一個突破就是為了明年三月在台灣舉辦的AsianPLoP 2020暖身,Teddy在年底辦了一場【模式寫作工作坊】,幾位參加工作坊的朋友也開始嘗試撰寫模式(Pattern)。撰寫模式是將自己的專業知識淬鍊之後以精簡的語言與固定格式表達與分享的一種過程,這是一條辛苦的路,Teddy很高興有朋友願意一起嘗試,Teddy也很願意花時間幫忙這些朋友們修訂他們撰寫的模式。

2020年1月還有【模式寫作工作坊第二梯次】,有興趣的朋友可以參考。

***

最後還有一個突破就是Teddy今年收編了一隻浪浪,叫做Pascal。說是收編,其實是Teddy被收編。

Pascal是Teddy餵養三年多的浪浪,他一開始跑到Teddy家的窗戶外偷吃Teddy準備給另一隻浪浪的飼料,一直持續三年多。有一天他突然消失一個禮拜,Teddy以為他出意外已經往生了,沒想到一個禮拜後他又突然出現,但此時他的左眼破裂,整隻貓也瘦到皮包骨。

看到餵了這麼久的浪浪受重傷實在於心不忍,於是Teddy買了捕貓籠,將他抓起來送醫治療。治好後恢復健康,但剩下一顆眼睛怕他無法適應街頭的生活,於是就將他收編了,取名Pascal。

▲Pascal本貓

Teddy家裡原本已經有Eiffel與Ada兩隻母貓,不過當初都是向「流浪動物花園協會」領養而來,約六3~6個月左右的幼貓,而且已經有人幫忙「整理過」了,比較親人。不像Pascal是成年公貓,而且又是浪浪,第一次收編還是有很多需要學習的地方,也算是有苦有樂。這就是人生啊。

▲Eiffel(虎斑)與Ada(橘白)

***

感恩

最後要感謝2019年直接或間接「金援」泰迪軟體的所有朋友們。沒有金錢的幫助,泰迪軟體無法經營下去,當然也就沒有現在的Teddy。

對於一個不拉幫結派、不搞花俏行銷、不造神,相信把自己的專長持續做到最好就有一線生機的笨蛋,還可以在這片土地上生存下去,而且活得快樂、活的有尊嚴。除了感恩,還是感恩。

***

友藏內心獨白:最後重複使用了2015年的結語。

2019年5月20日 星期一

2019 iMac 27吋開箱

May 20 20:58~22:31


Teddy手邊2016年購買的MBP 15”用了兩年半,已略顯老態。平常上網、文書處理是沒什麼問題,但只要同時開啟Parallels與IntelliJ,加上數十個分頁的Chrome,整台電腦跑起來就會有點卡卡的。

今年決定不要再買筆電,改買桌機。本來考慮iMac或是Mac Pro,但Mac Pro遲遲未上市,最近寫程式的頻率比較高,等不及Mac Pro決定先買2019年iMac。


▼美國今年三月就上市,台灣等到五月七日才開放訂購。這次狠下心來攻頂,購買最高階i9版本。


▼記憶體選擇最基本的8GB,自己另外購買4條OWC 32GB RAM,擴充為128GB。


上禮拜六(5/18)11點多iMac送到家裡,但我人卻在台南。隔天下午回台北後,趕緊開箱。


▼打開後包裝很簡潔。


▼把螢幕撲倒準備加裝記憶體,後來發現其實螢幕立著也可以裝記憶體,不用撲倒。


▼連接電源線的位置有一個按鈕,用十字起子用尖尖的東西刺一下,記憶體被蓋就會彈出。


▼兩條內建的4GB記憶體。


▼鍵盤、滑鼠、觸控板。原本考慮是否要買附數字鍵的鍵盤,但顧及桌面空間,以及之前已經用了六年多的無數字鍵的鍵盤也還算習慣,最後還是選擇無數字鍵鍵盤。這一代的鍵盤、滑鼠、觸控板都內建鋰電池,可以直接充電,方便很多。


▼開機後開始設定。


▼2019 iMac 27” 可以安裝128GB記憶體,Apple Store最多只可客制到64GB,而且價格比自己到外面購買要貴一倍。如果需要擴充記憶體,還是自己動手比較省錢。


▼因為經常需要使用Windows,此次特別買了專業版的Parallels,可以設定比較大的記憶體給VM使用。

***

剛拿到iMac兩天,目前只有一個問題,就是iMac不能調高低,Teddy覺得iMac螢幕高度太高,和以前使用的螢幕高度比較來脖子要稍微抬高,有點不舒服。

桌機的速度還是比筆電快很多,價格也比較便宜。像Teddy這種使用習慣,應該老早買桌機才對。只要搭配一台輕巧、長效的Windows筆電外出使用即可。

***

友藏內心獨白:爽度破表XDD。

2019年5月14日 星期二

三小故事之這不是多型,什麼才是多型

April 14 09:55~10:33

▲貓也是多型的生物


多型的定義

一個訊息的含義,是由訊息接收者所決定,不是由訊息發出者所決定。

***

故事一

幾年前有一個外商網通公司的HR找Teddy去他們公司擔任半年的Scrum Master。當時因為有顧問案在身,只能婉拒。

HR退而求其次,希望Teddy幫他們介紹合適的人選。Teddy請對方提供徵人資格條件,看了之後Teddy委婉的說:「你們要求的標準很高啊!」。沒想到對方居然說:「對啊,我覺得好像在找聖人一樣。」

這個故事Teddy講過好幾次,主要是要強調「好的ScrumMaster難尋」。沒想到有一次跟客戶講到這個故事,對方好幾個人居然異口同聲的說:「Teddy你是說你是聖人嗎!」

冤枉啊,包大人。小的從來都沒這麼想。也許客戶是跟Teddy開玩笑,不過還真沒想到這個故事可以被這樣解讀啊。

***

故事二

好幾年前在一個介紹Scrum的演講中,休息時間有聽眾問Teddy…

聽眾:在跑Scrum的時候怎麼設計軟體架構?

Teddy:這個問題很多人都有疑惑,我以前去上Bas的CSM課程也問過她同樣的問題。我問他,跑RUP會建議在elaboration階段產生architecture baseline,跑Scrum要怎麼設計軟體架構?

聽眾:他怎麼說?

Teddy:他反問我…什麼是architecture baseline?

聽眾:你是說Bas不懂軟體架構?

Teddy:不是啦,我是說,Scrum根本不管這些,跑敏捷的人會告訴你,軟體架構是長出來的,不是事先設計出來的。該怎麼長就怎麼長,你自己慢慢長吧你XD。

怎麼會解讀成Bas不懂軟體架構哩…

***

故事三

有一次在 C C Agile介紹TDD/BDD/SBE,Teddy提到…

很多TDD的例子,都有兩個特色。第一,domain model很簡單,只有1~2個類別。其次,都有非常清楚的商業邏輯, 這樣子學習者才可以在很短的時間內體驗TDD。例如,保齡球計分、網球記分、電子商務系統結帳計價、郵寄系統。

但是,回家之後發現,自己手邊的案子,domain model都很複雜,商業邏輯不太清楚,所以都D不太出來。

結果回家後,有鄉民又私下問Teddy…

鄉民:Teddy你剛剛是在暗指XXX的TDD例子都太簡單對不對?

Teddy:XXX?你說Uncle Bob嗎?我又沒上過他的課怎麼會知道他的例子長什麼樣子。

Teddy:我只是想指出,快速學習TDD所用的例子,和實際工作上會遇到的專案,有一些距離。而這些距離需要被克服才可以落實TDD,你想到那裏去了。

鄉民:!#!@$%

***

結論

年輕的時候,很怕被「誤會」。只要覺得別人誤解自己,就好像受到天大的冤屈,恨不得找包大人來主持公道。從某種角度看,這是一種沒有自信、缺少歸屬感的表現。

幾年前讀了幾本哲學、禪的書,越發體會Quality Without A Name 的道理。反正不管是真話、假話都無法驗證,那就不用管那麼多,全心專注在 Quality 上面。用自己的生命去展現這個 Quality,然後只要加強被討厭的勇氣就好了 XD。

***

友藏內心獨白:你今天被討厭了嗎XD。

2019年3月29日 星期五

Scrum讓你家庭更幸福

March 29 07:06~08:08

▲畫面節錄自維基百科


家庭也是一個團隊

昨天到信義區對一群非資訊業的美女、帥哥主管介紹敏捷精神。談到Scrum團隊cross-functional team(跨職能團隊)的時候,Teddy開玩笑說…

Teddy:很多人家庭不幸福,因為他們的家庭採取專業分工的component team。小孩只負責做小孩該做的事,只要乖乖讀書就好,什麼家事都不用幫忙。爸爸只負責賺錢,回家一屁股坐下來,不是看電視等吃飯,就是打電動。媽媽最可憐,下班之後還要煮飯、做家事、顧小孩。

Teddy:這是一種「區域最佳化」的做法,每個人都扮演好自己的「專業」,感覺好像很有「生產力」,但卻沒有顧及整個家庭價值鏈的最佳化。

***

魔戒遠征隊

很多人對於導入Scrum從專業分工的component team轉換到交付價值的cross-functional team,一開始在觀念上無法接受。「我是一位UI/UX設計師,現在Scrum團隊中明明就沒有符合我專長的工作,那我要幹嘛?」

還記得電影魔戒中的魔戒遠征隊嗎?魔戒遠征隊有兩個特性和Scrum團隊很像:

  • 跨職能團隊:團隊中包含了完成任務所需要的各種人才,包含巫師、人類、矮人、精靈、哈比人,每個角色都有特定的專長。
  • 自組織:這個特性是到團隊組成中期之後才出現,一開始團隊沒有共同目標,有的人是想完成消滅魔戒的任務,有的人是陪鄰居出門郊遊、有的人是想要搶魔戒、有的人是老闆派來的、有的人是憂國憂民的先知。到後來大家確定共同目標就是要消滅魔戒,各自盡其所能來達成這個目標。

如果你是魔戒遠征隊的哈比人「山姆」,你原本的「專長」是負責煮飯。遇到強獸人來攻擊,你可以說:「我只負責煮飯,不負責打仗。你們慢慢打,我要繼續煮飯了」嗎?當然不會,此時煮更多的飯已經沒有意義,你會拿起短刀,在旁邊偷偷地刺啊、刺啊。就算不能對敵人造成致命攻擊,但總也是想盡辦法幫助團隊其他成員達成退敵的共同目標。

***

當作自己的事

Teddy覺得,敏捷講到底,也沒什麼大學問。就是好好過生活,認真做事,活在當下,去感受各種 forces(作用力、限制條件)。提升自我能力,靈活地面對這些 forces 做出反應,讓身處的環境回復到一個穩定的狀態,繼續面對新的 forces。

很多人在公司跑敏捷,覺得痛苦、遇到阻礙,講到底也都是人的問題。從個人的角度來看,如果把手中的工作看成是「別人的事情」、「公司的事情」、「我只是領薪水的」,做事的動機、態度、積極性自然和「這是我自己的事」差很多。

但這也不能怪員工,因為很多時候公司的大環境、文化,迫使員工採取保守的做事心態,少做少錯,防弊重於興利。但無論如何,認真做事、認真過生活,不管公司待你如何,這種做人處事的態度,會跟著自己一輩子,別人是搶不走的。

反正跑不跑敏捷都要痛苦,還不如嘗試點新鮮的玩意,苦中作樂、苦中學習,也是一種不錯的選擇。

***

廣告

對於敏捷開發、Scrum有興趣的鄉民,可參考泰迪軟體的【Scrum敏捷方法實作班】課程,上課日期為4月27、28日(六、日)。

***

友藏內心獨白:小刀刺久了也是會有殺傷力的。

2019年2月27日 星期三

鍛鍊你自己的九陽神功

Feb. 25 23:07~23:34


幾年前在上【單元測試這樣學就會了實作班】的時候有一位學員問Teddy…

學員:我在公司組了〈xUnit Test Patterns: Refactoring Test Code〉讀書會,但是效果不好,還是看不懂書中在講什麼。

Teddy:先撇除英文的因素,我覺得妳們看不懂是很正常的。首先,這本書在講測試,但你們很多測試的基本知識都缺乏,所以看不懂。其次,這本是是用模式(pattern)的方法來講測試,你們也不懂pattern,像是pattern的六大格式,所以讀起書來抓不到重點以及各個pattern之間的關聯性。

***

上禮拜四中午跟學生meeting,指導教授也來參加。我跟他們快速介紹event storming與DDD的aggregate和repository設計,前後大概花了10~15分鐘。指導教授當然是完全聽懂,學生「表面上」也聽懂了,但Teddy猜想實際上學生應該還不太懂,因為這些東西平常Teddy大概至少要花1~2小時來解釋。

在身邊認識的人裡面,大概也只有跟指導教授討論事情,可以享受光纖通訊的高速頻寬。大部分遇到的學生,溝通頻寬都還處在用modem撥接的速度。

***

這個時代大家做事情都在講求快速,但在讀書這件事上面Teddy動作很慢。經典好書,不是買回家之後「假裝看完」就沒事了,而是要看懂。這個過程,絕對不是看過1~2遍那麼簡單,至少看個5~6遍都是很稀鬆平常的事情。

把一個問題徹底弄清楚,有時候需要2~3年的時間的反覆迭代、沈澱、發酵。緣分到了,問題也就想通了。

知識的層次就是這樣一層、一層的累積出來。馬步扎得深,成為日後吸納新知的加速器。電影倚天屠龍記裡面張三豐說:「有九陽神功護體,學什麼功夫都快。」Teddy年輕時第一次聽到這句話,覺得哪有這種事,完全不符合邏輯,鬼扯。

老了之後才發現,這句話是真的XD。

***

友藏內心獨白:九陽神功就是你的學習力。

2019年2月1日 星期五

繞過去,好嗎?

Jan. 31 23:07~23:58

▲逢山開路,遇水搭橋


問題

從去年開始Teddy和指導教授一起帶幾個實驗室學生做研究,目前遵循clean architecture的方法正在開發看板軟體。一個多禮拜前學生問Teddy關於Repository的介面設計,經過討論後Teddy請他們做點研究,下次開會再談。

今天回學校和學生開sprint review會議,順便請學生說明他們研究Repository的結果。學生告訴Teddy他們發現有兩種Repository的設計方法,第一種是接受由外部給定的specification當作查詢條件,可以比較有彈性的支援多種查詢條件。第二種是在Repository介面上設計常見的方法,例如findAll、findById、findChildrenById等。

學生採用第二種設計方法,聽了請他們選擇的理由後,Teddy還是覺得不滿意(forces沒有被平衡XD)。於是請學生把domain model叫出來,一起讀過一次,發現他們所採用的Repository介面設計無法支援domain model的所有物件。

***

程式可以動啊

學生寫的程式可以動,這個sprint所完成的user story還算做得不錯。但是,如果細看軟體設計,其實還有不少可精進之處。

Teddy告訴他們:

Repository的問題還沒徹底解決,雖然程式可以動,但是如果不管這個設計問題,繞過去,以後你們還是有很大的機會會再遇到它。你們是研究生,專案中遇到問題應該利用機會把問題搞懂,徹底解決。日後遇到同樣的問題,既使context不同,別人花三天,你們只要花一小時就可以解決。層次與專業就是這樣累積出來的。

這個問題,最好的解決方式就是你們搞懂後做出設計的決定,然後說服我(教我)。次一等的解決方式,就是我弄懂後教你們。最糟的方式就是不管它,反正程式可以動就好。

***

Repository Pattern

因為Google太方便,所以學生遇到問題尋找資料,大多下個查詢條件,然後看最前面的幾個連結之後就做出結論,草草結束。Teddy在〈增進學習力的三個練習〉提到,首先要知道名詞的定義。學生只知道可以套用Repository pattern,但很可能對於該pattern的定義只是一知半解。

在《Patterns of Enterprise Application Architecture》的第322頁就介紹Repository pattern。在《Domain-Driven Design: Tacking Complexity in the Heart of Software》以及《Implementing Domain-Driven Design》也都有提到,後者並且包含範例程式碼與實作細節。

***

龜毛

大家都說日本人做事很龜毛。同樣的商品,例如Toyota汽車,MIT和MIJ,相信大部分的人還是比較喜歡日本原裝進口。為什麼?因為組裝的人不一樣啊…Orz

軟體開發是一種專業,就好像醫生也是一種專業。你總不希望醫生開刀的時候遇到問題「繞過去」吧?!反正 程式可以動 人還有呼吸就好XD。 

***

友藏內心獨白:書還是要讀,不能只看網路文章。

2019年1月28日 星期一

台北101蘋果直營店送修MBP

Jan. 28 17:06~18:15


電池膨脹

▼Teddy有一台2016年購買的MBP 15”,平常當作桌機使用,附加功能就是Eiffel與Ada的熱墊。


去年12月初,無意中發現MBP的螢幕無法蓋起來,仔細一看才發現應該是電池膨脹。聯絡Apple 線上客服,把照片傳給客服人員,對方也覺得是電池膨脹,請我不要再使用電腦,趕快送修。

研究了一下網路上的資料,打算預約台北101蘋果直營店送修,但刷了好久的網頁全部時段都是預約額滿,根本無法松修。退而求其次找台北車站的Studio A,也是預約額滿。後來12月中出國,就拖到今年才處理。

***

僥倖預約成功

回國後又忙了一陣子,眼看MBP「大肚便便」,深怕有一天電池爆漿,要是把整台筆電都弄壞就慘了。最後放棄送修台北101蘋果直營店的想法,預約了德宜台大店,雖然網路上似乎風評不佳,但只有這間離Teddy家還算近的蘋果授權維修店還有預約的名額。

但是,有一天晚上失眠,1點多左右突然看到台北101蘋果直營店有一個送修時段。預約成功的當下,感動到快哭出來,比中了200元發票還高興XD。


***

送修


1月24下午提早一個小時出門,沒想到塞車加上找停車位,最後趕在3:11分才到達蘋果門市。現場狀況就跟網路上描述的一樣,人很多,標示不清。更精確地講,沒有任何標示。據鄉民表示送修要在一根大柱子旁排隊,走到大柱子旁抓了一位穿黑色外套紅色T恤的店員,確認這裡是送修的排隊隊伍。之後就等待蘋果的維修人員有空時會來找你確認資料。

等了不到10分鐘,就輪到Teddy。確認預約資料後,被帶到大桌上等待維修人員。

▼2~3分鐘後維修人員來,Teddy告知MBP疑似電池膨脹。維修人員看了一眼馬上就確認,真的是膨脹XD。二話不說開了維修單,做了基本的硬體檢查之後,告知Teddy換電池連同鍵盤與觸控板會一起換掉。因為Teddy有購買蘋果的延長維修服務,MBP用了兩年還在保固期內,所以不需付費。


送修過程還算順利,下午3:30我就離開蘋果門市,整個過程約20分鐘。

以下是維修費用,如果沒有保固要自負15,514元(未稅)。當初購賣AppleCare花了11,334元(未稅),算是有賺回來XD。


***

維修完成

Teddy要維修的零件有庫存,預計3~5天可完成。1月24下午送修之後,隔天1/25晚上7點就收到維修完成的通知。但26、27日Teddy剛好要上課,等到今天才去取件。

取件的過程一樣不知道要去哪裡排隊,問了店員,原來就在送修隊伍的右手邊走道。核對證件之後,很快拿到筆電。確認可以開機,看起來沒什麼問題就走人了。

***

後記

蘋果直營店的店員很客氣,但不知道為什麼,透著一種刻意想要營造某種氛圍的感覺,不知道用什麼言語形容(Quality Without A Name…XD)。

可能是電池膨脹的問題比較沒爭議,所以送修過程很順利。但前提是,你必須能夠預約到蘋果直營店…Orz。

***

友藏內心獨白:新的iMac什麼時候才要上市啊(敲碗)。

2018年7月3日 星期二

LG gram 15Z980-R.AAS9U1 (2018) Amazon 購買與使用心得(下)

July 3 09:39~11:45

螢幕截圖 2018-07-03 11.43.37

▲LG gram 15吋比MBP15吋略寬、長度略短


開箱

▼快遞送來時的箱子。

螢幕截圖 2018-07-02 22.59.18


▼打開後有點傻眼,白色的紙箱上居然有很多黑色的指紋。

螢幕截圖 2018-07-03 09.42.07


▼而且很明顯地筆電的封條已經被拆開,這種情況只有兩種可能:(1)拿到別人退貨的商品;(2)商家自行拆封安裝RAM與硬碟。不管是哪一種情況,至少也把盒子擦乾淨一點吧…Orz。

。螢幕截圖 2018-07-03 09.44.00


▼打開盒子。

螢幕截圖 2018-07-03 09.47.30


▼內裝很單純:筆電、電源線、一條無三小路用的USB-A轉100M的網路線。這肯定是清庫存,都什麼年到了還配100M的有線網路,直接用WIFI還比較方便。有線網路好歹也給個1G吧。

螢幕截圖 2018-07-03 09.50.36


▼用單手就可以輕鬆打開上蓋。

螢幕截圖 2018-07-03 09.55.21


▼鍵盤的排列方式,沒有注音符號好像比較清爽一些。

螢幕截圖 2018-07-03 09.56.34


▼開機,第一次開機會執行Windows 10安裝。這是Teddy第一次買Windows 10筆電,之前都是在MBP中安裝Parallels跑Windows 10。

螢幕截圖 2018-07-03 09.57.49


▼安裝過程就不用看了,這是筆電內建的兩顆SSD硬碟。查了一下型號是海力士的M.2硬碟。

螢幕截圖 2018-07-03 10.00.08

***

始用狀況—優點

這台筆電主是Teddy帶出門上課使用,平時在家裡還是用原本的MBP。筆電有兩顆512G SSD,C碟裝系統,D碟裝資料。Teddy把Dropbox設到D碟,目前空間分配還夠用。雖然內建的SSD速度並不是特別快,但Teddy也沒要用它做什麼偉大的事,暫時就先這樣。

把軟體都裝好後,還沒有機會帶它去上課。先說一下目前的使用感覺,先看優點:

  • 重量非常輕。這也是Teddy購買它的主要原因之一。
  • 續航力(理論上)應該很長。官方數據是16.5小時,打個五折至少也可以用的8小時。目前還沒機會帶去上課,過一陣子在報告實際使用續行狀況。
  • 開機速度很快,從按下開機扭到登入Windows約需20~25秒。從睡眠狀態按下電源鍵不用3秒就可喚醒(真的有在睡眠嗎?!)。
  • 電腦機身不會很燙,拔掉電源之後放在大腿上使用都OK。
  • LG 的軟體做得很好,重裝Windows之後只要下載LG Update Center軟體,就會自動幫你抓所有的驅動程式。
  • Windows 10的手勢操作,在切換虛擬桌面這一點和MacOS很類似(這可能是Teddy最常使用的手勢XD),所以原本在MBP上的「上課使用體驗」:一個桌面開PowerPoint秀簡報、一或多個桌面開IDE看程式碼、一個桌面開時鐘倒數計時,換到Windows 10筆電還是差不多。
  • 喇叭音效還不錯(沒有MBP好但也不錯了)。
  • 開啟一個130頁的PowerPoint只要二點多秒,播放投影片中嵌入的影片或外部連結影片也都很順暢。
  • 效能不是頂尖但尚可接受。LG gram開啟IntelliJ專業版約需16秒,MBP則只需10秒多一點點。LG gram的速度比MBP慢可能是SSD速度的關係,不過也還在可以接受的範圍。目前還沒有在LG gram寫程式的機會,日後有機會在分享coding的感覺XD。
  • 可重複使用type-c轉接器。原本給MBP使用Apple原廠的type-c轉VGA + type-a + type-c充電轉接頭,接在LG gram的Thunderbolt 3 type-c連接埠上可以投影。

螢幕截圖 2018-07-03 10.58.57


接上Teddy原本給MBP使用的CalDigit Thunderbolt 外接盒之後,可以支援雙外接螢幕顯示。


  • 支援Thunderbolt 3 type-c連接埠充電。在筆電送來的第一天,就被Ada給整台踢到桌下。螢幕背蓋刮了一條痕跡,非常纖細的充電器接頭也因此斷掉了…Orz。還好可以透過type-c連接埠充電,不然Teddy真的要哭哭了。

螢幕截圖 2018-07-03 11.02.00


▼當事貓在此,可能要教導Teddy世事無常,不可入相的道理,所以每天努力地搞破壞。

螢幕截圖 2018-07-03 11.04.45


  • 觸控螢幕功能可透過軟體關閉。觸控螢幕雖然方便,但有時候不小心碰到反而造成困擾。不想使用這個功能可以透過軟體關閉觸控螢幕。

***

始用狀況—可以更好

接下來談一下Teddy認為還可以更好的地方:

  • 觸控板小小一塊,雖然堪用但按下去「咖咖」的聲音和MBP的觸控板比起來差了一截。
  • 亮面觸控螢幕,稍微手碰一下就會在螢幕上留下痕跡。
  • 不知道是不是輕薄筆電的緣故,Teddy覺得LG gram的USB type-a與type-c連接埠在拔插時都很緊,要用點力。
  • 內建的SSD如果可以用料好一點,選用速度比較快的硬碟就更好了。
  • 內建的HDMI應該是 HDMI 1.4(規格書沒寫,Teddy也查不到),實際測試結果只可輸出4K 30Mz。

***

結論

Teddy沒有用過其他Windows 10的筆電,也許其他筆電也有相同的優點但Teddy無從得知。所以Teddy的評論只可視為從MBP轉移到LG gram的一種感受,同時具備輕薄與長效這一點目前看起來是無庸置疑的。

但也許等Teddy開始在LG gram上面寫程式,又會嫌它速度太慢也說不定XD。

***

友藏內心獨白:魚與熊掌何時才可兼得?!