自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(50)
  • 问答 (1)
  • 收藏
  • 关注

转载 响应式网页设计项目#3---Product Landing Page----电商企业---伯库电玩的塞尔达促销页面

响应式网页设计项目#3---Product Landing Page电商企业,伯库电玩的塞尔达促销页面https://codepen.io/yiyunpan//#技术堆栈1. 使用HTML、JavaScript和CSS完成。这里是纯CSS做的#内容1. 使用了H5 语义化的标签2. 重点使用了CSS3的Flex布局(CSS3动画还未加入)3. 三拔:拔图,拔网站的写法,拔字体。4. 设计网页布局,UI,配色,设计电商企业logo,公司名称(最开心最得意的就是这块了,充...

2020-07-31 15:21:06 292

转载 本地存储localStorage和sessionStorage

cookie劣势:存储大小限制,4kb单域名下有数量限制,50个左右污染请求头,浪费流量本地存储web storage包括localStorage和sessionStoragelocalStorage 本身是一个对象,可以打印查看<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>localStorage<...

2020-07-30 15:21:08 277

转载 如何成为一名优秀的web前端工程师

我所遇到的前端程序员分两种:第一种一直在问:如何学习前端?第二种总说:前端很简单,就那么一点东西。我从没有听到有人问:如何做一名优秀、甚至卓越的WEB前端工程师。如何成为一名优秀的web前端工程师何为:前端工程师?前端工程师,也叫Web前端开发工程师。他是随着web发展,细分出来的行业。Web前端开发技术主要包括三个要素:HTML、CSS和JavaScript!它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化、SEO和服务器端的基础知识,而且要学会运用各种工具进...

2020-07-30 08:20:07 140

转载 Node.js Buffer(缓冲区)

JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。在v6.0之前创建Buffer对象直接使用new Buffer()构造函数来创建对象实例,但是Buffer对内存的权限操作相比很大,可以直接捕获一些敏感信息。所以在v6.0以后,官方文档里面建议使用Buffer.from()接口去创建Buffer对象。Buf...

2020-07-29 20:21:12 299

转载 Web前端存储之sessionStorage和localStorage

对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,它包含两种:localStorage 和 sessionStoragesessionStorage(临时存储) :为每一个数据源维持一个存储区域,在浏览器的此标签页打开期间存在,包括此标签页的页面重新加载localStorage(长期存储) :与 sessionStorage 一样,但是浏览器关闭后,数据依然会一直存在localStorage和sessionStorage的存储数据大...

2020-07-29 15:21:08 308

转载 valid和invalid伪类美化表单案例

效果图<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>form</title> <style> .container{margin:100px;position: relative;font-size:14px;} input{width:140px;height...

2020-07-29 08:20:07 217

转载 Node.js 常用工具

util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心 JavaScript 的功能 过于精简的不足。使用方法如下:const util=require("util");//引入util模块//定义一个异步函数async function fn(){ return "hello cyy~";}//将异步函数转为异常优先的回调函数风格const callbackFn=util.callbackify(fn);callbackFn((err,res)...

2020-07-28 20:21:10 179

转载 详解js数组扁平化

1.项中最多一层深度的扁平化1.1concat() + applyArray.prototype.concat.apply([],arr) 例子:Array.prototype.concat.apply([],[1,2,3,4,5,[6,7]])// 这样写相当于在一个空的数组上调用concat然后给他穿进去的参数不是一个数组,而是这个数组里的项。这是利用了apply的特性,因为apply第二个参数接受一个数组,然后数组里面的内容就是参数。等同于下面的样子:[].concat(1,...

2020-07-27 20:21:08 562

转载 ES6 - 基础学习(21): 模块加载的实现

1、浏览器加载2、ES6 模块与 CommonJS 模块的差异3、Node.js 加载4、循环加载

2020-07-27 15:21:09 63

转载 高性能的小程序swiper组件

  小程序的社区总是觉得只有几个活跃的人,问一些问题的时候很难得到想要的答案,做过超过100个swipe-item的同学可能会发现低端机型会卡顿,使用小程序提供的组件满足不了业务的需求,多个swipe-item的使用场景是很多的,例如刷题,刷商品,刷视频等,刷商品swipe-item可能有上千个,这次的随笔就来分享如何实现一个高性能的swiper组件。...

2020-07-27 08:20:06 255

转载 使用JavaScript策略模式校验表单

表单校验Web项目中,登录,注册等等功能都需要表单提交,当把用户的数据提交给后台之前,前端一般要做一些力所能及的校验,比如是否填写,填写的长度,密码是否符合规范等等,前端校验可以避免提交不合规范的表单。假如我们有一个表单,校验逻辑如下:用户名不为空密码长度不低于6位手机号符合格式未使用策略模式的表单校验当没有使用策略模式时,即我们首先会想到的校验模式通常是这样的:<body> <form id="registerForm"> <...

2020-07-26 08:20:04 171

转载 移动端性能优化(CSS性能优化)

CSS性能优化CSS选择器优化如果可以直接选中元素,不需要加一些多余的修饰 /*不要使用类选择器和ID选择器修饰元素标签,这样多此一举,还会降低效率。*/ div#slider.slider { }一般来说,class用于样式,id用于js,因为id定义的样式不利于复用保证不会误选的情况下,尽量保持简单避免冲突可以在命名时区分好 /*保持简单,不要使用嵌套过多过于复杂的选择器*/ /*浏览器从...

2020-07-25 15:21:09 242

转载 如何实现一个parseInt

如何实现一个parseIntfunction(string, [radix]) {}如果string不为字符串类型, 则先将string转化为字符串类型string会忽略前后的空白依次解析字符, 如果字符不是指定基数中的字符( 例如:2进制中的3、 10进制中的'f' )则停止解析( 首字符为'+'或'-'时除外 ), 返回已经解析好的整数如果无法解析为整数, 则返回NaNradix 默认值不为10, 在radix为undefined、0或者没有指定时, 做以下处理如果string...

2020-07-24 15:32:08 219

转载 react-router 在路由切换时进行提示

react-router 版本 ^5.1.2在有正在编辑的内容未保存时,发生了路由切换,此时需要给出一些提示,并由用户控制是否进行跳转。在react-router进行路由管理时,可以使用 Prompt 组件实现此功能,其中的message属性可以接受一个函数,返回string的时候就提示,默认为window.confirm进行提示,用户可以选择是否跳转;返回true的时候就直接路由切换,不进行提示。可以将Prompt进行简单的封装,如下:import { Prompt} from "rea...

2020-07-23 20:21:11 854

转载 数据库中间件mycat安装与使用

1.下载# wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz2.安装# tar -zxvf ~/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local3.配置schema.xml# cd /usr/local/mycat/conf# vim schema.xml&lt...

2020-07-23 15:21:04 182

转载 Java设计模式——适配器模式(Adapter)

目的:把源类型适配为目标类型,以适应客户端(Client)的需求;此处我们把目标接口的调用方视为客户端使用场景:需要对类型进行由源类型到目标类型转换的场景中前置条件:已有客户端//Client 一个调用目标接口的方法Class ClientInvoking { static void invoke(TargetInterface target) { String value = target.getMark(); System.out.print...

2020-07-22 20:21:14 117

转载 也谈Reactor模式

何谓Reactor模式?它是实现高性能IO的一种设计模式。网上资料有很多,有些写的也很好,但大多不知其所以然。这里博主按自己的思路简单介绍下,有不对的地方敬请指正。BIOJava1.4(2002年)以前,IO都是Blocking的,也就是常说的BIO,它在等待请求、读、写(返回)三个环节都是阻塞的。在等待请求阶段,系统无法知道请求何时到达,因此需要一个主线程一直守着,当有请求进来时,将请求分发给读写线程。如图:代码如下: ExecutorService executor = Ex...

2020-07-22 15:21:07 122

转载 MVC架构中的Repository模式 个人理解

关于MVC架构中的Repository模式个人理解:Repository是一个独立的层,介于领域层与数据映射层(数据访问层)之间。它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接口提供给领域层进行领域对象的访问。Repository是仓库管理员,领域层需要什么东西只需告诉仓库管理员,由仓库管理员把东西拿给它,并不需要知道东西实际放在哪。tabbycat的理解(来源):1. Repository模式是架构模式,在设计架构时,才有参考价值;2.Rep...

2020-07-22 08:20:05 531

转载 实现PHP内部的通知机制,如当一个类的属性发生变化时,另外一个类就可以收到通知

设计模式:观察者模式当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新。使用场景一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理逻辑,当更新得逻辑增多之后,代码会变得难以维护,这种方式是耦合的,侵入式的,增加新的逻辑需要改变事件主题的代码。观察者模式实现了低耦合,非侵入式的通知与更新机制。参考链接PHP 观察者模式<?phpabstract class EventGenerator{ public $observers ...

2020-07-21 20:21:13 229

转载 OpenID Connect Core 1.0(九)声明(Claims)

5 声明(Claims)这一节说明客户端如何获取关于终端用户声明和验证事件。它还定义了一组标准的基本声明配置。预定义一组可请求的声明,使用特定的scope值或能用于请求参数中的个人声明。声明可以直接来自OpenID提供者或分布式来源。5.1 标准声明(Standard Claims)这个规范定义了一组标准的声明。他们可以请求的返回或用户信息的响应,此在 5.3.2节或在第二节中的ID Token。sub string 在发行人终端用户的主体标识符。name string终端用户...

2020-07-21 15:21:05 884

转载 JAVA设计模式——开篇

  设计模式很重要,重要性我就不再复述了。最主要的是,通常我们在写一定量代码后,常用的方法什么的都熟悉后,想再提高代码能力,我找到的最好的方法还是去学习,理解设计模式。不理解设计模式,看一些开源框架和java源码会很难懂。  刚学java时就从各种文章,也听很多人说面向对象编程很重要。但是在编程时虽然会建立类什么的,看起来是面向对象编程。面向对象中的概念也背了一大堆,然而感觉没有真正的理解面向对象编程。因为实际上在开发业务过程中,尤其是简单一些简单的业务,接口,抽象类什么的都用不上。直到开始学习...

2020-07-20 15:21:08 108

转载 行为模式之访问者模式

访问者模式(Visitor Pattern)的目的是封装一些于某种数据结构元素之上的操作,一旦这些元素需要修改,接受这个操作的数据结构则可以保持不变。定义:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义于作用这些元素的新的操作。访问者模式的类图如下。访问者模式涉及以下5个角色。抽象访问者(Visitor)角色:该角色声明一个或多个访问操作,定义访问者可以访问哪些元素。具体访问者(Concrete Visitor)角色:该角色实现抽象访问者角色中的各个访...

2020-07-19 15:21:04 103

转载 设计模式系列- 抽象工厂模式

抽象工厂是基于简单工厂发展而来的,通过抽象工厂,我们可以创建多种类型的工厂,并且依据具体业务需求而在具体工厂里面进行任意拼装组合。介绍在现实世界中,汽车制作行业有各种各样的工厂,每个工厂都需要具有生产轮胎、汽车引擎等部件的能力,但是针对具体的工厂,每个部件的生产又各不相同,所有在软件开发过程中,当我们为客户端制作各种各样的皮肤时,就可以参考这种设计模式。类图描述从上图我们可以发现,我们通过定义一个抽象工厂 AbstractFactory 来约束具体每种工厂所具备的能力,然后通过定义 ...

2020-07-18 20:21:21 85

转载 结构型模式之装饰模式

装饰模式(Decorator Pattern)是一种比较常见的模式。定义:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。装饰模式类图如下所示。装饰模式有以下4个角色。抽象构件(Component)角色:用于规范需要装饰的对象(原始对象)。具体构件(ConcreteComponent)角色:实现抽象构件接口,定义一个需要装饰的原始类。装饰(Decorator)角色:持有一个构件对象的实例,并定义一个与抽象构件接口一致的接口,具体装饰角色:负责对...

2020-07-18 15:21:07 230

转载 设计模式系列 - 适配器模式

见名知其意,适配器可用于对多个不兼容接口提供适配桥梁介绍适配器模式属于结构型模式。在现实世界中,这个模式适用的较为广泛,比如 DIY 一些电子产品,主要元器件提供的是标准接口,那么无论我们购买什么品牌的元器件,最终都能组装起来正常运行。类图描述由上图可知,我们通过定义 IAdvancedMediaPlayer 接口来约束 Mp4Player 和 VlcPlayer 的播放行为。然后定义一个 适配器 MediaAdapter 来管理创建具体的某种类型的播放。AudioPlayer 为...

2020-07-18 08:20:05 118

转载 阿里巴巴是如何打通 CMDB,实现就近访问的?

CMDB在企业中,一般用于存放与机器设备、应用、服务等相关的元数据。当企业的机器及应用达到一定规模后就需要这样一个系统来存储和管理它们的元数据。有一些广泛使用的属性,例如机器的IP、主机名、机房、应用、region等,这些数据一般会在机器部署时录入到CMDB,运维或者监控平台会使用这些数据进行展示或者相关的运维操作。在服务进行多机房或者多地域部署时,跨地域的服务访问往往延迟较高,一个城市内的机房间的典型网络延迟在1ms左右,而跨城市的网络延迟,例如上海到北京大概为30ms。此时自然而然的一个想法...

2020-07-17 15:21:04 242

转载 Zookeeper 集群安装配置,超详细,速度收藏!

今天,栈长分享下 Zookeeper 的集群安装及配置。下载下载地址:http://zookeeper.apache.org/下载过程就不说了,我们下载了最新的zookeeper-3.4.11。安装1、上传安装包把下载的最新的包(如:zookeeper-3.4.11.tar.gz)上传到服务器,上传的方式也不多说了。2、解压$ tar zxvf zookeeper-3.4.11.tar.gz3、移动到/usr/local目录下$ mv zookeeper-3.4.11 /...

2020-07-17 08:20:06 195

转载 C# 23种设计模式

目录0).简单工厂模式1).工厂方法模式2).抽象工厂模式3).单例模式4).构建者模式5).原型模式6).适配器模式7).修饰者模式8).代理模式9).外观模式10).桥接模式11).组合模式12).享元模式13).策略模式14).模板方法模式15).观察者模式16).迭代模式17).责任链模式18).命令模式19).解释器模式20).状态模式21).访问者模式22).中介模式23).解释器模式前提: 了解面向对象六大设计原则,有的说...

2020-07-16 20:21:12 2660

转载 集群选举算法实现

一个分布式服务集群管理通常需要一个协调服务,提供服务注册、服务发现、配置管理、组服务等功能,而协调服务自身应是一个高可用的服务集群,ZooKeeper是广泛应用且众所周知的协调服务。协调服务自身的高可用需要选举算法来支撑,本文将讲述选举原理并以分布式服务集群NebulaBootstrap的协调服务NebulaBeacon为例详细说明协调服务的选举实现。  为什么要选NebulaBeacon来说明协调服务的选举实现?一方面是我没有读过Zookeeper的代码,更重要的另一方面是NebulaBea...

2020-07-16 15:21:07 642

转载 设计一个分布式RPC框架

0 前言提前先祝大家春节快乐!好了,先简单聊聊。我从事的是大数据开发相关的工作,主要负责的是大数据计算这块的内容。最近Hive集群跑任务总是会出现Thrift连接HS2相关问题,研究了解了下内部原理,突然来了兴趣,就想着自己也实现一个RPC框架,这样可以让自己在设计与实现RPC框架过程中,也能从中了解和解决一些问题,进而让自己能够更好的发展(哈哈,会不会说我有些剑走偏锋?不去解决问题,居然研究RPC。别急,这类问题已经解决了,后续我也会发文章详述的)。1 RPC流水线工程?原理图上我已经...

2020-07-15 20:21:14 246

转载 分布式缓存Hazelcast案例一

分布式缓存Hazelcast案例一Hazelcast IMDG Architecture今天先到这儿,希望对您技术领导力, 企业管理,物联网, 系统架构设计与评估,团队管理, 项目管理, 产品管理,团队建设 有参考作用 , 您可能感兴趣的文章: 2017-2018年Scrum状态调查报告2016年测试状态调查2017年IT行业测试调查报告项目管理-习惯发生范围变更前端性能核对表Checklist-2018大型电商互联网性能优化案例国际化环境下系统架构演化微服务架构设计视频直播平台的系统架构演化...

2020-07-15 15:21:05 185

转载 行为型模式:命令模式

LieBrother原文:行为型模式:命令模式十一大行为型模式之三:命令模式。简介姓名 :命令模式英文名 :Command Pattern价值观 :军令如山个人介绍 :Encapsulate a request as an object,thereby letting you parameterize clients with different requests,queue or log requests,and support undoable operations.将...

2020-07-15 08:20:04 83

转载 Gobelieve 架构(转载)

Gobelieve 架构Gobelieve github地址im 客户连接服务器 (可分布式部署,暂无负载均衡模块)imr 路由查询服务器(主要解决im分布式部署的问题)ims 存储服务器 (主从部署)基础模块1.数据包协议包:header(12)|bodyheader:len(4),seq(4),cmd(1),version(1),空(2)2.数据收发流程accept收到一个连接开启写线程和读线程写线程:监听client.wt阻塞队列,一有数据就写入conn...

2020-07-14 08:20:05 387

转载 “C++动态绑定”相关问题探讨

一、相关问题:1. 基类、派生类的构造和析构顺序2. 基类、派生类中virtual的取舍二、测试代码:#include <iostream>class A {public: A() { std::cout << "A()" << std::endl; } virtual void print() { std::cout << "A print()" << std::endl; } ...

2020-07-13 20:21:11 113

转载 Thrift 代码分析

Thrift的基本结束Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过IDL(Interface Definition Language,接口定义语言)来定义RPC(Remote Procedure Call,远程过程调用)的接口和数据类型,然后通过thrift编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Co...

2020-07-13 15:21:08 276

转载 构建一个maven聚合类型的横向可扩展项目

那个时候初入java这个大家庭,学习的方向很乱。毕业后,在公司磨练了一年,总想着是该交一份答卷了,可能成绩不会很好,但求及格!那么考试题目呢,我计划搭建一个横向可扩展的项目,可以在平台自扩展各种子项目,包括 后台权限控制,日志分析,秒杀,微信小程序,爱代客(www.idaike.com)项目等等,所以首先需要一个高可扩展的管理系统!一:说说我们最早搭建的项目可能是一个ssm、也可能是一个springboot或者其他,这个是框架本身的问题,这是一个小问题,但是你的业务代码是如何的?​这应该是...

2020-07-12 20:21:10 161

转载 springboot activiti 整合项目框架源码 druid 数据库连接池 shiro 安全框架

官网:www.fhadmin.org工作流模块----------------------------------------------------------------------------------------------------------1.模型管理 :web在线流程设计器、预览流程xml、导出xml、部署流程2.流程管理 :导入导出流程资源文件、查看流程图、根据流程实例反射出流程模型、激活挂起3.运行中流程:查看流程信息、当前任务节点、当前流程图、作废暂...

2020-07-12 15:21:05 348

转载 稳定性「三十六计」- 配额管控

背景《SRE Google运维解密》里提到SRE自动化系统的一个bug导致几乎所有的数据中心机器被成功下线并进行硬盘擦除。当然这本书出版之后又业界也进行了很多的演进。在我们团队现在很难发生这样的事情。因为团队内人人要遵循的一个设计原则是:原则上禁止批量操作。如需批量,需要有审核流程。批量设置上限。这个原则在我以后会发布的系列文章《架构设计「三大纪律八项注意」》中也会介绍一些。今天先从另一个角度系统的看这个问题。配额管控策略-逻辑管控我所在的HULK调度系统团队因为从大的方面将调度系统分...

2020-07-11 20:21:08 102

转载 设计模式 | 工厂方法模式(factory method)

定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。结构:(书中图,侵删)一个工厂的抽象接口若干个具体的工厂类一个需要创建对象的抽象接口若干个所需创建的对象的类较之简单工厂方法,多了一层抽象——将工厂也抽象了;由原来的一个万能工厂变为现在的若干个各司其职的工厂。导致的结果就是:原本新增一个要创建的对象需要直接修改万能工厂类,增加判断,违反了开放-封闭原则;现在工厂相关代码不用改,只需要新增工厂类即可,同时将判断转移给了...

2020-07-11 15:21:10 103

转载 抽象工厂模式(Abstract Factory Pattern)

抽象工厂模式概述定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类抽象工厂抽象工厂,顾名思义,就是比工厂模式更抽象的工厂模式。在工厂模式中,一个具体工厂只负责生产一个具体产品。而在抽象工厂模式中,一个具体工厂可以生产一组相关的产品,这些产品称为产品族,产品族中的每一个产品部分属于每一个产品继承等级结构首先我们先了解下什么是产品族和产品等级结构。产品等级结构即产品的继承结构,好比一个抽象类是汽车,其子类包括奔驰,宝马,大众,保时捷.....这样抽象汽车与具体汽车品牌之间...

2020-07-10 20:21:14 328

空空如也

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

TA关注的人

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