自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

转载 什么是BS结构,什么是CS结构?

一、什么是C/S模型?C是英文单词“Client”的首字母,即客户端的意思,C/S就是“Client/Server”的缩写,即“客户端/服务器”模式。例如:拼多多APP、PC上的有道云笔记等等在这里插入图片描述二、什么是B/S模型?B是英文单词“Browser”的首字母,即浏览器的意思;S是英文单词“Server”的首字母,即服务器的意思。B/S就是“Browser/Server”的缩写,即“浏览器/服务器”模式。例如:淘宝网、京东网等等在这里插入图片描述三、对比发现C/S和B/S是当今世

2021-04-16 13:53:52 231

转载 从组件 boolean 值属性谈谈分层架构

在刚入行的时候,我从事的是企业服务,在当前业务下开发组件或者页面的时候遇到需要表示 boolean 值属性的时候,往往以 can 作为变量前缀来表示组件是否可以执行某一类或者某一个操作。这种命名习惯跟随了我很久。直到有一天,我去了另一家公司开发拖拽设计器的时候,领导告诉我:虽然 can 开头表示 boolean 值是没什么问题,但是对于组件开发来说,应该是 able 结束或者 is 开头更合适。然后我在查看了市面上较为知名的几个的组件库,它们在表示 boolean 值时候都是以 able 结尾,我就默默的

2021-04-16 13:52:30 93

转载 从零开始详解应用内支付:商品创建及测试上架

当用户在应用市场里下载APP,体验了免费的基础功能和服务后,通过自主选择付费,以获取和使用应用内提供的增值服务——这种用户应用内购买行为的完成,就需要用到应用内支付(In-App Purchases,简称IAP)。应用内支付有丰富的使用场景和需求,游戏类应用中装备和虚拟币的购买、视频类应用中会员的订阅、知识工具类应用中一次性购买开高级服务和功能……应用内支付大大拓宽了移动开发的盈利模式,增加了APP营收的灵活性。在华为移动生态体系中,我们为开发者提供了安全好用的应用内支付基础开发服务,助力开发者降本增效

2021-04-16 13:49:55 436

转载 HarmonyOS三方件开发指南(17)-BottomNavigationBar

引言 BottomNavigationBar底部导航栏,可以说所有的app是这样的页面架构,原因很简单,操作简单,模块化清晰,页面切换流畅,而且每页都可以展示不同的风格。相信开发者已经很熟悉Android的底部导航栏的开发以及开发流程,那么接下来将对比Android来讲解鸿蒙的底部导航栏的实现步骤。功能介绍 鸿蒙BottomNavigationBar底部导航栏,根据所需要底部button的数量,动态生成对应的底部button,并且可以设置默认字体颜色,选中字体颜色,默认icon,选中icon属

2021-04-15 13:59:44 588 3

转载 详解微前端

好的前端开发很难。扩展前端开发,使许多团队可以同时处理大型复杂产品,这变得更加困难。在本文中,我们将描述将前端整体拆分成许多更小,更易管理的片段的最新趋势,以及该体系结构如何提高处理前端代码的团队的效率和效率。在讨论各种收益和成本的同时,我们还将介绍一些可用的实现选项,并且将深入研究一个演示该技术的完整示例应用程序。近年来,微服务已迅速普及,许多组织都使用这种架构风格来避免大型,整体后端的局限性。尽管有关构建服务器端软件这种风格的文章已很多,但许多公司仍在与整体式前端代码库作斗争。也许您想构建一个渐进式

2021-04-15 13:56:26 87

转载 微前端,将微服务理念扩展到前端开发

由多个可以独立发布功能的团队构建现代Web应用程序的技术,策略和方法。什么是微前端?“微前端”一词最早于2016年底在ThoughtWorks Technology Radar中提出。它将微服务的概念扩展到了前端世界。当前的趋势是构建一个功能强大且功能强大的浏览器应用程序(也称为单页应用程序),该应用程序位于微服务架构之上。随着时间的流逝,通常由一个单独的团队开发的前端层会不断增长,并且变得更加难以维护。这就是我们所谓的Frontfront Monolith。Micro Frontends背后的想法是

2021-04-15 13:54:19 431

转载 maven中心仓库O***H使用简介

简介使用java做项目的朋友肯定对maven不陌生,maven为我们提供了一个中心仓库,我们在构建java项目时,直接从maven中心仓库中下载依赖的jar包到本地,然后打包进行构建。所有人都知道有这样一个maven仓库,但是很少有人去探寻这个maven仓库到底在什么地方,能不能发布自己的jar包到中心仓库呢?今天给大家介绍一下maven中心仓库和O***H的使用。为什么使用中心仓库maven中心仓库的地址是 https://search.maven.org/#browse , 我们可以通过该链接去

2021-04-14 15:41:39 161

转载 读scss/sass实例项目带你入门

首先回顾下, Netty中的IO线程主要完成三件事1.轮询IO事件2.处理IO事件3.执行任务在轮询IO事件的过程中,在Linux系统下, 使用epoll实现.涉及的Netty代码如下private void select() {// ...int selectedKeys = selector.select(timeoutMillis);// ...}具体源码位置:io.netty.channel.nio.NioEventLoop#select当IO线程执行以上代码的时候,

2021-04-14 15:06:38 138

转载 Babel 简介

n + 1);编译后的 ES5 代码如下所示:[1, 2, 3].map(function (n) { return n + 1;});这两段代码的功能是一样的,但是因为 ES2015 和 ES5 的语法有所不同,所以编译后的代码也不同。Babel运行方式和插件Babel 的编译总共分为三个阶段:解析(parsing www.hk-ipad.com),转换(transformation),生成(generate)。Babel 本身不具有任何转化功能,Babel 的转换功能都是通过插件(pl

2021-04-14 15:01:10 65

转载 2021-04-14

CSS(Cascading Style Sheet)级联样式表,前端必备技能之一。记得刚开始学习使用DIV+CSS布局的时候,有一个很有意思的网站《禅意花园》,通过模仿它开启了CSS设计之美。随着前端技术发展,纯CSS的弊端更加突显,就有后来的CSS预处理器SASS\SCSS、LESS、Stylus等。记得自己第一次接触SCSS的时候,就“一见钟情”,从此在项目中就没有用过纯CSS的方式了。本文总结一下在项目中经常用到CSS预处理器的特征,趁此先来认识一下SCSS/SASS,LESS本文就不介绍了,大同小

2021-04-14 14:18:56 72

转载 要改掉的 10 种 TypeScript 坏习惯

在过去的几年中,TypeScript 和 JavaScript 一直在稳步发展,而我们在过去的几十年中养成的一些编程习惯也变得过时了。其中有一些习惯可能从来就没有什么意义可言。这篇文章就来谈一谈我们大家都应该改掉的 10 个习惯。接下来我们就来一个个看示例吧!请注意,每个小节中“应该怎么做”这部分只纠正了前文提到的问题,实际情况中可能还要其他需要注意的代码风味。不使用 strict 模式具体是什么意思在没有启用 strict 模式的情况下使用 tsconfig.json。{“compiler

2021-04-12 15:14:53 52

转载 更简的并发代码,更强的并发控制

atomic因为没有 泛型 支持,所以才会出现多种类型的原子类支持。以下采用 float64 作为例子:func (f *AtomicFloat64) Add(val float64) float64 {for {old := f.Load()nv := old + valif f.CompareAndSwap(old, nv) {return nv}}}func (f *AtomicFloat64) CompareAndSwap(old, val float64) bool {re

2021-04-12 14:46:51 93

转载 2021-04-12

何为插件(Plugin)?专注处理 webpack 在编译过程中的某个特定的任务的功能模块,可以称为插件。Plugin 是一个扩展器,它丰富了 webpack 本身,针对是 loader 结束后,webpack 打包的整个过程,它并不直接操作文件,而是基于事件机制工作,会监听 webpack 打包过程中的某些节点,执行广泛的任务。Plugin 的特点是一个独立的模块模块对外暴露一个 js 函数函数的原型 (prototype) 上定义了一个注入 compiler 对象的 apply方法 apply

2021-04-12 10:41:49 67

转载 MySQL 批量插入,如何不插入重复数据?

温故而知新知识这个东西,看来真的要温故而知新,一直不用,都要忘记了。业务很简单:需要批量插入一些数据,数据来源可能是其他数据库的表,也可能是一个外部excel的导入。那么问题来了,是不是每次插入之前都要查一遍,看看重不重复,在代码里筛选一下数据,重复的就过滤掉呢?向大数据数据库中插入值时,还要判断插入是否重复,然后插入。如何提高效率?看来这个问题不止我一个人苦恼过。解决的办法有很多种,不同的场景解决方案也不一样,数据量很小的情况下,怎么搞都行,但是数据量很大的时候,这就不是一个简单的问题了几百

2021-04-12 10:41:00 64

转载 最全的Markdown语法

最全的Markdown语法Markdown是Github最常见的文档说明。Markdown的语法简洁明了、学习容易。按照官方Markdown Cheat Sheet逐个操作一遍自然就会了。[TOC]这个语法在markdown工具里能够识别,但是在这里不能识别。目录代码:文章目录一级标题## 二级标题##### 多级标题[MENU]效果显示如上多级标题代码:一级标题## 二级标题##### 多级标题效果一级标题二级标题多级标题引用与注释代码:一级引用>> 二级引

2021-04-09 14:12:29 369

转载 maven中心仓库O***H使用简介

简介使用java做项目的朋友肯定对maven不陌生,maven为我们提供了一个中心仓库,我们在构建java项目时,直接从maven中心仓库中下载依赖的jar包到本地,然后打包进行构建。所有人都知道有这样一个maven仓库,但是很少有人去探寻这个maven仓库到底在什么地方,能不能发布自己的jar包到中心仓库呢?今天给大家介绍一下maven中心仓库和O***H的使用。为什么使用中心仓库maven中心仓库的地址是 https://search.maven.org/#browse , 我们可以通过该链接去

2021-04-09 14:11:12 135

转载 如何只使用CSS提升页面渲染速度

用户喜欢快速的 Web 应用。他们期望页面加载速度快,运行流畅。如果滚动时出现动画中断或延迟,用户很可能就会离开你的网站。作为一名开发者,你可以做很多事情来提升用户体验。本文主要介绍你可以用来提升页面渲染速度的 4 个 CSS 技巧。Content-visibility一般来说,大部分 Web 应用都有复杂的 UI 元素,并且它的扩展超出了用户在浏览器视图中所能看到的范围。在这种情况下,我们可以使用content-visibility来跳过渲染屏幕之外的内容。如果你有大量屏幕之外的内容的话,这会大大

2021-04-08 14:52:07 56

转载 分库分表?如何做到永不迁移数据和避免热点?

一、前言中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就应该对数据进行拆分了。有垂直和水平两种。垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。如下图,独立的拆分出订单库和用户库。水平拆分的概念,是同一个业务数据量大之后,进行水平拆分。上图中订单数据达到了4000万,我们也知道mysql单表存储量推荐是百万级,如果不进行处理,mysql单表数据太大,会导致性能变慢。使用方案可以参考数据进行水平拆分。把4000万数据拆分4张表或者更多。当然也可以分库,再分表;把压

2021-04-08 14:16:44 50

转载 浅谈Netty和Python中的事件驱动

如果把Netty比作一台工厂车间, 那么IO线程就是车间里面的运作机器, IO线程一直在无限循环地做着三件事 1.轮询IO事件 2.处理IO事件 3.执行task任务无限循环源码位置: io.netty.channel.nio.NioEventLoop#runselect()方法源码位置: io.netty.channel.nio.NioEventLoop#select在Netty中轮询IO事件是通过调用select()方法, 至于底层基于select,poll,epoll哪一种, 这个和平台有关.总

2021-04-07 15:32:38 62

转载 浅谈Netty和Python中的事件驱动

如果把Netty比作一台工厂车间, 那么IO线程就是车间里面的运作机器, IO线程一直在无限循环地做着三件事 1.轮询IO事件 2.处理IO事件 3.执行task任务无限循环源码位置: io.netty.channel.nio.NioEventLoop#runselect()方法源码位置: io.netty.channel.nio.NioEventLoop#select在Netty中轮询IO事件是通过调用select()方法, 至于底层基于select,poll,epoll哪一种, 这个和平台有关.总

2021-04-06 16:12:51 50

转载 解Bug之路-主从切换“未成功“?

前言我们为什么要写个组件上传到npm镜像上呢,我们肯定遇到过这样一个场景,项目中有很多地方与某个功能相似,你想到的肯定是把该功能封装成Component组件,后续方便我们调用。但是过了一段时间,你的Leader让你去开发另一个项目,结果你在哪个项目中又看见了类似的功能,你这时会怎么做? 你也可以使用Ctrl + c + v大法,拿过来上一个项目封装好的代码,但是如果需求有些变动,你得维护两套项目的代码,甚至以后更多的项目…,这时你就可以封装一个功能上传到你们公司内网的npm上(或者自己的账号上),这样每次

2021-04-06 14:43:42 86

转载 SQL 查找是否“存在“,别再 count 了,很耗费时间的!

目前多数人的写法优化方案总结根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count 目前多数人的写法 多次REVIEW代码时,发现如现现象: 业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的SQL及代码写法如下SQL写法:SELECT count(*) FROM table WHERE a = 1 AND b =

2021-04-02 14:33:53 53

转载 MongoDB 在评论中台的实践

一、业务背景随着公司业务发展和用户规模的增多,很多项目都在打造自己的评论功能,而评论的业务形态基本类似。当时各项目都是各自设计实现,存在较多重复的工作量;并且不同业务之间数据存在孤岛,很难产生联系。因此我们决定打造一款公司级的评论业务中台,为各业务方提供评论业务的快速接入能力。在经过对各大主流 APP 评论业务的竞品分析,我们发现大部分评论的业务形态都具备评论、回复、二次回复、点赞等功能。具体如下图所示:039175fc8deabbfa7c8af780cd54d971.webp涉及到的核心业务概念有

2021-04-02 14:31:31 64

转载 微服务架构Day34-Dubbo之跨域问题

Nginx概念Nginx是一款高性能的HTTP服务器,反向代理服务器及电子邮件(IMAP/POPP3)代理服务器.由俄罗斯的Igor Sysoev所开发,Nginx能够支撑5万并发链接,并且CPU,内存等资源消耗非常低,运行非常稳定Nginx应用场景HTTP服务器,虚拟主机: Nginx是一个HTTP服务可以独立提供HTTP服务,可以做网页静态服务器,可以实现在一台服务器上虚拟出多个网站,例如个人网站使用的虚拟主机反向代理: 当网站的访问量达到一定程度后,单台服务器不能满足用户请求时,需要用多台服务

2021-04-01 17:29:26 345

转载 DCache 分布式存储系统|List 缓存模块的创建与使用

List 模块简介创建 List 缓存模块获取 DCache 接口文件创建缓存服务代理调用 List 缓存模块服务List 模块读写操作实例其它 List 缓存模块服务接口总结DCache 是一个基于 TARS 框架开发的分布式 NoSQL 存储系统,支持多种数据结构,包括了 key-value(键值对),k-k-row(多键值),list(列表),set(集合),zset(有序集合)等,满足多种业务需求。1470cfa9a2548f523284892cea5a8261.pnglist

2021-04-01 17:26:30 139

空空如也

空空如也

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

TA关注的人

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