做任何事情,其不在乎【简单和复杂】 由简单到复杂,再由复杂到简单。下面分享一下高老师的一些对软件架构的观点吧!
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
15、 Andriod中是通过IBinder来实现跨进程的通信。
16、 主线程一定有一个MQ一个Looper。而小线程没有,所有小线程从一开始到执行完就结束了,但是小线程不能touch UI, 只有 Main thread 可以touch Ui相关的用户事件
17、 架构师是在暗室里面抓黑猫,在没有路的情况下找出一条可行之路,所有没有步骤可言。
18、 做框架尽量把人家会抓住你的地方分开,如果实在分不开,可以当壁虎,把壁虎的尾巴给人家抓。
19、 框架的东西尽量要用c++写,因为C++ 比起Java安全,快、无反编译。
20、 做一个系统一定要而且只要你的控制中心和整合中心并且他们只有一个连接。控制中心好比大脑而整合中心好比骨骼。在控制中心可以增加状态机来增加控制力和安全性。
以上20条是关于高焕堂老师的一些观点,不过到底是不是高老师的观点,因为是学习的时候的一些Google上的笔记。
对于以上20条,我认为:一个好的软件架构不是完美的架构,是一个适合设计架构者对当时情况进行的合理的设计。但是合理不一定的正确的。
分享到:
相关推荐
0_架构师与设计师.pdf 01_软件流程实施方案选择.pdf 02_软件架构文档设计.pdf 03_软件架构风险管理.pdf 04_如何描述和评估软件架构...因附件大于16M被分成了两个包上传,请下载软件架构师教程1.rar 软件架构师教程2.rar
《聊聊架构》是一本深入探讨软件架构原理和技术的书籍,主要面向那些希望提升自身在企业级应用技术领域,特别是软件架构设计能力的读者。作者王概凯通过这本书,旨在帮助读者理解和掌握软件架构的核心概念,以及如何...
《软件架构师教程》是一本全面且深入的指南,旨在帮助读者掌握软件架构设计的核心概念、原则和实践。作为系统架构师考试的重要参考资料,这本书涵盖了高级软件架构师所需的知识点,同时也是系统分析师提升专业能力的...
本书出自两位具有多年软件开发经验的 asp .net专家、作者和培训师之手,内容涉及多层架构、设计模式以及设计原则。第一部分简要介绍 uml、设计原则及模式;第二部分从技术架构角度讨论分层设计。本书行文流畅,...
### 软件架构实践(第三版)林巴斯——关键知识点解析 #### 一、概述 《软件架构实践(第三版)》由林巴斯编著,是一部深入探讨软件架构设计与实现的专业书籍。本书旨在帮助读者理解软件架构的核心概念、方法论...
《王概凯聊聊架构》是一份高质量的架构学习资料,由知名专家王概凯主讲,深入浅出地探讨了架构设计的核心理念和实践方法。在这个信息化时代,软件开发已经不再仅仅是编写代码,而是需要在项目初期就进行深思熟虑的...
软件架构是软件开发过程中的核心组成部分,它定义了软件系统的高级结构、主要组件以及它们之间的关系,为系统设计提供了一个蓝图。本讲义将深入探讨软件架构的基本概念、重要性以及如何进行有效的架构设计。 首先,...
- **背景**: 随着软件系统的规模日益扩大,复杂性也随之增加,传统的“算法+数据结构=程序”设计模式已无法满足当前的需求。软件架构作为一种新的设计理念应运而生,旨在为软件系统提供一个更为高级的抽象层次。 - *...
《恰如其分的软件架构》是一篇深入探讨软件架构设计的重要文献,旨在为学习者提供全面而实用的设计思路。软件架构是构建大型复杂系统的基础,它定义了系统的组件、它们之间的关系以及交互方式,是软件开发过程中的...
**软件架构说明书模版——构建高效且可扩展的软件构架** **1. 简介** 软件架构说明书是软件开发过程中的重要文档,它详细描述了软件系统的基础结构、组件之间的关系以及交互方式,为项目的成功实施提供指导。本...
在IT行业中,软件架构设计是开发高质量软件的关键环节。它涉及到如何组织和构建软件系统,以便满足功能需求、性能指标、可维护性、扩展性和可重用性等多方面的要求。下面将根据“软件架构设计 ppt”这个主题,详细...
软件架构师是IT行业中至关重要的角色,他们负责设计和规划软件系统的整体结构,确保系统能够高效、稳定地运行。这份“软件架构师培训资料”涵盖了软件开发过程中的多个关键环节,旨在帮助学员全面掌握架构师所需的...
"软件架构文档(样例)" 软件架构文档是一个详细的文档,它描述了软件系统的架构设计、实现和部署细节。本文档的目的是为了提供一个完整的架构设计,使得软件开发团队能够更好地理解和实施软件系统。 在软件架构文档...
【软考高级软件架构设计师资料】是一份针对国家计算机技术与软件专业技术资格(水平)考试中的高级软件架构设计师科目的综合学习资源。这份资料包含了历年来的考试题目和详尽的教程,旨在帮助考生全面理解和掌握软件...
同时,架构师必须理解业务的优先级,并在设计软件架构时将其作为指导原则之一。 另外,软件架构师需要确保解决方案是简单且可用的。一些基本原则,如KISS(Keep it Simple, Stupid)原则,指导架构师在考虑通用性和...
《软件系统架构师》这本书是为那些希望深入理解软件架构设计和实践的读者精心准备的。作为一本电子读物,它涵盖了软件架构的基础知识、关键概念以及实际应用,旨在帮助读者提升在软件开发领域的专业素养。 软件系统...
高级软件架构师培训讲义,共分24章: 00_架构师与设计师 01_软件流程实施方案选择 02_软件架构文档设计 03_软件架构风险管理 04_如何描述和评估软件架构质量 05_设计模式与软件架构设计 06_AOP开发实践 07_软件架构...