最新文章
别再浪费时间了!如何从细节上真正节省用户的时间 软件设计
英文原文:Stop Wasting Users’ Time 我们的用户是很珍惜时间的,我们也不应该随意浪费。在每个项目中都问自己两个问题:“我们是在消耗用户的时间来节省自己的时间吗?”“在这里要如何节省用户的时间?”在西方社会中,什么是最宝贵的财富?钱?状态?我觉得应该是时间。 我们有很好的...
分布式与集群的区别 编程基础
简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。 例如: 如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务需10小时。 采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子...
从MVC框架看MVC架构的设计 软件设计
尽管MVC早已不是什么新鲜话题了,但是从近些年一些优秀MVC框架的设计上,我们还是会发现MVC在架构设计上的一些新亮点。本文将对传统MVC架构中的一些弊病进行解读,了解一些优秀MVC框架是如何化解这些问题的,揭示其中所折射出的设计思想与设计理念。 MVC回顾 作为一种经典到不能再经典的架...
一些好的规则 程序人生
英文原文:A Few Good Rules 什么是明智的标准化? 想象一下第一次和特别的人约会。当你到达最喜欢的餐馆时,所有的灯都熄灭了,你身处黑暗之中。奇怪的是,从厨房传来的声音又表明这里像往常一样正在营业中。你听到一位女服务员走来,等待着引导你到没有灯光照射到的座位上。你的同伴不知所措,...
千万别理程序员 程序人生
很多时候,我发现自己需要向编程界以外的人反复解释为什么随意的打搅一个编程中的程序员是多么的讨厌。我需要费力的向他们解释什么是‘流’境界——程序员陷入深深思考和理解一个问题时,一个电话,一个提问,甚至一句“你好”,都会像一声炸雷似的将程序员从“盗梦空间”里惊醒——梦境中建好的一切建筑都会立刻坍塌。...
送给程序员:关于性格内向者的10个误解 其他分类
英文原文:10 Myths About Introverts 我非常幸运的发现了这本《内向者优势——如何在外向的世界中获得成功》(英文名:The Introvert Advantage (How To Thrive in an Extrovert World))的好书,我感觉就好像是有人专门为...
生于忧患而死于安乐:程序员如何走出自己的安逸环境 程序人生
英文原文:Getting Out Of Your Comfort Zone 过去的几个月里发生的几件事情,让给政府做软件开发的人感受到压力的陡增,从奥巴马的医保网站饱受诟病到美国退伍军人事务部官方网站的预约系统从1985年起就没有更新过,这些事情让我回忆起曾经作为政府程序员的经历,以及这段经历...
思考软件开发中的快与慢 软件工程
英文原文:Software Development: Fast and Slow 本文作者 Michael Dubakov 从事软件开发方面的工作,他在读了 DanielKahneman 的《思考,快与慢》后,思考了软件开发中的快与慢,并且把书中的一些思想应用到实际的软件开发中。下面是笔者对原...
中国软件开发工程师之痛 程序人生
在近期的一次会议上,有高层谈到之前在中国觉得自己做得很牛,但与美国同行接触后却发现与人家存在很大的差距,这一点我在外企工作时也有过同样的体会。真正与外国同行接触后才会知道什么是差距,在这篇文章中我从软件开发工程师的角度以“痛点”的形式来谈一谈我所认为的差距。 技能之痛 相当数量的软件开发工程...
6 个重构方法可帮你提升 80% 的代码质量 编程基础
英文原文:Top 6 Refactoring Patterns to Help You Score 80% in Code Quality 在过去做了不少代码走读,发现了一些代码质量上比较普遍的问题,以下是其中的前五名:臃肿的类: 类之所以会臃肿,是因为开发者缺乏对最基本的编码原则,即“单一职...
有关云架构建设和选型的思考 软件设计
最近在负责公司内部私有云的建设,一直在思考怎么搞云计算,怎么才能够把云架构设计得好一些。本文尽量全面的列出了云架构建设和选型的考量因素。 我们主要从五个层面逐步评估云架构的建设和选型,分别是:行业生态企业需求云计算的能力潜在的挑战如何建设 一、行业生态 计算机云经过多年的发展,由一开始的概...
程序员生存定律-打造属于自己的稀缺性 程序人生
假设说你想在江湖里谋求一定的地位,那么你可以练习独孤九剑成为超一流高手,也可以练习医术,成为绝世神医。这两者在江湖里都是有地位的,也都是稀缺的,一者是因为杀伤力,二者是因为人都有山高水长。 程序员也一样,增值也好,改善表达力也好,最终都要在某种环境下达成一定的稀缺性,这样一个人才有价值。稀缺性...
防止代码变质的思考与方法 软件工程
1、软件长期运营存在什么问题 一个大规模的客户端软件的生命周期中,我们可以把它分为两个比较粗的时期。一个是前期的搭建软件的时期,即从无到有的时期;第二个是搭建完成之后,进入的一个稳定的运营时期。第二个时期才是最关键的,在这个时期我们会持续的迭加需求,持续的优化功能,而且第二个时期也是代码在慢慢...
千万别用MongoDB?真的吗?! 数据库
某人发了一篇Don’t use MongoDB的血泪控诉,我把原文翻译如下,你可以看看。不过,我想我们还要去看看10gen CTO的对此事的回复,我们还要去在Reddit上看看大家的说法,10genCTO的对此事的回复后面也有一堆人在讨论这个事,还有一些程序员开始去读MongoDB的源码了,呵呵...
花十分钟做计划,一天工作效率高 其他分类
英文原文:How to Spend the First 10 Minutes of Your Day 安东尼·伯尔顿(AnthonyBourdain)是法式餐厅BrasserieLesHalles的传奇主厨,还是一位畅销书作家兼著名节目主持人。在他的厨房里工作,凡事都得守规矩,哪怕是烧开水也要...
停不下来的前端,自动化流程 Web前端
流程 关于流程,是从项目启动到发布的过程。在前端通常我们都做些什么?切图,即从设计稿中获取需要的素材,并不是所有前端开发都被要求切图,也不是所有前端开发都会切图,但请享受学习新知识的过程吧。创建模版(html、jade、haml)、脚本(javascript、coffeescript)、样式(...
什么是堆和栈,它们在哪儿? 编程基础
英文原文:What and where are the stack and heap? 问题描述 编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是我理解什么是栈,但是它们到底是什么...
【译】编写高性能JavaScript Web前端
英文链接:Writing Fast, Memory-Efficient JavaScript 很多JavaScript引擎,如Google的V8引擎(被Chrome和Node所用),是专门为需要快速执行的大型JavaScript应用所设计的。如果你是一个开发者,并且关心内存使用情况与页面性能,...
关于程序员的痛苦的一种悖论 程序人生
我所说的“关于程序员的痛苦的一种悖论”描述如下:“好的程序员大部分的时间都在干他们厌恶的事情、使用他们厌恶的技术和工具。” 这是反常理的,看上去就是悖论;你会认为烂程序员才会把时间都花在烂技术上,优秀的程序员会把时间花在那些尖端的技术上。不是吗? 我在自己的体验中发现了这个悖论,直到后来我才...
父子页面之间跨域通信的方法 Web前端
由于同源策略的限制,JavaScript跨域的问题,一直是一个比较棘手的问题,为了解决页面之间的跨域通信,大家煞费苦心,研究了各种跨域方案。之前也有小网同学分享过一篇“跨域,不再纠结” 开始照着尝试时还是有些不够明白的地方,深入了解之后,这里给大家补充一点更具体的做法。 先来看看哪些情况下才存...