《架构师》期刊摘要(2015年)三

一、微服务解决我们哪些痛点呢?

    1)技术架构、平台升级难:传统的单体式架构系统倾向于采用统一的技术平台或者方案解决所有的问题;而微服务的异构性,可以针对不同的业务特征选择不同的技术方案,有针对性的解决具体的业务问题。

    对于单体式架构系统,初始的技术选型严格限制将来采用的不同语言或者框架的能力,没有完备的功能测试集,很难平滑的完成替换,而且系统规模越大,风险越高。基于微服务架构,使我们更容易在遗留系统上尝试新的技术或者解决方案。

    2)测试、部署成本高

    单体式架构系统,多个功能组件运行在一个进程中,因此系统中任何程序的改变,都需要对整个系统重新测试并部署。而对于微服务架构而言,不同服务之间的打包、测试或者部署等,与其他服务都是完全独立的。对某个服务所做的改动,只需要关注服务本身。从这个角度来说,使用微服务后,代码修改、测试、打包以及部署的成本和风险都比单体式架构系统减低了很多。

    3)可伸缩性

    单体式架构系统由于单进程的局限性,水平扩展时只能基于整个系统进行扩展,无法针对某一个功能模块按需扩展。而服务架构则可以完美的解决伸缩性的扩展问题。系统可以根据需要、实施细粒度的自由扩展。

    4)构建全功能团队难

    康威定律指出:一个组织的设计成果,其结构往往对应这个组织中的沟通结构。传统的开发模式在分工时往往以技术为单位,比如UI团队、服务端团队和数据库团队,这样的分工可能会导致任何功能上的改变都需要跨团队沟通和协调。而微服务则提倡围绕服务来分工,团队需要具备服务设计、开发、测试到部署所需要的所有技能。

    5)异常破坏性大

微服务架构同时也能提升错误的隔离性,比如某个服务的内存泄露,只会影响自己,其他服务能够继续正常的工作。与之形成对比的是,单体式架构中如果有一个不合格的组件发生异常,有可能会拖垮整个系统。

 《从单体架构到微服务》(2015年5月)

二、序列化与反序列化:

    序列化:将数据结构或者对象转换成二进制字节流的过程。

    反序列化:将序列化过程生成的二进制字节流转换成数据结构或者对象的过程。

    数据结构和对象:对于类似于JAVA这种完全面向对象的语言,工程师所操作的一切都是对象(Object),来自类的实例化,那么序列化就是将这些对象转换成二进制流可以保存在磁盘或者在网络中传输;反序列化正好相反,通过从磁盘或者网络中读取二进制流并转换成内存中JAVA对象的过程。

 

    序列化协议特征:

    1、通用性

    1)技术层面:序列化协议是否支持跨平台、跨语言。如果不支持,在技术层面上的通用性就大大降低。

    2)流行程度:序列化和反序列需要多方参与,很少人使用的协议往往意味着昂贵的学习成本;另一方面,流行度低的协议往往缺乏稳定而成熟的跨语言、跨平台的公用包。

 

    2、强壮性/鲁棒性(影响强壮性的几个原因)

    1)成熟度不够,一个协议从制定和实施,到最后成熟往往是一个漫长的阶段。协议的强壮性依赖于大量而全面的测试,对于致力于提供高质量服务的系统,采用处于测试阶段的序列化协议会带来很高的风险。

    2)语言/平台的不公平性:为了支持跨平台、跨语言的功能,序列化协议的制定者需要做大量的工作,但是当所支持的语言或者平台之间存在难以调和的特性的时候,协议制定者需要做出一个艰难的决定---支持更多人使用的平台或者语言,亦或支持更多的语言、平台而放弃某些特性,这个时候,协议制定者可能会牺牲某些平台、语言的“强壮性”。

 

    3、可调式、可读性(涉及到易用性问题)

    序列化和反序列的数据正确性和业务正确性的调试往往需要更长的时间,良好的调试机制会大大提高开发效率。如果序列化后的数据人眼可读(human readable),这将大大提高调试效率,XML和JSON就具有人眼可读的有点。

 

    4、性能

    1)空间开销:序列化需要在原有的数据上加上描述字段,以为反序列化解析之用。如果序列化过程引入的额外开销过高,可能会导致过大的网络、磁盘等各方面的压力。对于海量分布式存储系统,数据量往往以TB为单位,巨大的额外空间开销意味着高昂的成本。

    2)时间开销:复杂的序列化协议会导致较长的解析时间,这可能会使得序列化和发序列化阶段称为真个系统的瓶颈。

    3)可扩展性/兼容性

    互联网时代,业务系统需求的更新周期见得更快,新的需求不断涌现,而老的系统还是需要继续维护。如果序列化和发序列化具有良好的可扩展性,支持自动增加新的业务字段,而不影响老的服务,这将大大提供系统的灵活度。

    4)安全性/访问限制

 

    5、序列化和反序列化的组件

    1)IDL(Interface description language,接口描述语言)文件:参与通讯的各方需要对通讯的内容做相关的约定。为了建议一个与语言和平台无关的约定,这个约定需要采用与具体开发语言、平台无关的语言来进行描述,这种语言被称为IDL。

    2)IDL Compiler:用于编译IDL,用于生成各个语言、平台可见的接口。

    3)Stub/Skeleton Lib:由Compiler生成,用于负责序列化和反序列化的工作代码。Stub是一段部署在分布式系统客户端的代码,一方面接收应用层的参数,并对其序列化后通过底层协议栈发送到服务端,另一方面接收服务端序列化后的结果数据,发序列化后交个客户端应用层;Skeleton部署在服务端,其功能与Stub相反,从传输层接收序列化参数,反序列化后交给服务端的应用层,并将应用层的执行结果序列化后最终通过网络传递给客户端Stub。

    4)Client/Server:应用层代码,他们面对的是IDL Compiler生成的接口文件的具体实现。

    5)底层协议栈:序列化后的数据通过底层的网络(协议栈,比如传输层、网络层、链路层等)传递,通常面向TCP、Http协议等。

 

    Thrift:

    Facebook开源提供的一个高性能、轻量级RPC服务框架,其产生正是为了满足当前大数据量、分布式、跨语言、跨平台数据通讯的需求。但是,Thrift不仅仅是一个序列化协议,而是一个完整的RPC框架。相对于JSON和XML而言,Thrift在空间开销和解析性能上都有比较大的提升,对于性能要求比较高的(性能优先)分布式系统,它是一个优秀的RPC解决方案,但是由于Thrfit的序列化被嵌入到Thrfit框架中,框架本身并没有透出序列化和发序列化的结构,这导致很难与其他的传输层协议共同使用(例如Http协议,Thrift使用TCP协议,而且改造其服务传输模式非常困难)。

    个人建议,非性能优先、openAPI、大数据传输协议,不建议使用Thrift,特别是普通的业务系统,感觉不好用。

 

    Protobuf:

    非常优秀的序列化、反序列化框架,使用IDL和编译器,生成传输协议的代码(目前也支持RPC接口,参见gRPC),序列化数据非常简洁、紧凑,与XML相比,其序列化之后的数据量要小很多。解析速度快,而且易于使用。所以我们推荐Protobuf作为大家的序列化、反序列化框架。Protobuf是一个纯粹的展示层协议,可以和各种传输协议一起使用,在JAVA平台上基本上是通用和标配。缺点是支持的平台相对较少,使用Protobuf需要一些外部的框架支持、需要额外的一些代码开发。

 

    Avro:

    Avro的产生解决了JSON的冗长和没有IDL的问题,Avro属于Apache Hadoop的一个子项目,在大数据体系中通常使用Avro作为数据的序列化和发序列化,而且易于存储和解析。

 

    官方有一些基准测试的结果,基于时间和空间的性能比对梯图:

    1)XML序列化(Xstream)无论在性能和简洁性上都比较差。

    2)JSON序列化(jackson)表现居中,比Protobuf、thrift要差一些,但是比java自带的序列化要好不少。

    3)Thrift和Protobuf相比,在时间开销方面都一定的劣势。

    4)Protobuf和Avro在两个方面都表现的比较优越。

    所以如果仅从序列化、反序列方面考虑,Protobuf和JSON仍然是主流的选择,Protobuf应该是JAVA平台的首选,考虑跨语言的话JSON首选。如果考虑到RPC层面,Thrift可以考虑。

 

    1、对于公司间(异构系统、开放API)调用,如果性能要求在100ms以上是可以接受的,基于XML的SOAP协议是一个值得考虑的方案。(Web Service)

    2、基于浏览器的Ajax或者基于Mobile App与服务器端交互的请求,JSON协议是首选。这对性能要求不太高,或者以动态类型语言为主,或者传输数据载荷较小的场景,JSON也是非常不错的选择。(简单而言,基于Http协议的互联网、移动互联网、类似于Gateway的服务,且不存在较大数据传输的场景,建议JSON首选)

    3、对于调试环境比较恶劣的场景,采用JSON或者XML能够极大的提高效率,减低系统开发成本;这是基于数据可读性方面的考虑。

    4、当对性能和简洁性有极高要求的场景,或者内部服务间通讯的,Protobuf、Thrift、Arvo之间可以斟酌考虑。(跨语言、平台的话,需要比较它们的适用性和易用性)

    5、对于T级别的数据持久化场景,Protobuf和Avro是搜要选择,因为这两个协议序列化后数据尺寸较小、而且易于持久化。如果持久化后的数据存在于hadoop生态中,Avro是更好的选择。

    6、由于Avro的设计理念偏向于动态类型语言,对于动态语言为主的应用场景,Avro是更好的选择。

    7、非Hadoop平台的数据,特别是JAVA平台之间的序列化,Protobuf几乎是唯一选择。

    8、如果出了序列化和反序列化,还需要高效的RPC框架,Thrift更加适合。(前提是,接口协议不应该频繁的变更;对于公司内部的业务接口,通常Thrift不合适;但是open API类型的基础服务,还算适用)

    9、如果序列化之后需要支持不同的传输层协议,或者需要跨防火墙访问的高性能场景,Protobuf可以优先考虑。

《序列化与反序列化》(2015年6月)

三、架构之重构的12条军规(备注:值得一看)

    1、确定重构的目的和必要性:明确重构的目的是为了满足业务需求,并且是不得不做的最佳方案。有时候经过分析就会发现,也许还有其他的解决方案(而非重构),比如增加计算资源、或者重构的目的不是为了业务需求,那就没有必要了。

    1)架构重构的原因是什么,是为了满足业务的需求还是只是觉得架构不好看?

    2)除了架构重构之外,还有其他备选方案吗?是否都分析过这些方案的利弊?

 

    2、定义“重构完成”的界限:界定怎么才算“重构”完成了,目标要有数据量化,或者能够测量的方法。如果需求不明确,负责重构的团队也没有明确的目标,不能以重构的时间或者主观的判断为结束的依据。

    1)重构的目标可以量化,或者可以测量吗? 2)重构完成的标准是什么?得到业务部门或者领导的认可了吗?

 

    3、渐进式重构:现在软件研发最流行的就是快速迭代、持续交付、尽早反馈。这同样可以用在架构的重构上,重构过程的难度不亚于构建一个新的产品,所以在设计重构的时候,要引入持续交付的流程,每一个重要步骤或者模块都要快速部署并得到反馈,以便评估重构的效果,即使作出策略调整。

    1)能否把重构过程分解成小的迭代,每一次改进都能尽快得到反馈?

    2)重构过程中的效果能够定期展示给业务部门或者领导吗?(我感觉作者,就是个“权威”信仰派的,哈哈)

 

    4、确定当前的架构状态:在启动重构之前,需要对当前架构的状态有清晰的了解,也就是设定好基准,以便评估重构的效果。

    1)你了解当前的架构设计吗?它的设计初衷和之前的选型方案知道吗?

    2)你能给架构设定一个基准状态吗?

 

    5、不要忽略数据:

    架构重构的本质就是对于数据流的重构,重构之后的系统对数据的存储、处理、分析等功能是否有影响,在重构过程中,考虑依靠数据甚至实际的数据来验证重构的效果,提供评估的支持。

    1)业务数据的需求在重构设计中有体现吗?

    2)重构过程中能否通过实际数据来验证效果?

 

    6、管理好技术债务:

    架构重构往往是为了偿还技术债务,所以请不要在技术重构的过程中制造新的技术债务。技术债务就想信用卡一样,会有很高的利率。组织应该培养一种保证设计质量的文化。应当鼓励重构、同时也应该鼓励持续设计以及其他有关代码质量的实践。

    1)团队对技术债务有跟踪和备忘机制吗?还是开发人员可以随意的产生债务?

    2)针对技术债务有定期的培训、回顾机制吗?

 

    7、远离那些虚荣的东西(例如使用“热门”的技术栈)

    架构的重构过程应该以目标为导向,换句话说“注重实效”。对于技术人员来说,一个经常被轻视的问题在于,喜欢追求新鲜的热门技术,这其实是个好事情,说明技术人用于创新,不断接受新技术。但是对于架构的重构这样的关键性人物来说,是不是新技术并不重要,重要的是能不能实现重构的目标。对于新技术来说,虽然热度大,但是人才储备不足,大家踩过的坑还不多,积累的失败教训和成功的经验还不够,在这种情况下,建议大家不要头脑一热就上马新技术,应该客观冷静的评估新技术与成熟技术对架构重构的影响和效果,以数据和经验来说话,而不要追求赶时髦。

    1)重构的技术选型是否有详实的数据和专家评估?

    2)选用的技术是否有良好的人才积累和足够的经验支持?你是不是实验小白鼠?

    3)技术选型时,是否至少有两个方案待评估?有没有成熟的技术方案?

 

    8、做好准备面对压力:

    这条军规更像是对架构师们的心理建议。对于架构重构来说,压力源于多个方面:管理层、团队成员、同级部门等。说白了,架构重构对个人来说往往是出力不讨好的事情。和做一个新产品能够取得很高的赞赏相比,重构的成绩往往并不受领导重视,而是出了问题还要承担很大的责任。从软件开发角度看,做新产品是0到1,而架构重构是-1到1,复杂性和难度通常更大。

    1)架构的重构是否得到管理层(特别是最高管理层)的支持?他们是否对重构的时间、任务量有直接的认识?

    2)你的重构计划中是否包含一些可以量化的成果?是否定期向管理层展示这些成果?

 

    9、了解业务:

    虽然看起来是一句废话,但是RaffiKrikorian特意把这条提出来一定是有道理的。架构重构的最终目的是改进业务,所以对业务的了解将有助于架构师和技术人确定重构目标的优先级和关键路径。比如,我们需要指导哪些关键业务的架构师不能碰的,哪些业务之间是互相关联的,哪些业务的架构师需要优先重构的....除了了解业务本身,我们还需要了解“人”,表面上管理层是重构目标的裁决者,但实际上业务部门的人才是。技术人需要了解他们的业务需求,并将其转化成重构目标。通过这种方式,架构重构的意义才能得到具体的体现。

    1)是否与业务部门就架构重构所能实现的业务目标进行过充分的讨论和确认?

    2)是否对关键业务和优化重构的业务进行了确认?

 

    10、做好面对非技术因素的准备:

    恩.....这又是一个不那么让人舒服的建议。不管你是否愿意相信,技术在架构重构的影响因素中并不是最高的,我们还会涉及到商业利益、管理层偏好、大客户影响、办公室政治、站队问题等等,对于架构师和技术人来说,这些因素往往不是他们所能掌控的。我们能做的就是,与利益相关者设定重构目标,然后,根据不同的影响因素,调整目标。请记住,不要死扛这个目标,当有人提出不同的意见时,要坦诚地和他们交流,并告知他们如何采纳意见,那么重构目标就会发生变化,然后让其他利益相关者也知道这些变化。非技术因素的影响是客观存在的,而且从商业层面来说也是合理的,所以技术人来说要学会适应。

    1)当非技术因素影响架构重构是,你是否对目标做了调整并告知了利益相关方?

    2)你是否准备以开放而不是地址的心态对待非技术因素的影响?

 

    11、对于代码质量有所掌握:

    架构的重构对代码质量要求更高,一方面是重构过程对BUG的容忍性比新产品的研发更低,另一方面也决定了下一次重构的难以程度。代码审查时一个非常好的办法。

    1)团队成员是否对代码质量有足够的重视?是否有奖惩措施?

    2)团队内部是否有代码质量的标准文档和审查流程?

 

    12、让团队做好准备:

    拥抱未知的恐惧吧,或好或坏!

《架构之重构的12条军规》(2015年6月)

INFOQ 架构师期刊 2012年11月的架构师期刊,分享给需要的。 立即下载

相关推荐

电磁兼容标准体系解析:从基础到认证的完整指南

本文系统解析了电磁兼容(EMC)标准体系,从基础概念到认证流程提供完整指南。文章阐述了EMC对于产品可靠性与市场准入的重要性,详细拆解了基础标准、通用标准、产品类标准及认证流程四层结构,并结合5G设备与工业控制等实战案例,为工程师提供了从设计初期到认证测试的高效应用策略。

weixin_29294975的博客 355

《架构师》期刊摘要(2015年)一

一、架构应该是从简单到复杂,不断演变的一个过程。工程师思维驱动人们去开发一个理想化的系统。然而最好的架构却通常不是最理想的架构,而是最适合的架构。我们见过许多因为过度的架构设计而浪费宝贵的时间的案例,更有甚者因为过多不切实际的假想而导致架构迟迟无法落定,这种现象的术语描述,叫做“分析瘫痪”。     所以优秀的架构应该结合业务目标,在权衡之中寻求一个最优的点。   二、分布式系统在扩展性...

深入一点 510

深入解析TI C2000 ePWM模块:峰值电流模式Buck与LLC谐振变换器实战配置

脉宽调制(PWM)技术是电力电子与数字电源控制的核心,它通过调节开关信号的占空比或频率,实现对功率变换器输出电压、电流的精确控制。其基本原理是利用微控制器内部的定时器和比较器,生成具有特定时序的方波信号,驱动功率开关器件。这项技术的核心价值在于将复杂的模拟控制环路数字化,从而提升系统的可控性、灵活性和可靠性。在电机驱动、不间断电源(UPS)、服务器电源和新能源逆变器等广泛应用场景中,PWM技术都是实现高效能量转换的基石。本文聚焦于德州仪器(TI)C2000系列微控制器中功能强大的增强型PWM(ePWM)模块

weixin_30410119的博客 344

InfoQ中文站电子杂志《架构师》8月刊出版

由InfoQ中文站推出的电子杂志《架构师》8月刊已经发布!该杂志是InfoQ中文站于2008年推出试刊,于2009年7月正式创刊的全新电子杂志, 面向高端开发人员和项目经理。和以往的各期一样,本期《架构师》向大家提供过去一个月中InfoQ中文站最为精华和热点的内容。每条新闻,每篇文章,每个 推荐,都是经过编辑们精心甄选。为了保证能够将一个月以来技术社区的飞速发展浓缩在短短数页纸上,InfoQ中文站...

啊啊啊啊2 442

LightTools中VBA宏的编写入门

LightTools和VBA联动

bestgamer的博客 2348

用Omniverse Kit开发第一个USD插件:从环境配置到实战案例(Python 3.7版)

本文详细介绍了如何使用NVIDIA Omniverse Kit和Python 3.7开发第一个USD插件,涵盖从环境配置到实战案例的全过程。通过创建可实时同步材质属性的USD插件,开发者可以快速掌握Omniverse开发框架,提升3D内容创作效率。

x8y9z0的博客 586

《架构师》期刊摘要(2016年)一

一、《软件设计精要与模式》作者张逸在接收InfoQ采访时曾说:“评价一个架构的优劣方法之一是,把每个功能、非功能的因素扩大化,再看这个架构会不会出问题。”(本人赞同此说法)他的观点是说,架构设计要面向业务未来,而未来是不断发展的。架构不仅要承载业务的增长,还要兼顾技术发展的趋势。 《前言》(2016年6月)   二、我想任何人做架构多需要秉承“业务需求决定技术演化路线”的思路,那些暴露出...

深入一点 543

YOLO与ORB-SLAM3的结合:实现动态环境下的目标检测与视觉SLAM

摘要: 本文介绍如何将YOLOv5目标检测与ORB-SLAM3视觉SLAM系统结合,实现动态环境下的机器人感知与定位。内容包括:源码下载(集成项目YOLO_ORB_SLAM3)、libtorch安装(PyTorch C++支持)、编译配置(解决路径依赖问题)、ROS环境下的部署(Noetic适配),以及使用TUM数据集的测试流程(RGB-D数据关联与运行)。重点解决编译时Torch路径错误、ROS与Anaconda冲突等问题,并展示系统运行效果。该整合方案为动态场景SLAM提供目标检测能力,未来可优化检测模

FJN110的博客 960

《架构师》期刊摘要(2015年)二

一、一个优秀的设计过程或者方法论定义了一组一致的、可以重复的步骤,可以在将一个服务端服务组件输出为一个可访问的、有用的WEB API时使用。那就是说,一个清晰的方法论可以由开发人员、设计师和软件架构师共享,以便在整个实现周期内帮助大家协同活动。一个成熟的方法论还可以随着时间的发展,随着每个团队不断发现改善和精简过程的方式而得到精炼,却不会对实现细节产生不利的影响。     1、列出所有组成部...

深入一点 344

Dify 系列教程 | 第 6 篇:工作流入门 -- 用可视化方式编排 AI 逻辑

Dify 工作流是一个基于有向无环图(DAG)的可视化 AI 逻辑编排系统。你可以把多个处理步骤(节点)用连线串联起来,数据从起点流向终点,每经过一个节点就被处理一次。用一个类比来理解:如果单次 Prompt 调用是"一道菜",那工作流就是"一道完整的生产线" – 原材料(输入)进入流水线,经过清洗(预处理)、切配(数据转换)、烹饪(AI 推理)、装盘(格式化输出)等工序,最终产出成品。创建一个工作流类型的应用(或高级聊天类型),就会进入工作流编辑器。编辑器基于ReactFlow构建(

weixin_43674738的博客 119

华为MetaERP PTP采购到应付全流程解析

摘要:本文系统解析华为MetaERP中的PTP(采购到应付)全流程管理方案,涵盖从采购申请到付款执行的完整业务流程。文章详细分解了PR、PO、GR、IV、AP等关键环节的财务核算规则,并提供了预算校验、库存更新等Python代码示例。同时阐述了IT落地架构设计,包括会计引擎配置、系统集成方案及银企直连支付接口实现。该方案通过三单匹配自动化和智能会计引擎,将处理效率提升10倍(200笔/人天→2000笔/人天),实现98%的自动化率,为集团企业提供了高效的数字化财务管理样板。文中所有技术方案均需根据实际场景调

金牌架构师 1743

智源唐杰主编的IEEE Transactions on Big Data期刊被SCI收录 | AI日报

智源唐杰主编的IEEE Transactions on Big Data期刊被SCI收录今日,IEEE Transactions on Big Data (简称:IEEE TBD)被SC...

BAAIBeijing的博客 4953

企业AI选型大揭秘:扣子(Coze) Bot与微信对话开放平台深度剖析

本文对比分析了字节跳动的扣子(Coze)Bot和腾讯的微信对话开放平台两款AI聊天机器人解决方案。扣子(Coze)Bot凭借强大的大模型支持、丰富的插件生态、低代码开发及多平台部署能力,在功能丰富度和灵活性方面表现突出,适合技术实力强、业务场景复杂的企业。微信对话开放平台则依托微信生态优势,在客户服务和营销推广场景中更具优势,其零门槛接入方式更适合技术能力较弱的企业。企业在选型时应综合考虑规模、预算、业务场景和技术能力等因素,选择最适合的AI解决方案,以充分发挥AI技术价值,提升企业竞争力。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 434

2015.7.11 SDN南京技术交流会

活动介绍 旧时王谢堂前燕,飞入寻常百姓家,金陵自古多骚客,小暑将至,SDNLAB.com将趁着最后的一丝凉意尚未消失之际为大家带来南京首次SDN技术交流活动。 以SDN为代表的网络创新技术在如火如荼的发展着,2015 ONS上以ODL、ONOS、OPNFV为代表的开源力量纷纷亮相展示其最新进展,注定2015年将是SDN领域各种技术大比拼的重要一年,但是不管外面的世界多精彩,SDNL

SDNLAB的专栏 1511

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

历年Infoq架构师月刊收集

Infoq月刊收集: 2008:https://download.youkuaiyun.com/download/chenxuegui123/11952622 2009:https://download.youkuaiyun.com/download/chenxuegui123/11952623 2010:https://download.youkuaiyun.com/download/chenxuegui123/119...

永生只是一场幻梦 776

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

视频教程-2020年软考系统架构设计师-上午历年真题解析视频培训课程-软考

2020年软考系统架构设计师-上午历年真题解析视频培训课程 河北师范大学软件...

weixin_31233223的博客 867

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

“计算机视觉女神”被IEEE期刊封杀

因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享点击关注#互联网架构师公众号,领取架构师全套资料 都在这里0、2T架构师学习资料干货分上一篇:2T架构师学习资料干货分享大家好,我是互联网架构师!作者:西风转自:量子位 | 公众号 QbitAI计算机学术界的女神“Lenna”被IEEE“封杀”了——IEEE计算机协会宣布,4月1日起不再接收包含该图像的论文。△Lenna图IE...

emprere的博客 140

【确认出席】程训焘 DolphinDB 首席架构师丨上海·1月14日

博士,DolphinDB 首席架构师,长期从事云原生和分布式数据库架构、计算与存储引擎、人工智能与数据库结合等方面的研发工作,ISO/IEC数据库语言标准化工作小组专家成员,在SIGMOD、VLDB、FAST等数据库、存储相关领域的国际学术会议上有多篇论文发表并担任相关会议和期刊的审稿人。本次论坛的活动主题是“数据有猿·智见十年”,旨在超越单纯的技术叙事,从产业、商业、组织与文化思维等多重视角,重新探问智能时代数据的本质与边界。上海市数据局作为指导单位,第八届金猿季颁奖典礼”浙江智臾科技有限公司。

数据猿 88

中科院计算所培训中心2015年四季度公开课安排

一、 四季度课程安排:   序号 课程名称 课程时间 地点 费用 1 【高级软件需求分析师】 10月14日-10月16日 北京 5500 2 【数据仓库与数据挖掘】 10月14日-10月16日 北京 5500

中科院计算所培训中心 1123

春风送暖,Docker论道

2014年,Docker在国内落地,一场场meetup和talk,从北到南,从小到大,如燎原星火。10月份,尤达大师Jerome到访,在北京上海的布道,让Docker爱好者们更是沉醉。 与此同时,一批Docker技术公司也如雨后春笋,神州涌动创业潮。DaoCloud的两位联合创始人,经过...

chuoyan9900的博客 239

面向程序员的免费杂志

面向程序员的免费杂志 免费的才是最好的。 推酷的《编程狂人》 《编程狂人》周刊是专为IT人打造的行业技术周刊。 利用技术挖掘出那些高质量的文章,并通过人工加以筛选整理出来。每期的周刊一般会在周五的某个时间点发布。 《编程狂人》重度在广,每一期都是最近一周的热门文章的整合,包含了 业界新闻,前端开发,编程语言,安卓开发,iOS开发,后端技术,数据存储,架构应用,技术纵横,程序人生,项目工具等多

along 1336

2015/7/10 机器学习日报摘录

为什么80%的码农都做不了架构师?>>> ...

weixin_34293141的博客 160

独家 | 微软三位AI大牛出走:何晓冬加盟京东 沈徽加入商汤科技

▼点击上方蓝字 关注网易智能为你解读AI领域大公司大事件,新观点新应用【网易智能讯 3月13日消息】微软亚太研发集团近期人员出走现象持续发生。继前微软亚洲研究院资深研究员郑宇离职跳槽京东金融担任副总裁、首席数据科学家之外,据网易智能独家获悉,微软美国研究院NLP首席研究员何晓冬已加盟京东,微软(亚洲)互联网工程院两位副院长也在近期相继离职。何晓冬加盟京东任副总裁网易智能今日独家获悉,何晓冬原为微软

网易智能 1929

第一届区块链技术及应用峰会“区块链核心技术”分论坛预告大放送

技术苍穹,迭代未休,区块链技术乘破竹之势而来,已然问鼎2018年技术圈开年“关键词Top榜”。当爆炸式的知识需求,遇上业内资源捉襟见肘的困窘现状,区块链技术及应用峰会(BTA)·中国踏浪而至,一叶扁舟,以渡正在摸着石头过河的技术爱好者们。 作为新一代颠覆性的应用,区块链技术已成为当下最火热的话题,全球竞相发展区块链技术。为了进一步的探究区块链技术的本质、发展趋势、行业应用、政策与投资,以...

优快云研发技术 2666

无开源,不 AI!

2012 年,深度学习模型 ImageNet 算法带来了第三次 AI 浪潮。自此,已深耕深度学习领域几十载的 AI 研究学者与科学家成为 AI 时代的缔造者。2016 年,AlphaGo...

优快云资讯 2514
上一篇: 《架构师》期刊摘要(2015年)二
下一篇: nginx线程池模式探讨
iteye_19607
博客等级 码龄8年 34粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值