Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.
Get Feederplink.anyfeeder.com
Get the latest updates from 架构师之路 directly as they happen.
Follow now 51 followers
Last updated 1 day ago
1 day ago
在过去,将一个想法变为一个可运行的应用程序,需要漫长的学习编码、调试、部署... 可谓是曲折艰难。而在今天,这条路出现了一条全新的捷径:一个清晰的创意 + 精准的需求描述 = 智能体为你生成可运行的应用程序,Cursor和MCP——正是这场人机协作新范式的佼佼者。今天推荐的这本《Cursor与MCP快速入门》,正是关于Cursor和MCP。这是一本什么书?以通俗易懂的语言和丰富的实战案例,手把手地教你使用Cursor和MCP等工具开发智能应用,无需编程经验。你将发现,开发一个网站、一个小游戏、一个微信小程序,甚至一个复杂的智能旅行规划助手,竟这般触手可及。没有编程基础,可以上手吗?涵盖哪些场景,能解决什么问题?还有什么特点?1. 视频辅助。2. 图文并茂。3. 大量实践。看看目录你就知道了:1. 开发革命:AI 如何重塑软件开发方式2. Cursor...
3 days ago
《架构师之路:架构设计中的100个知识点》106.缓冲池(buffer pool)应用系统分层架构,为了加速数据访问,会把最常访问的数据,放在缓存(cache)里,避免每次都去访问数据库。操作系统,会有缓冲池(buffer pool)机制,避免每次访问磁盘,以加速数据的访问。MySQL作为一个存储系统,同样具有缓冲池(buffer pool)机制,以避免每次查询数据都进行磁盘IO。如果大家使用MySQL,那么InnoDB的缓冲池,是架构师必须了解的内容。InnoDB的缓冲池缓存什么?有什么用?缓存表数据与索引数据,把磁盘上的数据加载到缓冲池,避免每次访问都进行磁盘IO,起到加速访问的作用。速度快,那为啥不把所有数据都放到缓冲池里?凡事都具备两面性,抛开数据易失性不说,访问快速的反面是存储容量小:1. 缓存访问快,但容量小,数据库存储了200G数据,缓存容量可能只有64G;2. 内存访问快,但容量小,买一台笔记本磁盘有2T,内存可能只有16G;因此,只能把“最热”的数据放到“最近”的地方,以“最大限度”的降低磁盘访问。如何管理与淘汰缓冲池,使得性能最大化呢?在介绍具体细节之前,先介绍下“预读”的概念。什么是预读?磁盘读写,并不是按需读取,而是按页读取,一次至少读一页数据(一般是4K),如果未来要读取的数据就在页中,就能够省去后续的磁盘IO,提高效率。预读为什么有效?数据访问,通常都遵循“集中读写”的原则,使用一些数据,大概率会使用附近的数据,这就是所谓的“局部性原理”,它表明提前加载是有效的,确实能够减少磁盘IO。按页(4K)读取,和InnoDB的缓冲池设计有啥关系?1. 磁盘访问按页读取能够提高性能,所以缓冲池一般也是按页缓存数据;2. 预读机制启示了我们,能把一些“可能要访问”的页提前加入缓冲池,避免未来的磁盘IO操作;InnoDB是以什么算法,来管理这些缓冲页呢?最容易想到的,就是LRU(Least recently used)。画外音:memcache,OS都会用LRU来进行页置换管理,但MySQL的玩法并???一样。传统的LRU是如何进行缓冲页管理?最常见的玩法是,把入缓冲池的页放到LRU的头部,作为最近访问的元素,从而最晚被淘汰。这里又分两种情况:1. 页已经在缓冲池里,那就只做“移至”LRU头部的动作,而没有页被淘汰;2. 页不在缓冲池里,除了做“放入”LRU头部的动作,还要做“淘汰”LRU尾部页的动作;如上图,假如管理缓冲池的LRU长度为10,缓冲了页号为1,3,5…,40,7的页。假如,接下来要访问的数据在页号为4的页中:1...
3 days ago
有人问:当“精通各种技术体系”的资历,败给了“45岁”的数字,这究竟是个人的困境,还是整个行业亟待反思的偏见?主题:为什么 45 岁程序员精通各种技术体系,却连个面试机会都很难得到?https://www.zhihu.com/question/10861834562【回答1】我自己创业过,站在招聘方的角???看这个问题,会更现实一点。说句不好听的,老板招人其实就看三样:便宜、耐操、听话。明白了这个底层逻辑,45岁程序员的困境就一目了然了。【回答2】主要是需求不匹配。精通前端:精通前端的人太多了,不差45岁这一个;精通Java:精通Java的也不少;精通Cobol:精通这个的人确实非常少,但市场岗位更少(美国还有点,中国基本没有);精通神经网络:40年前没啥工作,直接坐30年冷板凳,直到2012年后开始慢慢热起来到现在火热,参考神经网络之父Hinton,60岁之前只能猫在大学里默默研究,60岁之后才翻身;精通光刻机某个核心工艺:精通这个的人非常非常少,贸易战之前工作不好找,现在应该被抢破头。所以这是市场错配。【回答3】因为精通的绝大部分的技术体系,在失去了平台的支撑后,就如同“在饺子皮上雕花”的能力。举几个例子说明。高并发低延迟系统设计能力,难不难,肯定难,基本就是互联网高端技术能力之一了。然而需要这类能力的公司,国内有几家?在这几家之外,这种能力就是累赘。再往低点说,熟悉K8s,很多40岁以后程序员的简历都有这个能力,然而,低于20个pod以下用K8s就是浪费。然后,市面上业务发展到需要用20个pod以上的公司,又能有多少?很多40岁以上程序员的技术体系和能力,都是跟前公司的业务和体系牢牢绑定的,而且缺一不可。除非直接找竞争对手,然后还得竞争对手跟前公司用的是同一套技术体系,才有一线机会。换句话说,就是大多数40岁以上程序员,看着表面上熟悉的技术体系很多,但是绝大多数都是依赖特定的平台才能发挥作用的。离开了平台(被裁)之后,能发挥作用的地方很少很少,用人单位也只希望根据自己的平台特点,招新人来培养。【回答4】我45岁后,朋友推荐去了一家创业公司。为什么招我,因为看我简历上有个项目,他们刚好想投这种产品,觉得我可以把之前做好的东西带过去。进去后,推敲了一段时间,他们放弃了,觉得投入预算超过了他们的设想。然后就安排我去管理一个小的技术团队。我自感技术还不错,但在小组中一直没有树立技术威望。小组成员也就python很熟悉,C语言一般,还不会linux操作,所以训练环境搭建等等很多时候都需要我动手。但他们还是围着一个快30的算法工程师转,把他当成大佬。他们可能看我斑白的头发,就认为我技术和思维都落伍了吧。后来项目上与甲方客户扯皮比较多,我才发挥我的年龄优势,因为甲方一些骨干人员,是之前同事的同事(有时候技术圈子确实也不大)。通过与甲方人员建立的熟络关系,才镇住了自己的团队。我的总结,在自己职业末尾还有面试和继续工作的机会,一是他们贪念我之前做好的东西,二是自己与人打交道的能力,技术能力和项目经验反而是不太重要的东西。【回答5】总有人把“45 岁xxx”“35 岁xxx”这种自媒体卖惨叙事当做真理,拿到互联网上作为情绪铃铛,勾起那些希望合理化解释自己的“高龄”职场人关注,将矛盾转嫁到对社会的抱怨。我是真活到这个年龄的程序员,身边也不乏超过45岁的程序员朋友,身边统计学告诉我,“高龄”程序员,加上“转型”的程序员,100%依然能够拿到相对较高的薪酬。那些没有进入我的身边统计学的“高龄”程序员也是有的,确实存在不少被淘汰的“高龄”简历。但是,淘汰的理由,一定不仅仅是因为“高龄”。说白了,精通一种技术就像一把傍身好剑,年头久了生锈了,拔不出来护不了身,也换不来米。除此之外,还需要寻找至少一个应用场景,能精准戳中至少一类商业需求。年轻的时候,一心埋头钻研技术也没毛病,毕竟技术是程序员生存的下限。随着技术积累的深度和广度逐渐增强,就应该分配???来越多的精力来考虑:转化为商业价值。技术转化商业价值,有个转化率,转化率越高,价值越大。技术的价值在于:①你拥有多少;②商业价值转化率有多高。有些生锈的技术,转化率已经接近零了,就要做减值损失。只有不断吐故纳新,才能在达到不同年龄段时,活出不同的精彩。以上。==全文完==欢迎大家讨论!做了一个“反焦虑”的职场发展的社群:《40岁,创业2个月了,人生总得做点啥...》一年至少50场活动,欢迎大家加入。社群直播,10月份主题:技术人的第二曲线,欢迎参与。 阅读原文 文章原文
5 days ago
《架构师之路:架构设计中的100个知识点》105.内存管理内存管理,是架构师的基本功之一。如何掌握这项基本功,最好的方法是和开源的项目学习。memcache的内核设计,值得每一个架构师借鉴。第一部分:知其然关于memcache一些基础特性,架构师必须知道:1. mc的核心职能是KV内存管理,value存储最大为1M,它不支持复杂数据结构(哈希、列表、集合、有序集合等);2. mc不支持持久化;3. mc支持key过期;4. mc持续运行很少会出现内存碎片,速度不会随着服务运行时间降低;5. mc使用非阻塞IO复用网络模型,使用监听线程/工作线程的多线程模型;memcache的这些特性,成竹在胸了吗?第二部分:知其原理(why, what)第一部分,只停留在使用层面,除此之外,架构师还必须了解原理。memcache为什么不支持复杂数据结构?为什么不支持持久化?业务决定技术方案,mc的诞生,以“以服务的方式,而不是库的方式管理KV内存”为设计目标,它颠覆的是,KV内存管理组件库,复杂数据结构与持久化并不是它的初衷。当然,用“颠覆”这个词未必不合适,库和服务各有使用场景,只是在分布式的环境下,服务的使用范围更广。设计目标,诞生背景很重要,这一定程度上决定了实现方案,就如redis的出现,是为了有一个更好用,更多功能的缓存服务。memcache是用什么技术实现key过期的?懒淘汰(lazy expiration)。memcache为什么能保证运行性能,且很少会出现内存碎片?提前分配内存。memcache为什么要使用非阻塞IO复用网络模型,使用监听线程/工作线程的多线程模型,有什么优缺点?目的是提高吞吐量。多线程能够充分的利用多核,但会带来一些锁冲突。第三部分:知其所以然,知其内核(how)一个对技术内核充满“好奇心”的架构师,必须了解细节,掌握内核。画外音:本文刚刚开始。memcache是什么实现内存管理,以减小内存碎片,是怎么实现分配内存的?开讲之前,先解释几个非常重要的概念:chunk:它是将内存分配给用户使用的最小单元。item:用户要存储的数据,包含key和value,最终都存储在chunk里。slab:它会管理一个固定chunk size的若干个chunk,而mc的内存管理,由若干个slab组成。画外音:为了避免复杂性,本文先不引入page的概念了。如上图所示,一系列slab,分别管理128B,256B,512B…的chunk内存单元。将上图中管理128B的slab0放大:能够发现slab中的一些核心数据结构是:1. chunk_size:该slab管理的是128B的chunk;2. free_chunk_list:用于快速找到空闲的chunk;3. chunk[]:已经预分配好,用于存放用户item数据的实际chunk空间;画外音:其实还有lru_list。假如用户要存储一个100B的item,是如何找到对应的可用chunk的呢?会从最接近item大小的slab的chunk[]中,通过free_chunk_list快速找到对应的chunk,如上图所示,与item大小最接近的chunk是128B。为什么不会出现内存碎片呢?拿到一个128B的chunk,去存储一个100B的item,余下的28B不会再被其他的item所使用,即:实际上浪费了存储空间,来减少内存碎片,保证访问的速度。画外音:理论上,内存碎片几乎不存在。memcache通过slab,chunk,free_chunk_list来快速分配内存,存储用户的item,那它又是如何快速实现key的查找的呢?没有什么特别算法:1...
5 days ago
《架构师之路:架构设计中的100个知识点》 21.预防DNS劫持+IP直通车 #程序员 #架构师 #架构师之路 #干货分享合集1:架构师之路:流量从10万到10亿,一定会遇到的80个架构问题(8000字长文)合集2:关于即时通讯架构的一切! 文章原文
6 days ago
发生了啥事?时间:10.24-25(2天)事件:DACon数智大会(DataFun策划)https://h.datafuntalk.com/QGtTkg地点:北京国内比较TOP的AI大会,比较TOP的公司都会参会分享。DACon是一个什么大会?聚焦大数据和AI,邀请国内众多企业的专家来介绍他们在大模型应用、数据架构迭代方面的话题,内容涵盖汽车制造、金融、保险、电商、软件开发等领域。聚焦哪些专题?本次聚焦以下15个专题:1. 金融场景 GenAI 创新应用;2. 大模型前沿技术探索;3. AI时代数智团队危与机;4. AI 搜索技术探索与应用;5. 大模型驱动的运营与营销升级;6. 生成式推荐系统新范式;7. 构建高效AI Infra,赋能应用开发;8...
6 days ago
在程序员界,流传着这样一条堪比“第一定律”的共识:“杀一个程序员不需要用枪,改三次需求就够了。” 这虽然是一句玩笑,却精准地道出了那个让所有开发者心头一紧、瞳孔地震的瞬间,产品经理带着人畜无害的微笑走来,轻声说:“嗨,有个小需求,我们能不能稍微改一下?” 这一刻,程序员听到的往往是代码世界的崩塌声、加班夜的号角声,以及之前为完美逻辑所搭建的多米诺骨牌,被一根手指轻轻推倒的绝望。为什么简单的“改需求”三个字,能拥有如此巨大的杀伤力?主题:为什么程序员害怕改需求?https://www.zhihu.com/question/643506968【回答1】你去面馆,先叫一碗牛肉面,做好后,你再叫一碗炸酱面,做好后,你再叫一碗肥肠面。但这都不是关键,关键是你只付一碗的钱。【回答2】程序员怕改需求的本质原因是:提出需求的人,对于更改需求所需要的成本没有足够的认知。他们眼中类似的两个功能,可能从底层设计就完全不同。他们眼中,烟囱倒过来就是水井,但是他们根本不考虑,地下可能就打不出水。他们在忽略金钱成本的同时,也会忽略时间成本。【回答3】这个问题本身就是个神问题,什么行业不怕改需求?要你修个塔,你快封顶了说不要了改挖口井?预约去银行取一个亿,你们现金准备好了改需求说存一万块?拍个古装电视剧,杀青了说改需求换成时装的?什么TM的叫做程序员怕改需求?请问什么行业不怕改需求?程序员不怕改需求,怕的是改需求还不给钱。钱到位了,你要盖楼就盖楼,你要挖井就挖井,什么所谓的为什么程序员怕改需求?怕不是你自己揣着明白装糊涂,白嫖完了不想结账而已。【回答4】我现在上班越来越久了,也是越来越不怕改需求了。该怕加需求的不是我,而是老板,毕竟工资是他发的。反正我工期就这么长,也不是在什么大公司,改任何需求都必须加时间,如果不给加时间我就延期,出了问题大不了直接开始推锅,直接哪里改了,要多少工期,一二三四五点,哪里改动了,为什么延期了,一点点拉出来。实在嘴笨的,把每天工作多少的甘特图拉出来,骂人不会,拉图表还不会吗?直接把图发到公司大群,你看还有人问你为什么没做完吗?插入的需求,放大、标红、工时、一段一段列出来,老板只会问产品经理为什么要加这个需求,不会问你是为什么没按规定时间做完。需求的事情,本来就应该是产品经理在设计前期就决定好的,现在产品做到一半,来说这要改,那要改,不给我加时长我直接拒绝就好了,或者要求后期OTA,我项目期就这么长,你自己看着办。要是产品经理去找老板,就一句话滚刀,滚到老板都没法反驳:同样一件事,我一个月也是做,一个星期也是做,一天也是做。只要你敢拿着我压了时间的东西去卖,这个时间内我一定做给你。我见过好多同事,就是责任心太强。一提到要工时,就说得一板一眼的,项目怎么怎么重要,必须怎么怎么上线了。其实频繁改不合理的需求或者没有安排合理的时间这件事情本身就说明项目并不重要。从前端销售,到中部领导,再到产品经理,都没有一个人真正关心这个产品的工期和质量的,你一个一线开发,你关心有什么用呢,不如直接躺平扯淡,互相甩锅就完事了。实际上呢,老板赚了钱,会按比例拿钱给你分成吗?你再掂量掂量,在老板的心里,你有销售重要吗?【回答5】你们版本太落后了,现在都是:我也不知道我要什么,你先做一个东西出来我看看。做完之后就知道我不想要什么了。以上。==全文完==欢迎大家讨论!做了一个“反焦虑”的职场发展的社群:《40岁,创业2个月了,人生总得做点啥...》一年至少50场活动,欢迎大家加入。社群直播,10月份主题:技术人的第二曲线,欢迎参与。 阅读原文 文章原文
8 days ago
星球6月份话题:职业规划什么样的问题,是好问题?我之前没有想的问题。这个对我职业发展影响很大的问题:技术人的职业生涯,到底能不能复制? 【1】我为什么会问这个问题?我站在上帝视角这么问自己,另一个我坦诚回答:职业发展过程中,我渴望快速发展和快速晋升,我在想,是否存在一个固定模式或者策略,可以通过复制这一模式来达成职业上的成功呢?原来,我渴望的是快速成功。【2】那到底能不能复制别人的职业生涯呢?深度思考之后,我得出的结论是:很难。为什么完全复制别人的职业发展之路很难?1. 技术,市场,环境的快速变化意味着,某个人在过去成功的路径,可能在当前或将来不再适用;2. 不同地区,不同时间点,资源和机会都有所不同,这会影响职业发展的可行性;3. 每个人都有独特的教育背景、技能集和生活经历,这些都会影响职业路径的选择和成功的概率;4. 很多职业成功依赖于恰当的时机、人际关系和某些无法预测的因素,这些都难以复制;…结论似乎非常的悲观?难道每个人只能走唯一的一条路?【3】即使不能复制,我能从别人的案例中得到什么?进一步深度思考。别人职业生涯的案例,各类“成功”与“失败”,难道就不能为我自己的职业发展提供宝贵的教训和见解吗?如果能,我能得到什么呢?我能从“正面案例”中得到什么?从成功中学习:1. 成功者的心态和他们对待工作的态度经常是他们成功的关键因素,我可以从中吸取灵感;2. 观察他们如何处理职业挑战、何持续学习、如何适应行业变化;3. 成功人士的故事可以为我提供榜样,启发我模仿他们的优秀品质、策略和习惯;我能从“负面案例”中得到什么?从失败中学习:1. 失败的案例可以教我识别和避免潜在的职业风险和错误决策;2. 观察他人如何从失败中恢复和重建职业可以提供应对逆境的策略;3. 失败的故事常常强调了个人反省和自我意识的重要性,在职业发展中这是至关重要的;不是吗?我不能复制别人,但可以从别人身上有所得。【4】职场快速发展工具:榜样视角。职场心态主题,分享了一个快速成为leader的工具,“老板视角”。管理转型主题,分了一个成为好leader的工具,“员工视角”。今天,分享一个职场快速发展的新工具,“榜样视角”。身处职场,遇到一个特殊的场景(困难?困惑?),我们可以想一想:“如果我是他(我的榜样),他会怎么做?”。刷手机,不想看书...
8 days ago
《架构师之路:架构设计中的100个知识点》 20.分布式系统一致性与全局时钟 #程序员 #架构师 #架构师之路 #干货分享合集1:架构师之路:流量从10万到10亿,一定会遇到的80个架构问题(8000字长文)合集2:关于即时通讯架构的一切! 文章原文
10 days ago
《架构师之路:架构设计中的100个知识点》104.MySQL数据迁移上篇《MySQL怎么秒级平滑扩容?(第102讲)》之后,很多朋友提问,说如果不是“双倍”扩容,能否做到平滑迁移,不影响服务呢?今天和大家聊聊这个话题。适用什么场景?互联网有很多“数据量较大,并发量较大,业务复杂度较高”的业务场景,其典型系统分层架构如下:1. 上游是业务层biz,实现个性化的业务逻辑;2. 中游是服务层service,封装数据访问;3. 下游是数据层db,存储固化的业务数据;服务化分层架构的好处是,服务层屏蔽下游数据层的复杂性,例如缓存、分库分表、存储引擎等存储细节不需要向调用方暴露,而只向上游提供方便的RPC访问接口,当有一些数据层变化的时候,所有的调用方也不需要升级,只需要服务层升级即可。互联网架构,很多时候面临着这样一些需求:1. 底层表结构变更:数据量非常大的情况下,数据表增加了一些属性,删除了一些属性,修改了一些属性。2. 分库个数变化:由于数据量的持续增加,底层分库个数非成倍增加。3. 底层存储介质变化:底层存储引擎由一个数据库换为另一个数据库。种种需求,都需要进行数据迁移,如何平滑迁移数据,迁移过程不停机,保证系统持续服务,是文本将要讨论的问题。方案一:停机方案。在讨论平滑迁移数据方案之前,先看下不平滑的停机数据迁移方案,主要分三个步骤。步骤一:挂一个类似“为了给广大用户提供更好的服务,服务器会在凌晨0:00-0:400进行停机维护”的公告,并在对应时段进行停机,这个时段系统没有流量进入。步骤二:停机后,研发一个离线的数据迁移工具,进行数据迁移。针对第一节的三类需求,会分别开发不同的数据迁移工具。1. 底层表结构变更需求:开发旧表导新表的工具;2. 分库个数变换需求:开发2库导3库的工具;3. 底层存储介质变换需求:开发Mongo导Mysql工具;步骤三:恢复服务,并将流量切到新库,不同的需求,可能会涉及不同服务升级。1. 底层表结构变更需求:服务要升级到访问新表;2. 分库个数变换需求:服务不需要升级,只需要改寻库路由配置;3...
10 days ago
【1】发生了什么事情?时间:10.19(周日)全天事件:软件架构峰会地点:北京,机械工业出版社报告厅主题:架构新生,数智时代的软件架构峰会【2】有哪些架构话题?话题:《Devops转型中的生存工具》[意]克里斯蒂安.西塞里,Apiumhub联合创始人,架构师《软件架构指标》作者话题:《演进式架构构建的过去,现在与未来》[美]尼尔.福特,Thoughtworks架构师《演进式架构》作者话题:《企业数智化转型的利剑》武艳军,一汽大众首席架构师《架构现代化》译者话题:《AI时代架构师:技能,经验与发展》费良宏,AWS首席云计算技术顾问《Effective软件架构》译者话题:《下一代软件架构的分析与设计》[美]阿瑟.M.兰格,纽约哥伦比亚大学教授《数字化时代的软件架构》作者话题:《智能时代的企业架构发展》付晓岩,资深企业架构师《聚合架构》作者话题:《从架构蓝图到实施的交付链设计》杨凌云,凯捷中国区总监《解决方案架构师修炼之道》译者话题:《架构师如何快速成长》沈剑,据说是架构师?《分布式系统模式》译者【3】《架构师如何快速成长》讲些啥?本次分享将直面三个核心问题:如何快速成长?如何快速提升认知并拿到结果?有没有什么提升成长速度的思考工具?届时我将分享自己快速成长的几个工具。这不是一场概念空谈,而是一次纯干货的行动指南。希望能帮助大家,更快速的成长。分享大纲:1. “架构师成长”这个命题,到底在聊什么?2. 架构师如何最快速地提升认知?3. 架构师如何最快速地拿到结果?4. 三个快速成长的工具分享。【4】《分布式系统模式》是本什么书?我的第一本架构译作,也是《分布式系统模式》的首译。新书上架,有幸进入了JD图书销量榜与JD新书热卖榜双榜单:JD图书销量榜JD新书热卖榜画外音:计算机与互联网大类,软件工程及软件方法学二级类目榜单。目前几乎都是AI书籍的天下,在架构类书籍几乎无人问津的今天,能有此成绩,实属不易,感谢大家的支持。这,是一本关于“分布式系统模式”的书(废话=_=)。什么是模式?模式,是对于重复出现的问题,提炼专家经验,能够实现高效复用的解决方案。设计模式,是经过验证的面向对象设计的经验结晶。分布式系统模式,是经过验证的分布式系统架构设计的经验结晶。有本书讲解了30种常见的架构模式:就这么说,但凡搞分布式系统架构设计,上面这些架构模式,你都是逃不开的。有什么福利吗?新书上架,7折(原价99)。亲笔签名版(约200本)。能白嫖吗?可以,原价99的书,来参加软件架构峰会,免费送亲笔签名版(约50本),欢迎白嫖。【5】如何参加软件架构峰会?扫码预定席位,门票99。画外音:1. 现在居然还有门票99的架构大会?2. 99门票,送99签名书,举办方怎么想的?当然,如果你已经有了《分布式系统模式》,可以来现场签名。这样就还能白嫖一本其他嘉宾的签名书。欢迎大家报名参加,期待面基!我的处女译作,感谢大家支持! 文章原文