最新文章
Linkedin工程师是如何优化他们的Java代码的 编程语言
英文原文:LinkedIn Feed: Faster with Less JVM Garbage 最近在刷各大公司的技术博客的时候,我在Linkedin的技术博客上面发现了一篇很不错博文。这篇博文介绍了Linkedin信息流中间层Feed Mixer,它为Linkedin的Web主页,大学主页...
做一个网站多少钱? 互联网
「一辆车子多少钱?一个房子多少钱?」 这问题在工程师或设计师的眼里就如「一辆车子多少钱?一个房子多少钱?」,这个问题实在空泛到一个让人无法言语的境界,这也是我最常被问到的问题「做一个网站多少钱?」。说真的我大概能了解提问人的想法,或许只要说出个大概就是他们要的答案,例如说个几千到几万之间,或许...
对SOA架构思想的一些说明 软件设计
从纵向到横向 传统业务系统的构建更多的是竖井式的纵向思想,这个主要是从单个业务系统孤立来看都是垂直应用。那么SOA架构的视角是从整个企业应用架构环境来看,思想的核心转变就是从传统的纵向独立构建模式转变为横向从底朝上逐层构建模式,在这个构建模式中首先是底层的资源层(独立的业务组件),然后是服务层...
为什么社交网络中数据翻页技术复杂 互联网
最近讨论的一个传统的问题,问题本身比较简单,针对key-list类型的数据,如何优化方案做到性能与成本的tradeoff。Key-list在社交产品及面向用户的产品中非常普遍,如一个用户的好友关系 {“uid”:{1,2,3,4,5}},表示某个uid有1,2,3,4,5好友;一条微博下面的评论...
案例分析:基于消息的分布式架构 软件设计
美国计算机科学家,LaTex的作者Leslie Lamport说:“分布式系统就是这样一个系统,系统中一个你甚至都不知道的计算机出了故障,却可能导致你自己的计算机不可用。”一语道破了开发分布式系统的玄机,那就是它的复杂与不可控。所以Martin Fowler强调:分布式调用的第一原则就是不要分布...
你的数据库危机四伏 数据库
英文原文:Your Database: The Threat That Lies Within 我们已经给予了数据库充分的关注,因此它们不应成为IT风险因素。但即便为DRP(灾难恢复计划)准备预算、备份机制并且拥有一流的DBA,数据库仍然造成了重大威胁。这是为什么呢? 变得敏捷 在快速发展...
《星际穿越》科学解析 其他分类
正如罗胖说的,互联网时代讲究的是跨界,但是将科学研究,尤其是理论科学研究,更尤其是理论宇宙学的科学研究与电影结合起来,恐怕诺兰的新片Interstellar尚属首次,况且还结合的如此之完美,经典就这样产生了。虽然不同偏好的观影人对影片分歧很大,但这部才上映三天(原文发布于11月10日)的电影已经...
《星际穿越》初解析:一部空前绝后的史诗科学巨作 其他分类
星际穿越通篇没有一句多余的对白,也没有多余的一个镜头,169分钟超大信息量填满整部电影。这里我打算从两个方面去分析这部电影,一方面是所谓的解析,当然我的天体物理知识有限,只能通过二刷的认知和网上各方面的综合信息得出我的结论,同时也欢迎大家随时指正;另一方面就是从剧作上分析经典桥段和对白,也就是对...
一个很有借鉴价值的编程故事 程序人生
英文原文:A Cautionary Tale of Learning to Code 这是一个真实的故事,关于我自己的。一个理智的生命个体是怎么一步步走向疯狂? 我穿着西装,坐在办公室里,脑子里有一个模糊的创业想法。然后,我决定学习编程。我曾经无意中听到过几个人在那吹牛说自己怎么使用一种叫R...
爱能被量化吗 - 《星际穿越》的两个终极问题 其他分类
反映宇宙与生命题材的电影,一直都是很难看的,为什么?因为太空里都是慢动作,节奏太慢,不好看;看过天宫一号的“我已出舱,感觉良好”的转播镜头吧?等了十分钟才动了一点点;不要听人吹嘘《2001-太空之旅》如何博大精深,老老实实说人话,正常人坐不住20分钟就得换频道。也不要相信什么最后穿越时空的表现有...
表单设计的思考 互联网
我们几乎每天都会接触形形色色的表单,登录账号、填写信息以获取服务、发布内容等。然而填写表单的过程往往不是特别愉悦的,我们需要消耗时间输入信息,点击提交,可能还需要等待审核;尤其是碰到较为复杂、流程长的表单,如果用户体验较差,很容易让人产生挫败感,在中途选择放弃。 那么,如何提高用户填写表单的效...
6种常见的数据加载模式设计 软件设计
设计师在进行APP设计的设计时,往往会更加专注于界面长什么样,界面和界面之间怎么跳转,给予用户什么样的操作反馈,却偏偏特别容易忽略掉一个比较重要的环节,就是APP数据加载中的设计,所以会导致我们看到的APP,往往有着华丽的启动界面,然后就是漫长的数据加载等待,甚至在无网络的时候,整个处于不可用状...
Couchbase:更好的Cache系统 互联网
在移动互联网时代,我们面对的是更多的客户端,更低的请求延迟,这当然需要对数据做大量的 Cache 以提高读写速度。 术语节点:指集群里的一台服务器。 现有 Cache 系统的特点 目前业界使用得最多的 Cache 系统主要是 memcached 和 redis。 这两个 Cache 系统都...
缓存是新的内存 电脑硬件
英文原文:Cache is the new RAM 这是一次在 defrag 2014的演讲。 这是经过长时间地多次技术变革后的(多个)技术优势之一。你看到了实际上突破。如果你只是看到了其中的一部分,很难正确推断。你要么短期有进展,要么落后很远。令人惊讶的不是事物变化的速度,而是一点一滴长...
亿级Web系统搭建——单机到分布式集群 软件设计
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制。在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决...
SOA与API的分裂和统一 软件设计
英文原文:SOA and API Schism and Unification 虽然API和SOA有着相似的商业和技术目标,许多API的支持者却坚持表示API与SOA几乎没什么关联,认为它们属于截然不同的方法。他们经常宣扬务实的REST API和SOA之间有着巨大的差异。分工限制了SOA服务和...
可测性分析和实践 软件测试
软件测试中可测性一般是指对系统的可控性、可观测性进行的评估,借以反映系统设计、实现对测试的友好程度和相应的测试成本。可测性在测试阶段会对系统的测试成本及关联产品代码的Patch次数产生重大影响。如何提高可测性成为软件生命周期特别是前期(设计阶段、coding阶段)重要的一环。 本文带领大家探索在...
OWIN初探 .NET技术
什么是 OWIN ? OWIN的全称是 "Open Web Interface for .NET", OWIN 在 .NET Web 服务器和 .NET Web 应用之间定义了一套标准的接口, 其目的是为了实现服务器与应用之间的解耦, 鼓励为 .NET Web 应用开发简单模块。 OWIN ...
也谈如何构建高性能服务端程序 软件设计
引子 我接触过很多编程语言,接触过各种各样的服务器端开发,Java,Go,Ruby,Javascript等语言,Spring,Node.js,Rails等等常见服务器端框架和编程模型都有接触。这里谈一下我个人对高性能服务器端程序的一些看法,希望给各位读者一些认识。这片文章提到的内容也是 Cod...
什么是自组织团队? 项目管理
英文原文:What Are Self-Organising Teams? “最好的架构、需求和设计出自自组织团队”,敏捷宣言如是说。这带出几个问题:什么是自组织团队?为什么我们需要它们?自组织团队有什么差异?我们如何支持自组织?是否有什么方式有助于浮现出这种特殊的协作类型? 出人意料的是,并...