自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 echarts:一个复杂的瀑布图制作

分析一下这个需求,主要有几个难点:答:echarts 官方 把这种柱子叫瀑布图,实现的原理就是使用一个透明的柱子给他顶起来。我直接搬过来原文。我本来想到的是 y 轴的 type 设置为 time但是做着做着,发现不行,我们做瀑布图要用到 stack,而 stack 不支持 type = time那就只能用 type = value 了,也就是要把时间转化为一个数值,比如在上面的图中,最底部是 13:00,我们先以 13:00 为 0,那么 12:00 就是 1,11:00 就是 2,以此类推。那么

2024-02-06 11:51:44 1059

原创 java:微服务springcloud入门以及eureka、ribbon、hystrix、feign、gateway的使用

微服务的简单入门

2023-12-18 09:00:00 347

原创 设计模式:DDD领域驱动设计

面对复杂系统,怎能不知道DDD

2023-05-08 18:42:37 1276 7

原创 抽象语法树AST以及babel原理

什么是AST?借用一下百度百科的解释:在计算机科学中,抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。其实意思就是将代码以树的格式展现出来,举个例子你就明白了:大家可以在这个网站 https://astexplorer.net/ 上输入代码,会被解析为 AST,如图:可以看到,代码的每一个字符都以树的形式展示了出来。AST的应用

2022-04-10 23:47:29 1102

原创 RN:React Native原理以及新架构JSI、Fabric等概念

说明RN需要一个JS的运行环境, 在IOS上直接使用内置的javascriptcore, 在Android 则使用webkit.org官方开源的jsc.so。 此外还集成了其他开源组件,如fresco图片组件,okhttp网络组件等。RN 会把应用的JS代码(包括依赖的framework)编译成一个js文件(一般命名为index.android.bundle), , RN的整体框架目标就是为了解释运行这个js 脚本文件,如果是js 扩展的API, 则直接通过bridge调用native方法; 如果是UI

2022-02-12 21:56:59 16433

原创 webview原理和JSBridge

webview是一个嵌入式的浏览器,我们平常使用频率最高的就是客户端内嵌的webview特点:运行在webview中的JS代码有能力调用原生的系统API,没有传统浏览器沙箱的限制。目前javascript和客户端(后面统称native)交互的常见方式有两种JSBridgeschemaJSBridge当我们在native内打开m页,native会在全局的window下,为我们注入一个Bridge。这个Bridge里面,会包含我们与native交互的各种方法、比如判断第三方App是否安装、获取网

2022-02-09 18:39:10 6109

原创 小程序底层原理

小程序的 Http Rquest 请求是不是用的浏览器 Fetch API?不是, http request是由逻辑层发起,通过native去触发的,且不支持promise。小程序渲染再同一个线程么?小程序是双线程设计,即视图渲染与业务逻辑分别在运行在不同的线程中。这个设计主要是解决web技术中的一个痛点:web页面开发渲染线程和脚本线程是互斥的,长时间的脚本运行可能会导致页面失去响应或者白屏,体验糟糕。小程序为了更好体验,将页面的渲染线程和脚本线程分开设计在不同线程中执行,具体实现:● 视图v

2022-02-07 19:39:14 1486 1

原创 一文搞清楚软链接和硬链接

前言我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data)元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inod

2022-01-06 16:38:53 3797 6

原创 可能是最全的h5唤起App方案

背景调研 h5 唤起 App 方案目的:引导已下载用户打开APP,引导未下载用户下载APP。先说结论ios9 及以上用 Universal Link(uc/qq浏览器不支持,不过safari占比最大)android6及以上用applink(chrome和小众浏览器支持,市场占比还是比想像中大的)其它情况scheme(各种限制及弹窗确认)微信ios7月的版本已经支持ulink了,android还是乖乖走应用宝吧(引导出微信也行,效果不好)ok,接下来我们一个一个聊URL Scheme有

2021-11-08 18:28:49 18133 25

原创 px、pt、dpi、dip、分辨率、屏幕尺寸等等概念

文章目录基本概念屏幕尺寸屏幕比例像素pxpt/point分辨率DPI(点每英寸)PPI(像素每英寸)DIP/DPdensityandroid最后参考资料基本概念屏幕尺寸屏幕的对角线长度,一般讲的大小单位都是英寸。比如我们说 iphone6 是6.7英寸,就是屏幕对角线为 6.7英寸。屏幕比例只确定了对角线长,2边长度还不一定。所以有了4:3、16:9这种,这样就可以算出屏幕边长了。像素pxpx 不是自然界的长度单位,而是一个抽象的单位,比如:windows桌面属性里的“设置”看到,如果是10

2021-08-15 21:28:37 7295 11

原创 web端自动化部署方案

背景为了提高发布效率,践行DevOps,我们使用 gitlab 的 CI 工具作为我们前端项目的自动化部署方案。集成后的开发&发布模式发布测试环境:代码提交到test分支自动发布。发布正式环境:将test代码合并到master分支自动发布。集成CI/CD思路集成步骤1、集成ci脚本# test、preview和master分支默认支持线上部署# develop分支默认是开发分支,不建议(禁止)触发CI/CD流程,姑不作为默认触发部署分支stages: - instal

2021-01-30 23:52:10 871 3

原创 SEO:基于SPA的搜索引擎优化方案调研

背景由于SPA项目不利于SEO优化,于是有了以下几个方案方案选择方案一:服务端渲染(SSR)直接java或php渲染(那样就又是前后端不分离了,不考虑)服务端起一个node应用优点:SEO 友好首屏渲染快(可在服务端缓存页面,请求到来直接给 html)缺点:代码改动大、需要做特定SSR框架的改动(例如vue的nuxt,react的next)丢失了部分SPA体验node 容易成为性能瓶颈方案二:构建时预渲染方案在项目开发完成之后,将有限的需要SEO的页面挑选出来,借助p

2021-01-14 18:25:19 573

原创 vue:详解vue中的代理proxy

问题我们本地调试一般都是 npm run serve,然后打开 本机ip:8080(localhost:8080)对吧,这时候我们要调接口调试,后端的接口的地址可能在测试环境,也可能是自己电脑的 ip,总之不是你的 lcoalhost:8080,那么你调接口就会产生跨域,那么怎么办呢?就需要proxy出场了复习一下跨域的解决方案jsonpcorsNode中间件代理(两次跨域)nginx反向代理CORS支持所有类型的HTTP请求,是跨域HTTP请求的根本解决方案JSONP只支持GET请求,

2020-07-11 22:58:47 69405 40

原创 js:浅谈函数式编程

背景函数式编程是一种编程思想,其余的还有声明式与命令式函数式举例假设我们要把字符串 functional programming is great 变成每个单词首字母大写var string = 'functional programming is great';var result = string .split(' ') .map(v => v.slice(0, 1).toUpperCase() + v.slice(1)) .join(' ');整个过程就是 join(m

2020-05-09 15:18:02 513

原创 RN报错:Timeout of 120000 reached waiting for exclusive access to file: /Users/xx/.gradle/wrapper/

RN报错:Timeout of 120000 reached waiting for exclusive access to file: /Users/xx/.gradle/wrapper/

2024-04-11 16:30:10 189

原创 English: fragmentary knowledge

如果强调知识的逐步积累或分阶段获取,可以使用 “piecemeal”。零碎的知识,可以使用 “fragmentary” 或 “piecemeal”,这两个词都可以用来描述部分或不完整的事物。然而,它们在语境中可能会有一些微妙的差异。当我们使用 “what” 引导一个问句时,如果后面跟的是一个动作或行为,通常需要使用辅助动词,比如 “do” 或 “would”,以构建一个完整的疑问句。“Fragmentary” 指的是由碎片组成的,表示整体被分解为片段或碎片。在描述知识时,可以强调知识的不完整或部分性。

2024-03-11 18:00:21 204

原创 English:confusing words

当涉及到容易混淆的英语单词时,理解它们的含义以及在不同语境中的用法是很重要的。

2024-02-29 18:10:42 692

原创 探索时间的奥秘:UTC、时区、时间戳

知道新疆为什么天黑的晚吗?看看这个就知道了

2024-02-27 17:05:25 638

原创 English:about ‘do’

do” 的不同形式用于构成不同时态和人称,这些形式包括 “do,” “does,” 和 “did”。总的来说,系动词用于连接主语和描述主语的状态,而助动词用于帮助构建句子的其他方面,如否定、疑问等。“do” 是一个多功能的英语动词,具有多种用法。以上是一些常见的 “do” 的用法,具体用法可能根据上下文而有所变化。这些变种有助于构建正确时态和人称,使句子更加准确和清晰。这些形式的使用取决于时态和人称。

2024-02-27 14:24:15 911

原创 English:First Person、Second Person and Third Person

English:First Person、Second Person and Third Person

2024-02-27 11:42:20 240

原创 echarts:折线图的常用操作

echarts:折线图的常用操作

2024-01-24 15:29:36 694

原创 echarts:柱状图的常用操作

柱状图的常用操作

2024-01-24 11:38:00 731

原创 echars:图表中核心的概念

echars:图表中核心的概念

2024-01-22 18:02:20 1292

原创 canvas:使用canvas画一个半圆

玩转canvas圆弧API

2024-01-12 15:26:59 1168

原创 English: verb

English about verb

2024-01-09 15:29:25 1315

原创 English: words used for emphasis

words used for emphasis

2023-12-29 18:12:57 1532

原创 English: go through customs

go through customs English,different scenarios

2023-12-28 14:55:42 1271

原创 java:Lambda函数式编程

java的Lambda表达式,函数式编程方式

2023-12-18 18:42:44 590

原创 docker:部署java Springboot项目

docker部署java项目

2023-12-08 16:00:27 480

原创 docker:搭建私有仓库

搭建docker私有仓库

2023-12-08 10:36:42 343

原创 java:Springboot集成redis

做一个入门的Springboot集成redis案例,当在 redis 查到键名 redis_name 有数据的话,就返回缓存的数据,如果没有数据,就从数据库里查询出 redis_name 对应的数据返回。上面 utils 中我们使用 RedisTemplate 存储字符串会包含一些二进制的内容,其实就是看起来难受,对存取没有影响,如果介意可以使用StringRedisTemplate。

2023-12-07 17:27:48 170

原创 docker:安装nginx并部署一个前端项目

但是据我所知,前端项目一般不会像这样打包成镜像,因为前端对 nginx 没有那么的依赖,比如,两个人同时开发一个项目,基本就是 node 版本的不同可能会导致环境不同,但是最终都是打包成 dist 静态文件部署到 nginx 上,所以没必要把 nginx 和项目捆绑在一起。所以,我遇到的前端项目基本就是服务器直接安装 nginx,并不使用 docker,当然用 docker 维护一个Nginx也是不错的选择。

2023-12-06 18:52:21 434

原创 docker:安装mysql以及最佳实践

docker安装mysql的最佳实践

2023-12-06 15:49:45 381

原创 java:slf4j、log4j、log4j2、logback日志框架的区别与示例

java:slf4j、log4j、log4j2、logback日志框架的区别与示例

2023-12-05 11:43:57 1810

原创 java:封装统一的响应体code、data、msg、paging

我们在写接口的时候一般不会直接返回给前端数据,而是会有响应体,比如 code、data、msg,这样就有一个统一的结构方便前端处理,那么今天就来封装一个统一的响应体。1、在 config 包里新建 ApiResponse.java。这是一个非常简单的封装,如果更复杂的可以在这个基础上增加。

2023-12-04 15:33:20 551

原创 java:spring-boot-starter-actuator的使用

java:spring-boot-starter-actuator的使用

2023-12-01 15:50:18 360

原创 java:springboot3集成swagger(springdoc-openapi-starter-webmvc-ui)

springboot3集成swagger报错Typejavax.servlet.http.HttpServletRequest not present,来使用springdoc-openapi-starter-webmvc-ui

2023-12-01 11:31:10 1784

原创 java:IDEA中Maven常用操作

java:IDEA中Maven常用操作

2023-11-30 10:00:00 1338

原创 java:springboot结合mybatis

springboot+Mybatis

2023-11-30 09:15:00 97

原创 mysql:免费的GUI客户端工具推荐并介绍常用的操作

给大家推荐几个常用的 mysql 数据库客户端

2023-11-29 10:59:44 582

nginx判读user_agent并转发请求配置文件

nginx判读user_agent并转发请求配置文件

2022-03-17

空空如也

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

TA关注的人

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