工作近況
整合
整合產品就麻煩的環境問題,尤其是大型程式開發,現在又同時有併發、平行等需求,其他產品的優化方式非常特別,各自測試都沒有問題,一整合就出事,接著就是一陣暴打如發生以下幾種狀況,不外乎就是連繫到我身上。
- 噴了一排錯誤,但第一個警告訊息來自你負責的功能
- 許多執行緒的 stackstrace 錯誤,列表第一個的你負責
- 負責整體監控系統,註冊了所有錯誤訊號處理,你回報了錯誤
- 噴了一個錯誤,stackstrace 貫穿了好幾個函數,而你是最後一個
滿滿地無奈,在這如此大型的程式開發下,沒有多少人能釐清問題所在。分工之細,只能四處找人通靈。
十月過後,工作就滿四年。在這四年間,代碼的提交次數也逼近七千次,登上了第一位。一部分的原因也在於修改的技術面比較通用,只要出現一則鬼故事,就得去調整整體的使用方法,再透過正規表達式去修正所有關聯代碼。但不是那一種單檔修改就一個 commit,數量之多會拖累前測的工作量,再來是 revert 操作可能過於複雜。的確看起來很不軟體工程,無疑是有點特殊狀況。個人佔有如此大的修改比例,很容易引火自焚,瑣碎的小錯誤都只能交付到自己。在緊急狀況下,與其用講的交代下去,不如一肩扛起,工作量便越來越不樂觀。
測試
拖了一年的規劃,總算把 JDI (Java Debug Interface) 掛上了覆蓋率測試,不同於單元測試的覆蓋率。原先的單機框架中,動態分散測試點到不同的 JVM 平行測試,盡可能地達到負載平衡,因此就不知道怎麼搭覆蓋率的套件,最後不得不讚嘆原生的 java agent 和 reflection 機制,偷偷用了一些黑技術才完成。覆蓋率終於由 16% 提升至 36%,以後就更方便知道哪些檔案有測試。
待續
忙了好一陣子的 tcl interface,上層下指令要有些做好 3D Viewer,兩年前規劃的 3D Viewer 恰好派上用場給個交代,那時嘗試做了一個小原型,也未能滿足所有需求。實際做起來問題之多,就像玩了十年的《楓之谷 Maplestory》,突然要求做個 3D 版本一樣,如何操控角色、過場動畫、使用模型、載入模組等問題逐漸浮出,一個人恐怕做不好。跨平台環境的戰爭,肯定在等著我。
生活雜事
Serendipity
交友方式千奇百種,曾經讓朋友在我忙著 coding/論文的時候替我回覆訊息,結果幾年後湊了一對基友。9/15 那日,ptt 上收到來自一個多月前的文章回信,自述「受朋友委託,幫忙在 github 看我曾寫的 source code,感興趣便跑去看部落格文章,追了幾篇文章,其中提到 ptt 文章 … 然後就送信了。」那時我心想是哪一個 source code?卻看到「批改娘」,第一個反應是「學弟是不是用美人計想騙我回實驗室」。
某日夜晚
一般來說,在路邊看到漂亮小姊姊能閃則閃,因為十之八九都是推銷,一旦下起雨來,也只能硬著頭皮上了。果真還是被纏上了,甚至跟著撐傘走一大段路
「你們哪間公司的?」正想著甩掉
『O O O O』
「這個我知道,之前有告過你們公司耶」
『那沒事了,謝謝』
朋友普遍表示:「都沒被搭話過,我看起來又窮又宅 … 我不在她的考慮範圍內 …」
某日清晨
朋友普遍可以做到「還沒睡著,天就亮了」、異常的我則是「醒來,天還沒亮」,深刻體會到自己老了。從小就被訓練得很早睡,隨太陽而起。嘗試的那幾次熬夜,隔天都不太像自己。而飛往美國出差的那幾次,調時差的自己就像廢人。
某日正午
高中資訊老師打了通電話聯繫我,這不是第一次,仍然能讓老師們記得,備感榮幸。大學畢業前詢問我要不要回去當老師,那時的我正苦惱無法通過畢業門檻。現在被感覺好像步入正軌,實際上在職場上卻感到力有未逮。這一次,被交付指導小學弟一些程式問題,而那是曾經我出的題目,那時的技術力也不夠成熟,老是被說測試資料不夠好,被指出標準答案的一些漏洞,想起來就是滿滿的黑歷史。
老師隨口一句「現在在哪工作? … 結婚了沒?」不經淚下,在公司合作的老同事,也聊著聊著問道「聽說升了主管,不錯哦。 … 這麼快就吃完飯,在家工作?有結婚?老婆了嗎?」已經回不去那個幼稚的我,也得開始面對人生課題。
二十八
恭喜 morris821028 抵達了 28 歲,老是想小小地抱怨,要是 11 月生,整串就是可以迴文了。海外的小夥伴總是覺得 1982 年生的老傢伙,怎麼這麼活躍。
住址上滿滿的 28 號碼,近期稅單上也正好著 1028,繳費單上也也有不少的 28,就像著「巴德爾邁因霍夫現象 Baader Meinhof Phenomenon」 其中的證實性偏見,巧合般的重複,不斷地在意著。
不同過往的日子,難得在生日那一日,走出房門,體驗著好多沒想過的事。