不早也不晚,2018年11月15日 deepin 15.8 如期發(fā)布。這雖然是個好消息,但是沒有了延期的梗,我竟然不知道這篇研發(fā)心得應該如何開頭……??
開頭這件事情總是很難,因為要做到一些以前沒有做到的事情,就要求能將自己的水平提高哪怕那么一點點;同時,開頭也不宜于高調,高調的開頭太容易造成虎頭蛇尾以致不能堅持的局面。在我的價值觀里,與其浪費時間和精力在不能堅持的事情上,還不如什么都不做。所以很多事情我都不愿意開頭,就像寫這篇研發(fā)心得一樣。

不過,幸運的是我們對發(fā)布系統(tǒng)這件事情倒是充滿著熱情,以至于我們能在每一次系統(tǒng)發(fā)布的“輪回”里,都無所畏懼地開頭并且堅持如一。比如 15.4 的毛玻璃效果、15.5 的高分屏、15.6 的應用深色主題、15.7的性能優(yōu)化等等等等……當然,這次的主角 15.8 也不輸從前。
新特性介紹
15.8 中新的變動著實不少,但是從一個研發(fā)的角度來看,我覺得最重要的變化應該是組織系統(tǒng)開發(fā)和發(fā)布的人發(fā)生了變化。之所以說這個比較重要,是因為 deepin 的前輩們把接力棒交到我這里,我終于可以把它順利地轉交到合適的人手中了,這句話的言外之意是什么呢?就是大家以后如果遇到什么 bug,進門左轉找 @zccrs ??。
說明了以上信息,就可放心地介紹這次的新功能了。不過說實話,這次的新功能都相當直觀,用不著我費什么口舌,再加上本次研發(fā)心得的重點不在此,所以大部分的新功能請看 系統(tǒng)發(fā)布新聞,這里只說兩個我最喜歡的點吧。
第一個要說的,是15.8 的新功能里面最讓人驚喜的 Dock時尚模式 的托盤插件 的設計調整:

為什么呢?這主要是因為以我的聰明才智,都一直認為時尚模式的托盤是一個無解的問題:系統(tǒng)托盤占用大量空間,應用托盤使用不方便……除非引入類似 macOS 的 topbar (估計很多人也是這么想的,所以都默默地在商店里面安裝了 deepin-topbar吧)。事實上,當時我們討論解決方案的時候也是差不多一樣的狀態(tài),每個人都欲言又止,顯然是還沒說出口的方案就被自己推翻了,然而就在這個時候,設計師默默地上了一副設計圖,把所有的應用托盤也放大成了與應用圖標無異的大小。
我:???!?!?(黑人臉
我剛要扔臭雞蛋,設計師咔嚓又上傳了一張圖,仿佛在說 “蛋下留人~” 而轉機就這樣發(fā)生了,我看到設計圖,就如大家在15.8看到的Dock時尚模式一樣,托盤問題竟然被 almost 完美地解決了——在最后的關鍵時刻設計師保住了自己的顏面。
怎么說呢,這基本上是我在深度繼看到一個開發(fā)同事用鑰匙給電腦開機感到由衷地佩服以來,再一次罕見地(尤其是被設計師???)覺得世界觀被刷新的一次體驗了。
另外一個要提的是一個很小的點,不過現(xiàn)在想起來都會有一種吃了廣告中的德芙的感覺——絲滑。是什么呢?如果你現(xiàn)在使用 deepin 瀏覽這篇文章,應該能看到我特地在文章開頭、上一段和中間甩鍋那一段,幾乎到處都貼了 emoji 表情:
- 能正常顯示,而不是豆腐塊!
- 關鍵是它們是彩色的?。?!

整篇文章不再有黑乎乎的表情——這簡直是使用Linux寫技術博客的 Blogger 的福音啊。如果你也想在文字編輯的時候輸入開愛的 emoji 表情,可以打開 https://getemoji.com/ ,只需 copy&paste,瞬間讓你擁有進入 21 世紀互聯(lián)網(wǎng)的趕腳。
至于這個新特性為什么沒有寫到更新注記里面,是低調,是彩蛋,還是忘了寫?咳咳,有點趕時間,繼續(xù)往下寫了 ?????? 。
開放和透明
上面說了發(fā)系統(tǒng)的接力棒已經成功交(shuai)接(guo)給別人了,那我去干啥了呢?總得做點啥吧,要不被開了就不好玩兒了嘛??。
我這段時間做得其實就是開放和透明。
在中國說起開源,應該沒有人不知道深度作為“東半球最大的開源軟件公司”的名頭,如果有人不知道,那也讓我們先姑且這么認為著 ??, 深度從出生的那一刻起就一直在開源——深度出品的軟件產品中95%以上都是開源的,但是直到最近我才老有一種感覺就是深度一直在“開源”,但是并沒有在“做開源”。
深度是很長于做產品的,每個產品都可以做得既小巧玲瓏,又戳中用戶痛點,所以積累了不少海內外用戶。這些用戶使用著我們的系統(tǒng),時不時靈感來了還會提出一些寶貴的意見和建議,這本是極好的。但是作為開發(fā)者的我發(fā)現(xiàn),其實這批用戶里面有不少同行,他們也想為深度的開源事業(yè)做出自己的貢獻,天天問我:How to contribute。我腦子飛速旋轉,“這個功能貌似他可以加一下?不對,這個功能需要知道很多故事背景,說來話長……還是算了”,“那個bug他好像可以修一下,但是好像也不能按照常規(guī)的方式去修復……一兩句話也說不清楚”。思來想去,最后只能以“你可以幫我們測試,測試也是一種貢獻呀”、“你會德語呀,這么厲害,要不要幫我們加點翻譯” 等等的回復搪塞過去,說完這些內疚到簡直想出去哭一場。更有甚者,有些開發(fā)者克服了重重困難,終于提交了 CL (可以理解為補丁)想要一些功能,內部討論半天給出一個決定和回復,對方回復,內部再討論半天給一個回復……效率極低,還容易導致各種誤解。更可惜的是,以后甚至還會有同樣熱心的開發(fā)者提交類似的補丁,然后重復前面的過程,及其浪費社會生產力。
鑒于以上這些情況,我們經過長時間的思考(可能是從15.7開發(fā)的過程中開始吧)和重新審視自己,決定在開發(fā)和透明上采取更多的行動,所以我們開始做了以下幾個步子比較大的動作:
擁抱 Github
Github 總有一種似曾相識的感覺——曾經琳姐拼了老命把 Github 上的項目都搬到了 Gerrit 上,現(xiàn)在我們就快要搬回來了。

擁抱 Github 主要分兩個步驟,第一個步驟是任務追蹤和看板管理從Tower切換到 Github issue 和 Github project,任何人感興趣都可以參與討論;第二個步驟是代碼審核從 Gerrit 切換到 Github PR,讓天下沒有難提交的CL。目前第一個步驟已經基本完成,第二步驟正在準備中,詳細內容參見相關鏈接 [1]。
需要在此特別說明和廣告的是:內部相關的討論集中在 internal-discussion,所有 deepin 即將做的事情,以及要怎么做都會在這里面的 issue 中集中討論;另外一個是很久以前便存在的 develop-center,專門供外部貢獻者提交意見和Bug反饋。為什么要作此區(qū)分呢?其實稍微關注一點 internal-discussion 你就會發(fā)現(xiàn),deepin 每次系統(tǒng)發(fā)布的過程中會產生 300-400 個issue,如果全部都放在 develop-center 中會對用戶報 Bug 的體驗造成不好的影響,有沒有很感動呢?
推出 SDK
在 15.8 發(fā)布之前,朋友圈曾流傳一篇文章《如何為DTK編寫文檔》,如果你沒有看過這篇文章,那也不要緊,因為這篇文章我最想突出的一句話就是:
是時候給 DTK 添加文檔了!
當然,給 DTK 添加文檔這只是第一步,推出 SDK 才是關鍵。

何為 SDK ? 在我看來其實就是寫代碼、調試、打包和發(fā)布一條龍服務,至少包含開發(fā)庫、開發(fā)文檔、工具和 IDE 等項。
深度又要造輪子了么?可能要讓大家失望了,答案是否定的。以我們對 Qt 的喜愛,怎么可能拋棄 QtCreator 呢……至少現(xiàn)階段我們還不會拋開 QtCreator 去造輪子的。但是也不用那么失望,等我們會完善了文檔、改進完 QtCreator [2] ,讓 DTK 跟 QtCreator 無縫集成,你甚至都不用會寫代碼就能編譯、運行、甚至打包一個 “Hello world!”應用來!
持續(xù)的技術輸出
深度像大部分公司一樣,有老鳥也有新手,但是與絕大部分公司不一樣的是,深度的高手感覺牛到可以戳上天,有那種對谷歌的 offer 都要裝逼回絕掉的那個類型、也有手擼窗口管理器的同時還能順帶開發(fā)一個深度影院的、還有精通所有程序語言和內核開發(fā)的……在這樣的公司里混開發(fā),生存真是倍感壓力。
所以,我一直有一個夢想,就是每天上班不用頂著壓力慌忙地敲代碼,而是可以跟這些大牛一起摸著鍵盤談笑風生。終于……我最近過上了這種生活……才怪,人總要意識到,夢想還是要有的,但是真不見得會實現(xiàn)……唉。

當然,上面只是玩笑話了,真實的情況是我長期蒙受各位大牛的指導,心里倍感感激的同時,想著其實社區(qū)還有那么多搞技術的小伙伴,學校還有那么些想來深度實習而不得的實習生,他們其實對深度開發(fā)者的經驗和技術不能說瞻仰吧,有點夸大其詞了,還是非常好奇和希望能學到的。所以,從今年3月份開始,我們內部一直在推進 https://docs.deepin.io 這個技術博客的建設,除了希望能隨著 deepin 的成長有所技術積累外,也希望把公司的這些技術積累分享給社區(qū),大家共同成長和進步。
持續(xù)的技術輸出沒有什么彎彎繞,就是這么直接的東西。
結語
說了這么多,其實我的想法挺簡單,就是通過逐步開放我們內部的一些軟硬件資源,希望能讓更多的開發(fā)者能更加方便地參與到我們的平臺建設中來,而不必一個人摸瞎; 通過刻意透明所有的討論過程,包括需求討論、方案設計、設計稿等等,讓所有社區(qū)的小伙伴不僅可以看到我們在做什么,甚至可以參與討論“干涉”我們要做什么,讓所有對操作系統(tǒng)設計有熱情的用戶的意見都得到公正對待。
最后,希望開放和透明,可以給深度帶來一點不一樣的色彩。
相關鏈接
[1] DDE核心項目遷移到Github
[2] QtCreator 的 DTK 集成