程序新视界

其他

优秀程序员的22个优秀习惯

看了一篇关于优秀成员的共同特征的文章,文章是基于Golang编程的总结和分析,但大多数理念在编程领域都具有普适性,这里总结分析给大家。1、保持对代码细节的偏执观念。“当所有人都真的在给你找麻烦的时候,偏执就是一个好主意。”——伍迪-艾伦。站在纯技术的角度来讲,这一条完全赞同,但站在更上层的角度来看,某些偏执还是需要为更高优先级的事项让步。2、控制软件的熵(混乱程度)增。项目的设计、重构、管理、规范、范式等,大多数都是为了这一目标。不然就是在一坨*上,再加一坨,或在上面雕花,最终让项目变得不可控。3、编写自动测试来极早发现问题,尽量保证简单且质量高。编写测试时,使得我们以从外部视角看待代码,这让我们看起来是代码的客户,而不是代码的作者。如果感觉难受,那么很可能是因为在代码设计的时候,并没有把“容易测试”考虑进去,可测试性不强。4、尽早测试,
2023年10月31日
其他

不掌握这些坑,你敢用BigDecimal吗?

}结果是多少?0.1吗?不是,执行上面代码执行的结果是0.100000024。之所以产生这样的结果,是因为0.1的二进制表示是无限循环的。由于计算机的资源是有限的,所以是没办法用二进制精确的表示
2022年7月19日
其他

缓存穿透、缓存雪崩、缓存击穿?再也不怕了,你随便问吧!

Key):在value内部设置一个比缓存(Redis)过期时间短的过期时间标识,当异步线程发现该值快过期时,马上延长内置的这个时间,并重新从数据库加载数据,设置到缓存中去。小结
2022年7月11日
其他

不知道这4种缓存模式,敢说懂缓存吗?

Through则用缓存服务自己来加载,从而对应用方是透明的。Read-Through的优势是让程序代码变得更简洁。这里就涉及到我们上面所说的应用程序操作边界问题了,直接来看流程图:Read
2022年7月4日
其他

12张图带你彻底理解Java新的垃圾收集器ZGC

向应用代码中插入一小段代码,当应用线程从堆中读取对象的引用时,会先执行这段代码。注意:只有从堆内存中读取对象的引用时,才会执行这个代码。下面代码只有第一行需要加入读屏障。Object
2022年6月27日
其他

[网关对比] Java亿级流量架构之网关设计思路

本文准备围绕七个点来讲网关,分别是网关的基本概念、网关设计思路、网关设计重点、流量网关、业务网关、常见网关对比,对基础概念熟悉的朋友可以根据目录查看自己感兴趣的部分。Part1什么是网关网关,很多地方将网关比如成门,
2022年6月21日
其他

奇怪,为什么ArrayList初始化容量大小为10?

}上述代码中grow方法是用来处理扩容的,将容量扩容为原来的1.5倍。了解上面的处理流程,我们会发现,本质上ArrayList的初始化容量还是10,只不过使用懒加载而已,这是Java
2022年6月13日
其他

公司用的MySQL团队开发规范,非常详细,建议收藏!

procedure)。之后多个单词以下划线(_)进行连接。存储过程命名中应体现其功能。存储过程命名尽量不能超过30个字符。2、存储过程中的输入参数以i_开头,输出参数以o_开头。3、命名应使用小写。
2022年6月7日
其他

监听日志文件变化的三种方法,推荐第三种!

FileAlterationObserver;向监视器添加文件系统观察器,并添加文件监听器;调用并执行。第一步:创建文件监听器。根据需要在不同的方法内实现对应的业务逻辑处理。public
2022年5月30日
其他

面试官:你天天用 Lombok,说说它什么原理?我竟然答不上来…

相信大家在项目中都使用过Lombok,因为能够简化我们许多的代码,但是该有的功能一点也不少。那么lombok到底是个什么呢,lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的
2022年5月28日
其他

JDK的一个Bug,监听文件变更要小心了

如果你觉得这篇文章不错,那么,下篇通常会更好。备注“公众号”添加微信好友(微信号:zhuan2quan)。▲
2022年5月27日
其他

终于有大佬把"计算机底层原理"全部总结出来了

计算机的历史算盘和机械计算机有很多民族自豪感爆棚的兄弟会把算盘当成计算机的起源,还有爆破天的兄弟会把阴阳当成二进制0和1的起源,我觉得这件事儿就有点儿不靠谱了。如果非要追究计算机的鼻祖,那就得讲讲17世纪前欧洲的故事,最早的计算机其实是计算器,就是算数用的,在欧洲工业工业革命的时候,大量的工业模具需要计算,欧洲又没有中国传统的计算器
2022年5月25日
其他

Java 性能优化的 55 个细节(珍藏版)

过分的创建对象会消耗系统的大量内存,严重时,会导致内存泄漏,因此,保证过期的对象的及时回收具有重要意义。JVM的GC并非十分智能,因此建议在对象使用完毕后,手动设置成null。32.
2022年5月16日
其他

多业务模式下的交易链路探索与实践

一、背景二、交易中台面临的问题三、交易链路实践与探索3.1、交易链路实践之FSM有限状态机3.2、交易链路实践之基于future的分阶段并发模型3.3、交易链路探索之基于事件驱动并发模型四、总结一、背景
2022年5月14日
其他

EasyExcel太方便易用了,强烈推荐!

再来看看解析Excel的操作,直接用上面生成的Excel文件。首先创建一个监听器ExcelListener,集成EasyExcel提供AnalysisEventListener类:public
2022年5月13日
其他

漫画 | 为什么程序员干两年后就要跑路?

张大胖毕业了,进入一家知名的互联网公司,准备大展宏图。熟悉了一周的环境以后,经理交代了工作。他打开了公司的代码库,发现了一些神奇的事情。张大胖发现,公司几乎所有的系统都是用一个古老的内部框架开发的。终于,新的项目来了,张大胖非常高兴。张大胖和同事们努力干活,疯狂加班除了写代码,张大胖每天至少要参加两个会议。除此之外,还有数不清的其他会议还需要应对各种各样的报告。经理不顾大家死活,见缝插针地安排任务看到张大胖累得快要不行了,经理放出了大招:两个月后,项目快要完工了。老板为了鼓舞士气,不失时机地搞了一次公司团建。团建现场,气氛非常热烈经过团建蹂躏的张大胖和同事们回来继续加班,就在新系统快要完成的时候,老板带来了“好消息”新功能终于加上了,但是,需求的重大变化让软件不堪重负看着摇摇欲坠的房子,张大胖心中一片悲凉。往期推荐2万字详解,吃透
2022年5月12日
其他

2万字详解,吃透 ES

一个文档通常由多个词组成,倒排表记录的是某个词在哪些文档里出现过以及出现的位置。每条记录称为一个倒排项(Posting)。倒排表记录的不单是文档编号,还存储了词频等信息。倒排文件(Inverted
2022年5月11日
其他

全网显示 IP 归属地,是怎么实现的?

地址的隐私问题那是不是只有运营商才能查到某个人的住址信息呢?在大数据时代的今天,各种互联网应用搜集了大量的数据信息,它们其实也可以根据这些信息,推断出某个人的大致地址位置。例如百度地图会一直用
2022年5月10日
其他

10年了,软件架构是如何一步步演进的?

系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上。高可用
2022年5月9日
其他

面试官:淘宝七天自动确认收货,可以怎么实现?

目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如:淘宝七天自动确认收货。在我们签收商品后,物流系统会在七天后延时发送一个个消息给支付系统,通知支付系统将款打给商家,这个过程持续七天,就是使用用了消息中间件的延迟推送功能。12306
2022年5月7日
其他

终于搞明白Tomcat的构成组件,以及是如何运作的了!

的子容器中。注:HostConfig并没有实际解析Context.xml,而是在ContextConfig中进行的。HostConfig会定期检查watched资源文件(context.xml
2022年5月5日
其他

支付系统架构设计详解

内容导读:支付永远是一个公司的核心领域,是一个有交易属性公司的命脉。那么,支付系统到底长什么样,又是怎么运行交互的呢?抛开带有支付牌照的金融公司的支付架构,下述链路和系统组成基本上符合绝大多数支付场景。其实整体可以看成是【交易核心】+【支付核心】两个大系统。交易系统关联了业务场景和底层支付,而支付系统完成了调用支付工具到对账清算等一系列相关操作。下面我们就来一起看下
2022年5月3日
其他

突发状况,数据库表被锁,抓瞎了?

processlist看不到表上有任何操作,但实际上存在有未提交的事务,可以在information_schema.innodb_trx中查看到。在事务没有完成之前,表上的锁不会释放,alter
2022年5月1日
其他

使用HTTP Client踩到的一个坑,你一定要避免

索引,从头撸一遍(内含经典面试题)各大框架都在使用的Unsafe类,到底有多神奇?如果你觉得这篇文章不错,那么,下篇通常会更好。备注“公众号”添加微信好友(微信号:zhuan2quan)。▲
2022年4月22日
其他

捕获了一只发生概率小于万分之一的Bug

2次读完(发生粘包拆包现象)。第一次循环,read读取6个字节长度,返回值为6,recvLen赋值为6。第二次循环,off参数取recvLen的值为6,读取剩余4个字节(10
2022年4月11日
其他

Java性能优化的7个方向,不看你后悔!

作者:巴山农夫链接:https://blog.csdn.net/monarch91/article/details/123361799本文主要侧重于理论分析,从整体上看一下Java性能优化都有哪些可以遵循的规律。本文主讲理论。关于实践,后续的文章会用较多的案例来细化本文的知识点,适合反复思考和归纳。01概述性能优化根据优化的类别,分为业务优化和技术优化。业务优化产生的效果也是非常大的,但它属于产品和管理的范畴。同作为程序员,在平常工作中,我们面对的优化方式,主要是通过一系列的技术手段,来完成对既定的优化目标。这一系列的技术手段,我大体归纳为如图以下
2022年4月8日
其他

面对毕业式裁员,我们能做些什么?

最近,各大厂都在进行毕业式裁员。互联网行业曾经的辉煌已经不再,今年是最坏的一年,但今年可能是未来很多年中最好的一年。那么,作为软件从业者,该如何做好「迎接」的准备呢?看了这么多笔者的原创技术文章,今天笔者真人出镜,为大家提供了四个方面关于职场的建议。清明假期,笔者终于突破心理障碍,决定出镜为大家录制视频,也就是说视频号开始运营起来。在内容方面会与公众号有所区别,重点关注:职场、职业规划、软实力以及对人生、思维的思考。当然,笔者是非常爱看书的,也会为大家分享一些书的精华内容。大家一定要关注、关注、关注,支持、支持、支持,不会让你失望的!往期推荐十几亿用户中心系统架构,落地实践!MySQL
2022年4月5日
其他

十几亿用户中心系统架构,落地实践!

一、背景会员系统是一种基础系统,跟公司所有业务线的下单主流程密切相关。如果会员系统出故障,会导致用户无法下单,影响范围是全公司所有业务线。所以,会员系统必须保证高性能、高可用,提供稳定、高效的基础服务。随着同程和艺龙两家公司的合并,越来越多的系统需要打通同程APP、艺龙APP、同程微信小程序、艺龙微信小程序等多平台会员体系。例如微信小程序的交叉营销,用户买了一张火车票,此时想给他发酒店红包,这就需要查询该用户的统一会员关系。因为火车票用的是同程会员体系,酒店用的是艺龙会员体系,只有查到对应的艺龙会员卡号后,才能将红包挂载到该会员账号。除了上述讲的交叉营销,还有许多场景需要查询统一会员关系,例如订单中心、会员等级、里程、红包、常旅、实名,以及各类营销活动等等。所以,会员系统的请求量越来越大,并发量越来越高,今年五一小长假的秒并发tps甚至超过2万多。在如此大流量的冲击下,会员系统是如何做到高性能和高可用的呢?这就是本文着重要讲述的内容。二、ES高可用方案1.
2022年3月30日
其他

MySQL 索引,从头撸一遍(内含经典面试题)

引擎索引结构的叶子节点的数据域,存放的就是实际的数据记录(对于主索引,此处会存放表中所有的数据记录;对于辅助索引此处会引用主键,检索的时候通过主键到主键索引中找到对应数据行),或者说,InnoDB
2022年3月29日
其他

各大框架都在使用的Unsafe类,到底有多神奇?

var6);CAS一般用于乐观锁,它在Java中有广泛的应用,ConcurrentHashMap,ConcurrentLinkedQueue中都有用到CAS来实现乐观锁。八、内存屏障
2022年3月28日
其他

Mybatis的where标签,竟然还有这么多不知道的!

仔细观察会发现,这两种方式的区别在于第一if条件中的SQL语句是否有and。这里就涉及到where标签的两个特性:第一,只有if标签有内容的情况下才会插入where子句;第二,若子句的开通为
2022年3月3日
其他

不要再用where 1=1了!有更好的写法!

1这样的条件可能会有所困惑,而长时间这样使用的朋友可能又习以为常。那么,你是否还记得当初为什么要这样写?是否有性能问题?有没有更好的写法?今天这篇文章,带大家从头到尾梳理一下where
2022年3月1日
其他

15个必知的Mysql索引失效场景,别再踩坑了!

age;explain结果:索引-两列比较这里虽然id有索引,age也可以创建索引,但当两列做比较时,索引还是会失效的。第八种索引失效情况:两列数据做比较,即便两列都创建了索引,索引也会失效。9
2022年2月28日
其他

神奇了,当Mysql查询条件为“>=”时,竟然不走索引?!

我们都知道在数据库查询时,索引可以极大地提高查询效率。通常在使用的时候,都会针对频繁查询的关键字段建立索引。比如,当以交易日期(trans_date)来查询交易记录时,通常会对该字段添加索引,以便在大量数据的情况下提升查询效率。针对trans_date字段,创建union_idx_query索引,那么在下面以trans_date为查询条件的语句中,毫无疑问是会走索引的:select
2022年2月24日
其他

雪花算法:分布式唯一ID生成利器

起始的时间戳(可设置当前时间之前的邻近时间)
2022年2月23日
其他

稻盛和夫:所谓扭转人生,不过是对工作极度认真

稻盛和夫认为:人生的方程式由“能力、热情、思维方式”三个要素组成,这是人生的正确思维。拥有正确思维,然后去刻意练习、积累,每个人都可以离幸福和成功很近。虽然没有谷爱凌的集万千天赋于一身,但我们却可以像稻盛和夫一样通过努力工作来改变人生!来源
2022年2月13日
其他

Maven的几个黑科技命令,你知道吗

背景最近在基于Maven构建自动化发布流水线,发现当项目多、项目之间依赖多时,了解Maven的命令使用,真是如虎添翼。特为大家整理了一套Maven常见命令及使用小技巧。建议收藏,甚至打印出来放在办公桌以备快速使用。废话不多说,直接上干货。Maven常见命令使用项目目录结构:--P(父工程pom)--
2022年1月29日
其他

分布式任务调度XXL-Job,贼好用,体验一把

为了能够更加灵活的控制定时任务,最近在项目中开始推行定时任务调度系统,跟不少大厂朋友交流之后,发现XXL-Job市场还是挺广的,功能强大,定为首选。再加上XXL-Job是基于Spring
2022年1月27日
其他

1888个红包封面,感谢一路有你~

2021年,原创文章117篇,公众号平台奖励2W个微信红包封面,专门为大家制作了一套红包封面,在小年夜特拿出1888个红包封面分享给大家。不为别的,只为一路有你们,不离不弃的关注和伴随,才有我持续输出的动力。公众号内回复「红包封面」即可获得红包封面。看大家领取请求,视情况继续发放。再次感谢大家一路的陪伴和支持。红包效果如下:如果你觉得这篇文章不错,那么,下篇通常会更好。添加微信好友,可备注“加群”(微信号:zhuan2quan)。一篇文章就看透技术本质的人,
2022年1月25日
其他

大佬聊的四层代理和七层代理,都在聊什么?

日常与大佬沟通或看文章,时不时总会遇到两个概念“四层代理负载均衡”和“七层代理负载均衡”,那么,所谓的四层代理和七层代理分别指的是什么?又在什么场景下用到呢?这篇文章就带大家聊聊这方面的知识点。OSI七层模型要聊几层代理,需要先看一下网络分层,在之前的文章中也提到,标准的七层网络分层,也就是OSI七层模型。TCP/IP五层模型和TCP/IP四层模型是从OSI七层优化而来。这里所谈的四层代理和七层代理,便是基于OSI七层模型来划分的。OSI七层模型从下往上看,第四层为传输层、第七层为应用层。再来看看每层对应的常见协议:OSI及协议四层对应的是TCP/UDP协议,也就常说的IP+端口。七层已经是非常具体的应用层协议了。因此,所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。二层负载均衡通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址。四层代理
2022年1月20日
其他

Mysql的复合索引,生效了吗?来篇总结文章

复合索引遵从最左匹配原则,那么在where查询条件中的字段是否也需要按照索引的顺序来写呢?比如,复合索引为(c1,c2,c3),下面两个查询条件是否会对索引有影响呢?select
2021年12月29日
其他

Log4j一波未平,Logback 一波又起!再爆漏洞!!

将于年底终止!Linux服务器该何去何从?我在美团的八年如果你觉得这篇文章不错,那么,下篇通常会更好。添加微信好友,可备注“加群”(微信号:zhuan2quan)。一篇文章就看透技术本质的人,
2021年12月25日
其他

MySQL 性能优化的 9 种姿势,面试再也不怕了!

大家好,我是二师兄!今天给大家分享一些简单好用的数据库优化方式!1、选择最合适的字段属性Mysql是一种关系型数据库,可以很好地支持大数据量的存储,但是一般来说,数据库中的表越小,在它上面执行的查询也就越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度舍得尽可能小。例如:在定义邮政编码这个字段时,如果将其设置为char(255),显然给数据库增加了不必要的空间,甚至使用varchar这种类型也是多余的,因为char(6)就可以很好地完成了任务。同样的如果可以的话,我们应该是用MEDIUMINT而不是BIGINT来定义整形字段。2、尽量把字段设置为NOT
2021年12月22日
其他

工作8年,我决定带全家离开上海

大家好,我是二师兄。最近公司招聘,面试了不少大龄程序员,其中不少人甚至还没想清楚自己的职业规划。很多地方跟作者的感悟很相似。不过,无论何时,无论别人怎么选择,自己总得有自己的目标和方向。这样,才不至于焦虑,才能更好的活在当下。作者肖飞,诺西软件架构师,2006
2021年12月21日
其他

HttpClient使用不当,服务挂了!是时候系统学习一下了

超时配置正常来说上面的代码已经基本满足了业务需求,但还是有需要完善的地方,特别是针对HTTP请求超时情况的处理。HttpClient对此提供了setConfig(RequestConfig
2021年12月20日
其他

亲身经历,大龄程序员找工作,为什么这么难!

长按关注”程序新视界“,洞察技术内幕
2021年12月19日
其他

CentOS 将于年底终止!Linux服务器该何去何从?

rebuild版给CentOS用户,即真正最后一个CentOS版本,时间点也可能落在EOL后。一如RHEL小数点版本(point
2021年12月18日
其他

我在美团的八年

“君子之心,常怀敬畏”,保持敬畏之心能够让我们少犯错误。在工作中存在各种各样的规范,例如代码规范、设计规范、上线规范等等。我们必须明白,这些规范的制定一定是基于某些客观原因的,它们都是历史上无数
2021年12月16日
其他

大厂都在用EhCache,它到底比Redis强在哪里?

3.9.6在application.properties中配置添加如下配置:spring.cache.ehcache.config=ehcache.xml在Spring
2021年12月15日
其他

Dao,Service,Controller,Util,Model代表着什么,为什么这么划分?

长按关注”程序新视界“,洞察技术内幕
2021年12月14日