共计 6103 个字符,预计需要花费 16 分钟才能阅读完成。
作者:小傅哥
博客:https://bugstack.cn
积淀、分享、成长,让本人和别人都能有所播种!😄
一、咋,收缩了吗?
生抗美团博客?不要脸,呐们,从未见过如此 "死皮赖脸" 之人!
美团博客在技术圈里是十分优良且品质很高的官网博客,全系硬通货的优良内容:有技术架构、有算法利用、有搜索引擎实现、讲过风控策略、谈过 Java 动静追踪、剖析过全链路监控,上百篇的高质量有实际根基的技术内容,让作为研发出身的搬砖码农,不只是你,还有我,都十分喜爱此类有强烈技术气氛的文章。
呐,就这?你还要生抗?
是的,即便是这样刚烈的技术博客,我也要生抗它!因为喜爱归喜爱,挑战是挑战,学会学习的办法比仅仅只是依照一个博客文章中的残缺思路硬搬到本人的脑子中更重要。为什么这样说呢,因为大部分的技术文章的实质都是对数学逻辑的实现形容,从指标、条件、行为到后果的推演,但这种照着推演后果抄答案是没意义的,只有这些思路在你的大脑里完完整整、磕磕绊绊的走来走去一直碰撞💥,摸索到后果后,能力有更粗浅的印象。
快,是最大的阻碍!
背阴而生,逐光而行,缩小没必要的心田焦虑,别为想着一口吃不下瘦子而惆怅。缓缓铺好脚下的地基,不要着急于快,你当初所做的每一件看似点点的小事,未来都会汇聚在一起。想起我本人在上学阶段,看到很多同学放假喜爱去做一些兼职、发发传单、洗洗盘子、当当家教,但其实以我本人来看,并不会反对去做这些,除非是真的须要这些钱。因为大部分同学毕业后根本都会从事本业余 ( 计算机、软件工程
) 的事件,而其余兼职的事件与你在本身成长的长期价值积攒并不符,而这部分兼职工作也仅能是给你带来一点社会体验和短暂经验。但与将来久远的指标来看,有明确的指标,不烦躁、不着急,缓缓成长,慢下来、慢下来,你会播种更多!世界很大,生存更大。
二、看,刚劲内容!
除了手里的几个卖焦虑的文章,你能够领有更好的!
一天学会、一文搞懂、学完就 P8P9、30 岁码农还和刚毕业做一样的活没用!等等贩卖焦虑的文章,看这些内容除了让人焦躁还能带来什么、能有什么成长吗?讲道理,不会有什么大成长,因为你太过焦急了,急的像是河里的水搅浑了,没有工夫的积淀,你只能在下面捞点浮沙。
而那些真正有价值的内容,是须要通过工夫的磨难的,记得《霍元甲》电影里有句话,我这一拳 20 年的功夫,你们挡得住吗!
是的,可能这些有深度的技术博客你也挡不住!
- 美团技术,美团技术沙龙由美团技术团队主办,每期沙龙邀请美团及其他互联网公司的技术专家分享来自一线的实践经验,笼罩前端、后盾、零碎、算法、测试、运维等技术畛域。
- 360 外围平安,分享奇虎 360 公司的技术,与平安的互联网独特成长。病毒防护、平安监测、软件破绽等方面有深刻学习的文章。
- 阿里数据库内核月报,阿里数据库内核月报十分好的数据库进阶材料,文章多为阿里数据库内核专家所写,有深度)中剖析,那种数据库产品更被阿里的内核专家们青眼。
- jenkov Tutorials,We tend to select projects that are related to entrepreneurship, one way or another. Our projects are either an entrepreneurial project in itself, or it helps other people’s entrepreneurial projects.
为什么你须要看这样的博客内容?
我遇到过很多好友搭档问我,在互联网做开发都须要什么样的技术,分布式的零碎是怎么搭建的、怎么进行的分库分表、零碎上线后要进行压测吗,这些都是在什么规范下怎么进行的呢?
这里以一篇美团博客为例,给大家介绍下分库分表的起因、过程和后果,文章为:MTDDL——美团点评分布式数据拜访层中间件
美团(背景):2016 年 Q3 季度初,在美团外卖上单 2.0 我的项目上线后,商家和商品数量急速增长,预估商品库的容量和写峰值 QPS 会很快遇到微小压力。随之而来也会影响线上服务的查问性能、DB(数据库,以下对立称 DB)主从提早、表变更艰难等一系列问题。
因为业务的急速倒退,体量的暴增,原有的零碎设计曾经很难满足现有的数据体量,因而会有一系列的技术问题须要解决。但从数据库的应用上来看,单库单表曾经很难现有的业务体量了,通常一台 64 核、7T 的数据库服务器,在 tps 达到 1 万曾经迫近极限。
那么怎么办?把各个利用依照商品库进行垂直拆分吗,这也只能解决一时之痛呢,当前呢?所以分库分表的设计是必然的,应运而生的就是美团的 MTDDL(Meituan Distributed Data Layer),美团点评分布式数据拜访层中间件,旨在为全公司提供一个通用数据拜访层服务,反对 MySQL 动静数据源、读写拆散、分布式惟一主键生成器、分库分表、动态化配置等性能,并且反对从客户端角度对数据源的各方面(比方连接池、SQL 等)进行监控,后续思考反对 NoSQL、Cache 等多种数据源。
分库分表绝不只是一个中间件的开发就完事了,还须要一整套的技术实现来撑持这样的技术组件应用;
- 零碎拆分为分布式应用,RPC、MQ、分布式工作、配置核心等须要一并引入。
- 分库分表取模算法,不晓得大家有深刻浏览过 HashMap 的源码没,HashMap 是一种基于哈希桶和链表 + 红黑树的数据结构,每一个数据寄存都须要通过哈希求值、扰动函数、泊松散布和拉链寻址的形式进行计算数据索引和寄存逻辑。那么在你设计入美团的分库分表组件时,你脑子中会有哪些个散列算法吗,
哈希散列
、除法散列法
、平方散列法
、斐波那契(Fibonacci)散列法
吗?各个散列算法都有什么个性,哪一个更适宜你的组件开发,它会让数据更加散列,缩小碰撞吗。碰撞了是什么成果,HashMap 的碰撞是链表转红黑树以及扩容拆解数据,那么数据库里的数据碰撞重大是什么成果 - 另外是对于分布式惟一主键生成器的设计,因为你的每一条数据,都须要是全局惟一的,那么就须要给每一条数据都生成一个惟一 ID。美团的分布式 ID 生成零碎 Leaf,其实是一种基于 DB 的 Ticket 服务,通过一张通用的 Ticket 表来实现分布式 ID 的长久化,执行 update 更新语句来获取一批 Ticket,这些获取到的 Ticket 会在内存中进行调配,调配完之后再从 DB 获取下一批 Ticket。
看到这,你还敢说你是在卷技术、造火箭吗?很多时候不是技术没用,是你没有想法去用,也没有一个本身应用此类技术的土壤!所以不晓得各个扩散的技术模块都用在哪,只晓得面试时会用一下,所以来学点干货吧,骚年!
三、我,都写了啥?
抗了 2 年,写了 8 个专题,22 个类别,245 篇 + 文章!
两年前,我只会写代码,不会写文章
两年前,我给共事做的分享,总让他人听的云里雾里
两年前,我也吃过技术问难的亏,没有内容叙述能力
两年前,我短少常识的成体系建设,很多内容都碎片化
所以从 不太开心
的那天开始,我陆续总结积淀和输入技术内容,成体系化的建设本人的技术栈维度,一点点尝试编写文章和排汇读者的反馈,缓缓的把简单技术内容的文章写的尽可能通俗易懂。所以你会看到我的文章大部分以实战为基准,通过对各类技术场景的验证、演绎、总结,写出成体系的技术内容,既满足本人积淀晋升,也分享给同好成长!
我给本人在技术职业成长的定位上,是一个能抗住 农夫三拳
的架构师,所以我在编写和输入的技术内容上,也是以数据结构、算法逻辑、设计模式、核心技术、零碎架构、服务运维以及总结本身成长的几个方面来进行汇总内容编写文章。
而这几大块内容也是每一个较贵的 Java 程序员应该把握的内容,能够包含:
- Java&Spring:以解说 Java、Spring 外围常识为根底,用数学逻辑思维剖析对于 Java、Spring、Mybatis、Dubbo 等外围源码技术内容。其中如《Java 面经手册》是一本以面试题为入口解说 Java 核心内容的技术书籍,书中内容竭力的向你证实代码是对数学逻辑的具体实现。包含正在编写的《手撸 Spring》通过手写简化版 Spring 框架,理解 Spring 外围原理。在手写的过程中会简化 Spring 源码,摘取整体框架中的外围逻辑,简化代码实现过程,保留外围性能,例如:IOC、AOP、Bean 生命周期、上下文、作用域、资源解决等内容实现。这些都程序员学习技术成长过程中十分重要的常识,如果能深刻学习那么对当前的个人成长帮忙十分大。
- 算法逻辑和数据结构:这部分内容次要以 Java 源码为动手,解说其中的数学知识,包含:扰动函数、负载因子、拉链寻址、凋谢寻址、斐波那契(Fibonacci)散列法还有黄金分割点的应用等等,这也正式《Java 面经手册》的核心内容所在。
- 面向对象:《Java 设计模式》的常识是在 Java 根底铺平,数据结构、算法逻辑有了肯定的理解后,在深刻学习和应用的技术。同样是一个需要在学过设计模式后,也浏览了不少他人优良的代码,那么在他实现需求的时候,会拆分出很多的接口和接口的继承、抽象类的职责隔离实现、具体业务模块的分层、性能服务组件的细化、具体实现过程中对设计模式的使用等等。这样的代码实现后会十分具备易扩大和可保护的特点,否则一篇的 ifelse 不是坑本人就是坑下一个人。
- 中间件:可能很大一部分研发并不会接触到中间件,也不太可能有人通知你能够应用中间件的形式解决一些理论遇到的问题。因为大部分时候你都会认为中间件只是公司专门部门的人写的,或者是技术大牛搞的,总之与你没关系。但其实代码常识对数学逻辑的具体实现,业务开发有业务开发的形式,《Spring 中间件和开发》也只是对 Spring 的对于容器中一些特定接口和类的应用,具体的还是一般的逻辑代码,比方裸露服务、采集日志、监控零碎等。但如果你能早些学到这样技术的核心思想,那么对于贬值、加薪、跳槽,都是十分有帮忙的。
- 通信专题:其实 Netty 是一项十分重要的技术,比方在 RPC 服务实现中的 Dubbo、或者 MQ、以及很多时候的通信里都是能用到的技术。就连小傅哥的第一次面试大厂也是靠着对 Netty 的学习,刷进来的!所以小傅哥编写了很多 Netty 从根底入门解说到外围原理,通知你如何解决半包、粘包,怎么定义音讯协定,并开发了一个基于 Netty 的仿微信聊天我的项目,这些技术内容你都能够在我的博客学习到学习到。
- 字节码编程:这项技术可能大多数研发,哪怕 35 岁的,可能也不肯定接触到。但这样的技术你却根本都用过,比方你的 IDEA 是购买的吗,你怎么给让它能用的!你用过一些非入侵的全链路监控零碎的,你通过字节码插桩搞过一些事件吗,那你用过 Cglib 吧,它的底层就是通过 ASM 字节码框架对字节码进行的一些列操作。
- 故事:除了技术学习以外,还有很多搭档会常常问我一些对于学习、成长以及退职场中怎么活下去。所以我联合我本人在大厂互联网中的学习和成长经验,给读者搭档写了不少此类的内容。如简历编写、招聘要求、技术材料、代码标准、评审降职、薪资待遇、副业支出等等。这些内容可能很多会帮忙你度过一个安宁的职场生涯!
四、嗯,有些播种!
叮,走在技术路上的一次打卡!
2021 年 04 月 23 日,图书节,我的第一本技术书《重学 Java 设计模式》出版了。不久以后我感触过图书冲榜到销量榜第一、在图书馆看到我的技术书、被国外的粉丝搭档购买带出国门,还看到有个女孩买来作为礼物送给他的男友。也于不久后看到百度百科还有我书籍的信息,还真是蛮开心的,但不收缩!
输入也仅仅是我作为技术人的一次成长打卡,我就想走走没走过的路
, 爬爬没爬过的山
, 看看风雨过后的彩虹是否灿烂
。而通过这样的经验理解下出书的流程;选题、定稿、三审三校、申请书号、印刷装订、发货上架、营销售卖。
除此之外,当你的文章越写越多,除了技术上成体系的欠缺,你还会取得各个平台的搀扶,比方在掘金写小册,失去掘金的签约作者邀请!加油,总有机会是你能够上的!
五、你,要入手不?
写文章,如果你还不晓得从哪下手!
从给本人看的日常笔记,到整顿成剖析给读者浏览的文章,其实并不好写,无论是技术、生存、职场,都会有肯定的编写门槛。以我集体为例,一篇文章的编写,即便不计算编写前的内容演绎整顿,也不包含写完后的文案、推广、分享,仅仅是编写工夫也须要 6-8
个小时,这包含内容的创作、PPT、xmind、visio 等各类工具的绘图、也可能会串联进去一些故事性的图片。所以近一篇文章的编写就曾经很费时间,尤其是对不喜爱写作文的文科码农来说,再初期更是难搞!
但其实,做任何事想做好,都是难度、有门槛的!以我编写文章的教训,一篇文章的编写能够总结以下图稿中几个方面:
- 选题:这是第一步,也是十分重要的一步。在开始之前你总得要花不少的工夫来想好你要写什么,是热门的、实际的、翻新的还是什么,这是时候还没具体定内容,因为无论热门、实际在每一个栏目下都能够写不同的内容。
- 类型 :是写本人的故事、还是职场倒退的本身经验,还是写写学到的技术总结成文章呢。其实后期对你来说,写技术是最好下手的,因为只有你经验过,就肯定会有技术的总结,比方你出了一个技术事变,本人的秒杀商品零碎挂了,那么必定是会总结出对应的技术教训的。 当然你胡说本人跳槽字节拿到工牌了,或者说惨遭试用期辞退,也肯定会上热门,不过此类文章对你的个人成长来说,不具备长期价值。
- 内容:当你确定选题,选好了要写的内容,接下来须要汇总此类内容的材料总结了,这包含你本人对技术的认识、也包含你在学习此技术点时从一些有价值的网站获取的材料,当然也包含你浏览的源码、官网的文档,这些内容都是十分具备权威性的。不过千万不要拿一些看着就磨磨唧唧、似懂非懂的内容作为引入,可能这样的内容自身就有坑!
- 卖点 :一篇爆款的文章中肯定是有此文章的亮点卖点的,比方有技术创新价值吗、有浏览趣味性吗、有分享流传共鸣吗、有流量转换吗,都会是一篇文章的卖点。 其实每一个文章也都能够看做是一个 sku,这个 sku 好不好几本也是你的卖点决定的!
- 配图:记住所有技术号主的文章,肯定会有配图的!xmind 都玩的很溜,visio 也画的十分好,ppt 更是丑陋的很,因为好的图会让整篇文字堆满的文章更具备可浏览性。与此同时你还会看到一些较为搞笑的图,来减少文章的趣味性。
六、来,总结一下!
心怀天下,声色犬“码”。生有热烈,藏于俗常!
写到这的时候想起首歌,吃的是下锅的米、走的是世间的道、扛的是迎风的旗
。就像我本人, 生抗 美团技术博客,并不是挑战美团技术,而是扛起本人对技术的谋求,抗的是对技术的品质!
任何一个本人喜爱的方向,一直的极致的谋求上来,都可能成为你本身最具备价值的财产。为你的八小时内谋生存、八小时外谋发展!
如果你当初还不没有意识到本人应该为八小时外致力,那么 35 岁之前,你手里还能抓几张牌?衰弱的身材、不和的家庭、短缺的积蓄、执行的打算等等用于抵制你的房贷车贷、职场中的疲乏、生存里的生产呢。
加油吧!愿每一个在路上拼搏的人都能;所求皆如愿、所行化坦途
!
七、系列举荐
- 小傅哥,一个有“副业”的码农!
- 数学,离一个程序员有多近?
- 工作 3 年,看啥材料能月薪 30K?
- 握草,你居然在代码里下毒!
- 如果你只写 CRUD,那这种技术你永远碰不到