好东西大家分享: 软件设计的三个维度

【已解决 含代码调试分析】pytorch的维度,为什么计算loss是0维度的,0维度是是什么?作用是什么? 估计这个有点难,也会导致优化不够全面均衡,所以,在计算loss的时候,我们需要0维度,如果你算出的loss不是0维度,那么就需要转换为0维度,才能实现整体的优化,尔不是沿着某个维度优化,导致整个深度学习网络发生偏差。嘿,你能搜索到这个问题,说明你说一个认真学习的同学,这个问题的细节值得思考。我可以肯定的说,0维度不是空,0维度代表一个数值,的情况,通过上面的运行,得出是存在0维度的,0维度在我们计算loss的时候需要用到。 阅读详情

架构设计是一个非常大的话题,不管写几篇文章,接触到的始终只是冰山一角,更多的是实践中去体会。这篇文章主要介绍面向对象OO、面向方面AOP和面向服务SOA这三个要素在架构设计中的位置与作用。

架构设计有三个维度,或者说是我们在考虑架构时需要思考三个方向。

这三个维度分别为面向对象、面向方面、面向服务。

这三个维度可以看作是正交的,但不同维度会互相印证,互相支撑,整个架构的示意图如图所示。

图:架构三维度结构图

面向对象

面向对象技术最初是从面向对象的程序设计开始的,它的出现以上世纪60年代Simula语言为标志,并在Smalltalk语言的完善和标准化过程中得到更多的扩展和对以前思想的重新注解。

上世纪80年代中后期,面向对象程序设计逐渐成熟,被计算机界理解和接受,人们又开始进一步考虑面向对象的开发问题。直到现在,面向对象已经成为一种非常流行的编程方式,以及软件设计的架构。

面向对象提出有三个主要目标:重用性、灵活性和扩展性,强调对象的“抽象”、“封装”、“继承”和“多态”。它能让人们以更加接近于现实世界的方式来思考程序,这点可以说是面向对象最大的进步。

在OO思想的运用上,业界出现了很多好的经验与技巧,从而涌现出大量的设计模式,可以说面向对象是系统分析与设计时的一个很重要的方面。

面向方面

面向方面最初来源于hook技术,本质上就是满足扩展的需求,可以在程序中自由扩展功能。

面向方面不仅仅是一门编程技术,同样也是一种架构设计的思路。如果说OO是纵向地分析、切割整个系统,那么可以认为AOP是横向地对系统作切片。

简单地理解,OO与AOP分别从两个不同的角度给我们提供了分析系统的思路。面向方面可以弥补面向对象的缺陷,两种方式有机的结合在一起,可以更加有效地对系统进行分析。

我们认为OO是接近于人类认识自然的思维方式,但对于东方而言却并不一定是这样的。

当西方人看到一个复杂系统的时候,只会有一种思路,就是“分解”,将系统分解成一块一块,然后每个部分进行研究。

当东方人看到一个复杂系统的时候,更多地会关注系统中存在的关系,将系统作为一个有机的整体进行研究,这也是东方和西方在事物看法上存在的差异。

这两种思维方式都没有问题,如果结合起来分析问题,解决问题会更好。面向对象与面向方面也同样如此,都能对应到人类认识自然的思维方式上。

面向服务

面向服务可以说是最近炒得比较火热的概念。包括现在提到的SaaS(Software as a service),软件即服务。准确而言,面向服务不仅仅是软件行业的概念,这个要从社会的产业结构说起。

社会产业总共分为三个,第一产业农业,第二产业工业,第三产业服务业。最早社会的主要产业是第一产业农业,将近有几万年的历史。

十八世纪下半叶在英国开始的工业革命,对人们的生活产生了根本性的影响,社会的主要产业成了第二产业工业。

现在仍然属于工业时代,或者有人说的“后工业时代”。而在后工业时代,社会的经济体制必定要向第三产业服务业逐渐转型。面向服务其实是社会经济体制重心的一种迁移。

还是说回到软件行业,社会的主要产业将转变成服务业,自然软件行业也会出现对应的变化,那就是这里提到的面向服务。面向服务今后会影响到软件的交付模式,会对整个软件行业的体制产生影响。

而说到架构层面,面向服务是系统发布功能的一种方式。并且基于这种方式下不同的系统之间能有效地通信、协作。常见的实现技术就是Web Service。

软件全局观

软件架构设计的三个维度:面向对象、面向方面、面向服务。

最年长的一个维度就是面向对象,发展了好几十年,也是相对而言比较成熟的一个维度。它解决的问题是系统内部结构的设计。

面向方面思想的提出能够弥补面向对象的缺陷。面向对象的方式不能实现横切关注点的分离,而面向方面正是为了解决这个问题。面向方面与面向对象一样都是解决系统内部结构的设计。

面向服务更多的是涉及到系统的外部,简单地说就是发布功能。它并不关注系统内部结构的实现,所以说面向服务与面向对象或者面向方面并不冲突。

这三个维度并不是绝对孤立的,它们之间会互相影响、制约,相互发展的。我们在分析架构的时候需要同时考虑到这三个维度的问题,这样有助于我们设计出更加优秀的架构。

 
UFS电源管理深度解析:从电气特性到功耗模式优化 本文深度解析UFS电源管理,从VCC、VCCQ、VCCQ2三路供电体系切入,详细阐述了UIC链路休眠(HIBERN8)机制与设备七种功耗模式(Active、Idle、Sleep、Power Down)的切换逻辑。文章重点探讨了如何通过主动功耗管理策略与动态调整激活模式电流等级(bActiveICCLevel),在嵌入式与移动设备中实现性能与功耗的精细平衡与优化。 阅读详情

相关推荐

在LinuxMint 22.1(Ubuntu24.04)上安装使用同花顺远航版

Linux用户成功在LinuxMint22.1系统上通过Wine9.0运行同花顺远航版,解决了长期困扰的股票行情软件问题。此前Linux原生版同花顺功能简陋且停止更新,Wine版通达信存在显示问题。作者作为自由软件支持者,通过调整Wine配置文件解决了高分屏显示异常问题,实现了远航版的正常使用。期待同花顺能重启Linux原生版开发,支持更多处理器架构,完善国产软件生态。该方案为Linux股票软件用户提供了实用参考。

5134

软件架构设计

系统设计是业务处理设计,而架构设计是设计一个机制和方案,让业务处理能够实现和落地。 架构设计填补了用户需求和系统设计之间的鸿沟。

左直拳的马桶_日用桶 1万+

多摄像头同步技术:帧同步信号在Sensor与解串器间的传递机制

本文深入探讨了多摄像头系统中帧同步信号的两种核心传递机制:由解串器统一发号施令或由主Sensor作为“带头大哥”。文章对比了两种方案在同步精度、硬件复杂度、成本及适用场景上的差异,并提供了实战配置要点与调试心法,为车载环视、ADAS及工业检测等应用提供关键的技术选型与实施指导。

weixin_29193359的博客 435

[架构之路-106]:《软件架构设计:程序员向架构师转型必备》-16-常见的十余种软件分层架构

cs架构是客户端/服务器体系结构,其中客户端依靠服务器来获取资源。C/S架构全称为客户端/服务器体系结构,它是一种网络体系结构,其中客户端是用户运行应用程序的PC端或者工作站,客户端要依靠服务器来获取资源。C/S架构是通过提供查询响应而不是总文件传输来减少了网络流量。它允许多用户通过GUI前端更新到共享数据库,在客户端和服务器之间通信一般采用远程调用(RPC)或标准查询语言(SQL)语句。客户端/服务器模式由两个部分构成:一个服务器与多个客户端。服务器组件同时为多个客户端组件提供服务。

文火冰糖(王文兵)的博客 5213

【Spring源码三千问】哪些循环依赖问题Spring解决不了?

哪些循环依赖问题Spring解决不了?前言版本约定正文场景一: prototype 类型的循环依赖场景二: constructor 注入的循环依赖场景三:Proxy 类型的 Bean 的循环依赖小结 系列博文: 【老王读Spring IoC-0】Spring IoC 引入 【老王读Spring IoC-1】IoC 之控制反转引入 【老王读Spring IoC-2】IoC 之 BeanDefinition 扫描注册 【老王读Spring IoC-3】Spring bean 的创建过程 【老王读Spring I

老王的专栏 7319

[终于解决]Ubuntu14.04 32位安装移动网卡(0bda:b711)驱动8188gu tplink-WN726n

大致梳理一下问题解决的流程 首先,在台式机做了双系统,台式机只有一个网线接口,由于项目要求,需要占用网口传输数据,所以用之前买的tplink-WN726n免驱版2.0的移动网卡 【note】免驱版只能在Windows下安装使用,在Ubuntu系统中无法使用,所以,需要另辟蹊径。 找了很多资料,尝试很多方法,有的复杂有的简单,终于解决。 【思路】首先在Ubuntu系统中输入lsusb,查看是否检测到USB网卡设备。然后从Github中复制代码,构建,安装,然后modprobe一下,到前面那步还不行,就再来一步

瑞o 1万+

软件架构设计(一)

在项目软件开发过程中,架构设计是不可或缺的也可以说是对整个项目影响最大的一个环节。 软件项目开发流程、架构设计流程、架构设计

weixin_44263579的博客 2691

深入浅出DNS系列(一)- DNS杂谈

黄丝玛:班达山,你好,我记性不好,你告诉我搜狐、新浪的网站IP地址好吗? 班达山:你问问DNS先生吧,他专门干这买卖的

jiangsd198的博客 4129

【软件系统架构设计】知识点汇总

为什么在信息系统建设前需要进行系统规划?系统规划提供了机构信息化建设的基本纲领和总体指向。系统规划是工程项目实施的前提与依据。做好系统规划可避免盲目信息化建设给机构带来巨大的损失系统规划主要解决什么问题?根据组织机构使命及其战略目标,制定信息系统建设总体目标与愿景;针对组织机构信息化需求,确定信息系统总体框架、技术路线与实施方案: 在充分考虑组织机构的技术、设备和人力资源等因素下,制定组织机构的信息系统实施建设项目计划,并分析评估信息系统建设方案可行性。

spicy_chicken123的博客 3881

ADRC自抗扰算法优化(PLC梯形图篇)

ADRC自抗扰算法PLC梯形图完整源代码请参看下面博客文章:ADRC自抗扰控制算法(含梯形图完整源代码和算法公式)_adrc算法_RXXW_Dor的博客-优快云博客PLC的自抗扰控制(ADRC)算法_RXXW_Dor的博客-优快云博客_adrc算法1、自抗扰控制算法,网上很多文章有所讲解,大家也可以关注韩京清教授的论文和书籍,这里就不赘述了,下面给出梯形图+SCL代码。

RXXW_Dor的博客 2282

mongodb在游戏开发领域的优势

目前游戏服务器使用mysql作为数据库的较多,然而,使用mongodb来作为存储层,在某些方面比mysql更为方便和适合。

littleschemer的博客 1698

软件架构常用设计

常用系统架构设计

shaderdx的专栏 1万+

基于AUTOSAR的汽车电子项目--电动助力转向系统

基于AUTOSAR的汽车电子项目开发通常涵盖广泛的领域,例如动力系统控制、车身电子、信息娱乐系统、高级驾驶辅助系统(ADAS)等。以下是一个简化的示例项目,展示了如何在AUTOSAR环境下开发一个电动助力转向系统(Electric Power Steering, EPS)的控制软件

MHD0815的博客 2129

婷婷姐姐:做好这三个维度,才能做出好内容

最近几年内容创业大火,催生出了一批主做内容的创业公司如得到、喜马拉雅等,但在垂直育儿领域,单纯的内容公司尚未形成大潮,还是一片蓝海。去年,由胡婷婷创办的“婷婷唱古文”上线,一年后便成为了这个领域的一匹黑马。9月25日,由贝贝网主办的“贝贝·2017中国母婴峰会”在杭州举行,“婷婷唱古文”的创始人胡婷婷受邀参会,并在会上分享了自己的创业历程以及对儿童教育内容创作的一些认识。胡婷婷认为,当下是做儿童教...

weixin_33895604的博客 244

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[随笔]_快乐工作的三个维度

<br />  今天看《马云商业真经》,书里面P126页提到,最佳雇主的概念体现一个企业整体人力资源管理的水平,对于阿里巴巴这次被评选为最佳雇主公司,评委们认为,结合“快乐工作”的三个维度——成长感、成就感和归属感。感触颇深!<br /> <br />  自己以前有个这么一段时光,每天都开心的熬夜,学习写代码,做网页;和李友他们一起讨论、分析;遇到问题大家一起解决。脑子里想的都是怎么样才能将事情做好。还记得那时候很迷恋[提问的智慧]这篇文章,主要讲述的是提问前的准备和提问的方式对提问回报的问题,再后来就是开

wgg2105的小窝 2412

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

运维入门技术——监控的三个维度(非常详细)零基础收藏这一篇就够了

一个好的监控系统最后要做到的形态:实现Metrics、Tracing、Logging的融合。监控的三个维度也就是Metrics、Tracing、Logging。

Javachichi的博客 1384

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IT人的自我导向型学习:学习的3个维度

看到大家对我的文章赞了不少,看来大家还比较喜欢看。园子里的一些朋友和我说:”终于又看到你要在园子里发原创文章了。几年前就受益匪浅,经过几年的成长分享来的东西肯定也是精品。“ 感谢大家对我的信任,如果你手机以前就喜欢看我的博客的,可以在文章后面回复一下,我看看有多少是老顾客。这两年没有写太多新东西,当然不是说我没有在写东西,写的其实也不少,而且自认为也是精品。只是这两年家里事多,压力大,给IT朋友们...

weixin_30740295的博客 233

“分享”功能设计

借助社交产品的流量,让用户主动分享APP中的内容到社交平台来达到拉新和促活的目的,市场上绝大多数APP都有第三方分享的功能,它是内容分发的最有效途径,并且大大降低了企业的营销成本。作为用户和产品之间的桥梁,社交分享在产品的发展过程中扮演了重要的角色。尤其是刚上线的产品,很难通过产品的内部体系来实现快速的用户增长,所以会更加依赖于分享来达到广泛的传播,获取目标用户。 在常用的社交分享组件中,微信(...

1230

知识点之判断Prompt优化是否有效的三个维度

本文从三个维度深入分析了如何判断Prompt优化是否有效:账本验证、错误分类和链路推进。我们发现,很多开发者只关注输出的美观程度,却忽略了整个Agent系统的稳定性与效率。通过实际案例可以看出,一个看似优化成功的Prompt,如果不能保证账本的完整性、错误的正确处理和链路的顺利推进,那它仍然是无效的。

IManiy的博客 325

开篇词 | 软件设计,应对需求规模的“算法”

你好,我是郑晔!作为一个能把基本功能实现出来的程序员,偶尔仰望天空时,你是否这样问过自己,“我写过的代码还有没有更好的写法呢?如果有一天,我能够把它重写一遍,我该怎么做呢?”这就是我当年问过自己的问题,因为我对自己的代码不满意: 我厌倦了,把各种代码堆砌在一起,然后,在出现Bug时,犹如“大家来找茬”一样在其中定位问题; 我厌倦了,仅仅为了一个小需求,要在无数的地方小心翼翼地做着各种微调,还被产品...

优快云学习 367

想进大厂么?HR:我们从以下三个维度考量 | 猿代码

通常情况,大厂HR都会从职位匹配度、部门匹配度、公司匹配度三个维度来考察求职者,希望以下分享能帮到你。 一、是否和职位匹配 求职者的条件是否符合任职要求,包括:基本条件、知识技能、工作经验、职业素质。 1、基本条件 包括年龄、性别、学历、籍贯、民族、容貌、婚姻状况、外语水平等,像前台文员这个职位大多是年轻漂亮的女孩子,事关公司形象,有对年龄、容貌、性别的要求。 2、知识技能 是从业所需的知识和运用工具的能力,这是职位描述中最重要的胜任能力。使用办公软件,用Word写个文档、Excel做.

weixin_55854293的博客 665

关于技术分享的思考

关于技术分享的思考 最近公司在推行导师制,鼓励有经验的导师带动团队,提升团队的战斗力。作为技术部门,技术分享最适合不过了,可以做到全员导师。 1. 技术分享的目的 做任何事情都是要有目的的。有了明确的目的,在做事的过程中可以不断的检查是否偏离了原来的方向。如果偏移了,可以及时纠正,这点非常重要。下面就分别从团队、个人两个维度来说技术分享的目的。 团队 1. 丰富团队的技术栈,提升团队的...

IT技术猿生 5134

缓慢变化维度

0x00 前言本文会分享数据仓库中和缓慢变化维度相关的内容。在看之前建议回顾一下和维度建模相关的知识点,可参考数据仓库系列文章。为什么会分享这个听起来很奇怪的东西?因为站在的笔者的视角中,只要是做数据仓库的小伙伴们,在工作中基本上都会接触和维度建模相关的内容,而谈到维度建模,就少不了会和维度表打交道。我们要谈的就是维度表相关的知识点。在正式开始之前,先解释一下什么是缓慢变化维度。笔者个人理解,缓慢...

weixin_40479337的博客 619

数仓维度建模实战:从事实表、维度表到宽表的设计与优化

本文深入探讨了数据仓库维度建模的核心实践,重点解析了事实表与维度表的设计原则及其在业务分析中的关键作用。通过对比星型、雪花与星座模型的适用场景,并结合宽表的构建与优化策略,为数据从业者提供了从理论到实战的完整指南,旨在构建高效、易用的数据分析骨架。

weixin_29213525的博客 246

闲鱼选品的6个维度,附赠35个爆款品类!

收藏|闲鱼单天112w曝光,出货350+件,利润2k多之后我的一个4000字玩法复盘!昨天有朋友加过来,问了一些闲鱼选品的方法,技巧,发现大家对这块都感兴趣,那我来分享下我的选品技巧,希望...

程序员入门进阶 4413

【收藏级教程】传统RAG、多模态RAG与Agent:三个维度的技术革命!

文章阐述传统RAG、多模态RAG和Agent是三个不同维度的技术。传统RAG专注于数据处理和检索优化,多模态RAG扩展数据范围支持多模态展示,是真正的技术升级。Agent则赋予RAG自主决策能力,使其"活起来"。传统RAG技术仍可应用于多模态RAG,两者主要区别在于表现形式;而Agent与RAG则是技术维度的区别。

weixin_55154866的博客 612
上一篇: 好东西大家分享: 怎么画数据流图
下一篇: 好东西大家分享: 微软界面设计指导
nitamade
博客等级 码龄25年 6粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值