自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 用令牌桶算法完成API接口限流

这是张富涛的第15篇原创用令牌桶算法完成API接口限流本文介绍了“令牌桶算法”,和使用lua+redis实现基于令牌桶算法的限流。1. 限流需求的产生背景软件开发时偶尔会面临高并发或突发流量,经典的情况是秒杀业务或者是某明星发了爆炸性的微博,很可能因为下游的服务器处理能力不足导致程序异常,甚至造成服务雪崩。面对高并发或突发流量场景的解决方案之一是“限流”,通过在架构中的网关层进行限制单位时间内的最大请求数量,达到保护后端服务的作用。熟悉淘宝双11的读者一定见过这个截图,这样的截图一般更容易.

2021-03-19 16:34:42 625 1

原创 前后端分离:SpringMVC中使用Swagger

这是张富涛的第15篇原创前后端分离:SpringMVC中使用Swagger我们在上篇文章《前后端分离:Swagger,生成接口文档的工具》中已经介绍了Swagger的诸多优点。Swagger基本支持所有语言,但最重要的是它可以在Java中与SpringMVC完美结合!那么这篇文章就介绍如何在SpringMVC中使用Swagger!1. 导入Swagger包如果是Maven项目,将在pom.xml文件中写入如下配置:<!-- Swagger --><dependency&g.

2021-02-25 18:04:33 1642 1

原创 跨端开发,flutter和react native如何选择

这是张富涛的第14篇原创跨端开发,flutter和react native如何选择1. 传统方案的瓶颈 和 flutter及RN要解决的问题五六年前智能手机开始逐渐普及大众,从此Android和IOS便成为移动端coder的舞台,在我还上学那会儿,“分班”的时候移动端就已经可以两端择一,那时候,如果一家企业需要做移动端,至少需要有会IOS和Android的员工,不然就会面对一个平台产品缺失和用户流失的问题,但如果都招,面临的必然是“成本较大”、“双端功能同步更新”等问题。那时候“一套代码生成双端原.

2021-02-21 03:30:34 4038

原创 前后端分离:Swagger,生成接口文档的工具

这是张富涛的第13篇原创前后端分离:Swagger,生成接口文档的工具1. 概述前后端分离时最大的问题就是沟通成本的问题:没有人专门撰写接口文档、接口文档不能实时更新让前端(包括移动端)开发工程师查看……随着开发技术和设计理念的日新月异,应运而生的“Swagger”出现了。swagger官方网站:https://swagger.io/Swagger号称“世界最流行的API框架”,专业解决“在前后台分离的开发模式中,减小接口定义沟通成本,方便开发过程中测试,自动生成接口文档。”Swagger.

2021-01-31 00:09:31 722

原创 前后端分离:RESTful API和HTTP动词

这是张富涛的第12篇原创前后端分离:RESTful API和HTTP动词1. 前言现在很多公司都使用“前后端分离”进行开发,“后端工程师”为“前端工程师”提供API接口,这么做的好处是可以“确认职责”和“提高开发效率”,同时还有一套接口设计的比较好后,还可以让移动端调用。但前后端分离本质上是使用“增加人数、明确分工”来“提高产能”的,软件研发行业一般有一个比较基本的理念是:如无必要,勿增实体 ,但如果使用这种方案,一般必须要制定一套机制,或者说是一套约定,保证“实体”(前后端工程师)之间的沟通顺畅,.

2021-01-28 15:17:30 732

原创 网络编程:深入理解TCP与UDP

这是张富涛的第11篇原创网络编程:深入理解TCP与UDP1.概述在网络编程这篇章中,我们简单介绍了TCP与UDP,包括他们的实现方式,以及C/S方式的代码简单实现及优化,我们已经对TCP与UDP有了一定程度上的理解,那么下面我们稍微深入一下TCP与UDP,将他们更加清晰的进行对比一下。首先我们回顾一下TCP与UDP之间的优缺点对比:TCP:优点较为安全,缺点是较慢。UDP:优点较快,缺点是“丢包”。以上是较直观的结论。那么可能大家都没注意到的一个问题来了:为什么UDP传输较快,TCP传输.

2021-01-25 18:01:40 178

原创 网络编程:网络协议简介

这是张富涛的第10篇原创网络编程:网络协议简介网络协议在网络编程中是一个比较神秘的概念,今天就由我们揭开它神秘的面纱吧。1. 什么是网络协议?网络协议是指对于网络中传输的数据格式的规定。在计算机网络通讯过程中,发送和接收方约定用一种协议(数据格式)进行通讯,发送数据的一方严格按照一个协议(数据格式)发送数据,接收方也严格按照协议(数据格式)进行解析,这样才能进行一次完整的网络通讯。在本文中,我们不去研究TCP/IP和UDP协议是什么结构、又是怎么实现的,这些协议运行是传输层,在这些只有在深入.

2021-01-23 20:10:07 656

原创 网络编程:UDP编程(2)

这是张富涛的第9篇原创网络编程:UDP编程(2)1. 前言在上一章《网络编程:UDP编程(1)》中我们介绍了UDP方式的简单客户端和服务器端实现方式,这一章我们将要对其进行一下改造,类似“TCP”的客户端和服务器端一样,能够实现“客户端多次提交请求及服务器端多次处理”功能,呢么让我们先回顾一下上一章客户端和服务器端的实现代码吧!2. 代码回顾(改造前)UDP简单客户端的实现(改造前)UDP简单服务器端的实现3. 代码改造首先我们将客户端进行改造,我们将其发送数据的一块增加一个循环,使其.

2021-01-22 14:51:31 115

原创 网络编程:UDP编程(1)

这是张富涛的第8篇原创网络编程:UDP编程(1)1. 概述在网络编程中,TCP可以理解为打电话,而UDP(User Datagram Protocol)则可以理解为发短信、发快递,发短信和发快递有一个共同点,发送的时候无需知道接收方存不存在,所以对于发送方来说,有可能会有“发送的消息”对方接收不到的损失,这相对于类似打电话的“TCP”方式来说,稍显得不靠谱一些。 所以对于我们平时重要的事情都会想着:“打个电话给对方吧!”,而平时我们一般重要的事情就是用发短信来解决了。对于UDP的方式,由于无需像T.

2021-01-21 17:25:57 373

原创 网络编程:TCP编程

这是张富涛的第7篇原创网络编程:TCP编程根据前篇《网络编程:TCP与UDP简介及端口映射技术》介绍,网络通讯分为TCP和UDP两种方式,其中TCP方式如同打电话一般,电话接通之后,A对B进行通讯,A跟B说一k句话,如果B没听清,则A会重新说一遍。网络编程也是这样,如果发送消息的一方觉得接收消息的一方接收不到或有什么问题,则会在网络底层进行重新发送1. Java基础类TCP编程主要需要的两个类:java.net.ServerSocket:服务器端主要使用的类,用于监听特定端口,当客户端连接.

2021-01-20 16:25:56 478

原创 网络编程:网络编程模型

这是张富涛的第6篇原创网络编程:网络编程模型1. 写在前面无论TCP还是UDP的网络编程,都是由服务器端和客户端组成,当然,如果B/S结构(类似Web开发)则只需要实现服务器端即可,所以介绍网络编程时,我们以C/S结构为基础进行介绍。2. 客户端网络编程模型客户端(Client)一般为发起连接的程序,编程时一般由以下三个步骤实现:建立网络连接:与服务器端建立起网络连接,建立时需要指定服务器端的ip地址以及端口号,建立完成后,即可进行网络通信。交换数据:建立成功连接之后即可进行数据.

2021-01-20 16:24:53 307

原创 网络编程:TCP与UDP简介及端口映射技术

这是张富涛的第5篇原创网络编程:TCP与UDP简介及端口映射技术1. TCP与UDP简介在Java中,网络编程有两种通讯协议:TCP 和 UDP。其中两种传输方式的优缺点对比:TCP:优点较为安全,缺点是较慢。UDP:优点较快,缺点是“丢包”。传输方式的差别:TCP:A链接B,只要链接上就不用再次建立链接,下次可以直接传输(类似打电话)UDP:数据发送过去,不关心消息送没送到,不关心传输地址存不存在,消息发送了之后,链接就断开了(类似发快递、给离线的用户发送qq).

2021-01-19 11:24:12 3129 4

原创 设计模式:装饰模式

这是张富涛的第4篇原创设计模式:装饰模式1. 提问这次的设计模式分享与以往不同,以往我们先介绍设计模式,今天我先抛出一个问题吧:“假如你进入了一家生产智能硬件的公司,现在要你来以面向对象的设计方式设计他的智能硬件类。以下是一些条件:已知他们生产了多种智能硬件,如手环、手机等。每种硬件的配件又有很多,如普通的手机、带彩屏的手机、带蓝牙的手机、带摄像头的手机等等。对于Model类你会怎么设计?”你的同事小明提出了如下设计:他解释:以面向对象的思路来说,所有“手环”继承于Hand.

2021-01-18 14:30:59 155 2

原创 设计模式:观察者模式

这是张富涛的第3篇原创设计模式:观察者模式1. 简介观察者模式:有时也被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。如果简单的介绍观察者模式,那就像拍卖的时候,“拍卖师”观察最高标价,然后通知给其他竞价者竞价。我们将“拍卖师”看做一个观察者,将最高标价看做一个主题事件,当最高标价发生了改变的时候,我们就要通知所有的“竞价者”:最高标价发生了变化,这就是观察者模式。.

2021-01-18 14:30:13 92

原创 设计模式:适配器模式

这是张富涛的第2篇原创设计模式:适配器模式1. 简介适配器模式(Adapter Pattern)是23种设计模式之一,它主要在老接口与新接口之间进行适配,将老的接口变成客户期待的另一种接口,将原本无法在一起工作的两个类变得能够在一起工作。——Gang of Four这就有点像我们平时接触的电源转化器,它插在两项的插座上,将自己充当为三项插座供外界使用。2. 适配器类图以上是适配器模式的类图。Adapter 适配器设计模式中有 3 个重要角色:被适配者 Adaptee,适配器 Adapter.

2021-01-18 14:29:40 116

原创 设计模式:责任链模式

这是张富涛的第1篇原创设计模式:责任链模式1. 责任链模式简介责任链模式(Chain of Responsibility Pattern)是一种设计模式,对于责任链模式可以理解为进行一次“击鼓传花”的游戏,玩家围成一个圈,每个玩家都有一位下家,这个玩家只要知道自己的下家就可以了,花到了自己手里,如果鼓声没有决定自己喝酒(自己不满足执行的要求),就将花传给自己的下家,直到最终有一个玩家喝酒或者花传到最后一位玩家那没有下家了。图:红楼梦中击鼓传花与责任链模式将所有执行者围成一条直链,或者一条环链,.

2021-01-18 14:28:30 135

转载 一个很强大的LOG开关

1、API亮点:此API可以实现不更换APK,在出问题的手机上就直接能抓到有效log,能提升不少工作效率。2、API介绍最近在解决短信问题时,看到一个很强大的LOG开关---Log.isLoggable1. if (Log.isLoggable(LogTag.TRANSACTION, Log.VERBOSE)) {  2.     Log.v(TAG, "Creating Tr

2016-08-05 09:35:19 6564 1

IDEA开发说明文档V1.2

1 btl文件打开类型配置 Java项目使用的是Beetl模板引擎,所以View文件都是使用的为.btl后缀的文件,我们需要设置让IDEA开发工具用打开HTML文件的方式打开.btl文件,这样有助于前端的快速开发。 ① 点击左上角菜单栏File——》Setting打开设置页面

2019-03-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除