项目实战经验
文章平均质量分 80
项目实战经验
海风极客
海风即向往自由,极客则是一种精神。
展开
-
一文带你搞懂Go语言中深拷贝与浅拷贝
浅拷贝和深拷贝是Go语言中处理对象复制时的两种重要方式。它们的主要区别在于处理引用类型字段时的行为不同。理解数据结构的复制方式:在对数据进行拷贝操作时,要明确是进行浅拷贝还是深拷贝,以避免意外的数据共享或修改。避免数据共享带来的问题:当多个变量共享同一份数据时,一个变量的修改可能会影响其他变量。在需要独立操作数据时,应该使用深拷贝来复制数据。性能考虑:深拷贝通常比浅拷贝更耗时,因为需要复制整个数据结构。在处理大型数据集时,需要权衡性能和数据独立性。使用copy()函数进行切片拷贝。原创 2024-03-11 23:11:34 · 551 阅读 · 0 评论 -
浅谈Elastic Search V8版本的一些重大改进
综上就是Elastic Search v8相对低版本做出的相对较大的改动,当然最详细的内容还是要仔细的阅读官方文档,上面这些也是本人在使用过程中遇到问题的时候做出的排查进而总结出来的点,希望能给到大家帮助。原创 2024-01-31 22:41:50 · 837 阅读 · 0 评论 -
如何优雅的设计一个SDK
到这里大家可能会产生疑问,为什么NewSDK的时候除了host还要带上username和passwd这两个参数。其实主要是因为系统一般会有Auth认证的流程,主要是用于认证调用者是否为该系统的合法用户,API中的header(name=barry yan)也正是为了验证用户,当然实际一定是要比这个复杂的多,SDK也会有对Auth认证方式的封装。aws-sdk-go本文的全部代码也已经打包上传到Github,欢迎大家提出issue。获取代码方式:关注公众号【扯编程的淡】回复【sdk。原创 2023-11-12 19:26:35 · 660 阅读 · 6 评论 -
程序员的快乐如此简单
最近在GitHub上发起了一个关于Beego框架的小插件的开源仓库,这一举动虽然看似微小,但其中的快乐和意义却是无法用言语表达的。Beego是一个开源的Go语言Web框架,它采用了MVC架构模式,并集成了很多常用的功能和中间件。小插件是指与Beego框架配套使用的、可扩展的、独立的软件模块或组件。通过开发小插件,可以扩展Beego框架的功能,提高开发效率和代码可维护性。原创 2023-09-23 20:51:08 · 3425 阅读 · 3 评论 -
【五一创作】再来一篇,Go+Vue前后端分离设计实践
《手把手教你搭建Spring Boot+Vue前后端分离》姊妹篇~原创 2023-04-30 20:21:58 · 1463 阅读 · 11 评论 -
Go语言开发小技巧&易错点100例(四)
(1)goroutine控制并发数量的方式【技】(2)Go发起HTTP请求【技】(3)包循环依赖导致的异常【易】原创 2022-12-24 20:55:01 · 474 阅读 · 4 评论 -
Go语言开发小技巧&易错点100例(三)
这么快就第三期了,算下来这期包括前几期我的《Go语言开发小技巧&易错点100例》已经凑够了15个!任务完成率15%!继续加油!原创 2022-12-03 22:24:53 · 485 阅读 · 4 评论 -
分布式锁:不同实现方式实践测评
Hello读者朋友们,今天打算分享一篇测评实践类的文章,用优雅的代码与真实的数据来讲述在分布式场景下,不同方式实现的分布式锁,分别探究每一种方式的性能情况与最终的优劣分析。原创 2022-11-26 19:41:35 · 630 阅读 · 16 评论 -
一文搞懂Go读写Excel文件
以上功能只需灵活扩展后基本上就可以覆盖大部分业务了,但是有一点需要注意,在2.5使用Http协议将数据转换为Excel文件并下载这个操作中,需要将文件进行重命名,这个名称可以自定义,也可以由服务端指定,但是需要以相关文件类型的名称做后缀,否则会输出zip压缩文件,很难看懂。今天的分享就到这里~原创 2022-10-29 18:06:57 · 3727 阅读 · 8 评论 -
Go语言开发小技巧&易错点100例(一)
今天给大家带来的这一档文章呢,主要是总结一下自己Coding过程中遇到的问题以及平时读一些博客的所得,因为做gopher也有了一段时间了,相比Java,有些问题的出现想要利用搜索引擎排查出来可能不是那么的迅速,所以在这里以文章的形式总结出来也方便各位初出茅庐的gopher们能够顺利的解决所遇到的问题,并能够习得一些小技巧。原创 2022-10-15 15:34:13 · 851 阅读 · 8 评论 -
十分钟带你搞懂Python那啥
Python爬虫的用处就不需要我多说了吧,今天就来带大家十分钟快速学会Python是如何爬取网页信息的,当然大家在爬取目标网页内容之前一定要遵守该网页的爬虫规则,以免带来不必要的麻烦原创 2022-10-04 11:10:25 · 225 阅读 · 4 评论 -
浅谈etcd服务注册与发现
微服务是当今互联网领域的广泛概念,也是一种架构演进的结果,微服务的存在让架构设计更加的解耦合,让人员的分工更加明确,当然他的落地实现也并不止步与某一两种方式,在云原生领域的Kubernetes+etcd,互联网领域常用的Spring Cloud全家桶以及Dubbo等都是微服务的具体实现,而etcd也仅仅是微服务中服务注册中心组件角色的一个代表而已。原创 2022-08-21 16:19:08 · 1703 阅读 · 26 评论 -
一文带你搞懂OAuth2.0
最近好久没有发文章了,但并不意味着停止了学习,哈哈哈~今天给大家带来了关于OAuth2.0的相关文章,说实话OAuth2.0我也是费了好大力气才稍稍理解的,虽然我们每天都会用到(使用QQ授权登录QQ音乐、和平精英等等),但是背后的设计实现思想还是蛮复杂的,并且有很多地方值得推敲,今天我就分几个方面带大家重新领略下OAuth2.0的设计实现流程和思想,希望能让大家一读就会!会了还想读!读了接着会!...原创 2022-08-07 17:22:45 · 929 阅读 · 29 评论 -
从4开始,在后端系统中增加用户注册和登录功能
本次我们接着上四篇文章进行讲解《从0开始,用Go语言搭建一个简单的后端业务系统》、《从1开始,扩展Go语言后端业务系统的RPC功能》、《从2开始,在Go语言后端业务系统中引入缓存》以及《从3开始,在业务系统中增加分页功能》,这次是系统中比较核心的功能——用户登录&注册,这个功能其实本应该是最先实现的,但是由于不同因素的影响,放到了本次进行实现,不过也无伤大雅,后期我们都会不断的进行查漏补缺和优化来使我们的项目总体上更加优雅,话不多说,我们开始正文:(1)注册流程(2)登录流程user结构:dao层代原创 2022-07-21 08:54:42 · 688 阅读 · 8 评论 -
一文搞懂Go整合captcha实现验证码功能
最近在使用Go语言搞一个用户登录&注册的功能,说到登录&注册相关,我们油然会产生一种增加验证码的想法,因此着手实现,后来在GitHub上找到了这个名叫captcha的插件,于是就利用文档进行了初步的学习,并融入到自己的项目中......原创 2022-07-15 13:17:39 · 2690 阅读 · 12 评论 -
开源!一款基于Spring Boot的二维码生成和解析工具
之前闲暇时间写过的一款二维码生成和解析工具,目前基本功能已经完成并开始使用原创 2022-07-05 09:52:05 · 2802 阅读 · 10 评论 -
玩转gRPC—不同编程语言间通信
玩转gRPC原创 2022-07-01 08:07:02 · 737 阅读 · 4 评论 -
玩转MongoDB—搭建MongoDB集群
如题,本次玩转MongoDB我们从搭建集群开始,话说MongoDB一共有三种搭建集群的方式,但是由于版本更新,据说在4.0版本之后第一种方式,也就是主从复制的方式被遗弃掉了,大概是因为这种方式的效率不高吧,因为目前我们使用的是5.x版本,因此就不花时间讲解第一种方式了,在其他的文章上摘录了一下,可供大家参考。...原创 2022-07-01 08:01:03 · 2114 阅读 · 10 评论 -
从3开始,在业务系统中增加分页功能
这一节相对比较的简单,增加分页功能的实现利用了gorm的封装的方法并且同步更改了Gin的接收参数,进而实现了分页功能。原创 2022-06-23 09:17:25 · 274 阅读 · 13 评论 -
玩转MongoDB—使用Go和Java客户端
话说上一节我们说到MongoDB的基本使用,当命令行的操作我们熟悉了以后,就可以使用相关的Driver,也就是驱动程序进行相关编程语言的使用操作,因为在实际的开发过程中总归是要用编程语言来控制的,因此这篇文章我们介绍两个最常用的编程语言—Go&Java,来使用各自的驱动链接并操作MongoDB,Start!...原创 2022-06-22 08:58:32 · 336 阅读 · 4 评论 -
从2开始,在Go语言后端业务系统中引入缓存
本次我们接着上两篇文章进行讲解《从0开始,用Go语言搭建一个简单的后端业务系统》和《从1开始,扩展Go语言后端业务系统的RPC功能》原创 2022-06-20 08:45:45 · 823 阅读 · 2 评论 -
从1开始,扩展Go语言后端业务系统的RPC功能
这次我们接上一篇文章《从0开始,用Go语言搭建一个简单的后端业务系统》,利用Google开源的RPC框架—gRPC来进行对接口的RPC功能横向扩展原创 2022-06-16 15:49:08 · 391 阅读 · 4 评论 -
从0开始,用Go语言搭建一个简单的后端业务系统
Hello 小伙伴们,今天给大家带来了一份Go语言搭建后端业务系统的教程,restful风格哦原创 2022-06-15 12:27:50 · 3715 阅读 · 15 评论 -
详解线程同步和线程互斥,Java如何实现线程同步和互斥
最开始我们的操作系统的作业的调度单位是进程,但是由于每个进程都单独占据一个资源,而且进程的形态转换非常的耗费系统资源。为了系统的调度更加轻量级,能够更好的支持并发,因此引入了线程这个概念。...原创 2022-06-09 21:04:03 · 1025 阅读 · 0 评论 -
浅谈使用VS Code玩转Go Coding
想要成为一名优秀的工程师,掌握一门编程语言是远远不够的,想要成为一名优秀的Go布道师,光会用一个IDE也是远远不够的,因此学习Go语言开发的第二个IDE—VS code原创 2022-06-02 15:18:36 · 328 阅读 · 2 评论 -
一文搞懂Go搭建Restful接口
前提说明大家都知道,Go语言是云原生技术的主力语言,因此想要更好的学习并掌握云原生技术的前提是能熟练的使用Go语言,今天就带大家再次使用Go语言搭建一个简单的Rustful风格的后端服务,其中包含CRUD功能,但是由于能更方便快速的开发完成,web层使用了Gin框架,dao层,即数据库访问层的代码就没有进行数据库的连接,直接操作内存做数据的增删改查,如有详细教程的需要请留言哈~好滴,废话不多说,在学习这篇文章之前建议大家先了解下除了Go基本语法和设计规范以外,还有Restful的一些要点和Gin框架的基原创 2022-05-29 22:20:50 · 1173 阅读 · 2 评论 -
玩转curl指令—测试简单的HTTP接口
官网:https://curl.se/GitHub:https://github.com/curl/curlDoc.:https://everything.curl.dev/昨天在测试一个HTTP接口的时候,发现是添加功能,按照Restful风格应该是POST请求,但是经常使用的curl指令,如curl http://xxxx:xxx则默认是GET请求,因此又在搜索引擎上查询curl相关请求方法的指令,发现还挺丰富的,因此今天将这部分总结成一个文章,以便后续的使用。1 初步介绍curl主要使用.原创 2022-05-28 16:17:15 · 3299 阅读 · 0 评论 -
浅谈云原生技术组件—etcd
浅谈云原生技术组件—etcd技术官网:https://etcd.io/GitHub:https://github.com/etcd-io/etcd1 什么是etcd?etcd是一种强一致性的分布式键值存储组件,使用Raft算法,利用Go语言编写,它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据。它在网络分区期间优雅地处理领导者选举,并且可以容忍机器故障,即使在领导者节点中也是如此。特点:操作简单整洁,使用HTTP协议和JSON文件格式进行存取键值对键值对存储,类似于Zoo原创 2022-05-15 19:01:23 · 1136 阅读 · 7 评论 -
玩转Apache JMeter—测试HTTP接口篇
应一位粉丝的要求发此文章~1 什么是JMeter官网:https://jmeter.apache.orgApache JMeter是由Apache开源的、100% 纯 Java 的应用程序,旨在对程序性能进行测试 。它最初是为测试 Web 应用程序而设计的,但后来扩展到其他测试功能。使用JMeter能够测试哪些功能:Web接口(包括HTTP、HTTPS)SOAP / REST Web 服务FTP通过 JDBC 的数据库LDAP通过 JMS 的面向消息的中间件 (MOM)邮件 -原创 2022-05-12 20:19:29 · 523 阅读 · 2 评论 -
今天带来一个非常优雅项目分享~
项目介绍该系统总体采用B/S架构,MVVM的设计方式,使用当前业界中比较流行的Spring Boot+Vue前后端分离的开发设计模式,将整个项目分为前端和后端两部分来开发,前端使用axios向后端发起数据请求,后端采用Spring Boot开发restful方式的控制器进行前端请求的响应,主要是将请求数据的处理和响应结果封装成JSON格式的数据进行响应,最后再由解析该JSON数据的前端并进行渲染。技术点后端技术:Spring BootMybatis & Mybatis PlusShi原创 2022-05-10 20:30:45 · 389 阅读 · 2 评论 -
探索Pulsar之使用Go和Java操作Pulsar
1 前言Pulsar官方支持的客户端库:C++PythonWebSocketGo clientNode.jsC#JavaGitHub中三方的客户端库:GoHaskellScalaRust.NETNode.js具体可参看:https://pulsar.apache.org/docs/zh-CN/next/client-libraries/本次仅演示Go和Java的客户端操作。2 单机模式运行Pulsar[root@iZ2ze4m2 bin]# pwd/root/原创 2022-05-02 19:29:08 · 3959 阅读 · 2 评论 -
新一代消息中间件—Apache Pulsar
(图片来自:https://pulsar.apache.org)官网:https://pulsar.apache.org官方文档:https://pulsar.apache.org/docs/zh-CN/GitHub:https://github.com/apache/pulsar1 初识Pulsar简介:Pulsar是由Java语言进行编写的新一代消息队列产品,具有多租户、高性能等优势。Pulsar 最初由 Yahoo 开发,目前由 Apache 软件基金会管理。关键特性.原创 2022-04-30 18:07:01 · 1833 阅读 · 0 评论 -
日常玩Ubuntu小记
公元二零二二年春,小闫同学学习Kubernetes。越明天,技术娴熟,百废具兴,乃重修Linux,增其版本,玩转Ubuntu,不料半途发现小阻碍,解决后属予作文以记之。安装的虚拟机版本为: Ubuntu 18.04 LTS (GNU/Linux 4.15.0-175-generic x86_64)1 Ubuntu安装openssh实现SSH连接第一个问题,当我想使用其他机器的终端登录时却发现了阻碍,当时是这样的:yan@machine:~$ ssh [email protected]原创 2022-04-19 21:07:44 · 633 阅读 · 0 评论 -
玩转Java注解
1 为什么需要注解因为注解起源与JDK1.5,所以先带你们去挖一挖Sun官方当时刚刚发行JDK1.5时的文档,目前在Oracle官网链接:https://docs.oracle.com/javase/1.5.0/docs/relnotes/features.html#annotationshttps://docs.oracle.com/javase/1.5.0/docs/guide/apt/index.html如果你不愿意自己看的话,我截取了一些重点的内容并且翻译了下:翻译:- 元数据(原创 2022-04-05 13:34:12 · 569 阅读 · 0 评论 -
Go整合gorm实现CRUD
1 gorm简介官网:https://gorm.io/zh_CN/Github:https://github.com/go-gorm/gorm中文文档:https://gorm.io/zh_CN/docs/特性(摘自官网):全功能 ORM关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承)Create,Save,Update,Delete,Find 中钩子方法支持 Preload、Joins 的预加载事务,嵌套事务,Save Po原创 2022-04-04 22:16:23 · 1482 阅读 · 0 评论 -
深度思考:到底什么是抽象?
到底什么是抽象?前言:不要为了抽象而抽象。 ——《Tony Bai · Go 语言第一课》1 回顾软件设计的六大原则一、单一职责原则(SRP: Single responsibility principle)二、开放封闭原则(OCP: Open Closed Principle)三、里氏替换原则 ( LSP: Liskov Substitution Principle)四、接口隔离原则( ISP: Interface Segr原创 2022-04-01 22:25:35 · 923 阅读 · 0 评论 -
记录一次云服务器遭遇SYN泛洪攻击处理方式
1 场景再现今天上午刚想用云服务器传输下文件,当打开finalshell连接服务器时突然发现服务器的系统指标很异常,而且在终端输入命令的时候都非常的卡,图示:很明显我们可以看出服务器的异常状态:CPU高负载内容高利用率网络高出口带宽2 尝试解决2.1 尝试使用netstat命令检查网络连接状态首先使用最基本的netstat命令查看网络的连接状态#### 命令netstat#### 输出字段含义Proto #Recv-Q #Send-Q #Local #原创 2022-03-27 15:37:17 · 5332 阅读 · 2 评论 -
RPC框架之Thrift—实现Go和Java远程过程调用
Thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作一个远程过程调用(RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。原创 2022-03-05 14:42:18 · 1561 阅读 · 0 评论 -
玩转SQL窗口函数
玩转SQL窗口函数说明:MySQL8.0 之后才支持窗口函数1 提前准备在MySQL8.0版本数据库下新建数据表,插入数据CREATE TABLE `student`( `id` int(10) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `age` int(10) DEFAULT NULL, `address` varchar(20) DEFAULT NULL) ENGINE=InnoDB原创 2022-03-05 12:29:51 · 2367 阅读 · 4 评论 -
快速入门Gin框架搭建HTTP服务
1 概念官网:https://gin-gonic.com/zh-cn/What is Gin?Gin is a web framework written in Golang.It features a martini-like API with much better performance, up to 40 times faster.If you need performance and good productivity, you will love Gin.翻译:Gin是一个用G原创 2022-02-27 23:10:09 · 5111 阅读 · 0 评论