我他妈服了HTC/Qualcomm/Google的NB程序员了

下面是 针对Google/Qualcomm的。

 

人家BUG_ON宏写的很清楚不要轻易用,丫的凡是驱动里出了什么自己制造的问题,就BUG_ON。去nexus one发布版的代码里一看,靠,还他妈这样。

 

水平高的没法说,这边用(uint16_t)-1抖骚,那边来一个(~0)耍酷;俺这业余程序员崇拜的紧,不知道他焦头烂额的时间是不是也比我短?

 

下面是针对HTC的。

 

最早有个简单的CPU调节频率的驱动,是屏幕亮就最高,屏幕暗就最低。后来Google/HTC/Qualcomm可能觉得不好意思了,就把这个换成On Demand的了。

 

再后来,HTC非得改变ARM9的行为模式,不知道怎么就导致运行在ARM11上的Linux如果On Demand,就卡的一B,于是你猜怎么着?

 

HTC又写了个驱动,叫TM什么Performance Lock,其作用就是Hack了On Demand驱动的行为,让干活时频率就基本最高,休眠时频率最低。

 

恩恩,对修改封闭,对扩展开放嘛;果然是高手,可是把一大堆逻辑分散的这么广,他不嫌眼晕阿?绕一个圈子又回去了,他不嫌费劲吗?

 

没事标新立异,非得在ARM9上用不同接口的固件,好似不这样就体现不出HTC品牌和GPhone之间的差异似的,多发工资维护不同的版本很爽阿,果然大厂。

 

下面是针对Qualcomm的。

 

一个他妈破摄像头架构,从G1到NexusOne,多少年了,还他妈不给人家HTC/Google把活儿干好,代码里成堆的FIXME或者干脆就是错的,也好意思拿出来。

 

幸亏Google胆大,你敢提供我就敢用;HTC一琢磨,也紧跟潮流了。说实话,这些天我算是体会了为什么航天飞机都会爆炸了。

 

然后就这么一个功能,一个任务从Modem到内核到用户空间的私有库,横跨若干层,我算是知道了,不止干Web的喜欢分层,这是大家的共同爱好。

 

每一层都switch...case一遍,这代码行数刷刷刷就上去了,可怜了人家Linus的兄弟姐妹外加弟子不领情,天天在Mail上问你这怎么这么写那儿干吗那么设计?

 

要问你TM还想不想进主线了?爷不在乎!同步维护这若干层的约定,你就不怕哪天出个低级错误,把用户吓跑?哦对了,反正被抹黑的也是Google。

 

还有Google。

 

别人质疑的3年多就写那么点比例代码,往Linux内核里胡加东西,这都不说了;不明白的是最基本的功能怎么都能做那么糙,随便找一做网页的也不至于这样。

 

功能性的代码放到mach里去;不相干的东西放到一个文件或者模块中去;相干的东西放到不同的文件中去;然后控制它们的宏满天飞。

 

事实上除了Google自己的程序员搞出的古里古怪的东西,其他任何公司的错都可以归结到Google头上。

 

作为项目的核心主持,自己都不知道应该怎么干,什么都随便来,似乎这已经是Google的一贯作风了。反正哥我媒体关系好,做什么都不Evil,对不?

 

这个组合做事做的真是绝了;产品质量堪比将近20年前的Windows 3.1。

 

俺这半个多月就没写出一行代码,全TM和这些玩意做斗争了。总结:幸亏我TM打算在这些方面深造一下,不然作为一个程序员,这样的手机我TM绝B不买。

 

牢骚还有一大堆,就不多说了。等我稍微闲点,再抖落抖落细节,找个具体例子来表述我自己的一些建设性的想法吧。

 

update:

 

看博客园在推一本书,叫什么《架构之美》,一看这名字本来觉得应该很烂的,扫了一眼似乎是本个人经验看法文集,觉得值得一读,有空会买一本。

 

不过多说一句的是,不要被词的表面给迷惑了。实际上架构很小,架构形成的原因都很具体,架构也不复杂:它也不比任何其它工作高级。

 

说这话的目的不是为了贬低什么。哪怕任何一个人是所谓的“架构师”,只有他真正放下对架构的幻想,而当作一个具体问题来做,他才会真正的称职。

posted on 2010-01-12 07:49  怪怪  阅读(2251)  评论(12编辑  收藏  举报

导航