企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
如果用常人的眼光来看待问题,很多开发工作真是不可思议和难以理解的。 一个最简单的例子,就是对时间的认同的差异。 客户常常会这样认为,你修改了3行代码,编译验证到提交,分分钟的事情嘛,可你为什么用了两个小时? 好吧,我是这样解释的: 虽然我只修改了3行代码,可是咱们的编译系统并不支持局部模块编译(注1),虽然有增量编译,但是整套下来还是需要15分钟编译完毕。但是,谁也不能保证没有编译错误调错再编译又会浪费一些时间。编译结束后,要把img烧到设备中,又要5分钟左右。开机需要1分钟,真机调试要5到10分钟,有问题还要继续重来。都ok啦,那么接下来提交代码review,需要写commit comment,这份细致认真的活儿还是需要10分钟。提交代码,遇到冲突,解决需要不可预知的时间;网络有问题,还是要不可预知的问题。 在最好的情况下,这个活还是要半个小时以上的。但是一次成功的几率很小,有人的因素也有其他因素。 曾经有个段子,说为什么程序员都很闲,因为他们会告诉你,等编译结果呢。趁编译这个当,可以泡泡妞喝喝咖啡。 玩Android的都知道,现在即使是i7处理器,8G内存,初次编译Android系统也需要3个多小时。而同步代码的时间跟网速直接挂钩。如果你新加入Android系统级开放团队,那么前几天你就可以轻松的搞环境了,趁下载编译的时间,你可以出去打打篮球,购购物。 这两天又发生了一件事,大家可以借鉴一下,给自己以后评估时间时敲个警钟。 背景是这样的,最近在忙两个项目,项目开发中心分在两个办公室。通常的时间安排是半天对半天,但我们可以自由调度,有的项目不忙就多花时间在忙的项目中,如果都忙,那么就要加班了。现在有人会问了,你忙两个项目,给你两份工资吗?答案是否定的。也许会给点奖金,也许毛都没有。你又要问了,那么加班有加班费吗?答案同样是否定的,你加班是应该的。但是你有事情要请个假,嘿嘿,对不起,走年假,么有?那么,不好意思,按照公司的规定,该扣钱扣钱。现实就是如此,吐槽无力。 我在A office用Linux画好了设计框架和类图,还没来得及合入文档中,但是要去B office开会。开会结束,PM说今天要把详细设计文档出来。我说没问题!B office用的Windows系统,当然对Word的支持是最好了,我就想,既然模板都在这里,何不在这里提交呢?但是问题出现了,我的设计图还在A那呢,怎么拿过来呢? 我尝试了以下几种办法: 1.邮件发送。 就是自己给自己发邮件,发送成功后,果断关闭A的邮件软件,去B打开邮件接收。第一遍,发现发送失败。我想,是因为我在A关闭的太快了,造成没有发送成功?跑回A重新发送,等待一会,估计是发送过去了。跑到B打开,发现继续失败。我就有些生气了。也许是公司的邮件系统封杀了这个功能吧。 2.手机拷贝。 MTP在Ubuntu中支持的不好,我用adb把图片push到手机中某个文件夹下。在Windows中直接打开MTP,去相应的文件夹下找。没有!我知道这是MTP的bug,一直没有fix掉。也许重启一下手机就可以了吧。仍然失败,MTP真是令人讨厌,一定都不可靠。 3.U盘 没有办法了,找项目组的专用U盘吧。有些项目是有自己测试用的工具的,这些是合法的。但是两个项目公用的U盘还是没有的。但现在也只能这样了。Ubuntu下拷出图,回到Windows下打开,发现图片没有拷成功。真是一着急就出问题啊。这次是我自己的错误,Ubuntu下拷贝东西,有一种假象,就是拷完后在U盘下就可以显示,但也许还没有传输完毕。我的图片就几百KB,以为瞬间就完事,就直接拔掉了。万万没想到啊。 就这么个简单问题,两个屋子我跑了好几趟。最后用了40分钟完成这本该一分钟的活儿。 有句话说的对,看起来简单,做起来难。如果事情不仔细做好准备,就会状况频出。 注1: 类似Android源码编译就支持这样的局部编译,see also [here](http://blog.csdn.net/lincyang/article/details/10571995)。