最新文章

Docker简明教程 云计算

Docker自从诞生以来就一直备受追捧,学习Docker是一件很炫酷、很有意思的事情。我希望通过这篇文章能够让大家快速地入门Docker,并有一些学习成果来激发自己的学习兴趣。我也只是一个在Docker这条巨鲸上玩耍的小孩,全文如有不明确、不正确的地方,还请斧正。 Ubuntu上安装Docker ...

阅读(36514)  推荐(40)  dokcer  发布于 2016-01-02 14:15

Git协作流程 软件工程

Git 作为一个源码管理系统,不可避免涉及到多人协作。 协作必须有一个规范的流程,让大家有效地合作,使得项目井井有条地发展下去。"协作流程"在英语里,叫做"workflow"或者"flow",原意是水流,比喻项目像水流那样,顺畅、自然地向前流动,不会发生冲击、对撞、甚至漩涡。 本文介绍三种广...

阅读(19706)  推荐(65)  git  发布于 2015-12-29 16:29

原文:The End of Corporate Computing 作者:尼古拉斯·卡尔 翻译:黄思路 编辑:管理学人 编注:原文发布于2005年 20 世纪早期,有一些之前的几十年里无法想象的事情陆续发生:制造厂商开始关闭、拆除水轮设备、蒸汽机和发电机。要知道,从工业时代开始,电力就...

阅读(3750)  推荐(5)  公用计算  发布于 2015-12-23 22:18

软件开发的核心 软件工程

「我们一直这样做开发,时间做久了,便忘了当初的本意。」 有关软件系统开发,我们谈些什么? 我们谈过程,编码规范、开发流程、同行评审、结对编程、持续集成,从瀑布到敏捷再到极限编程。 我们谈架构,企业级、J2EE、容器化、SOA(面向服务架构)、Microservices(微服务化)。 我们...

阅读(12185)  推荐(56)    发布于 2015-12-21 14:17

英文原文:Conceptual Architecture of the Linux Kernel 摘要 Linux kernel成功的两个原因:(1)架构设计支持大量的志愿开发者加入到开发过程中;(2)每个子系统,尤其是那些需要改进的,都支持很好的扩展性。正是这两个原因使得Linux ker...

阅读(14755)  推荐(21)  Linux  发布于 2015-12-10 20:57

英文原文:From Doodles to Delivery: An API Design Process 要想设计出可以正常运行的Web API,对基于web的应用的基本理解是一个良好的基础。但如果你的目标是创建出优秀的API,那么仅凭这一点还远远不够。设计优秀的API是一个艰难的过程,如果它...

阅读(20257)  推荐(22)  API设计  发布于 2015-11-24 15:29

好的架构不是设计出来的而是演进出来的 对很多创业公司而言,在初期的时候,我们很难在初期就预估到流量十倍以后、百倍以后、一千倍以后网站的架构会变成什么样。当然,如果在最初的时期,就设计一个千万级并发的流量架构,那样的话,成本是也是非常之高的,估计很难有公司会这样做。 所以,我们主要来讲架构是如...

阅读(19417)  推荐(65)  网站架构  发布于 2015-11-22 17:36

MVC 的历史 MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写。它表示的是一种常见的客户端软件开发框架。 MVC 的概念最早出现在二十世纪八十年代的施乐帕克实验室中(对,就是那个发明图形用户界面...

阅读(39267)  推荐(134)  mvc mvvm  发布于 2015-11-07 22:22

再谈设计和编码 软件设计

这篇文章谈下编码中的一些细节问题,在谈之前首先还是要继续推荐下《代码大全》这本书,该书在很多公司都会被推荐为新人入职后的必读书,即使在互联网和敏捷开发环境下,该书对于新人仍然有仔细阅读和体会的必要,要明白架构和设计思维的基础仍然是编码思维,面向对象思维的基础仍然是代码本身的逻辑和结构,如果不能写...

阅读(12494)  推荐(22)    发布于 2015-10-30 09:24

英文原文:When Should You Avoid Commenting Your Code? 看到标题,我知道你可能会想:“我为什么要避免代码注释,这难道不是一件好事吗?”。是的,写注释在大多数情况下是有用的。但是,请注意,我说的是“在大多数情况下”,因为有一些情况下,你不应该写注释。 ...

阅读(21565)  推荐(40)  注释  发布于 2015-10-22 16:11

互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称 CI)。 本文简要介绍持续集成的概念和做法。 一、概念 持续集成指的是,频繁地(一天多次)将代码集成到主干。 它的好处主要有两个。1、快速发现错误。每完成一点...

阅读(13146)  推荐(29)  持续集成  发布于 2015-10-18 23:06

人,技术与流程 程序人生

我先做一下自我介绍,我是 2007 年加入的 Google,在 Moutain View 总部任 Google SRE,今年年初回国加入 Coding。 在 Google 我参与了两个 Project,第一个就是 Youtube,其中包括 Video transcoding, streamin...

阅读(12717)  推荐(49)  团队管理  发布于 2015-10-14 19:07

当你在浏览器的地址栏上输入https开头的网址后,浏览器和服务器之间会在接下来的几百毫秒内进行大量的通信。InfoQ的这篇文章对此有非常详细的描述。这些复杂的步骤的第一步,就是浏览器与服务器之间协商一个在后续通信中使用的密钥算法。这个过程简单来说是这样的:浏览器把自身支持的一系列Cipher S...

阅读(43359)  推荐(42)  https  发布于 2015-09-30 22:36

文/ITValue 记者吴宁川 从 2008 年开始进入公众视野,到亚马逊与微软于近期获得 1 亿美元的美国联邦管理局云计算合同,云计算整整走过了 7 年。7 年间,以第一代云计算技术为基础的移动计算、社交网络、大数据等新信息技术在全球商业领域掀起了一场新商业运动,这场商业运动创造出以消费者和...

阅读(14269)  推荐(27)  Docker  发布于 2015-09-20 10:41

本文摘自:《Web 全栈工程师的自我修养》 野生程序员是指仅凭对计算机开发的兴趣进入这个行业,从前端到后台一手包揽,但各方面能力都不精通的人。野生程序员有很强大的单兵作战能力,但是在编入“正规军”之后,可能会不适应新的做事方法。 遭遇“野生程序员” 腾讯公司内部的团队很多,在团队管理上有项...

阅读(27852)  推荐(150)  程序员  发布于 2015-09-18 13:49

有限状态机FSM思想广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法(软件上称为FMM有限消息机)。它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合计算机的工作特点。同时,因为有限状态机具有有限个状态,所以可以在实际的工程上实现。但这并不意味着...

阅读(42200)  推荐(28)  状态机  发布于 2015-09-13 13:22

状态机的概念 状态机是软件编程中的一个重要概念,比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。 比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态,再触发另一个键后切换到C状态,或者返回到A状态。这就是最...

阅读(13193)  推荐(16)  状态机  发布于 2015-09-13 12:20

一、状态机描述 状态机理论最初的发展在数字电路设计领域。在数字电路方面,根据输出是否与输入信号有关,状态机可以划分为Mealy型和Moore型状态机;根据输出是否与输入信号同步,状态机可以划分为异步和同步状态机。而在软件设计领域,状态机设计的理论俨然已经自成一体。Moore型状态机的输出只和当...

阅读(6683)  推荐(4)  状态机  发布于 2015-09-13 11:03

简介 团队的开发人员撇开需求沉浸在想象中的“完美”程序中;测试人员迷茫的点击着按钮试图搞明白这到底是个什么功能;设计师造出了没有尽头的楼梯,更糟的是,客户爱上了这个设计;团队领导四处救火,力有不逮。种种迹象表明,我们得打破分工带来的壁垒,建设全功能团队——大多数人能完成大多数种类工作的团队。 ...

阅读(5733)  推荐(14)  团队建设  发布于 2015-09-12 22:50

软件设计杂谈 软件设计

disclaimer: 本文所讲的设计,非UI/UE的设计,单单指软件代码/功能本身在技术上的设计。UI/UE的主题请出门右转找特赞(Tezign)。 在如今这个Lean/Agile横扫一切的年代,设计似乎有了被边缘化的倾向,做事的周期如此之快,似乎已容不下人们更多的思考。MVP(Minima...

阅读(5928)  推荐(17)  软件设计 程序员  发布于 2015-09-03 22:54