Code Review最佳实践
我一直认为Code Review(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题。包括像Google、微软这些公司,Code Review都是基本要求,代码合并之前必须要有人审查通过才行。 然而对于我观察到的大部分软件开发团队来说,认真做Code Rev ...
如何以计算机的方式去思考
从上大学第一天开始接触编程,老师便给我们讲过各式各样的算法。从各种查找、排序,到递归、贪心等算法,大一的时候一直在和这些算法搏斗。直到工作后,为了应付面试,仍不得不回过头去啃算法书或者去刷一些算法习题,才能够拾回一些上学时的记忆。为什么算法就这么难以记住呢?或者说,为何计算机的算法不能更直观一些呢? ...
某618大促项目的复盘总结
一、前言 618期间上线一个活动项目。但上线不顺利,当天就出现了性能问题,接口超时,用户无法打开网页,最后不得的临时下线。花了三天两夜,重构了后台核心代码,才让活动进行下去。 回头看了一下自己的时间记录,从5月31号那天晚上8点25分开始准备上线,发现异常,分析原因,重构代码,离开公司时已经是6月2 ...
不懂数据库索引的底层原理?那是因为你心里没点b树
本文在个人技术博客不同步发布,详情可用力戳 亦可扫描屏幕右侧二维码关注个人公众号,公众号内有个人联系方式,等你来撩... 前几天下班回到家后正在处理一个白天没解决的bug,厕所突然传来对象的声音: 对象:xx,你有《时间简史》吗? 我:我去!妹子,你这啥癖好啊,我有时间也不会去捡屎啊! 对象:... ...
我为能准时下班而做的准备,以及由此的收获,同时总结下不足
可能有人会说,做IT的想准时下班很难,尤其是在互联网公司。有些外企或国企倒能准时下班,原因是公司更像养老院。 其实这里存在个误区:能否准时下班其实和工作效率和质量有关,取决于自己,而不在于其它因素。公司的氛围让不让准时下班是一回事,能不能高效高质工作,从而能准时下班又是另一回事。比如在工作中高效了, ...
深入认识二进制序列化--记一次生产事故的思考
一 概要 二进制序列化是公司内部自研微服务框架的主要的数据传输处理方式,但是普通的开发人员对于二进制的学习和了解并不深入,容易导致使用过程中出现了问题却没有分析解决的思路。本文从一次生产环境的事故引入这个话题,通过对于事故的分析过程,探讨了平时没有关注到的一些技术要点。二进制序列化结果并不像Json ...
一次给女朋友转账引发我对分布式事务的思考
本文在个人技术博客不同步发布,详情可用力戳 亦可扫描屏幕右侧二维码关注个人公众号,公众号内有个人联系方式,等你来撩... 前两天发了工资,第一反应是想着要给远方的女朋友一点惊喜!于是打开了平安银行的APP给女朋友转点钱!填写上对方招商银行卡的卡号、开户名,一键转账!搞定!在我点击的那瞬间,就收到了a ...
【面试】一篇文章帮你彻底搞清楚“I/O多路复用”和“异步I/O”的前世今生
曾经的VIP服务在网络的初期,网民很少,服务器完全无压力,那时的技术也没有现在先进,通常用一个线程来全程跟踪处理一个请求。因为这样最简单。其实代码实现大家都知道,就是服务器上有个ServerSocket在某个端口监听,接收到客户端的连接后,会创建一个Socket,并把它交给一个线程进行后续处理。线程 ...
当我们在讨论CQRS时,我们在讨论些神马?
当我写下这个标题的时候,我就有些后悔了,题目有点大,不太好控制。但我还是打算尝试一下,通过这篇内容来说清楚CQRS模式,以及和这个模式关联的其它东西。希望我能说得清楚,你能看得明白,如果觉得不错,右下角点个推荐! 先从CQRS说起,CQRS的全称是Command Query Responsibili ...
【面试】如果你这样回答“什么是线程安全”,面试官都会对你刮目相看
不是线程的安全面试官问:“什么是线程安全”,如果你不能很好的回答,那就请往下看吧。论语中有句话叫“学而优则仕”,相信很多人都觉得是“学习好了可以做官”。然而,这样理解却是错的。切记望文生义。同理,“线程安全”也不是指线程的安全,而是指内存的安全。为什么如此说呢?这和操作系统有关。目前主流操作系统都是 ...
【面试】迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)
常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数据,然后使用适合的视图展示详情数据。 如果网速很慢,代码发起一个HTTP请求后,就卡住不动了,直到十几秒后才拿到HTTP响应,然后继续往下执行。 这个时候你问别人,刚刚代码发起的这个请求是不是一个同步请求,对方一定回答 ...
为啥程序会有bug?
如果这是第二次看到我的文章,欢迎右侧扫码订阅我哟~ 本文长度为4818字,建议阅读13分钟。 坚持原创,每一篇都是用心之作~ 这是一篇半娱乐性的吐槽文章,权当给广大技术人员解解闷:)。 哈哈哈,然后我要开始讲一个经常在发生的事实了。(程序员们可能会感到一些不适) 99.999999999%做技 ...
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
首先分布式锁和我们平常讲到的锁原理基本一样,目的就是确保,在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法、变量。 在一个进程中,也就是一个jvm 或者说应用中,我们很容易去处理控制,在jdk java.util 并发包中已经为我们提供了这些方法去加锁, 比如synchronized 关 ...
【软工作业&思考】关于软工的一些概念性理解暨第一次阅读作业
概述 | 项目 | 内容 | | : : | : : | | 本次作业所属课程 | "2019BUAA软件工程 周二班" | | 本次作业要求 | "第1次个人作业" 当然,比这个更重要百倍的还是实实在在的思考,这也是标题如此命名的原因 | | 我在本课程的目标 | 在原有实践经验的基础上,系统化学 ...
ERP不规范,同事两行泪
最近的很多次对外交流,都聊到了ERP建设的话题,并且无一例外的不那么让人省心,回想我这么多年走过的ERP坑坑路,在这里也写下经验和总结,希望能给正在或者即将走上ERP建设路的企业一些思考和帮助。 导读 1、几个瞎眼而普遍的案例 2、ERP的前世今生 2 ...
只有程序员才能读懂的西游记
这是一个有关计算机网络协议的故事。 一、我佛造经传极乐 话说我佛如来为度化天下苍生,有三藏真经,可劝人为善。 就如图中所示,真经所藏之处,在于云端。佛祖所管辖之下,有四个区域Region,称为四大部洲, 一是东胜神洲,二是南赡部洲,三是西牛贺洲,四是北俱卢洲。 我佛所在西牛贺洲,是主站点。 在每个区 ...
Kubernetes初探[1]:部署你的第一个ASP.NET Core应用到k8s集群
Kubernetes简介 Kubernetes是Google基于Borg开源的容器编排调度引擎,作为CNCF(Cloud Native Computing Foundation)最重要的组件之一,它的目标不仅仅是一个编排系统,而是提供一个规范,可以让你来描述集群的架构,定义服务的最终状态,Kuber ...
从软件工程的角度解读任正非的新年公开信
昨天被任正非的那封《全面提升软件工程能力与实践,打造可信的高质量产品》的公开信刷屏了,作为一个软件工程专业科班出身的软件开发从业者,自然是引起了我(@宝玉xp)的好奇,仔细阅读之下确实让我大吃一惊,看似八股官方文,但细看之下是作者对于软件工程的理解确实非常深刻,各种专业术语信手拈来,比喻恰到好处。 ...
通俗易懂,C#如何安全、高效地玩转任何种类的内存之Span的本质(一)。
前言 作为.net程序员,使用过指针,写过不安全代码吗? 为什么要使用指针,什么时候需要使用它,以及如何安全、高效地使用它? 如果能很好地回答这几个问题,那么就能很好地理解今天了主题了。C 构建了一个托管世界,在这个世界里,只要不写不安全代码,不操作指针,那么就能获得.Net至关重要的安全保障,即什 ...
分布式系统关注点——99%的人都能看懂的「熔断」以及最佳实践
如果这是第二次看到我的文章,欢迎右侧扫码订阅我哟~ > 本文长度为3319字,建议阅读9分钟。 阅读目录 熔断是什么 熔断怎么做 做熔断的最佳实践 总结 熔断是什么 熔断怎么做 做熔断的最佳实践 总结 熔断是什么 熔断怎么做 做熔断的最佳实践 总结 熔断是什么 熔断怎么做 做熔断的最佳实践 总结 熔 ...