高焕堂老师软件架构的讲座总结

    技术2022-05-20  32

     高焕堂老师软件架构的讲座总结 2010-01-28 14:33:11 标签: 高焕堂  软件架构 原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://linugb118.blog.51cto.com/272628/271480 上次有幸参加了高焕堂老师的软件架构的讲座: 总结了下面几点: 1.做框架的思想很简单,就是所谓的雕刻之道,软件就如一块大理石,把多余的部分去掉,那就可以了 再比如如何做汽车的框架,为了满足汽车能在沙滩上,地面上,山坡上跑,我们只要把轮胎去掉,那么 剩下的就是框架,做软件完整的API不要写,留给空位就行了。 2.麦肯锡的思路(反向思维):当需要想完成某个目标的时候,往往一般人会想我现在应该先去做什么,然后 再做什么,这样的思路往往出来的step by step 只有一种,如果反向思维,从现在目标开始反向推理出前一 阶段的几种可能性,然后从分别对这几种可能性再向前推,以此类推可以形成一个树状,然后根据先有情况 去除不能满足的链路,这样同样的问题 你的思路和方法以及可选择的路线就多很多,往往不是一条。这就是 反向思维 3.如果把软件生产比作工厂,请问软件工厂的原料是什么? 是需求? 如果回答是需求,那就错了。 需求和架构没有关系。需求是桌面,架构是桌脚,桌脚的要几个,什么形状和桌面没有关系,只要桌脚能支持 桌面就行了。 4.架构就像万里长城,他是保护自己人的,是自己人能安居乐业,外面的多变都被万里长城挡在外面, 框架下面的可以多变,没钱就改版,改版就有钱。 5.写框架的是强龙,写AP的是地头蛇。买主出现才有地头蛇。也就是需求出现的时候才有地头蛇。 6.软件哲学,如何让先写的call后写的?引入接口和基类就能完成这个问题 7.子接口因为都是基础基类,那么他们之间怎么new,如果他们要new 也就向框架要,这样才能不违背框架的用意。 8.框架先不要考虑太多效率的问题,效率的问题在后面慢慢修改,这样可以减少考虑的因素,更容易理清。 9.强龙要有主控权,那么框架所做的事情就是能让强龙能包容改变 10.如果不想子系统继承那么就用final 关键字 11.如果两个类 不要相互继承,但是要他们相互call,那么就在他们里面分别定义一个方法,相互call 12.基类告诉子类,让子类call她,那么子类才能call基类,没有call子类,那么子类不能先去call她。 13一般进程process 是不共享的,他们在不同的位置区间,如果要跨进程的call,那么用IPC。而Process 一般分Main thread;Message Quene;Main Looper。其中Main thread是主线程,他通过Looper 一直查看他的 MQ,MQ记录要求做的事情,如果MQ里面有什么事情,那么Main thread 就拿到他把他做掉。 14.Main thread 主要是处理UI相关的用户事件,而且一般有时间设置比如每个function不能超过5s。 15Andriod中是通过IBinder 来实现跨进程的通信。 16.主线程一定有一个MQ 一个Looper。而小线程没有,所有小线程从一开始到执行完就结束了,但是小线程 不能touch UI,只有Main thread 可以touch UI相关的用户事件。 17 架构师是在暗室里面抓黑猫,在没有路的情况下找出一条可行之路,所有没有步骤可言。 18 做框架 尽量把人家会抓住你的地方分开,如果实在分不开,可以当壁虎,把壁虎的尾巴给人家抓。 19 框架的东西尽量要用c++写,因为c++比起java 安全,快,无反编译。 20 做一个系统一定要只要你的控制中心和整合中心,而且他们只有一个并且只有一个连接。控制中心好比大脑 而整合中心好比骨骼。在控制中心可以增加状态机来增加控制力和安全性。

    本文出自 “linugb118” 博客,请务必保留此出处http://linugb118.blog.51cto.com/272628/271480


    最新回复(0)