最新文章
技术债务偿还计划 软件工程
英文原文:Technical Debt: A Repayment Plan 什么是技术债务? 许多团队都受技术债务困扰,不过,很少有团队能真正地设计一个计划从中挣脱出来。为了更好的理解如何才能摆脱债务,我们首先要正确地理解什么是技术债务。 技术债务是由团队为了短期的项目利益故意做了欠佳的技...
那些令人喷饭的代码注释:仅以此代码献给... 程序人生
程序源代码中的注释经常是一个卧虎藏龙的地方,有人就很喜欢写幽默搞笑的注释内容。解释代码含义的同时,也带给人轻松神经的机会,确实是很有意思的风格,来看看这一辑国外某公司产品中的注释。 注意:看的时候严禁喝水或进食。 1、亲爱的代码维护人员 当您尝试优化这段代码但发现这是一个极端错误的决定的时...
给代码多留一些空间 编程基础
英文原文:Give your code some space! 最近在几个不同的团队中发现他们的编码规范中对空格的用法大不相同。这激起了我的好奇心,因为我一直觉得,对于代码格式中的空格的使用,应该有一个大家都公认的最好的习惯。但是在现实开发中,似乎没有出现这样的统一。 现状 首先,我们看看...
领域驱动设计系列(2)浅析VO、DTO、DO、PO的概念、区别和用处 软件设计
上一篇文章作为一个引子,说明了领域驱动设计的优势,从本篇文章开始,笔者将会结合自己的实际经验,谈及领域驱动设计的应用。本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们...
新手学习编程的最佳方式是什么? 程序人生
英文链接: What are the best ways for a complete beginner to learn programming 回答这个问题是我最近两年来唯一的关注点。我觉得此处提及的许多资源尽管都很不错,然而我却注意到,成功的学生,无论使用哪种资源,往往都会在以下三个方面...
领域驱动设计系列(1)通过现实例子显示领域驱动设计的威力 软件设计
曾经参与过系统维护或是在现有系统中进行迭代开发的软件工程师们,你们是否有过这样的痛苦经历:当需要修改一个Bug的时候,面对一个类中成百上千行的代码,没有注释,千奇百怪的方法和变量名字,层层嵌套的方法调用,混乱不堪的结构,不要说准确找到Bug所在的位置,就是要清晰知道一段代码究竟是做了什么也非常困...
操作系统课程是如何改变我的 编程基础
英文原文:How a course in operating systems changed me 在普林斯顿大学有很多课程改变了我,就像COS 318(操作系统课程)。它极有挑战,耗时耗力,但是当我学完后回头想想,我很庆幸我选了这门课。 我当初选择这门课程的时候很犹豫,因为周围的人都这么说...
微服务实战(一):微服务架构的优势与不足 软件设计
英文原文:Introduction to Microservices 这篇文章作者是Chris Richardson,他是早期基于Java的Amazonite EC2 PaaS平台CloudFoundry.com的创始人。现在他为企业提供如何开发和部署应用的咨询服务。他也经常在http://...
编写高质量的代码——从命名入手 编程基础
笔者从事开发多年,有这样一种感觉,查看一些开源项目,如Spring、Apache Common等源码是一件赏心悦目的事情,究其原因,无外两点:1)代码质量非常高;2)命名特别规范(这可能跟老外的英语水平有关)。 要写高质量的代码,不是一件容易的事,需要长年累月的锻炼,是一个量变到质变的过程,但...
领域驱动设计系列(3)有选择性的使用领域驱动设计 软件设计
本系列的第一篇博文抛砖引玉,大谈领域驱动设计的优势,这里笔者还是希望以客观的态度,谈谈领域驱动设计的缺点及其不适合使用的场景,以让读者可以有选择性的使用领域驱动设计。 我们知道,没有最好,只有最合适,设计也是一样。因此,所谓设计,就是以你和你的团队的知识、经验和智慧,全面充分的考虑各种内外因素...
专访Facebook HipHop作者/阿里研究员赵海平:生物与计算机交织的独特人生 程序人生
3 月 26 日,杭州的天阴沉沉,这是一种山色空蒙雨亦奇的美丽,还是雾霭笼罩下的怪异,对于来访阿里巴巴西溪园区的人们来说,没人关心这些。人们行色匆匆,兴奋地往各自目的地奔赴而去。我也来不及细思这些,因为今天要和刚从 Facebook 来到阿里的赵海平聊天。就语言之争,赵海平称,有人会去争论锤子和...
集成架构:对比 Web API 与面向服务的架构和企业应用程序集成 软件设计
简介 几乎所有企业都有多个应用程序作为其关键数据的记录系统,而且还拥有它们赖以创业的业务功能。因此,一些组织想要不断向其企业内外更广泛的受众揭示这些操作系统中的宝贵资产,我们对此已司空见惯。但是,这需要时间。在本教程中,我们将介绍这项评估的关键阶段,帮助您评估您的企业在此旅程中的位置,分析您可...
精益化的团队高效协作 项目管理
时间都去哪了? “不是在开会就是在去开会的路上”这是很多职业经理人工作的真实缩写。然而事实往往是忙碌了一天,拖着疲惫的身躯回到家,回头想想这一天虽然处理了不少事,但没有一样是真正完成的,所有的工作都是在进展中,而且越来越趋于复杂,依赖因素也越来越多。对于实现安排的完成日期也越来越没有信心。...
高可用可伸缩架构实用经验谈 软件设计
移动互联网、云计算和大数据的成熟和发展,让更多的好想法得以在很短的时间内实现为产品。此时,如果用户需求抓得准,用户数量将很可能获得爆发式增长,而不需要像以往一样需要精心运营几年的时间。然而用户数量的快速增长(尤其是短时间内的爆发式增长),通常会让应用开发者有些吃不消,不得不面临一些严峻的技术挑战...
5W法则: 打造高效技术团队必备利器 项目管理
成都的夏天总是雨的季节,淅淅沥沥,停一会儿,下一会儿,湿润的空气掩盖了些许PM2.5的焦味,却淡不了公司焦躁的情绪。臃肿的Bug列表、迟缓的解决速度、日益逼近的Milestone以及长时间加班激起的不满情绪……蔓延在整个办公区域。“提高效率”成了Management Meeting上呼声最高的词...
理想的程序员 程序人生
我算是靠坑蒙拐骗进了程序员的门,然后一路狂奔。26 岁之前几乎没有任何写代码的经验,研究生毕业却意外选择了一家不可能提供培训的初创公司,在每日担忧公司倒闭、害怕被炒鱿鱼以及同事冷落白眼的三重压力下逆流而上,一年半后离职,已是拥有 500 万用户产品的后台主程。从前我对计算机技术心怀畏惧,认定技术...
大师是怎样炼成的 程序人生
Master,也叫大师,接近于master's degree。通常指在某一领域,某一行业,相应圈子里有较高的知名度,人气很旺;对其所从事的业种了如指掌,炉火纯青,已然达到出神入化的境地,可谓近乎道矣! 在继续本文之前,声明以下所描述的大师主要是数据库领域,而且更多地是以Oracle为中心展开。...
元数据驱动设计 —— 设计一套用于API数据检索的灵活引擎 软件设计
如果你曾在企业开发方面具有一些经验,那么基本上可以断言,你必定承担过一些类似于搬运工的职责,将数据从你的数据库中不断地搬进搬出。此外,如果你在这方面有过过往的经验,那么你肯定也曾经做过将大量对共享文件进行解析,并且加载到某个schema的表中的事。从纯文本文件到结构化的XML文件,再到更为艰涩的...
持续部署,并不简单! 软件工程
(原文发布于2012年6月25日) 这几年,持续集成随着敏捷在国内的推广而持续走热,与之相伴的持续部署也一直备受关注。自前两年,持续交付这个延续性概念又闯进了国内 IT 圈,慢慢开始在社区和会议中展露头角。许多不明真相的群众跟风哭着喊着要“上”,而许多前 CI 的半吊子玩家换件衣服就接着干,有...
如果你做的事情毫不费力,就是在浪费时间 创业
注:本文作者 Heidi Roizen 系 DFJ Venture 合伙人,曾任苹果公司主管开发者关系的高级副总裁,女性创业者。 Heidi Roizen女士一度是硅谷人人争相学习的典范。她曾创办自己的公司并管理了 14 年之久。后来,她担任苹果公司主管开发者关系的高级副总裁。现在,她是 DF...