- 博客(44)
- 资源 (1)
- 收藏
- 关注
原创 重构:改善既有代码的设计 阅读笔记
程序有两面价值:“今天可以为你做什么”和“明天可以为你做什么”。大多数时候,我们只关注自己今天想要程序做什么。不论是修复错误或是添加特性,我们都是为了让程序能力更强,让它在今天更有价值。但是系统当下的行为,只是整个故事的一部分,如果没有认清这一点,你无法长期从事编程工作。如果你为求完成今天的任务而不择手段,导致不可能在明天完成明天的任务,那么最终还是会失败。但是,你知道自己今天需要什么,却不一定知道自己明天需要什么。也许你可以猜到明天的需求,也许吧,但肯定还是有些事情出乎你的意料。.........
2022-08-30 10:37:04
759
原创 Dynamo-Amazon高可用键值存储 笔记
Dynamo提供了应用可配置的能力,应用可以通过设置(N、R、W)来满足自己的需求。同时,Dynamo将数据一致性和冲突调和的逻辑开放给开发者,由应用来处理冲突。Dynamo采用了完整成员模型,在该模型中,每个节点都知道其他节点存储了哪些范围的数据。在实现中,每个节点主动将完整路由表通过gossip传输给系统内其他节点。
2022-04-28 22:07:07
1411
原创 【算法】leetcode 821. 字符的最短距离
给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。返回一个整数数组 answer ,其中 answer.length == s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。两个下标i 和 j 之间的 距离 为 abs(i - j) ,其中 abs 是绝对值函数。
2022-04-19 09:33:28
209
原创 【算法】leetcode 385. 迷你语法分析器
给定一个字符串 s 表示一个整数嵌套列表,实现一个解析它的语法分析器并返回解析的结果 NestedInteger 。
2022-04-16 10:06:58
198
原创 【算法】leetcode357. 统计各位数字都不同的数字个数
给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0 <= x < 10n 。
2022-04-11 09:44:35
513
原创 【算法】leetcode-780. 到达终点
给定四个整数sx,sy,tx和ty,如果通过一系列的转换可以从起点(sx, sy)到达终点(tx, ty),则返回 true,否则返回false。从点(x, y)可以转换到(x, x+y) 或者(x+y, y)。
2022-04-09 11:26:26
259
原创 【算法】leetcode-2100 适合打劫的日子
你和一群强盗准备打劫银行。给你一个下标从 0 开始的整数数组 security ,其中 security[i] 是第 i 天执勤警卫的数量。日子从 0 开始编号。同时给你一个整数 time 。如果第 i 天满足以下所有条件,我们称它为一个适合打劫银行的日子:第 i 天前和后都分别至少有 time 天。 第 i 天前连续 time 天警卫数目都是非递增的。 第 i 天后连续 time天警卫数目都是非递减的。 更正式的,第 i 天是一个合适打劫银行的日子当且仅当:security[i - time] &
2022-03-06 20:08:54
224
原创 【算法】leetcode-6 Z字形变换
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H N A P L S I I G Y I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入:s = “PA.
2022-03-01 21:15:54
96
原创 【算法】leetcode-1601 最多可达成的换楼请求数目
我们有 n 栋楼,编号从 0 到 n - 1 。每栋楼有若干员工。由于现在是换楼的季节,部分员工想要换一栋楼居住。给你一个数组 requests ,其中 requests[i] = [fromi, toi] ,表示一个员工请求从编号为 fromi的楼搬到编号为 toi 的楼。一开始 所有楼都是满的,所以从请求列表中选出的若干个请求是可行的需要满足 每栋楼员工净变化为 0 。意思是每栋楼 离开 的员工数目 等于该楼 搬入 的员工数数目。比方说 n = 3 且两个员工要离开楼 0 ,一个员工要离开楼 .
2022-02-28 22:23:12
281
原创 【算法】leetcode-553 最优除法
给定一组正整数,相邻的整数之间将会进行浮点除法操作。例如, [2,3,4] -> 2 / 3 / 4 。但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级。你需要找出怎么添加括号,才能得到最大的结果,并且返回相应的字符串格式的表达式。你的表达式不应该含有冗余的括号。
2022-02-27 09:50:56
120
原创 【算法】leetcode-2016 增量元素之间的最大值
给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 nums[i] < nums[j] 。返回 最大差值 。如果不存在满足要求的 i 和 j ,返回 -1 。
2022-02-26 11:58:09
183
原创 【算法】leetcode-537 复数乘法
复数 可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件:* 实部 是一个整数,取值范围是 [-100, 100]* 虚部 也是一个整数,取值范围是 [-100, 100]* i2 == -1给你两个字符串表示的复数 num1 和 num2 ,请你遵循复数表示形式,返回表示它们乘积的字符串。
2022-02-25 13:02:11
132
原创 【算法】leetcode-1706 球会落何处
用一个大小为 m x n 的二维网格 grid 表示一个箱子。你有 n 颗球。箱子的顶部和底部都是开着的。箱子中的每个单元格都有一个对角线挡板,跨过单元格的两个角,可以将球导向左侧或者右侧。将球导向右侧的挡板跨过左上角和右下角,在网格中用 1 表示。将球导向左侧的挡板跨过右上角和左下角,在网格中用 -1 表示。在箱子每一列的顶端各放一颗球。每颗球都可能卡在箱子里或从底部掉出来。如果球恰好卡在两块挡板之间的 "V" 形图案,或者被一块挡导向到箱子的任意一侧边上,就会卡住。
2022-02-24 10:07:26
102
原创 【算法】leetcode-917 仅仅反转字母
给你一个字符串 s ,根据下述规则反转字符串:所有非英文字母保留在原有位置。所有英文字母(小写或大写)位置反转。返回反转后的 s 。
2022-02-24 09:31:02
7321
原创 【算法】leetcode-838 推多米诺
n 张多米诺骨牌排成一行,将每张多米诺骨牌垂直竖立。在开始时,同时把一些多米诺骨牌向左或向右推。每过一秒,倒向左边的多米诺骨牌会推动其左侧相邻的多米诺骨牌。同样地,倒向右边的多米诺骨牌也会推动竖立在其右侧的相邻多米诺骨牌。如果一张垂直竖立的多米诺骨牌的两侧同时有多米诺骨牌倒下时,由于受力平衡, 该骨牌仍然保持不变。就这个问题而言,我们会认为一张正在倒下的多米诺骨牌不会对其它正在倒下或已经倒下的多米诺骨牌施加额外的力。给你一个字符串 dominoes 表示这一行多米诺骨牌的初始状态,其中:domin
2022-02-22 16:07:31
308
原创 使用Motoko实现快速排序
import Array "mo:base/Array";import Int "mo:base/Int";import Nat "mo:base/Nat";actor { func qSort(arr:[Int]) : [Int] { var newArr:[var Int] = Array.thaw(arr); sort(newArr,0,newArr.size()-1); Array.freeze(newArr) }; f
2022-01-02 19:44:54
360
原创 Spring StateMachine 状态机入门(项目实战)
背景介绍最近在公司做一个Spring Boot表单项目,表单涉及的状态如图所示:在设计表单状态转换模块时,想到状态机这个概念。在网上检索相关的实现框架,发现Spring StateMachine框架。网上大多数的教程都是非常简单的Demo,只有一个状态机连续切换的示例,很难作为一个实战入门的Demo。幸运的是在网上找到了一个Spring系列的视频,其中涉及到了状态机的实战项目。这篇文章也是基于该视频教程,结合自己的项目实践做一个完整的状态机实战笔记。StateMachine实战Spring Sta
2021-09-01 09:31:43
5447
3
原创 Springboot 后端接口项目规范
转载 https://segmentfault.com/a/1190000024467109通过Validator + 自动抛出异常来完成了方便的参数校验通过全局异常处理 + 自定义异常完成了异常操作的规范通过数据统一响应完成了响应数据的规范
2021-06-10 11:22:32
184
原创 IDEA 使用maven创建多级module项目时,子module的maven坐标导入后子项目引用不生效
IDEA萌新一枚,最近在学习HBase分布式存储项目开发。子模块中pom.xml导入maven相关依赖一直不生效。开发过程中用到了多级的module搭建,如下图:编写代码时,按照教程在子模块中pom.xml引入对应的依赖,结果代码一直报红,显示找不到相关依赖。初步尝试将子模块pom.xml复制到父级的pom.xml中问题解决。后经过查询,发现子模块的pom.xml文件需要在IDEA右侧MAVEN面板导入才能生效,至此顺利解决这个问题。...
2021-02-03 16:23:25
1750
2
原创 hdfs format时报错:Could not find or load main class org.apache.hadoop.hdfs.server.namenode.Namenode
这几天在学习HBase,按照教程执行./hdfs namenode -format时报错:Could not find or load main class org.apache.hadoop.hdfs.server.namenode.Namenode./hdfs namenode -formatError: Could not find or load main class org.apache.hadoop.hdfs.server.namenode.NameNode一开始按照某些教程将hadoo
2021-01-27 16:22:20
2664
1
原创 mysql使用时只有错误码,没有错误信息提示。日志显示 [ERROR] Can‘t read from messagefile ‘/usr/share/mysql/english/errmsg.sys
最近在linux上安装mysql后使用的时候一直只有错误码没有错误信息提示查看 /var/log/mysqld.log 日志显示错误信息如下:[ERROR] Can't read from messagefile '/usr/share/mysql/english/errmsg.sys'系统中 /etc/my.cnf下的配置如下lc-messages-dir=/usr/share/mysql/english我是按照网上的教程,先定位到errmsg.sys的路径,然后直接在my.cnf配置文件中
2020-12-18 15:59:20
1144
原创 Kafka入门-zookeeper与kafka集群安装与配置,kafka架构与原理,kafka API使用以及kafka eagle安装与使用
1. KAFKA 简介2. zookeeper与Kafka安装与集群配置3.kafka架构与原理解析4.kafka API使用5.kafka eagle安装与使用
2020-12-15 15:06:28
749
原创 Redis学习笔记:Redis主从复制,哨兵机制(Sentinel),集群(Cluster),Spring Boot 整合Redis集群实现分布式session管理
1. 基础知识1.基于内存的key-value数据库2.基于c语言编写的,可以支持多种语言的api //set每秒11万次,取get 81000次3.支持数据持久化4.value可以是string,hash, list, set, sorted set1.1 使用场景取最新n个数据的操作排行榜,取top n个数据 //最佳人气前10条精确的设置过期时间计数器实时系统, 反垃圾系统pub, sub发布订阅构建实时消息系统构建消息队列缓存1.2 不同类型的Valu
2020-11-18 12:05:06
748
原创 Spring Boot 整合Shiro + thymeleaf
6. Spring Boot 整合Shiro + thyemleaf该笔记是基于上一篇Spring Boot 整合Shiro + Jsp的拓展,这里只列了thymeleaf相关的配置和修改,前面完整的笔记点我跳转完整的代码已经上传github,点击进入感谢 编程不良人 up主 提供的宝贵视频教程6.1 引入相关依赖(其他基础依赖见上文) <!--thymeleaf整合shiro标签--> <dependency> <groupId>
2020-11-03 15:55:29
298
原创 Spring Boot整合Shiro + JSP教程(用户认证,权限管理,图片验证码)
在此首先感谢**编程不良人**up主提供的视频教程代码都是跟着up的视频敲的,遇到的一些问题也是通过优快云博主提供的教程解决的,在此也感谢那些提供bug解决方案的前辈们~项目完整代码已经发布到github上面,有需要的朋友可以自取1.权限管理1.1 什么是权限管理 涉及到用户参与的系统都要涉及权限管理,权限管理属于系统安全范畴。权限管理实现的是对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。 权限管理包括 用户身份认证 和 授权 两部分.
2020-11-02 15:18:28
1114
2
原创 python代码实现linux和windows下解压rar文件 -- rarfile跨平台使用经验
最近在使用python rarfile包解压rar文件遇到的一些问题和解决方法。代码开发是在windows系统上进行的,代码部署运行是在linux服务器上。之前从来没有遇到过跨平台的问题,新手第一次遇到…期间遇到了cannot find working tool的异常,通过如下方式得以解决。Python rarfile解压rar包报错 rarfile.RarCannotExec: Cannot find working tool.在顺利解决windows端外部依赖的问题以后,代码跑通了部署到lin
2020-09-24 10:40:15
2928
3
原创 Python rarfile解压rar包报错 rarfile.RarCannotExec: Cannot find working tool.
最近在使用python解压rar时遇到了一个错误。安装的是rarfile这个包,但是执行解压的时候报错,网上找了很多方法也没有解决。import rarfilepath1 = "E://test.rar"with rarfile.RarFile(path1) as rf: rf.extractall()目前网上主要解决方案有如下:1.将winrar.exe放到python项目下venv–scripts下。2.windows安装unrar,并配置环境变量。第一种方法我试了,发现没有解
2020-09-22 09:55:53
12800
9
原创 Spring jdbcTemplate入门
–学习资料来自于黑马公开课程–Spring jdbcTemplate基本使用1.1 jdbcTemplate概述它是Spring框架中提供的一个对象,是原始繁琐的jdbc API的简单封装。spring框架提供了多种操作模板类:操作关系型数据的jdbcTemplate操作nosql数据库的RedisTemplate操作消息队列的JmsTemplate1.2 jdbcTemplate开发步骤导入spring-jdbc和spring-tx坐标创建数据库表和实体创建jdbcTempla
2020-08-25 18:21:30
148
原创 Spring AOP 增强方法不执行原因
Spring AOP 增强方法不执行原因今天学习Spring AOP过程中发现自己配置的增强方法一个都没有执行,但是程序没有报错,找了一下午最后发现是自己配置写错了。原始代码如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc
2020-08-25 17:24:52
1442
原创 Mybaits XML方式与注解方式实现数据库交互 Mybatis简单入门 IDEA版
IDEA实现Mybatis简单快速入门一、Mybatis环境配置二、Mybatis 使用1.基于xml方式2.基于注解方式一、Mybatis环境配置使用IDEA创建空白Maven项目;创建完成以后,在pom.xml文件中添加相关依赖<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</ar
2020-07-21 14:26:08
469
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人