- 博客(52)
- 资源 (1)
- 收藏
- 关注
原创 在Git项目中使用husky统一管理hooks
通过探索可以学得更多,而不是指令。We learn best by discovery, not instruction.– 《程序员的思维修炼 | 开发认知潜能的九堂课》写在前面最近总想尽快调研完husky的项目,然后尽快确定项目中可以集成的git-hook管理工具。之前已经探究了pre-commit,再看完这个项目,就可以确定方案了。安装 & 卸载执行环境node -v# v16.4.0npm -v# 7.18.1git --version# git version .
2021-07-04 22:55:42 2835 3
原创 在Git项目中使用pre-commit统一管理hooks
Unix 哲学提供”锋利“的小工具、其中每一把都意在把一件事情做好。–《程序员修炼之道 - 从小工到专家》写在前面如果你使用Git,那你一定懂得纯文本的魅力并喜爱上shell这样的脚本语言。在很多时候,我更喜欢能够通过脚本语言进行配置的工具,而不是直接安装到编辑器的工具。一是因为脚本可以放在项目中与更多的人共享,以保持规范一直;二是脚本自动触发的操作无需要记更多的快捷键或者点击一点鼠标;再来则是脚本语言可以做更多灵活的操作,而不受软件开发者的约束。这大概也是我一直喜欢用Git指令,而不是编译器.
2021-07-04 22:55:11 6598
原创 通过Git Hook关联Tapd和Commit
提示 61Don’t Use Manual Procedures.不要使用手工流程–《程序员修炼之道 - 从小工到专家》前言Tapd提供了Gitlab代码关联的功能,我们可以利用这个功能将代码的提交和Tapd中的需求进行关联。可以通过如下的commit message将commit与tapd的story/bug/task进行关联。# 关联需求--story=[story id] --user=[username in tapd]# 关联任务--task=[task id] --us.
2021-07-04 22:54:25 1172 2
原创 定义全局Git Hooks和自定义Git Hooks
提示 21Use the Power of Command Shells利用命令shell的力量–《程序员修炼之道 - 从小工到专家》写在前面一个git项目只有一个hooks目录,每个阶段hook文件也只有一个,这样会造成开发人员和公司全局hooks的配置冲突。为了实现全局Git Hooks和开发人员自定义Hooks,特写了该简易项目。全局Hooks和自定义Hooks项目结构├── Makefile # make 安装指令├── global #保存全局的hooks│ ├──.
2021-06-20 00:38:18 785
原创 LeetCode | 13. 罗马数字转整数
前言难得上一次“精选题解”,那就顺手发一下吧。题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符数值I1V5X10L50C100D500M1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写...
2020-02-18 10:28:53 263
原创 Spring Security认证流程
前言Spring Seuciry相关的内容看了实在是太多了,但总觉得还是理解地不够巩固,还是需要靠知识输出做巩固。相关版本:java: jdk 8 spring-boot: 2.1.6.RELEASE 过滤器链和认证过程一个认证过程,其实就是过滤器链上的一个绿色矩形Filter所要执行的过程。基本的认证过程有三步骤:Filter拦截请求,生成一个未认证的Authentic...
2020-02-05 23:35:03 880 1
原创 SpringBoot解决CORS问题
写在前面的话在做前后端分离的开发或者前端调用第三方平台的接口时经常会遇到跨域的问题,前端总是希望能够通过各种方法解决跨域的问题。但事实上跨域问题是安全问题。这篇文章将会讲解一些为什么会有跨域问题,并提供一个方便的解决方法。为了阅读的流畅,相关的参考链接均会在文章末尾给出。本文使用的springboot版本为2.1.6.RELEASE,相应的spring版本为5.1.8.RELEASE。跨域问题...
2020-02-01 14:58:31 2066
原创 为easyexcel设置TimeZone
写在前面导出Excel是系统中经常用到的功能。实现的方案也很多,可以自己去封装Apache Poi,也可以直接使用别人已经封装好的类库。如果需求简单的话,自己做实现也是可以的,所有的bug和feature都将是可控的。使用第三方的类库主要是方便,避免重复造轮子,但不好地方在于如果发现bug或者feature不满足时,会严重受限于类库版本的迭代。在导出数据中经常会含有时间,在时间格式化时,如果不...
2019-11-23 02:01:07 2170
原创 MySql 全文检索两个字符的内容无法得到结果
问题描述数据库中有如下的地址信息表,需要实现一个更具用户输入的任何内容进行搜索可能匹配的地址信息。-- MySQL版本: 5.7.25CREATE TABLE Address ( id BIGINT NOT NULL AUTO_INCREMENT, address VARCHAR(100) NOT NULL DEFAULT '', city VARCHAR(50) ...
2019-11-01 23:51:02 2090
原创 n 阶幻方问题
前言这是很久以前做的一个实验的内容,觉得特别有意思,所以一直想发布出来,没想到拖着拖着就到现在了。问题描述一个n阶幻方是把从1到n^2的整数赶往一个n阶方阵,每一个数只出现一次,每一行、主副对角线的和都相等。分析和本文基本概念分析据了解,4阶幻方个数的基本型就有880个,通过旋转和反射总共可有7040个不同的形式的,5阶幻方基本型有275 305 224个,6阶幻方的个数非常之多,皮恩...
2019-11-01 23:45:29 7196 6
原创 SpringMVC | Controller 返回值及异常的统一处理
旧的设计方案开发api的时候,需要先定义好接口的数据响应结果.如下是一个很简单直接的Controller实现方法及响应结果定义.@RestController@RequestMapping("/users")public class UserController { @Inject private UserService userService; @GetRequest("/{u...
2019-11-01 23:43:38 1534
原创 Git-Flow规范和指令
前言在利用Git管理团队代码的时候,都会涉及到如何管理分支,如何发布版本的问题。如果能够制定一套统一的规则,就能够有效的保障团队的开发流程和效率。如下流程主要参考自 A successful Git branching model 进行的一个设计。能够确保各个分支的合理使用,以及发布版本的管理。此外,以下介绍的流程没有涉及到Pull Request 相关的操作,为的是能够快速地将每个开发的代码合...
2019-11-01 23:42:58 615
原创 初步认识 Stripe 支付
前言这段时间在做支付相关的工作,由于业务主要是面向国外的用户,因而就接触了部分国外的支付支付相关的平台。接下来的内容主要是初步看了 Stripe 平台的文档所了解到的基本内容,后面会在使用的过程中不断地进行完善。基本介绍和与其他支付平台的对比什么是StripeStripe - 基于API的便捷支付渠道 中对Stripe所提供的功能/产品给了较为不错的参考。使用范围在我写这篇博客之时(2...
2019-11-01 23:42:00 6343
原创 用回溯法计算消消乐游戏最大得分
前言这是一个非常非常简单的消消乐游戏。在一个 M*N 的网格中,一共有种物品。玩家可以列向或者行向得交换两个物品。当列向或者行向存在3 ~ 5个连续的相同物品时就可以消除将这些物品。消除3,4,5个连续的相同物品的得分分别为1,3,10。当物品被消除之后,上方的物品会垂直下落对空缺进行填补。如果填补之后依旧存在3~5个连续且相同的物品,则继续进行消除。如果交换操作无法消除任何物品,则禁止该操...
2019-11-01 02:29:21 3536
原创 Java 工具箱 | 图片-Base64 互转
前言最近真的被图片上传的功能给烦恼了。在web的项目中,我们经常会有上传图片的业务场景,最典型的是上传头像。为了解决头像上可以有如下的实现:使用 multipart/form-data 上传用户信息和头像,也即是使用html里面的<form></form>。如 gitlab中修改用户信息的头像。先将图片上传到图片服务,并获取图片连接,之后再用这个图片连接修改用户信息...
2019-11-01 02:28:22 1828
原创 Protobuf与POJO的相互转化 - 通过Json
前言这篇文章是《Protobuf与Json的相互转化》的一个后续,主要是为了解决系统分层中不同ProtoBean与POJO的相互转化问题。转化的Protobuf和Pojo具有相同名称及类型的属性(当Proto属性类型为Message时,对应的为Pojo的Object类型的属性,两者应该具有相同的属性)。转化的基本思路测试使用的protobuf文件如下:StudentProto.proto...
2019-11-01 02:27:30 2101
原创 Protobuf与Json的相互转化
前言最近的工作中开始使用Google的Protobuf构建REST API,按照现在使用的感觉,除了应为Protobuf的特性,接口被严格确定下来之外,暂时还么有感受到其他特别的好处。说是Protobuf比Json的序列化更小更快,但按照目前的需求,估计很就都没有还不会有这个性能的需要。既然是全新的技术,我非常地乐意学习。在MVC的代码架构中,Protbuf是Controller层用到的技术,...
2019-11-01 02:26:51 12638
原创 实现自己的Protobuf Any
这里写自定义目录标题前言Protobuf的any: google.protobuf.Anygoogle.protobuf.Any 也是由 proto 文件定义的google.protobuf.Any 本身也是一个 GeneratedMessageV3自定义AnyDataAnyData 的编码和解析定义一个将typeUrl和Class映射的lookup工具类查找指定路径下的类及其内部类找到一个包下的...
2019-11-01 02:25:49 4722
原创 Java 工具集 | 文本文件的读写
这里将会介绍一个我自己写的,而且是经常使用到的一个处理文本文件的工具集合。该工具主要是封装文件的读取,以及提供一些方便的方法进行对读取的文件进行特殊处理,同时也提供方法将一些对象数据输出到文本文件中。主要的功能类package cn.donespeak.tools.util.file;import java.io.BufferedReader;import java.io.Buffe...
2018-07-06 00:15:28 365
原创 深圳大学公文通简易检索系统
该系统是对深圳大学公文通的检索系统的简单实现,既然是简单实现,也就说只实现了初始的功能,现在暂时只能对一个月的公文通进行检索,而且是系统初始化时所抓取的数据。之后有时间会不断让系统升级,使得可以实时检索和有更高的性能。
2017-07-18 14:22:24 3540 4
原创 struts-2.3.31和struts-2.5.10引入jar以及配置web.xml和struts.xml
在struts学习过程中,很多教程用的都是strut-2.3.31,而现在最新的是struts-2.5.10,升级之后的strut2技能总是会有点变化的。还以为只要对着教程敲就行了,没想到不停地报错,简直无法让人享受敲代码的乐趣呀!该教程记录对struts2-2.3.31和struts2-2.5.10基本配置的不同。
2017-03-06 23:02:56 3512
原创 手把手做一个JSP入门程序(九):购物车的基本实现(Servlet)
设计购物车类,实现添加商品到购物车,删除购物车中的商品,显示购物车中的商品。同时使用ajax进行局部刷新。
2017-02-22 20:12:04 6387 6
原创 手把手做一个JSP入门程序(八):登陆注册(Servlet)
从该文章开始便开始用Servlet进行实现。设计用户类,实现用户的注册和登陆网站功能,同时要注意使用session保存用户的登陆状态,根据用户的不同登陆状态,进行不同的处理。
2017-02-22 20:08:21 5715 2
原创 简单说说Servlet
Servlet是运行在服务器上的小程序,是一个特殊的java类(继承了HttpServlet类)。 用于处理和响应用户的请求。与JSP的关系 先有Servlet再有JSP,JSP的本质就是Servlet,JSP页面部署在Web容器中之后,Web容器会将其编译成为对应的Servlet。一般的,一个JSP会生成一个Servlet类
2017-02-22 15:30:07 1352
原创 离开IDE,手写一个JSP程序
胡扯 直接用文本编辑器写一个程序,自己配置所有的文件,这样对学习一门语言的开发其实挺有用的。我们这里就手写一个JSP的程序。
2017-02-22 13:00:11 1418
原创 手把手做一个JSP入门程序(七):使用Cookie实现浏览记录(JSP)
为了能够实现保存用户浏览记录的功能,我们可以将用户浏览过的书籍的ISBN保存到Cookie中,然后在服务器通过Cookie中的ISBN来获取到相应书籍的信息。
2017-02-19 03:32:16 3894
原创 手把手做一个JSP入门程序(五):获取所有商品渲染主页(JSP)
获取所有商品渲染主页实现与数据库交互的类:BookDAO.java 这里开始就需要与数据库进行交互啦!这里需要引入一个DAO(Data Access Object)的概念。DAO是工作在持久层的,主要负责从底层存储中写入/读取数据,对业务层来说只需要知道DAO的接口即可完成CRUD操作,而不必关心底层的数据存储方式。
2017-02-19 03:23:21 1881
原创 手把手做一个JSP入门程序(四):商品实体类设计(JSP)
这里的商品实例也就是书籍。我们会将其构建为一个JavaBean类,以提高代码的重复利用性和程序的可维护性。这里有个小技巧用于迅速添加大量的setter和getter:右键你的类名,然后在弹出菜单中选择:”Source” -> “Generate Getters and Setters” -> “Select All” -> “OK”。
2017-02-19 03:19:24 2339
原创 手把手做一个JSP入门程序(三):DBHelper类设计--连接mysql数据库(JSP)
DBHelper类设计–连接mysql数据库 DBHelper(DataBase Helper)主要用于帮助我们进行对数据库的操作,我们会在其中创建一个获取数据库连接的方法。我们将放在utile包内,util包作为工具包。
2017-02-19 03:17:11 2588 2
原创 手把手做一个JSP入门程序(二):创建一个项目(JSP)
在Eclipse中配置Tomcat Web服务器创建一个动态网页项目创建一个项目我们使用Eclipse和Web服务器的Tomcat进行开发。这里主要是讲在如何在Eclipse中创建一个项目。
2017-02-19 03:11:15 10969 1
原创 手把手做一个JSP入门程序(一):程序基本介绍(JSP)
胡扯 说好的不学jsp,结果今天还是学了。主要还是为了后面的java后台的学习啦。为了更好的掌握知识,那我们就来写一个简单的jsp入门程序吧!这只是一个简单的入门小程序,所以就没有太多强大的功能。入门啦,入门啦。对了,由于是作为一个入门程序,所以里面会有较多的知识点介绍,所以就会比较长啦! 前端源代码可以点击这里下载,项目依赖的jar包可以点击这里下载,项目完整代码可以点击这里下载。建议先下载完
2017-02-19 03:03:29 4736
原创 JavaBean与JSP
JavaBean是java的软件组件模型,有点类似于Microsoft的COM组件概念。使用JavaBean的好处是提高代码重复利用性,使功能明确区分,保持代码整洁性,提高代码维护性。在JSP程序中常用语封装事务逻辑和数据库操作等等,可以很好的实现业务逻辑和前端程序的分离,使得系统更具健壮性和灵活性。
2017-02-18 11:23:47 1534
原创 mysql 创建用户并赋予用户权限
在很多时候,我们并不会直接利用mysql的root用户进行项目的开发,一般的,我们都会创建一个具有部分权限的用户。比如我们只需要从数据库中查找数据,我们就只需要创建一个具有select权限的用户即可。
2017-02-17 23:11:36 22942
原创 哈夫曼压缩之压缩文件头文件的不同方式
这是对之前的[哈夫曼编码–压缩与解压]的一个补充说明,这里只做简单的原理介绍,不做过多的具体实现。具体包含五种不同的写入头文件方式。
2017-02-14 15:10:32 1590
原创 用java模拟windows下的dir指令
这个是小小的程序是利用java模拟windows下的dir指令,并且已经尽可能的实现的其中的很多的功能。
2017-02-13 20:20:57 1765
protobuf-dt com.google.eclipse.protobuf_2.3.2.201609161849.jar
2019-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人