15.8研发心得——如何让deepin变得更加开放和透明

不早也不晚,2018年11月15日 deepin 15.8 如期发布。这虽然是个好消息,但是没有了延期的梗,我竟然不知道这篇研发心得应该如何开头……😓

开头这件事情总是很难,因为要做到一些以前没有做到的事情,就要求能将自己的水平提高哪怕那么一点点;同时,开头也不宜于高调,高调的开头太容易造成虎头蛇尾以致不能坚持的局面。在我的价值观里,与其浪费时间和精力在不能坚持的事情上,还不如什么都不做。所以很多事情我都不愿意开头,就像写这篇研发心得一样。

尬聊

不过,幸运的是我们对发布系统这件事情倒是充满着热情,以至于我们能在每一次系统发布的“轮回”里,都无所畏惧地开头并且坚持如一。比如 15.4 的毛玻璃效果、15.5 的高分屏、15.6 的应用深色主题、15.7的性能优化等等等等……当然,这次的主角 15.8 也不输从前。

新特性介绍

15.8 中新的变动着实不少,但是从一个研发的角度来看,我觉得最重要的变化应该是组织系统开发和发布的人发生了变化。之所以说这个比较重要,是因为 deepin 的前辈们把接力棒交到我这里,我终于可以把它顺利地转交到合适的人手中了,这句话的言外之意是什么呢?就是大家以后如果遇到什么 bug,进门左转找 @zccrs 😂。

说明了以上信息,就可放心地介绍这次的新功能了。不过说实话,这次的新功能都相当直观,用不着我费什么口舌,再加上本次研发心得的重点不在此,所以大部分的新功能请看 系统发布新闻,这里只说两个我最喜欢的点吧。

第一个要说的,是15.8 的新功能里面最让人惊喜的 Dock时尚模式 的托盘插件 的设计调整:

Dock的新托盘

为什么呢?这主要是因为以我的聪明才智,都一直认为时尚模式的托盘是一个无解的问题:系统托盘占用大量空间,应用托盘使用不方便……除非引入类似 macOS 的 topbar (估计很多人也是这么想的,所以都默默地在商店里面安装了 deepin-topbar吧)。事实上,当时我们讨论解决方案的时候也是差不多一样的状态,每个人都欲言又止,显然是还没说出口的方案就被自己推翻了,然而就在这个时候,设计师默默地上了一副设计图,把所有的应用托盘也放大成了与应用图标无异的大小。

我:!?!?!?(黑人脸

我刚要扔臭鸡蛋,设计师咔嚓又上传了一张图,仿佛在说 “蛋下留人~” 而转机就这样发生了,我看到设计图,就如大家在15.8看到的Dock时尚模式一样,托盘问题竟然被 almost 完美地解决了——在最后的关键时刻设计师保住了自己的颜面。

怎么说呢,这基本上是我在深度继看到一个开发同事用钥匙给电脑开机感到由衷地佩服以来,再一次罕见地(尤其是被设计师?😈)觉得世界观被刷新的一次体验了。

另外一个要提的是一个很小的点,不过现在想起来都会有一种吃了广告中的德芙的感觉——丝滑。是什么呢?如果你现在使用 deepin 浏览这篇文章,应该能看到我特地在文章开头、上一段和中间甩锅那一段,几乎到处都贴了 emoji 表情:

  • 能正常显示,而不是豆腐块!
  • 关键是它们是彩色的!!!
getemoji

整篇文章不再有黑乎乎的表情——这简直是使用Linux写技术博客的 Blogger 的福音啊。如果你也想在文字编辑的时候输入开爱的 emoji 表情,可以打开 https://getemoji.com/ ,只需 copy&paste,瞬间让你拥有进入 21 世纪互联网的赶脚。

至于这个新特性为什么没有写到更新注记里面,是低调,是彩蛋,还是忘了写?咳咳,有点赶时间,继续往下写了 🙄🙄🙄 。

开放和透明

上面说了发系统的接力棒已经成功交(shuai)接(guo)给别人了,那我去干啥了呢?总得做点啥吧,要不被开了就不好玩儿了嘛😱。

我这段时间做得其实就是开放和透明。

在中国说起开源,应该没有人不知道深度作为“东半球最大的开源软件公司”的名头,如果有人不知道,那也让我们先姑且这么认为着 😜, 深度从出生的那一刻起就一直在开源——深度出品的软件产品中95%以上都是开源的,但是直到最近我才老有一种感觉就是深度一直在“开源”,但是并没有在“做开源”。

深度是很长于做产品的,每个产品都可以做得既小巧玲珑,又戳中用户痛点,所以积累了不少海内外用户。这些用户使用着我们的系统,时不时灵感来了还会提出一些宝贵的意见和建议,这本是极好的。但是作为开发者的我发现,其实这批用户里面有不少同行,他们也想为深度的开源事业做出自己的贡献,天天问我:How to contribute。我脑子飞速旋转,“这个功能貌似他可以加一下?不对,这个功能需要知道很多故事背景,说来话长……还是算了”,“那个bug他好像可以修一下,但是好像也不能按照常规的方式去修复……一两句话也说不清楚”。思来想去,最后只能以“你可以帮我们测试,测试也是一种贡献呀”、“你会德语呀,这么厉害,要不要帮我们加点翻译” 等等的回复搪塞过去,说完这些内疚到简直想出去哭一场。更有甚者,有些开发者克服了重重困难,终于提交了 CL (可以理解为补丁)想要一些功能,内部讨论半天给出一个决定和回复,对方回复,内部再讨论半天给一个回复……效率极低,还容易导致各种误解。更可惜的是,以后甚至还会有同样热心的开发者提交类似的补丁,然后重复前面的过程,及其浪费社会生产力。

鉴于以上这些情况,我们经过长时间的思考(可能是从15.7开发的过程中开始吧)和重新审视自己,决定在开发和透明上采取更多的行动,所以我们开始做了以下几个步子比较大的动作:

拥抱 Github

Github 总有一种似曾相识的感觉——曾经琳姐拼了老命把 Github 上的项目都搬到了 Gerrit 上,现在我们就快要搬回来了。

Inflatocat

拥抱 Github 主要分两个步骤,第一个步骤是任务追踪和看板管理从Tower切换到 Github issue 和 Github project,任何人感兴趣都可以参与讨论;第二个步骤是代码审核从 Gerrit 切换到 Github PR,让天下没有难提交的CL。目前第一个步骤已经基本完成,第二步骤正在准备中,详细内容参见相关链接 [1]。

需要在此特别说明和广告的是:内部相关的讨论集中在 internal-discussion,所有 deepin 即将做的事情,以及要怎么做都会在这里面的 issue 中集中讨论;另外一个是很久以前便存在的 develop-center,专门供外部贡献者提交意见和Bug反馈。为什么要作此区分呢?其实稍微关注一点 internal-discussion 你就会发现,deepin 每次系统发布的过程中会产生 300-400 个issue,如果全部都放在 develop-center 中会对用户报 Bug 的体验造成不好的影响,有没有很感动呢?

推出 SDK

在 15.8 发布之前,朋友圈曾流传一篇文章《如何为DTK编写文档》,如果你没有看过这篇文章,那也不要紧,因为这篇文章我最想突出的一句话就是:

是时候给 DTK 添加文档了!

当然,给 DTK 添加文档这只是第一步,推出 SDK 才是关键。

QtCreator

何为 SDK ? 在我看来其实就是写代码、调试、打包和发布一条龙服务,至少包含开发库、开发文档、工具和 IDE 等项。

深度又要造轮子了么?可能要让大家失望了,答案是否定的。以我们对 Qt 的喜爱,怎么可能抛弃 QtCreator 呢……至少现阶段我们还不会抛开 QtCreator 去造轮子的。但是也不用那么失望,等我们会完善了文档、改进完 QtCreator [2] ,让 DTK 跟 QtCreator 无缝集成,你甚至都不用会写代码就能编译、运行、甚至打包一个 “Hello world!”应用来!

持续的技术输出

深度像大部分公司一样,有老鸟也有新手,但是与绝大部分公司不一样的是,深度的高手感觉牛到可以戳上天,有那种对谷歌的 offer 都要装逼回绝掉的那个类型、也有手撸窗口管理器的同时还能顺带开发一个深度影院的、还有精通所有程序语言和内核开发的……在这样的公司里混开发,生存真是倍感压力。

所以,我一直有一个梦想,就是每天上班不用顶着压力慌忙地敲代码,而是可以跟这些大牛一起摸着键盘谈笑风生。终于……我最近过上了这种生活……才怪,人总要意识到,梦想还是要有的,但是真不见得会实现……唉。

docs.deepin.io

当然,上面只是玩笑话了,真实的情况是我长期蒙受各位大牛的指导,心里倍感感激的同时,想着其实社区还有那么多搞技术的小伙伴,学校还有那么些想来深度实习而不得的实习生,他们其实对深度开发者的经验和技术不能说瞻仰吧,有点夸大其词了,还是非常好奇和希望能学到的。所以,从今年3月份开始,我们内部一直在推进 https://docs.deepin.io 这个技术博客的建设,除了希望能随着 deepin 的成长有所技术积累外,也希望把公司的这些技术积累分享给社区,大家共同成长和进步。

持续的技术输出没有什么弯弯绕,就是这么直接的东西。

结语

说了这么多,其实我的想法挺简单,就是通过逐步开放我们内部的一些软硬件资源,希望能让更多的开发者能更加方便地参与到我们的平台建设中来,而不必一个人摸瞎; 通过刻意透明所有的讨论过程,包括需求讨论、方案设计、设计稿等等,让所有社区的小伙伴不仅可以看到我们在做什么,甚至可以参与讨论“干涉”我们要做什么,让所有对操作系统设计有热情的用户的意见都得到公正对待。

最后,希望开放和透明,可以给深度带来一点不一样的色彩。

相关链接

[1] DDE核心项目迁移到Github
[2] QtCreator 的 DTK 集成

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 207,248评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,681评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,443评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,475评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,458评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,185评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,451评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,112评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,609评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,083评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,163评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,803评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,357评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,357评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,590评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,636评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,925评论 2 344

推荐阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,693评论 2 59
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,527评论 25 707
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_x阅读 15,968评论 3 119
  • 今天就结合深度桌面操作系统给大家讲讲桌面操作系统的架构设计和原理细节,一来向外界讲讲深度这么多年都做了哪些工作,二...
    ManateeLazyCat阅读 70,811评论 208 617
  • 整体的思想(这个思想贯穿始终) 教材发下来之后我们先看一下,下一学期我们要学的内容到底是什么?一共有几个章节,然后...
    水木_6d35阅读 328评论 0 3