CDEFGAB 1010110

挖了太多坑,一点点填回来

数据延迟的情况下如何解决缓存脏数据

cache, 架构, 缓存

通常使用缓存的情况下,如果先删缓存,再更新数据库,有这样一个场景:

单库情况下,服务层在进行长时间的逻辑计算,在这个过程中,可能读到旧数据入缓存。

主从库+读写分离情况下,在主从同步延时过程中,可能读到旧数据入缓存。

算法题:三针重叠问题

实战, 算法, 编程

经典问题——三针重叠问题。

在时针走满一圈的情况下,也就是12小时内,时针、分针、秒针会重合多少次?

分析一下:秒针60s走完一整圈,每秒的旋转角度是6度,分针速度是秒针的1/60,每s的旋转角度是1/10度,时针速度是分针的1/12,每s的旋转角度是1/120度。那么就需要计算出12个小时的时间内,也就是12*3600秒内,每秒钟三个指针的位置即可。如果度数相同,那么就认为三针重合。

PSR标准备忘

php, psr, 标准, 规范

PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。

项目的目的在于:通过框架作者或者框架的代表之间讨论,以最低程度的限制,制定一个协作标准,各个框架遵循统一的编码规范,避免各家自行发展的风格阻碍了 PHP 的发展,解决这个程序设计师由来已久的困扰。

思考题:直播弹幕系统的设计

弹幕系统, 架构, 架构设计

从来没有开发过弹幕系统,今天在被问到这个问题的时候有点不知所措,以为是传统的像 BiliBili 这样的弹幕视频网站一样,从存储系统中拉取已有弹幕数据交付给前端按时间顺序显示就好,但是事后重新思考这个的问题的时候,发现不对——绝对不是这么简单。当时我应该误解了对方的意思,没有及时作出沟通,一下子就懵了。

面试官想考察我的真正场景是——如何设计一个直播平台的弹幕系统

晚上回来赶紧再复盘一下这个问题。

算法题:爬楼梯算法

实战, 算法, 编程, 递归

有这样一个题目:应该是大学时代的经典算法题了——小孩上楼梯。

有个小孩正在上楼梯,楼梯有s阶台阶,小孩一次可以上1阶或2阶。实现一个算法,计算小孩有多少种上楼梯的方式。输入n,返回一个整数。

稍微想了一下,这个题目可以用递归来解决。根据题目的规则,最后一步只有两种走法:要么走1阶,要么走2阶。所以可以得出这么一个递归公式:f(s) = f(s-1) + f(s-2)。好像就是一个斐波那契数列公式?

思维导图:Go语言基础知识

go, 思维导图

工作以来一直都是用的PHP,不过其实我还会写Python,Ruby,就是没有用在公司的项目上。

没关系,我一样写得很溜。

最近又开始接触Go了,应该是很早就已经开始接触Go了,看了一些教程之后,我真的想说:真的很棒!

PHP安装IMAP扩展

brew, imap, linux, mac, php

在经历了 macOS 上的 homebrew 升级之后,imap 就不再是 homebrew 的 PHP 里默认安装的扩展了,这样如果你在 composer.json 中引用了一个需要用到 imap 扩展的库,那么久没有办法更新 composer 库,这样着实让人内伤。

所以今天就来解决这个问题。