最新文章
架构漫谈(五):什么是软件 软件设计
上篇:架构漫谈(四):如何做好架构之架构切分 前面通过四篇文章,把什么是架构,如何做好架构等必要的概念澄清了一下。这些概念对于在各种不同的领域都应该也是有用的,需要读者自行思考,并应用到自己所在的领域中。在这篇文章开始,我们用同样的思考,来看看软件是怎么回事,以及如何运用架构思维,更好的设计...
架构漫谈(四):如何做好架构之架构切分 软件设计
上篇:架构漫谈(三):如何做好架构之识别问题 前一篇已经讲了如何识别问题。在识别出是谁的问题之后,会发现,在大部分情况下,问题都迎刃而解,不需要做额外的动作。很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉求导致的。但是总还有一部分确实是有问题的,需要做调整,那么就必须要...
架构漫谈(三):如何做好架构之识别问题 软件设计
上篇:架构漫谈(二):认识概念是理解架构的基础 按照之前架构的定义,做好架构首先需要做的就是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决80%了。这个能力基本上就决定了架构师的水平。 那么面对问题有哪些困难呢? 我们先看一则笑话。女主人公:老公,把袋子里的...
架构漫谈(二):认识概念是理解架构的基础 软件设计
上篇:架构漫谈(一):什么是架构? 在前一篇文章中,我们讨论了什么是架构。事实上,这些基础概念对于做架构是非常重要的,大部分人对于每天都习以为常的概念,都自以为明白了,但实际上都是下意识的,并不是主动的认识。比如说“什么是桌子?”,做培训的时候,我经常拿这个例子来问大家,回答千奇百怪。这实际...
结对编程——我的噩梦 程序人生
英文原文:Pair Programming - My Personal Nightmare 自从极限编程诞生起,我就一直在听说结对编程是个好东西。所有的敏捷传教士们都在告诉我们:结对编程能提高代码质量,有助知识共享,甚至激发开发效率,同时,还能深度拉近程序员之间的感情关系(参看拥抱编程)。 ...
我是一个线程 编程基础
来自:码农翻身(微信号:coderising) 作者:IBM刘欣 我是一个线程,我一出生就被编了个号: 0x3704,然后被领到一个昏暗的屋子里, 这里我发现了很多和我一模一样的同伴。 我身边的同伴0x6900待的时间比较长, 他带着沧桑的口气对我说: “我们线程的宿命就是处理包...
为什么未来是全栈工程师的世界? 程序人生
技术在过去的几十年里进步很快,也将在未来的几十年里发展得更快。今天技术的门槛下降得越来越快,原本需要一个团队做出来的Web应用,现在只需要一两个人就可以了。 同时,由于公司组织结构的变迁,也决定了赋予每个人的职责将会越来越多。尽管我们看到工厂化生产带来的优势,但是我们也看到了精益思想带来的变...
程序bug导致了天大的损失,要枪毙程序猿吗? IT业界
文/雷子,来源/公众号:东京 IT 人 号外!号外!走过,路过,不要错过!日本 IT 业的狗血八卦继续独家放送啦!! 2015 年 9 月 3 日,随着东京最高法院驳回瑞穗证券的上诉,维持二审的原判结果,一个长达 10 年的诉讼终于画下了句号。这个判例将对 IT 行业产生深远的影响:如...
如何运维千台以上游戏云服务器 云计算
来自上海游族网络的运维总监李志勇,在3月4日云栖社区中带来的分享“如何运维千台以上游戏云服务器”。本次分享重点是云时代的运维,包括游戏上云部署整体方案、游戏服务器批量运维管理,并对企业选择RDS还是自建MySQL数据库给出了自己建议。 游戏产品架构进化史 图一:游戏产品架构进化史 经过...
架构漫谈(一):什么是架构? 软件设计
架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。专栏的目的是希望能抛出一些观点,并引发大家思考,如果你有感触或者新的感悟,欢迎联系专栏负责人Gary(微信greenguolei)深...
架构的本质 软件设计
目前讨论架构实操(术)的文章较多,讨论架构理念(道)的较少,本文基于作者在大型电商系统架构方面的一些实践和思考,和大家聊聊架构理念性的东西,希望能够抛砖引玉,推进大家对架构的认识。 什么是道,什么是术?道是事物发展的本质规律,术是事物发展的具体途径。规律只有一个,途径很多,条条大路通罗马,...
谷歌背后的数学 互联网
一. 引言 在如今这个互联网时代, 有一家公司家喻户晓——它自 1998 年问世以来, 在极短的时间内就声誉鹊起, 不仅超越了所有竞争对手, 而且彻底改观了整个互联网的生态。 这家公司就是当今互联网上的第一搜索引擎: 谷歌 (Google)。 在这样一家显赫的公司背后, 自然有许许多多商...
Medium开发团队谈架构设计 互联网
背景 说到底,Medium是个社交网络,人们可以在这里分享有意思的故事和想法。据统计,目前累积的用户阅读时间已经超过14亿分钟,合两千六百年。 我们支持着每个月两千五百万的读者以及每周数以万计的文章发布。我们不想Medium的文章以阅读量为成功的依据,而是观点取胜。在Medium,文章的...
理解“渐进增强(Progressive Enhancement)” Web前端
原文:Understanding Progressive Enhancement 作者:Aaron Gustafson 译者:空帷 @ Taobao UED 自 1994 年开始,Web 开发社群就擂起了名为“平稳退化 (Graceful Degradation)”的大鼓。这是一个...
为什么说DOM操作很慢 Web前端
一直都听说DOM很慢,要尽量少的去操作DOM,于是就想进一步去探究下为什么大家都会这样说,在网上学习了一些资料,这边整理出来。 首先,DOM对象本身也是一个js对象,所以严格来说,并不是操作这个对象慢,而是说操作了这个对象后,会触发一些浏览器行为,比如布局(layout)和绘制(paint)...
为什么你应该尝试全栈 程序人生
程序员看到全栈这个概念,大概会有两种反应: 1. 卧槽,这个好,碉堡了 2. 你懂毛,全栈就是样样稀松 以上两种反应其实都有失偏颇,即使只做一种技术,做的很菜的多的是,而全栈但是样样都做的不错的也不少,更别说这个世界还存在另外一种爆栈型的程序员,做什么什么精。 全栈学徒至少要掌...
学习新东西的唯一方法 其他分类
英文原文:The Only Technique To Learn Something New 有人曾从我工作的一家公司盗取了9千万美元。我不太懂得如何观人识人。这家公司最终关门了。 有一些事情我就是学不会。我很容易相信一个人。 因此,无论我如何尝试,判断一个人对我来说,简直太难了。...
关于烂代码的那些事(下) 程序人生
相关文章: 关于烂代码的那些事(上) 关于烂代码的那些事(中) 假设你已经读过烂代码系列的前两篇:了解了什么是烂代码,什么是好代码,但是还是不可避免的接触到了烂代码(就像之前说的,几乎没有程序员可以完全避免写出烂代码!)接下来的问题便是:如何应对这些身边的烂代码。 1. 改善可维...
每个架构师都应该研究下康威定律 软件设计
今天的分享主要来自我之前的工作经验以及平时的学习总结和思考。我之前的背景主要是做框架、系统和平台架构,之前工作过的公司 eBay、携程、唯品会都是平台型互联网公司,所以今天主要带着平台架构视角和大家分享心得体会。架构的视角每个人都不一样,可以说一万种眼光,有业务架构、安全架构、平台架构、数据架构...
消息队列(Message Queue)基本概念 编程基础
背景 之前做日志收集模块时,用到flume。另外也有的方案,集成kafaka来提升系统可扩展性,其中涉及到消息队列当时自己并不清楚为什么要使用消息队列。而在我自己提出的原始日志采集方案中不适用消息队列时,有几个基本问题:1. 日志文件上传过程,有个基本的生产者-消费者问题;2. 另外系统崩溃...