亿级用户下的新浪微博平台架构

序言 新浪微博在2014年3月公布的月活跃用户(MAU)已经达到1.43亿,2014年新年第一分钟发送的微博达808298条,如此巨大的用户规模和业务量,需要高可用(HA)、高并发访问、低延时的强大后台系统支撑。 微博平台第一代架构为LAMP架构,数据库使用的是MyIsam,后台用的是php,缓存为Memcache。 随着应用规模的增长,衍生出的第二代架构对业务功能进行了模块化、服务化和组件化,后台系统从php替换为Java,逐渐形成SOA架构,在很长一段时间支撑了微博平台的业务发展。 在此基础上又经过长时间的重构、线上运行、思索与沉淀,平台形成了第三代架构体系。

两个程序员的故事

从前,有两家互不知晓的公司,一家叫做“自动会计应用协会”,另外一家叫做“统一计算资本公司”。他们同时决定开发一种提供相同功能的程序。 “自动”雇佣了一位分析程序员,艾伦,来解决这个问题。 而“统一”决定试一下新来的初级程序员查尔斯,看看他是否有真本事。

为什么说2015年将是微服务架构元年?

编者按:微服务架构(MSA)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的类上应用很多SOLID原则。微服务架构是个很有趣的概念,它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。

造成IT项目失败的五个原因

1. 技术与商业需求相悖 酷炫前沿技术不一定就是最适合,虽然新技术看上去很美。但是时刻紧记的一点应是如何以最小的代价获取最大的商业收益。因此,要先想明白“为什么”和“是什么”,然后才是“如何做”。 2. 急于求成 在明确项目范围前,人们往往会更倾向于尝试先做。这份自信或许来自过去成功的经验和认为技术能够摆平任何困难。这不但是个代价高昂的举措,而且会影响需求分析和造成80/20问题的出现(当80%的需求满足时,20%“有就更好”的需求往往会成为决定成败与否的关键因素)。

如何保持积极的心态

创造你的生活应该是你能做的一件最有影响力的事情。你可以身处在某个情况下看到积极的一面,在同样情况下,你也可以选择去看消极的一面。通常情况下,你所意识到的正在发生的事情是透过你脑子中的想法体现出来的。 积极的想法能够创造出更多的可能。如果你想把关系搞得更好,在你的职业生涯中更加成功或者找到能带给你宁静和安逸的幸福,那么试着去注意你生活中的积极,正确的一面是一个不错的开始。 而另一方面,消极的想法只会让你觉得不满,沮丧和挫败感。你把它想的太糟糕,他就会变得太糟糕。学着去改变你消极的想法会让你沮丧的生活变得充满自信。

盘点2014年科技界六大技术失败

谷歌眼镜 尽管我们每天都能从报纸上看到有科学家取得了一些突破,但其实,绝大多数技术都以失败告终,主要原因在于这些技术达不到应用规模,这就使它们缺少与人类生活的相关性,从而导致失败。技术失败的原因当然无法预测,否则,这项技术或许早就被扼杀在摇篮中。

新物流的崛起:一场从主动脉到毛细血管的创新

最近,我和Leon都关注到了有一类服务正在快速崛起,那就是“新物流”服务,其最常见的应用就是快速配送服务。崛起表现在哪?不仅国内外此类服务的数量开始迅速上升,而且在A、B轮所融到的资金额度也大幅提高。虽然不及互联网金融、互联网教育的投资热度来的疯狂,但作为一种物流服务、作为 O2O 服务中的一个垂直环节,动辄几千万美金的融资额已经不容小觑。它会是市场的下一个爆发点。

OpenSignal:Android碎片化越来越严重 目前已有18796种不同设备

碎片化问题,让Android这个移动操作系统领域的霸主饱受困扰多年,尽管谷歌最近也一直在稳步采取措施解决这个问题,但仍旧有许多不同设备运行着各种Android版本。这也让开发者痛苦地无休止迎合越来越多的移动平台。这个问题究竟有多严重?OpenSignal的一份报告给出了答案。

六大神器助力SaaS公司留住老用户

【编者按】当下的SaaS公司投入巨大资源去吸引新用户,这无可厚非,但是DZone的Ashli N.却发出不一样的呐喊,他认为SaaS公司应该更关注老用户,即如何留住已有用户才是成功的关键,他总结了留住老用户的三条理由,以及如何留住老用户的6大神器,相信还在为自己的App如何留住用户而烦恼的创业者们可以借鉴一下。 以下为原文:

为什么软件测试需要变革?

世易时移,现今的科技发展一日千里,软件测试这门科学也到了该进行革命的时候了,“这是变革者的路!。”Bhumika Mehta的这篇文章很好的诠释了为什么软件测试需要变革以及如何进行变革。他认为,软件测试需要的就是想法与创意。没有想法的测试人员可能在测试这条路上不会走得太远。

图说计算机病毒史

计算机病毒由来已久,最初它们只是一些恶作剧,如今有的已经发展成了军事武器。最近有一家名为“Computer Virus Catalog”的网站对计算机病毒历史进行了研究,并且还给每一个病毒配上了图片。在这份历史榜单中,我们病毒主要集中在DOS时 代,特别是上世纪90年代末的病毒繁荣期,当然许多著名的恶意软件也随着时间流逝被淹没在历史长河中。后来,很多病毒都以可视化组件的形式出现,比如有可 视化的电子邮件蠕虫病毒,还有让你的电脑屏幕布满绿色真菌的病毒,当这些可视化恶意软件出现时,你的第一反应肯定就是“我中毒了!”

在程序员的眼里,用户是这样使用他们开发的软件的

我曾经说过,程序员不是一般的人,是具有某种超能里的人。但问题是,程序员往往意识不到自己的这种特异功能,在他们的眼里,会认为自己很普通,跟常人一样,所以,程序员能做到的事情,其他人——比如他们的客户/软件用户——也应该很容易做到。但事实上,由于大部分人——绝大部分人(包括软件开发公司的客户/购买软件的用户)——都是电脑小白(对电脑知识/计算机知识/软件知识知之甚少的人)。一个对于程序员来说很显而易见的软件操作,换成让用户来操作,就会出现各种各样奇怪的事情。这让程序员非常痛苦。

吐槽编程问题的五张漫画

大家可能知道,我时常活跃于Stack Overflow——当今最热门的程序员问答网站。该网站的好同志们公开了他们的数据,任何人都可以通过这个页面查询他们的数据库:data.stackexchange.com 那里的很多问题和回答都配上了XKCD(由Randall Munroe 创作)的漫画链接,于是我决定扒一扒,哪几篇漫画最爱被程序员拿来吐槽他们遇到的奇葩事。

Bug的类型

美国计算机科学家、图灵奖获得者詹姆斯·尼古拉·格雷(Jim Gray),在他的著名的论文“Why do computers stop and what can be done about it?”中首次提出了程序bug的类型,比如玻尔bug(Bohrbug)、 海森堡bug(Bohrbug)等用著名科学家名称命名的bug。后来又出现了更多的bug类型。现在,让我们来看看它们都是什么bug类型。 美国计算机科学家、图灵奖获得者詹姆斯·尼古拉·格雷(Jim Gray)

高效程序员的特征:聪明,懒惰

这里我使用了聪明,懒惰和程序员这几个词。我说的这几个词的意思是: 程序员:有积极活力的,专注于用代码解决真实世界里的问题 不是指那些梦想家,那些永远只想不做的人 聪明:能够周全的思考问题(不是那些耍小聪明的人) 懒惰:就像是程序中的lazy-loading,是指延后写代码的时间(而不是无所事事的人)。