- 博客(89)
- 资源 (4)
- 收藏
- 关注
原创 2024 年度个税汇算清缴全攻略:2025 年最新注意事项
mghio读完需要6.66分钟速读仅需 3 分钟2024 年度的个人所得税汇算清缴工作即将拉开帷幕。对于广大纳税人来说,了解并掌握相关的注意事项,不仅能够确保汇算清缴的顺利进行,还能避免不必要的麻烦和损失。本文将为大家详细介绍 2024 年度个税汇算清缴的十大注意事项。 一、了解汇算清缴的时间和流程个人所得税汇算清缴一般要求在次年的 3 月 1 日至 6 月 30 日之间完成。纳税人需要在此期...
2025-03-02 09:01:09
683
原创 程序员口中的 BUG 有何来历?
在 1947 年的时候,计算机还是房间里巨大的机器,不像现在的笔记本那么小巧。那时候的程序员们调试代码,就像修理一台蒸汽火车一样费劲。某一天,著名计算机科学家 Grace Hopper 和她(没错,是位女科学家)的团队正在折腾一台叫 Mark II 的计算机。如下图所示:这台计算机当时可是一台“巨无霸”,占据了一个房间,里面全是电线、继电器和电路板。突然,这机器不听使唤了,怎么操作都不对劲儿。心想...
2024-12-21 09:04:02
327
原创 去大公司就能学到高深的技术吗?
在网上经常看到有人说搞技术的,一定要去大公司看看,在里面可以学到很多高深的东西。不信你看在各种技术大会里分享的嘉宾,绝大部分都是各个大公司里的牛人。大公司里会有很多宝贵的学习资料,只要你肯学,假以时日也会成为大家口中的那个“大佬”。其实不然,我们平常在各大技术会议上看到的嘉宾大佬们,他们在去大公司之前就已经很厉害了,只不过在大公司出去做分享,会比较有说服力,有个好的背书而已。并不是说,你技术水平一...
2024-12-14 09:00:40
138
原创 如何退订垃圾短信,减少干扰?
大家肯定都有被垃圾短信骚扰的经历,不管是广告、促销,还是各种乱七八糟的信息,收到这种短信真让人头疼。不仅占用手机空间,还会打扰我们的日常生活,有时候甚至涉及诈骗。所以,很多人都想知道怎么才能有效退订这些垃圾短信。其实,有几种简单的方法能帮我们减少甚至杜绝这些短信的困扰。1. 用「退订」功能一般正规的商家都会在短信的末尾提供「退订」选项,常见的格式就是“回复TD”或者“回复0000退订”。这是法律规...
2024-12-08 09:01:07
739
原创 什么是「认知」?
认知(Cognition)是指人类大脑对信息进行感知、理解、加工和应用的过程。它涉及一系列复杂的心理活动,包括感知(如通过感官获取信息)、注意、记忆、学习、思维、决策和问题解决等。这些过程帮助个体理解周围的世界,适应环境并做出合理的反应。认知可以分为多个方面:1. 感知:通过视觉、听觉等感官系统获取外界信息。2. 注意:选择性地集中于某些信息,而忽略其他信息。3. 记忆:信息的存储和提取,包括短期...
2024-11-24 10:30:32
252
原创 互联网中的情绪价值
在互联网中,信息的传递和分享变得越来越便捷了,同时,「情绪价值」在虚拟世界中的作用也愈加凸显。无论是在社交媒体、即时通讯工具、各类论坛社区以及短视频平台里,情绪价值已然成为一种无形但是至关重要的资产,在默默地维系着网络中人与人之间的信任。但是,在现实中,往往很多人其实并没有意识到互联网中的情绪价值,他们往往会以为,在线上的互动是轻松和随意的,并不需要投入过多的精力和情感。如果你之前从来都没有思考过...
2024-09-07 19:30:54
386
原创 为什么要去大城市打拼?
为什么要去大城市打拼?每个人都有自己的理由吧。我的回答是,大城市里生活更为丰富一些,机会更多,存在着更多的可能性,而且相对来说是公平的。在小地方,更多的是依靠资源,靠关系,几乎没什么公平可言。当然,如果本身家庭条件就不错,家族里的资源关系都还可以,完全可以在老家盖一栋楼房,买个好车,七大姑八大姨再帮张罗娶个老婆,过着无忧无虑的小日子,这谁都向往。母弱出商贾,父强做侍郎。族望留原籍,家贫走他乡。施耐...
2024-07-27 19:30:52
296
原创 每个人都应该掌握一点备份常识
备份在维基百科的定义:将文件系统或数据库系统中的数据加以复制;一旦发生灾难或错误操作时,得以方便且及时地恢复系统的有效数据和正常运作。维基百科备份,英文叫 Backup,简单来说就是把数据复制一份,当这一份数据出问题时,可以使用复制出来的那一份,正所谓以「备」无患。在朋友圈和即刻上,时不时会发现有人因为忘记备份,丢失了重要数据,事后追悔莫及。但是,往往很多人其实根本没有备份的意识或者相信永远都不会...
2024-07-20 11:02:17
315
原创 推荐几个超实用的 APP
存款:「云闪付」APP「云闪付」APP 首页有「一键查询」功能,可以查看本人名下所有的银行账户,方便统一进行银行卡的管理。股票:「中国结算」APP「中国结算」APP 首页有「一码通资产查询」功能,可以查看本人名下所有的 A 股券商账户,有哪些 ETF、股票、可转债,有多少钱。保险:「金事通」APP「金事通」APP 首页有「人身险」「投资型保险」「车险」等功能,可以查看本人名下所有保单,还有待续费提...
2024-06-10 11:30:40
474
原创 如何阅读 Paper
mghio读完需要5分钟速读仅需 2 分钟 前言论文(Paper)通常是新技术、算法、编程方法或软件工具的首次公布。通过阅读论文,我们可以了解最新的技术进展,保持自己的技能和知识是最新的。同时,论文提供了对特定主题深入理解的机会。它们通常包含详细的理论分析和实验结果,这有助于深入理解某个概念或技术。但是,如何高效地阅读论文是一项关键但很少有人谈论的技能。刚开始大部分人自己通过试错来学习,但常常...
2024-05-04 19:30:56
907
原创 聊聊流言协议(Gossip)
mghio读完需要6.66分钟速读仅需 1分钟 什么是流言协议?在分布式系统中,以下两个是普遍存在的问题:维护系统状态(节点的活跃性)节点间的通信解决这些问题的解决方案之一如下:集中式状态管理服务对等状态管理服务集中式状态管理服务像 Apache Zookeeper 这样的集中式状态管理服务可以被配置为服务发现,以跟踪系统中每个节点的状态。尽管这种方法提供了强大的一致性保证,但主要缺点是状态...
2024-04-28 08:00:11
548
原创 Go 并发模型—Goroutines
Goroutines 是Go语言主要的并发原语。它看起来非常像线程,但是相比于线程它的创建和管理成本很低。Go 在运行时将 goroutine 有效地调度到真实的线程上,以避免浪费资源,因此您可以轻松地创建大量的 goroutine(例如每个请求一个 goroutine),并且您可以编写简单的,命令式的阻塞代码。
2023-07-09 16:26:08
537
原创 Go 并发模型—Goroutine
前言Goroutines 是Go[1]语言主要的并发原语。它看起来非常像线程,但是相比于线程它的创建和管理成本很低。Go 在运行时将 goroutine 有效地调度到真实的线程上,以避免浪费资源,因此您可以轻松地创建大量的 goroutine(例如每个请求一个 goroutine),并且您可以编写简单的,命令式的阻塞代码。因此,Go 的网络代码往往比其它语言中的等效代码更直接,更容易理解(这点...
2023-07-09 16:18:23
432
1
原创 InnoDB 是如何解决幻读的
大部分人在日常的业务开发中,其实很少去关注数据库的事务相关问题,基本上都是 CURD 一把梭。正好最近在看 MySQL 的相关基础知识,其中对于幻读问题之前一直没有理解深刻,今天就来聊聊「InnoDB 是如何解决幻读的」,话不多说,下面进入主题。在聊「InnoDB 解决幻读方式」前我们需要先了解幻读是什么官方文档的描述如下:result setresult set其中我加粗的「result set」是关键的地方,两次查询返回的是结果集,说明必须是一个范围查询操作。
2023-04-06 08:19:09
486
原创 InnoDB 是如何解决幻读的
前言大部分人在日常的业务开发中,其实很少去关注数据库的事务相关问题,基本上都是 CURD 一把梭。正好最近在看 MySQL 的相关基础知识,其中对于幻读问题之前一直没有理解深刻,今天就来聊聊「InnoDB 是如何解决幻读的」,话不多说,下面进入主题。事务隔离级别事务隔离是数据库处理的基础之一,是ACID[1]中的I。在 MySQL 的 InnoDB 引擎中支持在SQL:1992[2]标准...
2023-04-05 20:50:28
610
原创 如何写出不可维护的代码
mghio读完需要6分钟速读仅需 1 分钟作为一个程序员,写出不可维护的代码实在是一项艺术。如果你想成为一个成功的程序员,你必须掌握如何写出最混乱、最复杂的代码,这样才能确保自己的代码无论如何都不可维护。在这篇文章中,我将向大家介绍一些如何写出混乱、不可维护代码的技巧,让你成为编程界的“艺术家”。 忽略命名规则命名规则对于写出易于理解和维护的代码非常重要。但是,如果你想要写出不可维护的代码,那...
2023-02-25 12:30:54
502
原创 如何分享让人眼前一亮的代码
作为一名软件工程师,会经常需要在工作和写作中粘贴代码片段以作示例,如果不关注代码的格式随手一粘,别人看到的画风就可能是这样:那么,该如何才能快速且优雅地分享代码片段呢?Raycast + ray.so 或许是一个值得一试的方案。一、什么是 Raycast来自 Raycast 官网的介绍:Raycastisablazinglyfast,totallyextendablelauncher...
2023-01-07 09:30:23
658
原创 三步为你的 Mac 设置黑客帝国矩阵屏保
mghio读完需要6.66分钟速读仅需 1 分钟相信看过「黑客帝国」的朋友一定对贯穿全剧的矩阵代码瀑布(Matrix digital rain)印象很深刻,本文分享一种方法,只要三步就可以在你的 Mac 上设置代码瀑布屏保啦~Step 1: 安装 WebViewScreenSaver你可以选择使用 brew 通过以下命令安装 WebViewScreenSaver。brewinstallWebV...
2022-11-14 08:15:03
1508
原创 抓包分析 TCP 握手和挥手
首先需要明确的是 TCP 是一个可靠传输协议,它的所有特点最终都是为了这个可靠传输服务。在网上看到过很多文章讲 TCP 连接的三次握手和断开连接的四次挥手,但是都太过于理论,看完感觉总是似懂非懂。反复思考过后,觉得我自己还是偏工程型的人,要学习这些理论性的知识,最好的方式还是要通过实际案例来理解,这样才会具象深刻。本文通过Wireshark抓包来分析 TCP三次握手和四次挥手,如果你也对这些理论感觉似懂非懂,那么强烈建议你也结合抓包实践来强化理解这些理论性的知识。
2022-11-06 16:26:20
1089
原创 Spring 中 @EnableXXX 注解的套路
在 Spring 框架中有很多实用的功能,不需要写大量的配置代码,只需添加几个注解即可开启。 其中一个重要原因是那些 @EnableXXX 注解,这篇文章带你一起揭秘 @EnableXXX 注解。
2022-05-24 20:29:55
240
原创 Spring 中 @EnableXXX 注解的套路
前言在 Spring 框架中有很多实用的功能,不需要写大量的配置代码,只需添加几个注解即可开启。 其中一个重要原因是那些 @EnableXXX 注解,它可以让你通过在配置类加上简单的注解来快速地开启诸如事务管理(@EnableTransactionManagement)、Spring MVC(@EnableWebMvc)或定时任务(@EnableScheduling)等功能。这些看起来简单的注解语句提供了很多功能,但它们的内部机制从表面上看却不太明显。 一方面,对于使用者来说用这么少的代码获得这么多实用的
2022-05-22 18:50:06
441
原创 如何做好“向上管理”
mghio读完需要10分钟速读仅需 4分钟 0. 什么是“向上管理”向上管理用一句话来描述就是「在工作中为了取得更好的工作成果,有意识地配合你的领导一起工作的过程」。请注意这里的有意识这个词。 1. 为什么要“向上管理”首先先来看看领导眼中的人才四象限图。人人都想成为第一象限的“狼”型员工,这种员工在领导眼中简直就是完美,有责任感有归属感价值观匹配以及有较好的业...
2022-05-09 08:40:00
618
原创 2021 年度个税汇算清缴申报流程来了
mghio读完需要6.66分钟速读仅需 3分钟一、申报流程 1.1 下载“个人所得税 APP” 1.2 注册后优先填报“专项扣除信息”(没有请跳过) 1.3 点击进入“202...
2022-03-02 08:55:00
844
原创 来了,mghio 的微信红包封面!
虎年就要到了!感谢微信团队,推出了红包定制功能,不但可以用于自己发红包,也可以转送给其他人。我怕三十晚上的祝福太多,你会看不到我的问候,我怕初一的鞭炮太吵,你会听不到我的祝福,我怕初二的菜...
2022-01-26 21:35:00
3277
原创 聊聊二维码
一维码(条形码)在介绍二维码之前,先来看看它的“大哥”一维码,一维码也叫条形码(好像在日常生活中都是叫这个),它是由不同宽度的黑条和白条按照一定的顺序排列组成的平行线图案,它的宽度记录着数据信息,长度没有记录信息,条形码常用于标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等信息,比如大部分食品包装袋背后都会印有条形码。一维码的编码规则全球的条形码标准都是由一个叫GS1的非营利性组织管理和维护的,通常情况下条形码由 95 条红或黑色的平行竖线组成,前三条是由黑-白-
2022-01-09 16:04:21
3632
原创 Java 内存模型
前言在并发编程中,当多个线程同时访问同一个共享的可变变量时,会产生不确定的结果,所以要编写线程安全的代码,其本质上是对这些可变的共享变量的访问操作进行管理。导致这种不确定结果的原因就是可见性、有序性和原子性问题,Java 为解决可见性和有序性问题引入了 Java 内存模型,使用互斥方案(其核心实现技术是锁)来解决原子性问题。这篇先来看看解决可见性、有序性问题的 Java 内存模型(JMM)。什么是 Java 内存模型Java 内存模型在维基百科上的定义如下:The Java memory mode
2021-08-22 15:10:46
191
原创 对象转换工具 MapStruct 介绍
前言在我们日常开发的分层结构的应用程序中,为了各层之间互相解耦,一般都会定义不同的对象用来在不同层之间传递数据,因此,就有了各种 XXXDTO、XXXVO、XXXBO 等基于数据库对象派生出来的对象,当在不同层之间传输数据时,不可避免地经常需要将这些对象进行相互转换。此时一般处理两种处理方式:① 直接使用 Setter 和 Getter 方法转换、② 使用一些工具类进行转换(e.g. BeanUtil.copyProperties)。第一种方式如果对象属性比较多时,需要写很多的 Getter/Sette
2021-08-09 21:13:54
1573
1
原创 Java 异步编程的几种方式
前言异步编程是让程序并发运行的一种手段。它允许多个事情同时发生,当程序调用需要长时间运行的方法时,它不会阻塞当前的执行流程,程序可以继续运行,当方法执行完成时通知给主线程根据需要获取其执行结果或者失败异常的原因。使用异步编程可以大大提高我们程序的吞吐量,可以更好的面对更高的并发场景并更好的利用现有的系统资源,同时也会一定程度上减少用户的等待时间等。本文我们一起来看看在 Java 语言中使用异步编程有哪些方式。Thread 方式在 Java 语言中最简单使用异步编程的方式就是创建一个 Thread 来实
2021-08-01 19:23:35
756
原创 Java 并发之 Fork/Join 框架
什么是 Fork/Join 框架Fork/Join 框架是一种在 JDk 7 引入的线程池,用于并行执行把一个大任务拆成多个小任务并行执行,最终汇总每个小任务结果得到大任务结果的特殊任务。通过其命名也很容易看出框架主要分为 Fork 和 Join 两个阶段,第一阶段 Fork 是把一个大任务拆分为多个子任务并行的执行,第二阶段 Join 是合并这些子任务的所有执行结果,最后得到大任务的结果。这里不难发现其执行主要流程:首先判断一个任务是否足够小,如果任务足够小,则直接计算,否则,就拆分成几个更小的小任务
2021-07-25 21:49:18
372
原创 Spring 的循环依赖问题
什么是循环依赖什么是循环依赖呢?可以把它拆分成循环和依赖两个部分来看,循环是指计算机领域中的循环,执行流程形成闭合回路;依赖就是完成这个动作的前提准备条件,和我们平常说的依赖大体上含义一致。放到 Spring 中来看就一个或多个 Bean 实例之间存在直接或间接的依赖关系,构成循环调用,循环依赖可以分为直接循环依赖和间接循环依赖,直接循环依赖的简单依赖场景:Bean A 依赖于 Bean B,然后 Bean B 又反过来依赖于 Bean A(Bean A -> Bean B -> Bean A
2021-07-17 18:08:24
469
1
原创 各种 WebSocket 的区别你都知道吗?
mghio读完需要7分钟速读仅需 3 分钟1 WebSocketWebSocket 简介:WebSocket 协议支持客户端之间的双向通信,用于此模型是常用的基于源的安全模型通过网络浏...
2021-07-11 21:00:00
774
原创 一文让你彻底搞懂 Spring Cloud 整合 Feign 的原理!
前言在 上篇 介绍了 Feign 的核心实现原理,在文末也提到了会再介绍其和 Spring Cloud 的整合原理,Spring 具有很强的扩展性,会把一些常用的解决方案通过 starter 的方式开放给开发者使用,在引入官方提供的 starter 后通常只需要添加一些注解即可使用相关功能(通常是 @EnableXXX)。下面就一起来看看 Spring Cloud 到底是如何整合 Feign 的。整合原理浅析在 Spring 中一切都是围绕 Bean 来展开的工作,而所有的 Bean 都是基于 Bea
2021-07-04 22:05:21
521
3
原创 Spring Cloud 整合 Feign 的原理
mghio读完需要17分钟速读仅需 6 分钟 前言在上篇介绍了 Feign 的核心实现原理,在文末也提到了会再介绍其和 Spring Cloud 的整合原理,Spring 具有很强的扩...
2021-07-04 20:53:00
386
原创 聊聊 Feign 的实现原理
What is FeignFeign 是⼀个 HTTP 请求的轻量级客户端框架。通过 接口 + 注解的方式发起 HTTP 请求调用,面向接口编程,而不是像 Java 中通过封装 HTTP 请求报文的方式直接调用。服务消费方拿到服务提供方的接⼝,然后像调⽤本地接⼝⽅法⼀样去调⽤,实际发出的是远程的请求。让我们更加便捷和优雅的去调⽤基于 HTTP 的 API,被⼴泛应⽤在 Spring Cloud 的解决⽅案中。开源项目地址:Feign,官方描述如下:Feign is a Java to HTTP cli
2021-06-27 16:11:12
461
原创 信息爆炸时代,如何获取优质信息?
前言我们现在所处的信息爆炸时代,如何强调快速获取信息都不为过,信息多种多样,有些能找到源头,有些则不能,有些能找到规律,有些则不一定能找到,信息的源头和获取渠道很重要。然而事实上,能够真正有效获取到优质信息并加以消化利用的人并不多。在信息的获取的过程中,应该要具备筛选信息的能力,什么是官方信息,你要核实,什么是虚假信息,你要甄别。看到网上有些陷入杀猪盘的,负载累累。仔细思考一下,其实甄别筛选信息的能力真的是最大的问题。当然一个人将信息并内化利用是一个很复杂的过程,每个人都有自己独到的方法。今天来聊聊应
2021-06-20 09:43:49
1006
原创 如何实现一个简易版的 Spring - 如何实现 AOP(终结篇)
前言在 上篇 实现了 判断一个类的方式是符合配置的 pointcut 表达式、根据一个 Bean 的名称和方法名,获取 Method 对象、实现了 BeforeAdvice、AfterReturningAdvice 以及 AfterThrowingAdvice并按照指定次序调用 等功能,这篇再来看看剩下的 代理对象如何生成、根据 XML 配置文件生成 BeanDefintion以及如何将生成的代理对象放入到容器中 等功能,话不多说,下面进入主题。代理对象生成代理对象的生成策略和 Spring 框架一致
2021-06-13 20:53:41
207
原创 如何实现一个简易版的 Spring - 如何实现 AOP(下)
前言前面两篇 如何实现 AOP(上)、如何实现 AOP(中) 做了一些 AOP 的核心基础知识简要介绍,本文进入到了实战环节了,去实现一个基于 XML 配置的简易版 AOP,虽然是简易版的但是麻雀虽小五脏俱全,一些核心的功能都会实现,通过实现这个简易版的 AOP,相信你会对 AOP 有深入的理解,不止知其然,还能知其所以然。AOP 的顶层接口规范和底层依赖基础组件都是由一个叫 AOP Alliance 的组织制定的,我们经常听到的 AspectJ、ASM、CGLIB 就是其中被管理的一些项目,需要明确的一
2021-06-06 20:55:22
147
4
原创 简易版的 Spring 之如何实现 AOP(下)
mghio读完需要22分钟速读仅需 8 分钟 前言前面两篇 如何实现 AOP(上)、如何实现 AOP(中) 做了一些 AOP 的核心基础知识简要介绍,本文进入到了实战环节了,去实现一个...
2021-06-06 19:50:00
231
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人