第三篇:Retrofit SDK的设计思路】的更多相关文章

2016-05-08 15:24:03 Retreofit毫无疑问是一个优美的开源框架,有轻量级.耦合性低.扩展性好.灵活性高的特点,那么Retrofit的设计者们到底是怎么样做到这些的呢?我希望能够通过逆推的方式,探究一下Retrofit设计者们的设计思路和实现方案. 1. 什么是Retrofit 如其官网所说,“Retrofit,A type-safe HTTP client for Android and Java”. 2. 用户群 基于Retrofit自身的定位,它的用户群应该是需要Ht…
Tomcat 总体架构设计 在开始这篇文章的时候,忽然发现上一篇内容的题目不是很合适,不应该叫启动流程,更确切的应该是叫启动脚本. 在最开始,先介绍下 Tomcat 的总体设计,先有一个大概的印象,对 Tomcat 不至于那么陌生. 先介绍下 Tomcat 的一些基础组件(以下内容来自刘光瑞老师的「tomcat 架构解析」): 组件名称 介绍 Server 这个其实就是 Servlet 容器,一个 Tomcat 中只能有一个 Server Service Service 表示一个或多个 Conn…
一.前言 上一篇大概说了下abp通用树形模块如何使用,本篇主要分析下设计思路. 日常开发中会用到很多树状结构的数据,比如:产品的多级分类.省市区县,大多数系统也会用到类似“通用字典/数据字典”的功能,为系统各个地方提下拉框选择的数据源.abp提供了一个模块化系统,只要按它的约定就可以实现一个通用的树形数据的模块,这样公司的多个系统都可以使用,也可以用类似nuget的方式提供给别人使用. 先列举下它的功能 通过nuget方便安装和升级 配置简单 默认已经提供“通用字典”功能 实体.管理器.应用服务…
内容摘要: 需求分析 定义 interface 定义 json 文件 定义列表控件的 props 基于 el-table 封装,实现依赖 json 渲染 实现内置功能:选择行(单选.多选),格式化.锁定等. 使用 slot 实现自定义扩展 做个工具维护 json 文件(下篇介绍) 管理后台里面,列表是一个常用的功能,UI库提供了列表组件和分页组件实现功能.虽然功能强大,也很灵活,只是还不能称为低代码,不过没关系,我们可以写点代码让UI库变为摸鱼神器! 本篇介绍列表的设计思路和封装方式. 需求分析…
在iOS开发中,经常是要用到UITableView的,我曾经思考过这样一个问题,为什么任何种类的model放到TableView和所需的cell里面,都可以正常显示?而我自己写的很多view却只是能放一种特定的model,就好像我这个view是专门为了展示这个model所设计的?有没有一种设计方法,使得我所设计的一些view也可以放任何合适种类的model,并且按照预期的那样正确展示呢? (前一篇记录了个人理解的OC开发中代码规范以及代码通用性,这一篇主要是设计一个通用的进度条.) 为了解决这个…
TYPESDK 服务端设计思路与架构之一:应用场景分析 作为一个渠道SDK统一接入框架,TYPESDK从一开始,所面对的需求场景就是多款游戏,通过一个统一的SDK服务端,能够同时接入几十个甚至几百个各种渠道的SDK.而且这些渠道接口的具体接入字段和接入逻辑,每个月以至每周,都可能发生或大或小的变动.在这样一个复杂的应用场景下,我们应该如何设计一个足够强大而又足够灵活的SDK服务端呢? 首先我们需要厘清,在整个应用场景中,TYPESDK所处的位置,以及它所需要实现的核心功能. 图1 如图1所示,T…
Stream的概念定义   官方文档是永远的圣经~     表格内容来自https://docs.oracle.com/javase/8/docs/api/   Package java.util.stream  一节部分原文内容的翻译   int sum = widgets.stream() .filter(b -> b.getColor() == RED) .mapToInt(b -> b.getWeight()) .sum();   流操作被划分为中间和终端操作,并组合成流管道. 一条S…
1.引言 在即时通讯网经常能看到各种高大上的高并发.分布式.高性能架构设计方面的文章,平时大家参加的众多开发者大会,主题也都是各种高大上的话题——什么5G啦.AI人工智能啦.什么阿里双11分分钟多少万QPS高并发等等. 但实际上,对于普通的开发者(包括IM开发人员)来说,多数公司.多数团队也都是干着默默无闻.平淡无奇的产品开发,并没有那么多高并发.高大上的事情可以做. 就拿一个IM系统来说,无论你的架构设计考虑了多少分布式.高吞吐.高可用,所有这些事情只要落地,那编码的第一件事情就是要实现几乎所…
一年三篇IF大于7的牛人告诉你怎么写SCI 1 研究生必备四本 俗话说好记性不如烂笔头,所以一定要首先养成做笔记的好习惯!作为研究生下面这几个本子是必不可少的: 1.实验记录本(包括试验准备本),这当然首当其冲必不可少,我就不多说了: 2.Idea记录本,每次看文献对自己有用的东西先记下,由此产生的idea更不能放过,这可是做研究的本钱,好记性不如烂笔头,以后翻翻会更有想法的: 3.专业概念以及理论进展记录本,每个人不可能对自己领域的概念都了如指掌,初入门者更是如此,这时候小小一个本子的作用就大…
EventStore的设计思路 最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客中也有大量介绍.EventStore是在Event Sourcing(下面简称ES)模式中,用于存储事件用的.从DDD的角度来说,每个聚合根在自己的状态发生变化时都会产生一个或多个领域事件,我们需要把这些事件持久化起来.然后当我们需要恢复聚合根的最新状态到内存时,可以…
前言:“我们有一个订单列表,希望能够根据当前登陆的不同用户看到不同类型的订单数据”.“我们希望不同的用户能看到不同时间段的扫描报表数据”.“我们系统需要不同用户查看不同的生产报表列”.诸如此类,最近经常收到项目上面的客户提出的这种问题,即所谓的“数据权限”,经过开会讨论决定:在目前的开发框架上面搭建一套通用的数据权限功能. 本文原创地址:http://www.cnblogs.com/landeanfen/p/7760803.html 一.大话权限模块 有了上面的引言,自然而然就引出了今天需要和大…
前言 今天是第三篇了,上一篇简单模拟了数据,实现了LayIM页面的数据加载.那么今天呢就要用数据库的数据了.闲言少叙,书归正传,让我们开始吧. 数据库 之前有好多小伙伴问我数据库是怎么设计的.我个人用关系型数据库比较多,一般就是根据业务来分析,一对一的关系,一对多的关系,多对多的关系等,那么对于LayIM就根据这几个关系出发.而且先根据业务来设计.它初始化的数据我们都见过了,数据中分别包含以下四个部分. 个人用户信息 好友分组信息 群组信息 大部分业务都是围绕着用户转的,那么我们一条一条的分析.…
本文原作者阮一峰,作者博客:ruanyifeng.com. 1.引言 HTTP 协议是最重要的互联网基础协议之一,它从最初的仅为浏览网页的目的进化到现在,已经是短连接通信的事实工业标准,最新版本 HTTP/2 更是让它再次成为技术热点. 作为即时通讯开发者来说,深刻理解HTTP协议有助于在现今复杂移动网络环境下的优化和最佳实践的开展,本文将通俗易懂的地介绍 HTTP 协议的历史演变和设计思路.   学习交流: - 即时通讯开发交流3群:185926912[推荐] - 移动端IM开发入门文章:<新…
我使用asp.net的webform框架进行web应用程序的开发已经差不多四年了,在整个开发生涯中,也使用过一年asp.net的mvc框架.因为网上经常有讨论webform框架和mvc框架的优劣,所以自己也对这两者进行了关注,因为自己最熟悉webform框架,所以就会考虑它的优势是什么?设计思路是什么? 要理解asp.net的设计思路,必须考虑它的产生年代,产生的技术基础,还有观察同时代其他动态网页技术的特点和思路.首先是产生asp.net的技术基础,以下援引百度百科:    “1996年,AS…
第三篇 功能实现(2) ●Activity的四种启动模式 Activity的启动模式有四种,分别是standard.singleTop.singleTask和singleInstance. 在AndroidManifest.xml中,可以通过<activity>标签的android:launchMode属性设置启动模式. (1)standard:每次激活Activity时, 使用方法startActivity(Intent intent),都创建Activity实例,并放入任务栈: (2)si…
任何一个复杂的系统,用户感知到的都只是冰山一角,数据库也不例外. 前两篇文章介绍了 TiKV.TiDB 的基本概念以及一些核心功能的实现原理,这两个组件一个负责 KV 存储,一个负责 SQL 引擎,都是大家看得见的东西.在这两个组件的后面,还有一个叫做 PD(Placement Driver)的组件,虽然不直接和业务接触,但是这个组件是整个集群的核心,负责全局元信息的存储以及 TiKV 集群负载均衡调度. 本篇文章介绍一下这个神秘的模块.这部分比较复杂,很多东西大家平时不会想到,也很少在其他文章…
在这我们将关系模型简单理解为 Table 和 SQL 语句,那么问题变为如何在 KV 结构上保存 Table 以及如何在 KV 结构上运行 SQL 语句. 假设我们有这样一个表的定义: CREATE TABLE User { ID int, Name varchar(20), Role varchar(20), Age int, PRIMARY KEY (ID), Key idxAge (age) }; SQL 和 KV 结构之间存在巨大的区别,那么如何能够方便高效地进行映射,就成为一个很重要的…
从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路   http://www.52im.net/thread-1709-1-2.html     本文原作者阮一峰,作者博客:ruanyifeng.com. 1.引言 HTTP 协议是最重要的互联网基础协议之一,它从最初的仅为浏览网页的目的进化到现在,已经是短连接通信的事实工业标准,最新版本 HTTP/2 更是让它再次成为技术热点. 作为即时通讯开发者来说,深刻理解HTTP协议有助于在现今复杂移动网络环境下的优化和最佳实践的…
作者简介 孔维乐,七牛云客户端团队 Android 平台高级开发工程师,专注音视频,图形图像领域.OpenGL 专家,先后参与直播推流及连麦 SDK 的开发,主导短视频 SDK 的架构设计与实现, 对客户端架构设计及性能优化有丰富经验. 短视频发展史 图 1 图 1 所示是短视频及直播的发展史,众所周知,2016 年是直播元年,在这期间诞生了很多直播平台,比如熊猫.映客.斗鱼等:而在 2017 年,短视频的火爆程度并不亚于直播,可能大家都以为短视频是从 2017 年开始火爆起来的,但其实早在 2…
第三篇Scrum冲刺博客 一.站立式会议 提供当天站立式会议照片一张 二.每个人的工作 成员 已完成工作 明天计划完成的工作 遇到的困难 林剑峰 初步完成用户界面 用户界面跳转到用户信息页面的按钮,设计用户信息页面   陆君健 协助完成用户界面的样式 协助完成用户信息页面的样式 内联样式与外联样式优先级匹配冲突 石竞贤 完成首页与云数据库对接 完成用户信息页面与云数据库对接 与云数据库对接的接口是异步实现的,操作起来难度有点大 饶元兴 完成失招首页的设计 微信个人信息授权实现 周惠龙 发布信息按…
2019年主动学习有哪些进展?答案在这三篇论文里 目前推广应用的机器学习方法或模型主要解决分类问题,即给定一组数据(文本.图像.视频等),判断数据类别或将同类数据归类等,训练过程依赖于已标注类别的训练数据集.在实验条件下,这些方法或模型可以通过大规模的训练集获得较好的处理效果.然而在应用场景下,能够得到的数据实际上都没有进行人工标注处理,对这些数据进行类别标注所耗费的人力成本和时间成本非常巨大.在一些专门的应用领域,例如医学图像处理,只有专门学科的专业医生能够完成对医学影像图像的数据标注.显然,…
Logo设计的思路多种多样,但是我个人从Logo设计的历史上,大致可以归纳出五种常规思路,思路的名称是自己编的,仅供大家参考.而列举的这些思路背后,都是有着各自的时代背景的. 先从历史最悠久的一种设计思路开始说,这个思路可简称为实物(象征)法.这种思路设计出来的logo,都有一个特点:就是logo描绘的人或物本身就有着强烈的象征意义和传奇故事. 这是历史上最早出现的logo设计思路,在商品业还不发达的远古时代,logo设计大多是一些家族的徽章.过去几乎所有欧洲家族的徽章,都是以一种动物作为的自家…
前     言 拖了蛮久了,一直说要接着上一部分写设计思路以及代码,因为自己技术底子薄弱,加上人又懒,所以一直没能继续,今天补上设计思路及部分代码,后面有时间我会再补充一些应用性的功能,的确有些忙,希望对大家有用:欢迎大家提意见或者拍砖: 之前,我说了,网上蛮多例子都是基于WordCount或者基于展示内存使用率来的,也没什么不对,只是我个人觉得没有太大的实用性:毕竟咱们是码农,凡事讲个应用及场景,脱离场景谈开发都是扯淡: 第一部分  场景和设计思路 场景: 通过爬虫从网络获取数据,不停的插入K…
最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客中也有大量介绍.EventStore是在Event Sourcing(下面简称ES)模式中,用于存储事件用的.从DDD的角度来说,每个聚合根在自己的状态发生变化时都会产生一个或多个领域事件,我们需要把这些事件持久化起来.然后当我们需要恢复聚合根的最新状态到内存时,可以通过ES这种技术,从EventS…
离上一篇博客,快一周,工作太忙,只能利用休息日来写一些跟大家分享,Entity Framework Plus 组件系列文章,之前已经写过两篇 第一篇 Entity Framework Plus 之 Audit 第二篇 Entity Framework Plus 之 Query Future 计划还会写两篇,一篇是关于查询缓存的(二级缓存),一篇是批量操作(只讲更新,删除). 今天写查询缓存,标题 第三篇 Entity Framework Plus 之 Query Cache  ,废话不多说,直接…
进入研三以来,基本都是自己的自由时间了,从导师的项目抽离出来,慢慢的都交给师弟他们来负责.研三的核心任务就是找工作以及写毕业论文,因为有导师科研基金项目成果作为支撑,所以自己的论文没什么可担心,一切都是水到渠成.研二假期时候,自己有在猪八戒网或者其他渠道,接过一些小的gis单子来做,当是生活补贴也好,进入研三以来,就寻思着怎么组成一个gis开发团队,通过团队接一些大一点的gis项目,还有就是磨练团队的合作意识以及默契,长远的来说,要是拓展业务开了话,慢慢的往工作室甚至开gis公司的方向发展. 第…
× 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [1]原型链 javascript使用原型链作为实现继承的主要方法,实现的本质是重写原型对象,代之以一个新类型的实例 function Super(){ this.value = true; } Super.prototype.getValue = function(){ return this.va…
× 目录 [1]切图信息 [2]切图步骤 [3]实战 前面的话 前端工程师除了使用photoshop进行测量之外,更重要的是要使用该软件进行切图.本文是photoshop巧用系列的第三篇——切图篇 切图信息 在网页制作中有哪些图片是需要被切出来的呢?主要分为两类,一类是修饰性图片,另一类是内容性图片 [1]修饰性图片 修饰性图片主要对网页内容进行修饰,一般会被制作为雪碧图,用在background属性中,通常保存为png24(IE6不支持半透明)和png8格式.修饰性图片主要包括以下几类: 1.…
https://www.qcloud.com/community/article/222 宋增宽,腾讯工程师,16年毕业加入腾讯,从事海量服务后台设计与研发工作,现在负责QQ群后台等项目,喜欢研究技术,并思考技术演变,专注于高并发业务架构的设计与性能优化.下半年利用空余时间研究和分析了部分Redis源码,本文从网络模型.数据结构和内存管理.持久化和多机协作四个角度对redis的设计思路进行了分析,若有不正确之处,希望各路大神指出. Redis是业界普遍应用的缓存组件,研究一个组件框架,最直观的办…
描述:MVC数据验证使用小结 内容:display,Required,stringLength,Remote,compare,RegularExpression 本人最近在公司用mvc做了一个修改密码的功能,使用的是mvc数据验证,现将使用心得分享给大家 首先,我们先分析一下,如果要实现密码修改功能,我们需要做哪些工作.先从页面说起吧,前台页面起码需要三个密码框吧,分别表示原始密码,新密码,重复新密码,最后再加一个按钮,这样一个页面的基本元素就构造完毕了 其次,我们需要对添加的数据进行验证,包括…