Dock说白了是电脑桌面上常驻的一个工作区,Dock的目的是占领用户的桌面,况且我们追赶的团队和追赶我们的团队都已做出Dock,所以应用宝必须也要做。关于应用宝Dock的具体进度、功能与界面不做介绍,现在从开发的角度讲一讲Dock项目两个月来的一点体会。

自己的角色:负责逻辑部分接口和整体框架的设计,及相关功能开发。

可圈可点之处:


1. 逻辑与界面完全分离

Dock项目应该是,我们团队第一次在多人协作下,采用了界面与逻辑分离的开发方案。这样的好处是:降低了耦合,使开发简单化(做UI的无需关心逻辑,反之依然)。当然这样做必然会增加一些工作量,尤其是后来界面和逻辑分属不同进程,逻辑的接口必须做IPC转发。

逻辑与界面分离的方案,最重要的是定义好接口。

2. 最小完备接口

最小完备接口是我一贯主张的一种接口风格,因为一旦增加冗余的接口,并被客户端代码使用,那就很难移除了,势必造成接口膨胀。项目期间,主管提出接口要提前考虑、功能要丰富的建议,不过自己还是坚持了自己想法。因为加一个接口容易,去掉一个就难了,好比韩愈曾说的,从善如登、从恶如崩。

败笔之处


1. 任务分配粗略

需求接下来,四个人开始做,一开始定下两个人做界面另两个做逻辑,但没有细化具体的产品细节、开发难度耗时等,也没有分配具体谁做什么事情,只是口头上大概分了一下。这极易导致任务分配不均和任务遗漏的现象。好的方法应该是,细化任务并明确责任,公诸于众。但团队积习如此,非朝夕可改。

2. 线程的滥用

线程滥用当然指逻辑部分。从进入应用宝团队初期,就发现代码中线程滥用,好似每天不开几个线程吃不下饭一般。所以最初Dock的逻辑代码的主框架考虑到了这点,以使后面添加具体业务时无需创建线程。但后期,需求的演变和功能的要求迫使不得不又增加了几个线程,其实有些线程是非必须的。而这些不必要的线程,往往会滋生一批Bug。