坨仔
码龄3年
关注
提问 私信
  • 博客:31,341
    31,341
    总访问量
  • 39
    原创
  • 1,286,587
    排名
  • 62
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2022-04-16
博客简介:

m0_69733784的博客

查看详细资料
  • 原力等级
    领奖
    当前等级
    3
    当前总分
    376
    当月
    0
个人成就
  • 获得48次点赞
  • 内容获得10次评论
  • 获得61次收藏
  • 代码片获得235次分享
创作历程
  • 3篇
    2024年
  • 34篇
    2023年
  • 2篇
    2022年
成就勋章
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

357人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Http三种常见状态码的区别(401、403、500)

这三种常见的状态码用于返回error的时候,401更偏向于当前用户的信息是否都齐全,403更偏向根据当前用户齐全的信息去判断是否有权限访问,500是系统db查询出错、redis出错的system的错误。可以用人的身份证做类比,身份证上的信息不齐全就是401错误(缺少名字,地址啥的、国籍),403就像你是国外的国际地址是不允许进入中国的。500就像你是偷渡的没有身份信息。
原创
发布博客 2024.01.15 ·
2195 阅读 ·
10 点赞 ·
0 评论 ·
7 收藏

JWT令牌(Token)设计

要在JWT中设置过期时间,可以在Payload(载荷)中添加一个名为"exp"的标准声明(Claim),表示JWT的过期时间。"exp"声明的值是一个数值类型,表示某个时间点的UNIX时间戳,单位为秒或毫秒。在生成JWT时,需要计算当前时间和过期时间,确保生成的JWT在当前时间之后,且在过期时间之前使用。在验证JWT时,需要检查"exp"声明,确保当前时间未超过JWT的过期时间,以确保JWT未失效。设置过期时间可以增强JWT的安全性,避免长时间使用老旧的令牌造成潜在的安全风险,例如未经授权的访问。
原创
发布博客 2024.01.08 ·
633 阅读 ·
7 点赞 ·
0 评论 ·
9 收藏

函数式编程的优势和使用场景

综上所述,如果你面临处理集合、异步编程、并发和并行、模块化和可测试性等需求时,函数式编程是一个值得考虑的选择。:通过将函数作为参数传递,可以将通用的逻辑代码抽象出来,避免在多个地方重复编写相似的代码。:通过将函数作为参数传递,可以将复杂的逻辑封装成一个函数,使代码更加模块化和可复用。总而言之,将函数作为参数进行传递可以提高代码的模块化、可读性和可维护性,同时也增加了代码的灵活性和重用性。通过使用函数式编程的特性,如高阶函数、映射、过滤和归约等,可以更加方便地对集合进行处理和转换。
原创
发布博客 2024.01.04 ·
591 阅读 ·
8 点赞 ·
0 评论 ·
7 收藏

grpc微服务模块不同模块之间的校验权重

User 模块作为处理核心逻辑的模块,可以对接收到的参数进行更深入的业务校验和验证。它可以验证参数的合法性、关联性以及更复杂的业务逻辑。API 模块负责接收请求,并起到验证和转换请求参数的作用。它可以校验请求的参数格式、类型、必填性等,确保请求的参数符合预期和规范。在你的 gRPC 架构中,根据最佳实践,建议在 API 模块和 User 模块之间合理分配参数校验的责任。
原创
发布博客 2023.12.27 ·
423 阅读 ·
12 点赞 ·
0 评论 ·
9 收藏

数据库中锁冲突

当一个事务或线程持有一个锁时,其他事务或线程如果希望对同一个资源进行修改或读取操作,则需要等待锁的释放。如果多个事务或线程同时持有了不同的锁,并且这些锁之间存在依赖关系,那么就可能导致锁冲突。:当并发冲突增多时,系统可能不得不不断地回滚事务、重新执行事务或等待锁的释放,这会导致额外的开销和延迟。:一个事务等待另一个事务持有的锁,会导致等待的事务被阻塞,无法继续执行,从而降低了系统的并发度和性能。通过合理的锁管理和并发控制机制,可以减少锁冲突的概率,提高系统的并发度和性能。
原创
发布博客 2023.12.18 ·
198 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

如何配置git与github关联?

什么是git?怎么安装git?git有什么用?为什么要安装?新人疑问三连!一个一个说吧。GitHub大家都知道,是世界上最大的软件远程仓库,是一个面向开源和私有软件项目的托管平台,使用Git做分布式版本控制。而Git是实现分布式版本控制的一个工具,简单的来说就是实现文件历史管理的工具。举一个例子,说明Git的作用。print(“你好呀世界”)3)老板看了以后,又觉得不行,让你留下来加班,把代码改回到上一次的状态。
原创
发布博客 2023.12.14 ·
99 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

MTP意义

在敏捷开发中,最小可测试产品(Minimum Testable Product)指的是具备基本功能并经过测试的最小产品版本。通常情况下,最小可测试产品并不是最终上线的版本。完成最小可测试产品测试后,团队可以获得有关用户反馈和产品功能的更多信息。一般来说,只有当产品通过了最小可测试产品阶段,并经过团队认可后,才会考虑将其上线。因此,最小可测试产品仅是开发过程中的一个里程碑,说明产品已经具备基本的功能和稳定性。:最小可测试产品,通常用于敏捷开发中,指开发团队可以展示给用户并进行测试的最小功能集合。
原创
发布博客 2023.12.14 ·
109 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Git临时储存,切换分支

如果你需要切换分支,但又不想提交当前的修改,你可以使用 Git 的 "存储"(stash)功能来保存当前的修改,然后在切换到其他分支后再恢复这些修改。这样你就可以在不提交修改的前提下切换到其他分支,并在切换回来后恢复之前的修改。在目标分支上进行工作。
原创
发布博客 2023.12.11 ·
309 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

写代码的标准流程-优雅永不过时

在编写代码时,注重代码的可读性、可维护性和可测试性,采用良好的命名规范,并遵循相关的编码风格指南。根据需求,确定整体的代码结构、模块和组件的划分以及它们之间的关系。仔细阅读需求文档、与相关人员进行讨论,确保对需求的目标、功能和约束有清晰的理解。:在开始实际编写代码之前,你可以先根据需求和架构设计,编写伪代码或者简要列出代码的设计思路。通过分析性能瓶颈和代码质量问题,对代码进行优化和重构,提高代码的性能、可读性和可维护性。:在代码编写完成后,编写相应的文档,包括代码注释、使用方法、API文档等。
原创
发布博客 2023.12.01 ·
333 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

json格式数据如何比较两个key值中的差异

然后,我们通过遍历两个数据的键来找出差异,将存在于一个数据中而不存在于另一个数据中的键放入。类型,然后比较两个数据的键(key)来找出差异。在 Golang 中,我们可以使用。将两个 JSON 数据分别解析为。包将 JSON 格式的数据解析。在这个示例代码中,我们首先使用。
原创
发布博客 2023.11.24 ·
375 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

项目开发的五种环境以及它们的联系

开发环境
原创
发布博客 2023.10.13 ·
2182 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

golang项目中指针类型有什么用,什么情况下需要使用指针类型

需要注意的是,对于一些基本类型和小型数据对象,直接使用值类型即可,而不需要使用指针类型。只有在涉及到大型数据对象的传递、需要修改参数值、动态内存分配和与nil值的比较等情况下,才需要使用指针类型。修改函数参数:使用指针类型作为函数参数,可以在函数内部对参数进行修改,以便将更改后的值传递到函数的调用者。通过将变量的指针设置为nil,可以在需要时判断变量是否已经被初始化,避免访问未初始化的变量。传递大型数据对象:当函数需要传递一个大型的数据对象时,使用指针类型可以避免对该数据对象进行复制,提高程序的性能效率。
原创
发布博客 2023.09.13 ·
376 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

golang用于计算金钱计算类型,防止计算误差

使用整数类型表示最小货币单位:一种常见的方法是使用以最小货币单位(如分)为基准的整数类型来表示金钱值。当然这仅仅是一个示例,实际上关于金钱计算,需求比较复杂,包括货币精度、汇率等一些复杂操作,需要根据实际情况进行仔细设计和处理。在Go语言中,为了确保准确且可靠的金钱计算,通常不直接使用浮点数类型。这些类型可以用来表示和计算精确的货币值,通过使用精确的小数类型,可以避免浮点数计算中的舍入误差。使用专用的货币库:还可以使用一些第三方库来处理金钱计算,这些库提供了特定于金融计算的数据类型和功能,如。
原创
发布博客 2023.09.13 ·
1737 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Graphql框架整合jin框架(go语言)

最后,我们实现了一个graphqlHandler结构体,来处理Gin中的GraphQL请求,并将其转换为JSON格式返回到客户端。在Gin中,我们可以使用第三方的GraphQL库来实现对GraphQL的支持,下面是一个完整的示例,展示了如何使用Gin框架和Graphql进行整合。根据上面代码的设置,在本地启动这个应用程序后,我们可以在浏览器中访问http://localhost:8080并打开GraphiQL界面,在界面中输入GraphQL查询语句,并执行查询。系统会自动返回计算得出的结果。
原创
发布博客 2023.09.07 ·
571 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

go企业级开发,为什么每编写一个功能函数,需要写一个对应test函数(UT)?

如果你按照测试驱动开发(TDD)的方法,先写测试再写代码,也可以更好地指导你实现功能,并确保代码的质量。这有助于防止代码回退,确保你的代码库保持可靠和可维护的状态。提高代码的可读性和可维护性:编写测试函数可以促使你更加关注代码的设计和实现。编写可测试的代码往往需要更好的模块化、封装和解耦,这能提高代码的可读性和可维护性。测试函数可以作为代码的使用示例和文档,让其他人更容易理解代码的预期行为和用法。所以,虽然编写测试函数不是强制性的,但是它是一个推荐的做法,可以帮助你创建健壮、可靠和可维护的代码库。
原创
发布博客 2023.08.28 ·
74 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

并发和异步的区别

异步是指一个任务的完成不会阻塞其他任务的执行。在Java程序中,可以使用异步编程的方式来实现异步操作,例如使用CompletableFuture或Reactive编程模型。异步操作可以利用非阻塞的方式处理任务,当任务在执行时,可以继续执行其他任务,当任务完成时,可以通过回调或事件通知来处理任务的结果。多个线程可以同时执行,每个线程都有自己的执行上下文和指令流,并且可以在共享的内存空间中进行通信和同步操作。例如,可以通过异步方式执行一些耗时的任务,使得主线程可以继续执行其他任务,从而提高程序的并发性能。
原创
发布博客 2023.06.27 ·
2027 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

沙箱数据和生产环境数据库的区别

生产数据库和沙箱数据库虽然存在一定的联系,但它们是具有不同目的和使用场景的两个不同的数据库环境。用途:生产数据库是用于实际的业务操作和数据存储的,它承载着正式的业务流程和实时的数据变动。数据隔离:沙箱数据库通常是一个完全独立的数据库实例,它有自己的数据集合和架构。隔离环境:沙箱数据库使得开发人员能够在独立的环境中进行实验和测试,不会影响生产数据库中的真实数据和业务流程。沙箱数据库的主要作用是提供一个安全的环境,供开发人员在其中进行新功能开发、代码测试和错误排查,而不会对生产数据库产生影响。
原创
发布博客 2023.06.27 ·
1370 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

HTTPS、TRTC 、数据迁移、CSV概念

需要注意的是,CSV文件不是标准化的格式,因此在处理CSV文件时,应注意字段值中是否包含特殊字符(如逗号、引号等),需要进行适当的转义或处理,以确保数据的准确性和一致性。丰富的功能和定制化能力:TRTC 提供了丰富的功能和扩展接口,开发者可以根据自身需求定制音视频通信功能,如美颜、滤镜、屏幕分享等。综上所述,TRTC 提供了实时音视频通信的解决方案,支持跨平台开发和多种应用场景,具有高性能、可扩展性和稳定性。数据迁移过程涉及多个步骤,如数据提取、转换和加载(ETL),为目标环境做好准备,数据验证和测试等。
原创
发布博客 2023.06.26 ·
204 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

CDN作用是什么?

综上所述,CDN 的作用是通过在全球各地部署服务器节点,就近获取和分发静态内容,从而加速内容传输、提高可用性、减少带宽消耗,并提供额外的安全性和负载均衡。加速内容传输:CDN 部署了分布在全球各地的服务器节点,使得用户可以从最近的节点获取所需的内容,从而减少了网络延迟。减少带宽消耗:由于 CDN 可以提供就近的内容,用户从最近的节点获取所需内容的机会更大。CDN(内容分发网络)的作用是将网站或应用的静态内容(如图片、脚本、样式表等)复制到位于世界各地的服务器节点上,以便就近提供给用户。
原创
发布博客 2023.06.26 ·
982 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java多线程并发执行中保证关键代码线程安全

使用多线程和锁的矛盾在于,多线程可以提高程序的处理效率,而锁的加入会对程序产生一定的性能影响。锁是一种同步工具,用于保护临界区,避免多个线程同时访问临界区产生的问题。需要注意的是,尽管多线程可以大大提升程序的处理效率,但在多线程编程时还需要注意线程安全问题,如避免竞态条件和死锁问题等。ThreadPoolExecutor是Java多线程中提供的线程池,它可以很方便地创建一个固定大小的线程池,将多个Runnable任务或Callable任务分配给线程池中的多个线程来并发执行,从而提高程序的处理效率。
原创
发布博客 2023.06.26 ·
377 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏
加载更多