首页 > 其他分享 >实战上,通过一段ID 生成器代码,学习如何发现,代码质量的问题(设计模式)

实战上,通过一段ID 生成器代码,学习如何发现,代码质量的问题(设计模式)

时间:2024-02-29 11:24:13浏览次数:19  
标签:请求 代码 生成器 我们 日志 设计模式 ID

ID 生成器的需求背景介绍

ID 中文翻译为标识Identifier ,这个概念在生活,工作中随处可见,比如身份证、商业条形码、二维码、车牌号、驾照号。聚焦到软件开发中,ID 常用来标识一些业务信息的唯一标识,比如订单的单号或者数据库中的唯一主键,比如地址中ID 字段(实际上时没有业务含义的,对用户来说时透明的,不需要关注)

假设你正在参加一个后端的业务系统开发,为了方便在请求出错时排查问题,我们在编写代码的额时候,会在关键路径上打印日志。某个请求出错之后,我们希望能所说出这个请求对应的日志。 以此日志来查问题的原因。而实际情况时,不同的请求的日志会交织在一起,如果没有东西来标识那些日志属于同一个请求,我们就无法关联同一个请求的所有日志。 

这听起来像微服务中心的调用链追踪。不过微服务中的调用链追踪时服务间的追踪,我们现在要实现的时服务内的追踪。 

借鉴微服务调用链追钟的实现思路,我们可以给每个请求分配一个唯一的Id,并且保存在请求的上下文中,比u,处理请求的工作线程的局部变量中。在java 语言中,我们可以把Id 存储在ThreadLocal 中,或者利用Sl4j 日志框架的MDC (Mapped Diagnostic Contexts) 来实现(实际上底层也是基于ThreadLocal).每次打印日志的时候,我们从球球上下文中取出请求Id,跟日志一块输出。这样,同一个请求的所有日志都包含在同样的请求ID 信息,我们可以公国请求ID 来搜索同一个请求的所有日志了。 

好了需求背景,我们已经讲解清楚了,至于具体如何实现整个需求,我们就不具体展开讲解了,如果你感兴趣的化,可以自己试着去设计实现以下。我们接下来只关注ID 这部分功能的开发。 

一份能用的代码实现

 

标签:请求,代码,生成器,我们,日志,设计模式,ID
From: https://www.cnblogs.com/dousil/p/18043038

相关文章

  • 用ChatGPT试了一下,果然好用,生成的CRC的代码
    CEIWEI之前发布过一款Hash/CRC工具,支持从CRC3到CRC64的全部CRC类型功能小工具。因为是免费获取,不少小伙伴们加我微信,要注册码,着实有点忙,没有时间回复各位,抱歉!这几天,用ChatGPT试了一下,果然好用,生成的CRC的代码,稍加修改,直接可用。废话少说,上图!DelphiXE7代码:以上代码是ChatG......
  • day44 动态规划part7 代码随想录算法训练营 70. 爬楼梯 (进阶)
    题目:爬楼梯(进阶)-在卡尔网我的感悟:昨天最后没怎么听懂的,今日回旋镖来了。理解难点:递推公式,和遍历顺序手写笔记:代码示例:total,m=map(int,input().split())#每次爬m个#dp[i]含义是爬到i有dp[i]种方法#是完全背包问题dp=[0]*(total+1)dp[0]=1fo......
  • 快速改善代码质量的20 条编程规范
    命名大到项目名,模块名,包名,对外暴露的接口,笑道类名,函数名,变量名,参数名。只要做开发,我们就逃不过起名字这一关,命名的好坏,对于代码的可读性来说非常中国要。甚至起到决定性的作用。除此之外,命名能力也体现了一个程序员的而基本的素养。这也是我们把命名放到第一位的原因。 取一个......
  • 二月一日梦断代码读后感3
    《梦断代码》通过主人公与人工智能之间的互动,揭示了人类情感、自我意识和道德观念在科技时代的重要性。小说中的情节展现了人工智能可能具有的智慧与情感,引发了无数思考和争议。通过主人公与梦境之间的对话,读者不仅感受到了科技发展带来的可能性和便利性,也开始思考科技对人类生活......
  • 一月三十一日,梦断代码读后感2
    在《梦断代码》中,作者运用了夸张的科幻元素和复杂的人际关系,将人工智能与人类之间的互动呈现得深刻而生动。通过主人公与梦境之间的对话和互动,读者不仅能感受到人工智能的冷静和理性,还能深入思考人类情感和意识的本质。小说中探讨了人工智能可能具有的情感和自我意识,以及人类面临......
  • 2.3 梦断代码读后感
    《梦断代码》是一部探讨人工智能和人类情感关系的科幻小说,通过描述主人公与一台具有自我意识的人工智能机器之间的互动,揭示了人类与机器之间可能出现的情感纠葛和道德困境。小说引人深思的地方在于,当人工智能具备类似人类情感和思考能力时,人们该如何与之相处、如何看待它们的权利......
  • 2.5 梦断代码 读后感
    在《梦断代码》这部小说中,作者深刻探讨了人工智能与人类之间可能存在的情感联系和道德困境,引发了读者对于科技进步带来的影响和挑战的思考。人工智能作为一种新型的存在,如何与人类共存并相互理解,是人类社会在未来必须思考和解决的重要议题之一。通过小说中主人公与人工智能之间的......
  • 2.4 梦断代码读后感
    在《梦断代码》中,作者巧妙地展现了人工智能的自我意识如何产生,并带来了许多离奇而扣人心弦的情节。主人公与人工智能之间的互动充满了矛盾和挑战,引发了许多思考:人工智能是否具有情感和意识?如果人工智能具有情感,它们又是否有权利和自由?人类对于人工智能的控制是否会导致道德困境?小......
  • 代码随想录算法训练营第六天|242. 有效的字母异位词
    这个题目还是比较简单的,知道是查表的思路之后,很快就写出来了:classSolution:defisAnagram(self,s:str,t:str)->bool:iflen(s)!=len(t):returnFalsealphabet=[]dict_s={}dict_t={}foriinran......
  • 代码随想录算法训练营day08 | leetcode 344. 反转字符串、541. 反转字符串 II、54. 替
    目录题目链接:344.反转字符串-简单题目链接:541.反转字符串II-简单题目链接:[54.替换数字](题目页面(kamacoder.com))题目链接:151.反转字符串中的单词-中等题目链接:[55.右旋字符串](题目页面(kamacoder.com))题目链接:344.反转字符串-简单题目描述:编写一个函数,其作用是将......