软件架构漫谈--读感

在我看来,软件架构就是一个软件的骨架,然后用代码去填充皮肉。很明显我的认识相当肤浅,且停留在表面汉语理解意思。那么到底怎样去理解软件架构和使用软件架构?

(1)架构是基于人的群居(以人为本)和一个为了提高生产力的目的(问题的本质)的一种分工处理和合并联系。我的理解是分工是模块,合并是组装,联系是组装方式。

(2)要做好架构,首先要对概念有正确的认识。也就是透过现象看本质上所要解决的问题。

(3)明白“是谁的问题,是什么问题”。首先是确定概念的主语,因为主语不同,理解不同,就像用户和技术员对待问题的想法是不一样的。开始的定位决定了整个过程是否有意义,所以问题的本质的发现和确定比解决问题更重要,而识别问题往往要区分解决方案和问题本身,需要去追根溯源。

(4)为了更好的去达成目标,也就是说得到一个更高的生产力,更高的个人利益,自然而然产生了个人扬长避短,团体依赖合作的一个现象,也就是切分。切分是把系统内时间上连续的动作,调整成时间上的并行,空间上的横向扩展的树状结果,从而更合理的利用时间和劳动力。层数越少,越利于沟通,效率越高。

(5)软件是用来模拟人和社会的。然后提供更低的成本,更高效率的生活。软件工程师的任务过重,拆分形成了软件架构,

(6)关于软件架构,涉及软件本身的业务体系和虚拟的业务体系。根据(3),首先应该确定问题的主体,问题有业务问题和计算机问题两个方向。组织架构要考虑参与角色、信息传递的损失,角色之间的协调等。软件不断拆分,形成硬件架构、代码架构、开发体系(参与人员)架构。

虚拟化业务主要步骤:学习业务知识,认识到业务所涉及的核心利益诉求;对业务进行建模,并用代码实现;学习业务所参与的Stakeholder如何和业务打交道,完成每个人的工作;业务运行结果的持久化。

(7)架构师是能够有足够的自信去克服对时间压力的恐惧,解决别人的问题,把完成别人工作当成自己最大的利益。架构师就是要去平衡别人的利益,以达到平衡别人各司其职,以达到整体最大化利益的leader。作为一个架构师,就要有比别人更多的能力,首先,语言和技术就是基本的信手拈来的工具,其次是发现问题,解决问题,平衡能力的管理能力。

(8)代码的责任有表达业务逻辑的代码和读用户提供访问并保存业务逻辑运行结果的代码。代码的架构:软件代码的相关利益人service-user的需求,Glue code-组合的调用,Business-实现业务的核心模型,Repository-数据的保存。Service拆分成service,glue code Repository。除了Business其他都不能有逻辑,也就是单一的顺序调用,不能继续拆分。

(9)业务是技术存在的前提,技术的复杂化发展,分拆成架构。

总结:学习软件架构,主要在于解决本质上的问题,以获得最大的利益;及如何合理的拆分形成架构。

时间: 2024-12-08 08:28:36

软件架构漫谈--读感的相关文章

课堂作业02——读架构漫谈后感

对于桌子的问题,作者采用"名"和"相"来描述一样东西,也就是阐述了它的作用以及由此得来的名字,自此其他人也就会明白这到底是什么样的一个东西.这里我了解到每个人对同一问题的看法不同,正所谓一千个读者就有一千个哈姆雷特.在软件测试课上,老师放了一张"找不同"的图片给我们,并说同学之间不许交流.最初我看出有8处不同,其他同学也喊着"6处,7处,8处-",老师叫了几个同学起来说自己看出来哪几个,随着他们的回答,我的答案增至9个.10个

《构建之法》读感-03

今天我阅读的是第四章关于双人合作的种种. 对合作项目来说,代码规范是很重要的一点,代码不仅仅是给机器看的,更是要给人看的,机器编译代码,只要没有语法错误,无论你格式再纷乱无章,也能正常运行,但如果要是交给队伍里其他成员看,那估计会让人产生一种打人的冲动了. 书中描述的代码规范有几个很重要的点.代码风格,简明,易读,无二义性,各家有各家的风格,但核心还是围绕“简明易读”来的.如缩进4字符,100字符行宽,括号的断行简明,大小写,变量函数的命名等等.同时注释也是特别重要的一点,自己的程序不写注释过一

深入理解Android 读感(一)

一.环境搭建 1.准备工作 1)VMware下安装Ubuntu(个人使用是ubuntukylin-14.04.2-desktop-i386 http://www.ubuntu.org.cn/download/ubuntu-kylin) 小注: a)个人电脑使用ROOT登录系统,减少命令输入 切换的方法先修改root密码 sudo passwd b)使用root使用登录ubuntu 进入 /usr/share/lightdm/lightdm.conf.d/ 编辑: 50-unity-greeter

控制反转容器& 依赖注入模式 ---读感。

几个web框架 : sprint Avalon PicoContainerclass MovieLister MovieFinder finder = ServiceLocator.movieFinder(); //单件注册表 注册的时候 载入一个已经确定好属性的服务定位器class ServiceLocator... public static MovieFinder movieFinder(){ return soleInstance.movieFinder; } private stati

《资本的秘密》读感

赫尔南多·德·索托是谁? 赫尔南多·德·索托,秘鲁著名经济学家.目前是总部位于秘鲁利马市的自由与民主学会的主席.<经济学家>将其列为世界上两个最重要的“智囊团”之一.德·索托被<时代>和<福布斯>杂志称为世界上最具号召力的改革家之一,如今,他正在为全世界20多个国家和政府首脑制定所有权改革计划.德·索托的主要活动,是和自由与民主学会一起为亚洲.拉美和中东的贫困国家制定和推行资本形成计划. 什么是资本? 按照马克思主义政治经济学的观点,资本是一种可以带来剩余价值的价值.例

构建之法读感

看了邹老师的术,才知道其实创新有很多的方面,除了技术,还有商业思路,差异化等等.我觉得邹老师书里的一句话说的很好, “研究是把钱变成知识的过程,而创新是把知识变成钱的过程.” 这是一本全景式图书更是一本与现实接轨的教材.涵盖了科学,健康的软件工程开展中的每个方面,介绍了种种方法论,但不是高高在上,纲领性的方法论,而是方法论的最佳实践,确实可用,拿来就用. 其实我也只阅读前二章:第一章写的是软件工程的发展史,从开始到应用,所历的过各种变化. 第二章编程代码要懂得团体的力量,合作取得双赢,向我们讲诉

《富人的逻辑》读感

1. 说到财富,财富有很多种,而最直接的就是金钱的数量.从这一点说,有足够多的金钱肯定是一件好事.那些因为中彩票一夜暴富的人,和退休后的一线运动员和明星们,最终迅速花光所有钱甚至破产,这样的例子虽然很多,但是也只是媒体的宣传而已,因为普通大众喜欢这样的故事. 2. 突然想到为什么东北经济会衰退? 我想一方面固然有生产技术水平的落后,(这一方面也提醒我对一件工作应该尽可能地优化.提高,而不要能达到目标就行了) 也有可能是媒体的宣传影响,因为我们大多数人都无从了解事情的真相,但是对我们的影响却非常大

《构建之法》读感-01

从第一章概论中提到,软件工程要创作足够好的软件. 而有一些同学认为,所谓好软件,就是没有Bug的软件,所谓软件工程,就是把软件中的Bug都消灭掉的过程,这确实抓住了软件工程中的一个要素,和软件打交道的专业人士都知道软件有Bug,软件团队的很多人都整体和Bug打交道,Bug的多少可以直接衡量一个软件的开发效率.用户满意度.可靠性和可维护性.——p15 而什么是Bug呢?书中明确提出,就是软件的行为和用户期望度不一致,当一个软件被使用时,用户希望软件可以流畅运行并且不崩溃,但这时软件因为不知名的原因

Linux多线程实践(6) --Posix读写锁解决读者写者问题

Posix读写锁 int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock, const pthread_rwlockattr_t *restrict attr); int pthread_rwlock_destroy(pthread_rwlock_t *rwlock); int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock); int pthread_rwlock_wrlock(pthre