暂时未有相关云产品技术能力~
暂无个人介绍
这是我端午节去西湖玩的时候照的照片。那天的天气很善变,早上出门的时候是阴云密布,中午突然就变成了蓝天白云,艳阳高照,到了下午又变成倾盆大雨。 有人说,人的心情、行为等都可能受到环境影响。我不否认这个理论,但我们可以降低环境对我们的影响。天气也好,家庭出身也好,曾经的经历也好,学习、工作环境也好。这些都算是一些客观的环境因素,影响情绪的大概率不是环境本身,而是我们的态度。晴天也好,雨天也罢,你若尝试喜欢,那便是好天气。
最近各大社交平台都悄悄上线了一个新功能,就是显示用户的IP归属地,境内精确到省级,境外精确到国家或地区。在个人信息和每条评论上面都有,也是炸出来了一波xx在xx国的账号,各大号主纷纷出视频解释自己的ip归属为什么在国内,有说用代理的,有说给家人登录的,也有说在国内有工作室(团队)的......
最近生活风平浪静。工作时间还是比较忙,业余时间写文章的频率不高,本来想把关于slice的都写完,但后来发现太多了,于是打算拆成三篇来写。 前段时间花了大量的时间在弄小程序,本来都发布成功了,但后来某一次小程序升级说涉及交友服务,需要改类目,而交友类目需要电信增值服务的证,这个证比较难搞,所以可能后面打算终止这个小程序了,过段时间可能会把代码开源吧。
周末的快乐时光总是很短暂。 今天天气不错,有点太阳。去附近的商场吃了一顿“高老九重庆火锅”,味道还行,主要是好久没吃火锅了~ 白天把家里好好收拾了一下,感觉心情也跟着变好了。
当程序员大多都有一个共同的经历:当你在改一段复杂的代码时,你一边吐槽是哪个小可爱写的这段像一坨*一样的代码时,一边打开了提交记录,赫然发现竟然是自己3个月前写的!
今天没什么要说的。我个人很喜欢拍天空的照片,放一张前段时间晚上拍的照片吧。
最近生活方式发生了一点变化。搬家了,住的地方离公司更近了。 这就让我多了很多的操作空间,比如早上起来跑个步啥的。跑完步还能有点时间写博客,所以紧赶慢赶花了几个早上把这篇很早之前就想写的文章写出来了。 平时也会积累一些写博客的灵感,后面慢慢写吧。 过段时间打算想试试短视频的形式聊一些技术话题或者编程实战,计划中。。。
hi,好久不见。 最近工作上有一些变动,文章很少更新。不过平时还是有收集一些文章idea,后面有空会慢慢写~
计算机能识别的是机器指令码,简称机器码。机器码是二进制的,计算机可以直接识别,但与人类的语言差别太大,不容易被人理解和记忆。后来,就诞生了各种高级语言,人们用高级语言编写程序,然后通过把程序解释或编译成机器码。
最近写了几篇关于GC的文章,主要是因为线上有一些关于GC的问题,所以想顺便总结一波,梳理一下GC的一些知识点和排查思路。
Java是一门面向对象的语言。在使用Java的过程中,会创建大量的对象在内存中。而这些对象,需要在用完之后“回收”掉,释放内存资源。这件事我们称它为垃圾收集(Garbage Collection,简称GC),而实际执行者就是各种各样的“垃圾收集器”(Garbage Collector,以下也简称GC)。
最近杭州的花都陆陆续续开了。本来打算去太子湾看看郁金香,但到了地方才发现太子湾人满为患,无预约不能进。于是就在西湖边逛了逛,拍了点花花草草的照片。
按照惯例还是在文章开头随便聊聊。之前这个环节是借鉴的why哥,叫“荒腔走板”。现在决定还是换一个有自己特色的名字,冥思苦想,最终拍板“Y说”。 有一段时间没在公众号更新文章了,其实也不是忙,就是有点懒(主要原因),再加上没有太多灵感,所以,很抱歉~
这是《从0到1写一个网站》系列第3篇文章。 这篇文章主要介绍基于云服务器的生产环境的搭建,以及CI/CD等其它工具的搭建。
这是《从0到1写一个网站》系列第二篇文章。 这篇文章主要描述我要做的这个网站的功能,以及我对这些功能的拆分,然后使用事件风暴的方式,归纳出主要的领域模型和领域事件。
ava作为一门面相对象的语言,当然是支持面相对象的三大基本特性的,反手就蹦出三个词:封装、继承、多态。
最近想写一个连载的系列文章。主题是《从0到1写一个网站》。写这个主要有几点原因, 1. 自己的个人网站yasinshaw.com已经有一年多没有加新的功能了,上次更新还是在19年的10月份,现在虽然能稳定运行,满足基本功能,但还是有点简陋; 2. 最近想学点以前没有深入学习或者实践过的技术,比如前端的vue3和TypeScript,比如后端的kotlin语言、响应式编程、DDD实践等; 3. 也能作为一个挺不错的公众号文章素材,能够保持比较高频率的输出,把自己如何从0到1写一个网站的用博客写出来,分享给更多的朋友,尤其是对全栈感兴趣的朋友; 4. 想把它作为一个开源项目,顺便学学如何运营一个开
最近比较懒,好几周没写文章了。还是没能坚持每周更新,愧对关注我的读者和自己的flag。。。 不过还好调整了过来,还是会继续坚持周更的。毕竟学习是一件永无止境的事,用输出倒逼自己输入,才能有所沉淀和成长,欢迎大家监督和共勉~ 这篇文章是介绍幂等的。幂等在分布式和高并发场景下是必须要考虑的一件事。如果不做幂等,轻则产生脏数据,重则产生业务异常,造成资产损失。
这是一篇迟到的文章。这其实是我写DDD的第四篇文章。去年11月份左右我在个人网站上写了三篇关于DDD的文章,都是比较偏战略部分的。那个时候我还在一个正在使用DDD的项目上,也是我第一次真正开始深入使用DDD。
今天这篇文章是比较偏“教程”一点的文章。但也由浅入深,认真地分析了源码,并且介绍了一些在使用Spring Cache中常见的问题和解决方案,肯定是比简单的入门文档更有深度一些的,相信大家看了之后会有一定的收获。
今天这篇文章是讲性能优化的。前段时间我优化了一个程序,感觉收获还是蛮大的,所以总结了一些用到的优化思路,主要集中在代码层面,希望可以和大家一起交流探讨。
这周暂时也没有荒腔走板环节,太忙了最近。。。
Pipeline设计模式是我在来新公司才接触到的,也是在项目上广泛使用的一种东西。觉得挺有意思的,所以写一篇文章向大家介绍一下,希望大家喜欢。
AOP全称是Aspect Oriented Programming,翻译过来是“面向切面”编程。在Java语言里,一切皆对象,所以我们通常说Java语言是一门“面向对象”编程的语言。而面向切面编程,不是要取代面向对象编程,而是对它的一种补充。
今天给大家带来的是一篇源码解析文章,关于Spring IoC的。其实源码解析不太适合写文章,做成视频更好,因为代码比较多,而且繁杂,而且调用链长,用图文很难写清楚,我尽量把它写得清楚一点~
今天把自己家里的键盘卸下来洗了一下。键盘是去年买的,国产静电容,宁芝的。整体上来说使用体验挺好的,写代码和写文章非常舒服,用很长时间手也不累。静电容键盘用了就回不去了。关键是还便宜,只要七百来块,差不多只有国外静电容牌子的1/3价格,感兴趣的朋友可以考虑入手一波。
有很多朋友不愿意写单元测试,觉得写单测试比较花时间,甚至不会写单元测试,很大程度上是因为不想写或者不会写mock。
作为一个程序员,或多或少听说过单元测试,但很多小伙伴还没有在实际项目中用到。
关于设计模式的书不少,网上博客也有很多。那我会想,如果我要写一篇关于设计模式的文章,它给读者带来的价值在哪里呢?如果只是机械地介绍一遍所有的设计模式,那其实没有多大意义。授人以鱼不如授人以渔,今天这篇文章我想探讨更多的,是「如何去认知和学习设计模式」,以及如何才能够真正让它为你所用,成为你编程的神兵利器,披荆斩棘。
也学学why哥,在每篇文章加一段荒腔走板的内容。也就是随便聊聊,可能是自己近期的生活状态或者感悟,一些想法和思考,也可能是写这篇文章的初衷等等,甚至只是随便吹吹牛。
前两天一个晚上,正当我沉浸在敲代码的快乐中时,听到隔壁的同事传来一声不可置信的惊呼:线程池提交命令怎么可能会执行一秒多? 线程池提交方法执行一秒多?那不对啊,线程池提交应该是一个很快的操作,一般情况下不应该执行一秒多那么长的时间。 看了一下那段代码,好像也没什么问题,就是一个简单的提交任务的代码。
你有没有想过,为什么跨行转账要告诉你2小时内到账,而不是立即到账?为什么抖音那么多用户同时在使用,却很少出现崩溃的情况?电商网站是如何支撑住双十一全国人民买买买的?
你有没有想过,为什么跨行转账要告诉你2小时内到账,而不是立即到账?为什么抖音那么多用户同时在使用,却很少出现崩溃的情况?电商网站是如何支撑住双十一全国人民买买买的?
前几篇文章更多的是在使用层面去介绍ThreadLocal,并没有深入去理解原理。 其实学任何技术都是这样一个过程,我们最先接触到的可能是一个框架的API,然后你可能就会开始使用它;再然后会看看别人是怎么使用它的,有没有值得借鉴之处,再然后就是深入原理,看看它的底层是如何实现的,对它做一个深入的了解。 下面我们进入正题,先分析一下ThreadLocal几个重要的方法。
这篇文章是关于ThreadLocal的第三篇文章。本文将挑选一些主流的Java开源框架,从源码上分析,大神们是如何使用ThreadLocal的,学习他们的设计思想。
这篇文章是关于ThreadLocal的第二篇文章。 在上一篇文章,Yasin给大家介绍了什么是ThreadLocal,以及ThreadLocal的基本原理。 那在实际工作中,ThreadLocal一般用来做什么呢?今天我们以一个简单的应用场景为例,给大家介绍如何用ThreadLocal来帮助我们解决多线程的安全问题。
这篇文章是慕课网上一门免费课程《ThreadLocal》的观后总结。这门课将ThreadLocal讲得非常清晰易懂,又深入底层原理和设计思想,是我看过的最好的ThreadLocal的资料,现在把用自己的话,把它整理成文字版本。 总共预计产出四篇文章,这是第一篇。
线程是每个Java开发者都绕不开的大山。而线程池更是工作中用得最多,面试也问得最多的知识点。 但很多小伙伴其实对线程池还处于一知半解的状态,不清楚它的核心原理和逻辑,甚至不知道该如何更好地配置线程池参数。接下来咱们就来聊聊,如何更好地驾驭线程池。
老张正准备下班,路过小齐的位置,发现他正在阅读Spring Cloud Gataway的官方文档。 看了看时间,等公交车还有一会儿,顺便就和小齐交流一下,便问道:“你在学习Spring Cloud网关吗?” 小齐听到声音后转过身来,便看到老张拉了一把椅子坐下。正好自己有一些疑惑的地方,也想找人交流学习一下。 “是啊,我最近不是在学习微服务这部分知识吗,现在学到网关这部分了。其实我不是特别明白,为什么我们的微服务需要网关呢?”
前几天在CodeReview的时候,看到了一个用WeakHashMap的代码,进而聊到了WeakReference,再聊到Java四种引用类型。
你以为程序员只是闷着头疯狂写bug,写好了发布到服务器就完了? 不,你还要修bug!但在那之前,你还要找bug!
日志是什么?日志是你在代码运行时打印出来的一些数据和记录,是快速排查问题的好帮手,是撕逼和甩锅的利器!
今天咱们要讨论的树,它不是现实结构的树,也不是数据结构要讨论的树,而是「从业务视角抽象出来的树形结构」。
突然接到客服那边的消息,说接到大量用户投诉,页面打不开了。小齐心里一咯噔,最近就自己发布了新代码,加了一个新功能,不会是那部分代码出问题了吧?!!
在上篇文章《系统权限设计 - 基本概念和思路》中,介绍了我们在做权限设计的时候需要注意的一些点。
权限系统的设计几乎是每个系统都必需的模块,最近对系统的权限设计有一些心得体会。遇到过一些坑,也有一些思考,所以想写下来分享给大家。 本文的目的是帮助大家理清楚权限设计中的一些基本概念,提供常用的权限系统设计思路。
有两种方法,分别为:引用计数法和可达性分析法
这篇文章主要总结一下自己在平时编码中遇到一些问题的思考。很多时候,代码设计很难十全十美,我们面对的往往是选择题,如何在多个选择之间权衡取舍,并不是一件简单的事情。
使用缓存可以缓解大流量压力,显著提高程序的性能。我们在使用缓存系统时,尤其是大并发情况下,经常会遇到一些“疑难杂症”。本文总结了一些使用缓存时常见的问题及解决方案,以后在遇到这类问题时可以作为参考,在设计缓存系统的时候也应该考虑这些常见的情况。 为了表述方便,本文以数据库查询缓存为例,使用缓存可以减小对数据库的压力。
在项目开发中,我们经常会遇到去重问题。比如:判断一个人有没有浏览过一篇文章,判断一个人当天是否登录过某个系统,判断一个ip是否发过一个请求,等等。