modular

字节跳动总监对Android组件化的最佳实战总结 ,覆盖整个互联网公司(附源码)

倾然丶 夕夏残阳落幕 提交于 2021-01-14 17:19:46
背景 组件化作为Android客户端技术的一个重要分支,近年来一直是业界积极探索和实践的方向。每个大厂内部的各个Android开发团队也在尝试和实践不同的组件化方案,并且在组件化通信框架上也有很多高质量的产出。本文主要介绍我们的组件化方案,希望对从事Android组件化开发的同学能有所启发。 为什么要组件化 近年来,为什么这么多团队要进行组件化实践呢?组件化究竟能给我们的工程、代码带来什么好处?我们认为组件化能够带来两个最大的好处: 1.提高组件复用性 可能有些人会觉得,提高复用性很简单,直接把需要复用的代码做成Android Module,打包AAR并上传代码仓库,那么这部分功能就能被方便地引入和使用。但是我们觉得仅仅这样是不够的,上传仓库的AAR库是否方便被复用,需要组件化的规则来约束,这样才能提高复用的便捷性。 2.降低组件间的耦合 我们需要通过组件化的规则把代码拆分成不同的模块,模块要做到高内聚、低耦合。模块间也不能直接调用,这需要组件化通信框架的支持。降低了组件间的耦合性可以带来两点直接的好处:第一,代码更便于维护;第二,降低了模块的Bug率。 怎样实现组件化 要实现组件化需要考虑的问题主要包括下面几个: 代码解耦。将一个庞大的工程拆分解耦,这是非常耗时耗力的工作,但这也是最基础最重要的一步 数据传递。每个组件都有可能提供给其他组件使用,主项目与组件

编程思想-模块化-模块化程序设计:模块化程序设计

不想你离开。 提交于 2020-12-23 03:11:59
ylbtech-编程思想-模块化-模块化程序设计:模块化程序设计 模块化 程序设计 是指在进行 程序设计 时将一个大程序按照功能划分为若干小程序模块,每个小程序模块完成一个确定的功能,并在这些模块之间建立必要的联系,通过模块的互相协作完成整个功能的程序设计方法。 1. 返回顶部 1、 中文名:模块化程序设计 外文名:modular programming 原 则:模块独立等 优 点:控制了程序设计的复杂性等 应 用:计算机编程等 学 科:信息科学技术 目录 1 思想 2 原则 3 步骤 4 优点 2、 2. 返回顶部 1、 思想 在设计较复杂的程序时,一般采用自顶向下的方法,将问题划分为几个部分,各个部分再进行细化,直到分解为较好解决问题为止。模块化设计,简单地说就是程序的编写不是一开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系逐步求精的结果是得到一系列以功能块为单位的算法描述。以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。模块化的目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化。 利用 函数 ,不仅可以实现程序的模块化,使得 程序设计更加简单和直观 ,从而提高了程序的 易读性和可维护性 ,而且还可以把程序中经常用到的 一些计算或操作编写成 通用函数

2019最后的倔强!一览12月份的GANs(论文标题)

淺唱寂寞╮ 提交于 2020-12-06 18:16:15
欢迎点击上方蓝字,关注啦~ 相关阅读: 容颜渐失!GAN来预测? GAN整整6年了!是时候要来捋捋了! 弱水三千,只取你标!AL(主动学习)结合GAN如何? 异常检测,GAN如何gan ? 虚拟换衣!速览这几篇最新论文咋做的! 脸部妆容迁移!速览几篇用GAN来做的论文 【1】GAN在医学图像上的生成,今如何? 01-GAN公式简明原理之铁甲小宝篇 001 (2019-12-18) Unsupervised Adversarial Image Inpainting https://arxiv.xilesou.top/pdf/1912.12164.pdf 002 (2019-12-10) Bias Remediation in Driver Drowsiness Detection systems using Generative Adversarial Networks https://arxiv.xilesou.top/pdf/1912.12123.pdf 003 (2019-12-27) Graduate Employment Prediction with Bias https://arxiv.xilesou.top/pdf/1912.12012.pdf 004 (2019-12-26) Towards Better Understanding of Adaptive

centos8环境下安装docker操作实例

*爱你&永不变心* 提交于 2020-12-04 15:02:34
查看linux系统内核版本:docker要求Centos系统的内核版本高于3.10,否则用yum update升级linux系统内核; [root@localhost ~]# clear [root@localhost ~]# uname -r 4.18.0-193.14.2.el8_2.x86_64 安装docker: Yum install docker 报错:All matches were filtered out by modular filtering for argument: docker 菜鸟: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun curl -sSL https://get.daocloud.io/docker | sh 也报错,说某个依赖低于某个版本; 只能如此安装: dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm 但是:安装超时了。。 于是:yum list docker-ce --showduplicates | sort -r 列出了所有的能安装的版本; 再于是:yum -y

FMC简介

▼魔方 西西 提交于 2020-11-18 20:08:41
FMC简介 FMC ( FPGA Mezzanine Card ) 简而言之,是具有特定功能的子卡模块。 Developed by a consortium of companies ranging from FPGA vendors to end users, the FPGA Mezzanine Card is an ANSI standard that provides a standard mezzanine card form factor, connectors, and modular interface to an FPGA located on a base board. Decoupling the I/O interfaces from the FPGA simplifies I/O interface module design while maximizing carrier card reuse. FPGA 夹层卡 (FMC) 标准由包括 FPGA 厂商和最终用户在内的公司联盟开发,属于 ANSI 标准,旨在为基础板(载卡)上的 FPGA 提供标准的夹层卡尺寸、连接器和模块接口。I/O 接口与 FPGA 分离,不仅简化了 I/O 接口模块设计,同时还能最大化载卡的重复使用率。 支持高达 10 Gb/s 的信号传输速率,夹层卡和载卡之间潜在总带宽达 40

Quartz:Quartz添加事务回滚报错

北城余情 提交于 2020-11-13 05:22:07
自动任务类: @PersistJobDataAfterExecution @DisallowConcurrentExecution public class ReCodeBack implements Job { private static final Logger LOGGER = LoggerFactory.getLogger(ReCodeBack. class ); @Autowired ReCodeBackTag reCodeBackTag; @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { reCodeBackTag.backupsReCode(); } } 自动任务注解: @PersistJobDataAfterExecution @DisallowConcurrentExecution 任务需求是需要添加事务 运用spring注解 @Transactional 注解 /** * 添加(删除)表数据 * @param object * @param modular * @return */ @Transactional(rollbackFor = Exception. class ) public int

组件化、模块化、集中式、分布式、服务化、面向服务的架构、微服务架构

别来无恙 提交于 2020-11-01 10:02:23
最近最火的词是什么?那大概就是 微服务 ( Microservice )了。最近也火的一踏糊涂的Docker、AppOps也都是围绕着微服务领域的。在微服务领域还有很多相关名词。这些名词有一个共同的特点那就是晦涩难懂。他们就像中国古代的道、气、八卦等词一样, 一解释就懂,一问就不知,一讨论就打架。 本文主要来介绍几个和微服务相关的概念。这些概念的都是博主在浏览了大量资料之后总结出的个人见解,如有偏颇,请指正,共勉之。 组件化与模块化 首先来谈两个前端和移动端比较常见的词: 组件化 和 模块化 (后面我会说到为什么要先介绍 组件化 和 模块化 )。 首先,可以肯定的是,组件化和模块化的中心思想都是 分而治之 。目的都是将一个庞大的系统拆分成多个组件或者说是模块。 组件化 首先来看维基百科中关于组件化( Component-based software engineering )的介绍: Component-based software engineering (CBSE), also known as component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns in respect of the wide

组件化、模块化、集中式、分布式、服务化、面向服务的架构、微服务架构

这一生的挚爱 提交于 2020-11-01 08:41:12
组件化、模块化、集中式、分布式、服务化、面向服务的架构、微服务架构 最近最火的词是什么?那大概就是微服务(Microservice)了。最近也火的一踏糊涂的Docker、AppOps也都是围绕着微服务领域的。在微服务领域还有很多相关名词。这些名词有一个共同的特点那就是晦涩难懂。他们就像中国古代的道、气、八卦等词一样,一解释就懂,一问就不知,一讨论就打架。 本文主要来介绍几个和微服务相关的概念。这些概念的都是博主在浏览了大量资料之后总结出的个人见解,如有偏颇,请指正,共勉之。 组件化与模块化 首先来谈两个前端和移动端比较常见的词:组件化和模块化(后面我会说到为什么要先介绍组件化和模块化)。 首先,可以肯定的是,组件化和模块化的中心思想都是分而治之。目的都是将一个庞大的系统拆分成多个组件或者说是模块。 组件化 首先来看维基百科中关于组件化(Component-based software engineering)的介绍: Component-based software engineering (CBSE), also known as component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns in respect

学术分享丨模块化肌腱驱动假肢手

*爱你&永不变心* 提交于 2020-10-24 09:30:40
  近些年假肢手虽然取得了显著进步,但其可修复性通常有限,尤其是用户自己很难进行修复。曾有学者提出了几种模块化的手来解决这个问题,但是这些解决方案需要处理复杂的部件,或者由于增加了机械的复杂性而导致体积和重量过大,因此不适合用于假肢。近期,IEEE ROBOTICS AND AUTOMATION LETTERS发表了“OLYMPIC:A Modular, Tendon-Driven Prosthetic Hand With Novel Finger and Wrist CouplingMechanisms”,研究者提出了一个完全模块化的假肢手设计,其手指和手腕设计具备模块化,可以随时拆卸或装配来移除或连接肌腱。他们的创新设计能够将电机置于手后,用于驱动肌腱,肌腱仅包含在手指内。实现了这一新型的耦合传输机制,还计算了手指的模块分离扭矩,以分析有意拆卸与承受外部负载能力之间的权衡。研究人员提出了模块化设计,其模块化程度各不相同,如表1所示。   表1 模块化假肢手与机械手在设计方面的比较      一种完全模块化的假肢手,它具有耦合机制,允许肌腱从手掌外部驱动。本文介绍的假肢手,命名为OL YMPIC(操作性模块化假肢),是一种经济实惠的跨桡动脉装置,其模块可以被截肢者直观、快速地互换和组装,而不需要工具,如图1所示;事实上,手部引入了新颖的关节耦合机制。         图1

微软发布「云上太空」计划:马斯克SpaceX星链加持,让云服务遍布全球

断了今生、忘了曾经 提交于 2020-10-22 08:40:59
微软试图在云服务领域向全球行业的领军者 AWS 发起挑战,他们最新的策略竟是:与伊隆 · 马斯克旗下的 SpaceX 合作,把云服务推向太空。 机器之心报道,作者:泽南、蛋酱、杜伟。 这几年里,我们讨论过云上贵州、乌兰察布,甚至「云上加州」,但微软本周二公布的一项新计划「Azure Space」率先把云服务带到了太空,着实领先业界一大步。 我们知道,自去年起,SpaceX 的「星链」StarLink 网络已经开始加速部署,其计划通过近地轨道卫星群,提供覆盖全球的高速互联网接入服务。这样一张网,是微软发展云服务的理想合作伙伴。在发布 Azure Space 时微软还表示,除了 SpaceX 以外,该公司还将与卢森堡卫星运营商 SES 展开同样的合作。 「将云服务推向太空的行动将是互联网的一次巨大飞跃,」微软 Azure 全球副总裁 Tom Keane 表示。「航天业界的迅速发展正在降低人们链接公众的门槛,通过 Azure Space 计划,我们可以实现农业、能源、通信和政府业务等领域的新发展。」 微软已经召集了由著名太空行业专家组成的团队,并与世界一流的产品工程师和科学家共同构建满足太空需求的云计算能力。创新领域包括模拟太空任务、从卫星数据中发掘有用信息以及在地面和轨道上赋能创新。 通过与太空发展社区的领导者合作,微软将通过遍布全球的卫星连接扩展 Azure 功能