- 博客(15)
- 资源 (145)
- 收藏
- 关注
原创 Serverless:微服务架构的终极模式
微服务的生态和实践已经比较成熟,其设计方法、开发框架、CI/CD工具、基础设施管理工具等,都可以帮助企业顺利实施微服务。然而,微服务远没有达到完美,它在架构、开发、基础设施方面仍然面临新的挑战。微服务面临的挑战微服务的粒度影响服务的交付速度及扩展性,微服务的开发引入治理组件,增加了开发的难度,以容器为基础的微服务基础设施在弹性等方面仍有不足,而微服务增加带来的基础设施成本也是微服务实施的新挑战。1.微服务的粒度仍然比较大当前微服务划分主要遵循单一职责的原则,比如将用户管理的功能作为一个单独的微服务。
2021-11-26 09:31:36 1117
原创 详解阿里开源分布式事务框架Seata
Seata发展历史笔者于2014年开始着手解决阿里巴巴集团内部业务的分布式事务问题,从0到1研发一个支持非侵入模式(内部称之为AT模式,即自动模式)和TCC模式(内部称之为MT模式,即手动模式)的分布式事务中间件TXC(Taobao Transaction Constructor)。TXC被广泛应用于阿里巴巴集团内部业务,主要用于解决HSF服务框架下多个数据库读写间的一致性问题。在实际业务使用中,以非侵入模式为主,TCC模式为辅助。2016年开始,这个产品以云服务的形式对外输出,名称为GTS(Globa
2021-11-25 09:33:00 1169
原创 图论算法:稳定婚姻问题,如何找到最适合自己的另一半
什么是算法?每当有人问我这样的问题,我总会引用下面这个例子。假如你是一个媒人,有若干名单身男子登门求助,还有同样多的单身 女子也来征婚。如果你已经知道这些女孩儿在每个男孩儿心目中的排名,以及男孩儿们在每个女孩儿心目中的排名,那么你该怎样为他们牵线配对呢?最好的配对方案当然是,每个人的另一半正好都是自己的“第一选择”。这当然很完美,但绝大多数情况下都不可能实现。比方说,男 1 号的最爱是女 1 号,而女 1 号的最爱不是男 1 号,这两个人的最佳选择就不可能被同时满足。如果出现了好几位男士的最爱是同
2021-11-24 09:21:38 580
原创 筹备两年,60万字诚意续作《腾讯游戏开发精粹Ⅱ》正式发布
2019年,腾讯游戏学堂联合多名技术专家,整理沉淀前沿技术方案,出版《腾讯游戏开发精粹》,受到了行业的关注和认可。经过2年筹备,《腾讯游戏开发精粹Ⅱ》正式发布,收录 21 个在上线项目中得到验证的技术方案,深入介绍腾讯游戏的新研究成果和新技术进展,涉及人工智能、计算机图形、动画和物理、客户端架构和技术、服务端架构和技术及管线和工具等多个方向。适合游戏从业者、游戏相关专业师生及对游戏幕后技术原理感兴趣的普通玩家。在《腾讯游戏开发精粹Ⅱ》中,你能了解到以下技术方案。图片第一部分 人工智能第1章 基于
2021-11-23 09:39:11 995
原创 研发效能提升的八项实践建议
笔者常会被问及这样的问题:“你之前主导的研发效能提升项目都获得了成功,如果请你到我们公司来,几年可以帮助我们把研发效能做好?”这其实是一个无解的问题。从某种程度上说,投入大,周期就会短,但是实施周期不会因为投入无限大而无限变短。我们可以避开很多曾经踩过的坑,尽量少走弯路,但是适合自己的路还是要靠自己走出来的,拔苗助长只会损害长期利益。买了一辆跑车,你就能成为赛车手吗?鉴于此,笔者总结了八项实践建议,如下图所示,供读者参考。图 研发效能提升的八项实践建议01从痛点入手研发效能提升八项实践建议
2021-11-19 09:44:51 1358
原创 指令重排序导致的可见性问题
01什么是指令重排序指令重排序是指编译器或CPU为了优化程序的执行性能而对指令进行重新排序的一种手段,重排序会带来可见性问题,所以在多线程开发中必须要关注并规避重排序。从源代码到最终运行的指令,会经过如下两个阶段的重排序。第一阶段,编译器重排序,就是在编译过程中,编译器根据上下文分析对指令进行重排序,目的是减少CPU和内存的交互,重排序之后尽可能保证CPU从寄存器或缓存行中读取数据。在前面分析JIT优化中提到的循环表达式外提(Loop Expression Hoisting)就是编译器层面的重排序
2021-11-18 11:02:11 2054
原创 来看看深度学习如何在文娱行业“落地”
深度学习伴随着大数据与云计算技术的崛起而快速发展起来,并在计算机视觉、语音等感知领域迅速取得成功。相对于传统机器学习,深度学习的算法设计更加灵活,可以显著提升针对感知类问题的效果。随着算力及分布式工程能力的进一步提升,深度学习的参数规模越来越大。可以说,参数越多,模型对知识的理解就越深刻。而深度学习模型也从传统的针对单一任务,比如文本识别、物品识别、语音识别等,向多任务处理发生转移,我们称这种一个模型可以同时处理文本识别与理解、图片识别与理解,实现跨领域联动识别与理解的能力为多模态通用AI能力。随着深度
2021-11-16 09:55:05 377
原创 校招 C++ 大概学习到什么程度?
一图胜千言,成为熟练工。C/C++ 这门语言与其他高级语言不同,它是离操作系统较近的语言。所以学好 C/C++ 体系的技术栈必须结合操作系统的运行机制来学习。展开来说,就是你必须掌握操作系统层面的几大基础知识,他们是汇编、编译链接与运行时体系、狭义的操作系统原理、多线程、网络编程。▼第一个基础知识是汇编,我们学习汇编不是一定要用汇编来写代码,就像我们学习 C/C++ 也不一定单纯为了面试和找工作。对于 C/C++ 的同学来说,汇编是建议一定要掌握的,只有这样,你才能在书写 C++ 代码的时候,清楚
2021-11-15 13:48:32 247
原创 我终于知道,中国互联网是怎么弯道超车,干翻美国了
前两天,我跟《沸腾新十年》一书中写过的某君吃饭,他谈到这样一个观点:“美国之所以能成为超级大国,是因为在二战后,美国把大量军用技术转变成民用技术,将天量的战争投资转变成社会投资,以此推进美国科技的巨大进步,其中最典型的就是计算机和互联网,然后才有了群星璀璨的美国九十年代。而苏联的失败之处,就在于太过保守,对于军转民异常谨慎,以至于大量先进技术没有实现商业循环,变相浪费了苏联巨额的国家投资。”我笑着问他:“那照你这样说,所有竞争都是钱的竞争,那中国互联网没有老美钱多,为什么近些年反而超过老美呢?”答
2021-11-12 09:55:17 715
原创 来,带你一次性搞懂数据分析和数据挖掘
一直都有很多朋友想要学习数据分析,希望小编可以推荐一些靠谱的书。大家要么是看到了数据的重要性,想要转行做数据分析师,要么是本职工作需要,想要学习一些数据分析相关的知识来赋能自己的工作。无论怎样,数据分析这项技能真的是被越来越多的人所需要,而对于在职场上的发展有更高追求的小伙伴,更是有深入学习数据挖掘的打算!那么,数据分析与数据挖掘之间有怎样的关系?有了数据分析基础是否可以更容易上手数据挖掘?在学习路径方面又需要注意些什么呢?数据分析是指用适当的统计方法对收集的海量数据进行分析、提取有用的信息和形成
2021-11-12 09:50:05 1961
原创 如何成为一名合格的CRUD工程师?
一九七零年,那是一个夏天。有一位来自IBM圣约瑟研究实验室的高级研究员Edgar Frank Codd在Communications of ACM上发表了名为A Relational Model of Data for Large Shared Data Banks的文章,从而创建了关系数据模型。时至今日,基于该模型的关系数据库仍然是企业存储和处理数据的主要方式。甚至可以说,绝大多数IT系统都是围绕着数据库执行数据增删改查操作的。目前主流的关系型数据库包括MySQL、Oracle、Microsoft S
2021-11-09 09:23:51 828
原创 实用推荐系统:寻找有用的用户行为
大多数关于推荐系统的图书都讲述了算法及其优化方法。这些书都认为你已经有了一个大的数据集来供算法使用。数据集不会像变魔术那样凭空出现。要想收集到正确的用户偏好数据,就需要投入精力和进行思考。它会成就你的系统,或者搞砸你的系统。“垃圾进,垃圾出。”(Garbage in, garbage out.)这句著名的编程箴言对于推荐系统同样适用。 遗憾的是,适用于某个系统的数据可能不适用于另一个系统。出于这个原因,我们将认真讨论可用的用户行为数据,以及如何在你自己的站点中收集数据。用户参与度高的网站使其拥有者
2021-11-08 10:39:27 296
原创 根本停不下来,原来学计算机可以这么有趣
对于很多人来说,他们生活在一个有智能手机、平板电脑、可以随时随地上网、打电话、聊天交友、购物的时代。殊不知我们现在所享受的这些便利都源于二十世纪最伟大的发明之一——计算机尽管计算机与互联网已经随处可见,但是为了探寻底层,科技的发展进步。你还是应该了解一下:计算机怎么会一步步地变得能干起来、变得越来越“聪明”了?这也是我们科普的价值所在。让更多人开始对计算机科学产生好奇心和探索欲望充满激情地体验在创造代码过程中征服难题的成就感。话不多说,说学就学,那我们准备开始了解计算机基础知识啦计算机.
2021-11-05 11:04:49 296
原创 一部亚马逊4.5高分的领域经典,首次落地中国
给中国软件工程师的寄语(节选)致我的兄弟姐妹们:和你们一样,我的职业生涯始于软件工程师,那是1975年,将近半个世纪之前。我认为我们在时间和国家方面的差异相当微不足道。所以,我像和我的朋友、我的同龄人一样与你交谈。26 年后的今天,当我审视201 Principles of Software Development中的这201 条原则时,我很高兴地宣告,几乎所有的原则都经受住了时间的考验,就像物理学中的基本原理一样。当你做软件架构设计或“抛出代码”时,不要忽视真正重要的事情。那是什么呢?是你的正直
2021-11-04 09:57:50 185
原创 RPC就好像是谈一场异地恋
RPC作为目前的主流技术之一,它打破了某一项任务所需的计算资源只能靠一台计算机来实现的固有想法,对分布式计算、微服务等领域都有着重要而深远的影响。从20世纪80年代至今近四十年的时间内,由RPC衍生出来的技术非常多,包括很多现在常见的中间件技术都离不开RPC。网络技术的发展,以及操作系统中的进程间通信技术越发多样化和成熟,这些都为RPC的出现打下了非常好的基础。RPC框架是为了实现RPC而衍生出来的技术产物,它是RPC领域中可复用的软件架构解决方案。想要了解RPC框架原理,最重要的就是了解RPC框架怎么
2021-11-02 09:28:18 215
智能硬件安全试读样章
2016-12-30
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第2版)试读样章
2016-12-30
Python高效开发实战——Django、Tornado、Flask、Twisted试读样章
2016-12-30
TensorFlow实战试读样章
2017-02-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人