草庐IT

Controller 层代码就该这么写,简洁又优雅!

来源:https://juejin.cn/post/7123091045071454238一个优秀的Controller层逻辑说到Controller,相信大家都不陌生,它可以很方便地对外提供数据接口。它的定位,我认为是「不可或缺的配角」。说它不可或缺是因为无论是传统的三层架构还是现在的COLA架构,Controller层依旧有一席之地,说明他的必要性。说它是配角是因为Controller层的代码一般是不负责具体的逻辑业务逻辑实现,但是它负责接收和响应请求。从现状看问题Controller主要的工作有以下几项:接收请求并解析参数调用Service执行具体的业务代码(可能包含参数校验)捕获业务逻

Controller 层代码就该这么写,简洁又优雅!

来源:https://juejin.cn/post/7123091045071454238一个优秀的Controller层逻辑说到Controller,相信大家都不陌生,它可以很方便地对外提供数据接口。它的定位,我认为是「不可或缺的配角」。说它不可或缺是因为无论是传统的三层架构还是现在的COLA架构,Controller层依旧有一席之地,说明他的必要性。说它是配角是因为Controller层的代码一般是不负责具体的逻辑业务逻辑实现,但是它负责接收和响应请求。从现状看问题Controller主要的工作有以下几项:接收请求并解析参数调用Service执行具体的业务代码(可能包含参数校验)捕获业务逻

项目中引进这玩意,排查日志又快又准!

大家好,我是三友~~背景随着微服务盛行,很多公司都把系统按照业务边界拆成了很多微服务,在排错查日志的时候,因为业务链路贯穿着很多微服务节点,导致定位某个请求的日志以及上下游业务的日志会变得有些困难。这时候可能有的小伙伴就会想到使用SkyWalking,Pinpoint等分布式追踪系统来解决,并且这些系统通常都是无侵入性的,同时也会提供相对友好的管理界面来进行链路Span的查询,但是搭建分布式追踪系统还是需要一定的成本的,所以本文要说的并不是这些分布式追踪系统,而是一款简单、易用、几乎零侵入、适合中小型公司使用的日志追踪框架TLog。TLog简介TLog提供了一种最简单的方式来解决日志追踪问题,

项目中引进这玩意,排查日志又快又准!

大家好,我是三友~~背景随着微服务盛行,很多公司都把系统按照业务边界拆成了很多微服务,在排错查日志的时候,因为业务链路贯穿着很多微服务节点,导致定位某个请求的日志以及上下游业务的日志会变得有些困难。这时候可能有的小伙伴就会想到使用SkyWalking,Pinpoint等分布式追踪系统来解决,并且这些系统通常都是无侵入性的,同时也会提供相对友好的管理界面来进行链路Span的查询,但是搭建分布式追踪系统还是需要一定的成本的,所以本文要说的并不是这些分布式追踪系统,而是一款简单、易用、几乎零侵入、适合中小型公司使用的日志追踪框架TLog。TLog简介TLog提供了一种最简单的方式来解决日志追踪问题,

RocketMQ消息短暂而又精彩的一生

大家好,我是三友~~这篇文章我准备来聊一聊RocketMQ消息的一生。不知你是否跟我一样,在使用RocketMQ的时候也有很多的疑惑:消息是如何发送的,队列是如何选择的?消息是如何存储的,是如何保证读写的高性能?RocketMQ是如何实现消息的快速查找的?RocketMQ是如何实现高可用的?消息是在什么时候会被清除?...本文就通过探讨上述问题来探秘消息在RocketMQ中短暂而又精彩的一生。如果你还没用过RocketMQ,可以看一下这篇文章RocketMQ保姆级教程核心概念NameServer:可以理解为是一个注册中心,主要是用来保存topic路由信息,管理Broker。在NameServe

RocketMQ消息短暂而又精彩的一生

大家好,我是三友~~这篇文章我准备来聊一聊RocketMQ消息的一生。不知你是否跟我一样,在使用RocketMQ的时候也有很多的疑惑:消息是如何发送的,队列是如何选择的?消息是如何存储的,是如何保证读写的高性能?RocketMQ是如何实现消息的快速查找的?RocketMQ是如何实现高可用的?消息是在什么时候会被清除?...本文就通过探讨上述问题来探秘消息在RocketMQ中短暂而又精彩的一生。如果你还没用过RocketMQ,可以看一下这篇文章RocketMQ保姆级教程核心概念NameServer:可以理解为是一个注册中心,主要是用来保存topic路由信息,管理Broker。在NameServe

简单又高大上的项目(应付复试的小demo)

简单又高大上的项目图形识别、自然语言处理(语言识别、语音转文字)、文字识别、区块链1.java实现一个基本的文字识别引入依赖com.baidu.aipjava-sdk4.16.13picToWord.Sample调用百度智能云API:https://cloud.baidu.com/?_=1675227888185packagepicToWord;importjava.util.*;importorg.json.JSONArray;importorg.json.JSONObject;importcom.baidu.aip.ocr.AipOcr;publicclassSample{//设置APPI

简单又高大上的项目(应付复试的小demo)

简单又高大上的项目图形识别、自然语言处理(语言识别、语音转文字)、文字识别、区块链1.java实现一个基本的文字识别引入依赖com.baidu.aipjava-sdk4.16.13picToWord.Sample调用百度智能云API:https://cloud.baidu.com/?_=1675227888185packagepicToWord;importjava.util.*;importorg.json.JSONArray;importorg.json.JSONObject;importcom.baidu.aip.ocr.AipOcr;publicclassSample{//设置APPI

tabulate结合loguru打印出美观又方便查找的日志记录!

在开发过程中经常碰到在本地环境无法完成联调测试的情况,必须到统一的联机环境对接其他系统测试。往往是出现了BUG难以查找数据记录及时定位到错误出现的位置。【阅读全文】面对这种情况可能情况可能是一个简单的BUG导致的,但是定位问题往往就需要很长的时间。在python编程中推荐非标准库tabulate,它可以将程序运行过程中产生的数据记录格式化的打印出来很方便我们定位问题。通过结合简单的日志非标准库loguru可以很快的打印出又美观又实用的日志记录,loguru非标准库其实在一些文章的源码示例中我们已经在使用了。安装过程还是通过pip的方式直接安装,由于loguru、tabulate都是python

tabulate结合loguru打印出美观又方便查找的日志记录!

在开发过程中经常碰到在本地环境无法完成联调测试的情况,必须到统一的联机环境对接其他系统测试。往往是出现了BUG难以查找数据记录及时定位到错误出现的位置。【阅读全文】面对这种情况可能情况可能是一个简单的BUG导致的,但是定位问题往往就需要很长的时间。在python编程中推荐非标准库tabulate,它可以将程序运行过程中产生的数据记录格式化的打印出来很方便我们定位问题。通过结合简单的日志非标准库loguru可以很快的打印出又美观又实用的日志记录,loguru非标准库其实在一些文章的源码示例中我们已经在使用了。安装过程还是通过pip的方式直接安装,由于loguru、tabulate都是python