分布式事务之基本概念
什么是事务?举个生活的例子:你去小卖部买东西,“一手交钱,一手交货“就是一个事务的例子,交钱和交货必须全部成功,事务才算成功,任一个活动失败,事务将撤销所有已成功的活动。
明白上述例子,再来看事务的定义:
事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。
本地事务
在计算机系统中,更多的是通过关系型数据库来控制事务,这里...
阅读全文
简单的说,好友系统是维护用户好友关系的系统。我们最熟悉的好友系统案例当属QQ,实际上QQ是一款即时通讯工具,凭着好友系统沉淀了海量的好友关系链,从而铸就了一个坚不可摧的商业帝国。好友系统的重要性可见一斑。
熟悉互联网产品的人都知道,当产品有了一定的用户量,往往会开发一个好友系统。其主要目的是增加用户粘性(有了好友就会常来)或者增加社区活跃度(有了好友就会多交流)。
而我的后台开发生涯就是...
阅读全文
在解答这个疑惑之前,我们先来看一则故事:旅行者路过某个工地,建筑工人们都在忙碌。出于好奇,旅行者问第一个人在干什么,那人头也没抬地回答道:我在搬砖。旅行者问第二个人在干什么,这个匆匆抬起头认真地说:我在砌墙。旅行者问第三个人在干什么,那个人脸上充满了光彩,很自豪地说:我在建造圣索菲亚大教堂,将福音传播给更多人!
程序员真的需要懂得架构吗?
有的人只关注眼下的“点”,有的人看到了延伸的“线”,...
阅读全文
架构师,我们程序员打怪升级的主要方向,它不像某些技能报个培训班就可以获得。胜任架构工作需要具备许多技能,如果想尽快转型升级至架构师,那你必须在日常工作中有意识地储备这些技能。网络上有不少架构师技能图谱,但高质量的很少,大部分都是东拼西凑出来的,脉络不够清晰,层次不够分明,杂乱无章,缺乏逻辑,就像拿着错乱的武学秘籍练功,练不成真本领还是小事,就怕走火入魔、浪费时光。
从程序员到架构师有快捷的方...
阅读全文
微服务、DevOps、云计算,业界应对“快”挑战的三大兵器,但其中任何一件都不是能轻松玩转的。微服务,在带来好处的同时,也引入了大量复杂度;DevOps,不仅要求团队文化、组织架构和研发流程做出调整,还对应用开发提出了新的要求;虚拟机、容器、镜像等新技术亟待学习,我们能快速跨越云计算这套技术栈吗?
SpringCloud,它将帮我们填平横跨在应用开发与微服务、DevOps、云计算之间的沟壑,让我们轻松拥抱云上微服务,...
阅读全文
微服务是当下最流行的应用架构技术了,它跟容器服务、DevOps合称云时代的三剑客,可以帮我们化解业务发展过快导致的产品迭代压力,让我们可以自由选择最适合团队的技术栈,让系统能够承载互联网海量用户的访问,让我们可以更加轻松地运维大型的互联网系统。近些年在厂商、社区和用户等各方努力推动下,微服务相关的理论和产品都日趋成熟,不同语言的微服务开发及治理套件(例如:SpringCloud/Dubbo等)让我们从零开始搭建微...
阅读全文
我们将研究如何优化从闪存驱动器或者网络中加载和显示图片。
绘图性能相关紧密相关的是图像性能。
绘图实际消耗的时间通常并不是影响性能的因素。图片消耗很大一部分内存,而且不太可能把需要显示的图片都保留在内存中,所以需要在应用运行的时候周期性地加载和卸载图片。
图片文件加载的速度被CPU和IO(输入/输出)同时影响。iOS设备中的闪存已经比传统硬盘快很多了,但仍然比RAM慢将近200倍左右,这就需要...
阅读全文
AJAX是web2.0的基石,现在网上流行几种开源的AJAX框架,比如:jQuery,Mootools,Dojo,Ext JS等等,那么我们到底在什么情况下该使用那个框架?
其中Prototype使用率最高,很大程度上是因为它是最早成熟的框架,很多以前在项目中采用,所以现在一直在用
让我们来看看选择AJAX框架的基础:
你的项目需求(即你需要哪些特性,例如是否要求做出精美的界面、特效或其它功能)
1、是否支持A等级的浏览器(IE, Firefox等...
阅读全文
以下CPU的操作都会延迟动画的开始时间:
这意味着它不会影响到帧率,所以很好,但是他会延迟动画开始的时间,让你的界面看起来会比较迟钝。
布局计算-如果你的视图层级过于复杂,当视图呈现或者修改的时候,计算图层帧率就会消耗一部分时间。特别是使用iOS6的自动布局机制尤为明显,它应该是比老版的自动调整逻辑加强了CPU的工作。
视图懒加载-iOS只会当视图控制器的视图显示到屏幕上时才会加载它。这对内存使用和...
阅读全文