最新文章

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

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

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

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

软件设计杂谈 软件设计

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

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

周日傍晚,天色早早的暗了下来,楼下某只狗子一直叫着;有种让人出神的宁静。 我觉得我究其一生最终所要追求的恐怕就是这种宁静。亦或是说心里早已老去了。btw,有谁听过Guns N' Roses某张知名Bootleg拼盘没?也就是所谓的不插电专辑。我在2001年冬天差不多这个时候和Allen、祥子在...

阅读(8045)  推荐(28)    发布于 2015-09-02 11:10

英文原文:7 Things Your Boss Doesn’t Understand About Software Development 你的老板是否不理解你的工作?本文将有助于你更好地理解为什么你的老板不理解软件开发。 你的老板可能真的很棒。我在我自己的编程生涯中就遇到过几个真心棒的老板...

阅读(19421)  推荐(23)    发布于 2015-08-22 21:11

1. 摘要 这是烂代码系列的第二篇,在文章中我会跟大家讨论一下如何尽可能高效和客观的评价代码的优劣。 在发布了关于烂代码的那些事(上)之后,发现这篇文章竟然意外的很受欢迎,很多人也描(tu)述(cao)了各自代码中这样或者那样的问题。 最近部门在组织bootcamp,正好我负责培训代码质量...

阅读(34136)  推荐(83)  程序员 代码质量  发布于 2015-08-13 22:36

相关文章:关于烂代码的那些事(中) 1. 摘要 最近写了不少代码,review了不少代码,也做了不少重构,总之是对着烂代码工作了几周。为了抒发一下这几周里好几次到达崩溃边缘的情绪,我决定写一篇文章谈一谈烂代码的那些事。这里是上篇,谈一谈烂代码产生的原因和现象。 2. 写烂代码很容易 刚...

阅读(40227)  推荐(104)  程序员 代码质量  发布于 2015-08-12 14:05

在程序员这个行业,坚持做技术写作的人一直比较少。我和身边的朋友沟通后,发现他们除了借口没有时间外,大多没有意识到写作带来的收益。在他们看来,将自己学到的知识简单记录下来就足够自己需要的时候回顾了。而技术写作通常需要花更多时间,因为需要将技术的细节以及来龙去脉讲清楚。 不得不承认,这的确是一个...

阅读(19923)  推荐(164)  程序员 写博客  发布于 2015-08-07 18:35

一艘货轮满载着货物从港口启航,向浩瀚的大海深处破水而去。海面平静,微微皱起波浪,从容而显得宽容。然而,货轮的步履却有些蹒跚,发动机“轰轰轰”地嘶吼着,不堪重负,却无法让船只游得更快,倒像是海水咬住了船底往下在拖曳。 “嘟——嘟——嘟”,突然警报声响起,甲板上变得喧闹起来,一个水手模样的年轻人声...

阅读(19086)  推荐(34)  测试  发布于 2015-08-06 09:48

数学和编程 程序人生

好些人来信问我,要成为一个好的程序员,数学基础要达到什么样的程度?十八年前,当我成为大学计算机系新生的时候,也为同样的问题所困扰。面对学数学,物理等学科的同学,我感到自卑。经常有人说那些专业的知识更加精华一些,难度更高一些,那些专业的人毕业之后如果做编程工作,水平其实比计算机系毕业的还要高。直到...

阅读(18567)  推荐(60)  学编程 程序员 数学  发布于 2015-08-04 21:33

英文原文:Finding awesome developers in programming interviews 我曾在一次面试中要求一个很有经验的嵌入式软件开发人员写出一个反转一段字符串并输出到屏幕上的程序。他在这个题目上挣扎了很久。这个家伙是个很神奇的人。你给他一些没用的零件,他能建造一...

阅读(27976)  推荐(88)  面试  发布于 2015-08-01 14:35

前言 本文上篇主要介绍了解决问题的心理过程以及问题表征阶段影响问题解决的一些心理因素,并分享了另外相关案例和指导意见。本文继续介绍影响问题解决的其它心理因素。 影响问题解决的心理因素 自我监控技能大胆假设,小心求证––– 胡适 在设计好解题计划后,问题解决者并不是简单地执行解题计划,而是...

阅读(6689)  推荐(15)  程序员 解决问题  发布于 2015-07-30 12:43

相关文章:通过心理学知识提高问题定位与解决能力(下) 前言 软件开发工作无论是从宏观还是微观上看,都可以看作一个问题解决的过程。从宏观上看,软件开发,简单来说,就是弄清楚客户的需求是什么,然后通过分析、设计、编码和测试等一系列活动解决如何将需求转换为代码的问题。从微观上看,开发人员的日常工作...

阅读(8231)  推荐(27)  心理学 程序员  发布于 2015-07-29 12:23

英文原文:Debug like a doctor“现在的编程工作就像是对你需要解决处理的部分做科学研究。”——Gerald Sussman 设计和维护好的软件就像是一个抵制复杂度的永无止境的奋斗过程。任何足够大小的应用程序的代码路径和组件都能迅速成长成令人眼花缭乱的组合爆炸。 一点都不简单。...

阅读(5730)  推荐(6)  调试  发布于 2015-07-27 08:27

对于很多公司来说,代码审查是开发人员日常工作中的重要环节。通过代码审查,可以及早发现项目中存在的问题、促进同事之间的沟通与交流,并且可以在讨论中迸发出智慧的火花。但要想成功实施代码审查却并不是一件轻松的事情,为什么要进行代码审查、何时做、如何做,这是摆在我们面前的3个重要问题。针对于这3个问题,...

阅读(7941)  推荐(12)  CodeReview  发布于 2015-07-23 22:22

英文原文:11 Rules All Programmers Should Live By 我是一个倾向于生活在规则下的人。 现在,这些规则大部分是我本人为自己设立的,但它们依然是规则。 我发现为自己创建规则可以让我过得更好,因为这样做可以提前决定一些事情,而不是要在匆忙中做出所有的决定。 ...

阅读(10148)  推荐(50)  程序员  发布于 2015-07-22 18:33

RESTful架构详解 软件设计

1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:“我这篇...

阅读(90491)  推荐(56)  REST  发布于 2015-07-18 19:57

有多少程序员,就有多少定义。所以我只询问了一些非常知名且经验丰富的程序员。 Bjarne Stroustrup,C++语言发明者,C++ Programming Language(中译版《C++程序设计语言》)一书作者。 我喜欢优雅和高效的代码。代码逻辑应当直截了当,叫缺陷难以隐藏;尽量减少...

阅读(17582)  推荐(19)  编程风格  发布于 2015-07-16 21:17

这个时代对于学 IT 的人来说是幸运的。一个普通的程序员可以相对轻易地找到工作,可以轻易拿到比其他行业高得多的工资,甚至自己创建世界级的企业亦非空想。马云、马化腾等企业家的成功,似乎时刻提醒人们:即便是草莽出身的人,也能通过努力令世界瞩目。马云自己也说过:“如果我能成功,那么中国 80% 的人都...

阅读(11644)  推荐(143)    发布于 2015-07-15 22:12

英文原文:The Case for SlowProgramming人和人之间编程速度的差异还是很大的,有的程序猿写代码非常快,有的却常常是龟速。Jeffrey Ventrella最近在一篇文章里探讨了这种编程速度的差异,他是绝对的龟速派代表,来看看他对编程速度的看法。 我爸常跟我说的一句话是,...

阅读(13755)  推荐(75)  程序员 编程  发布于 2015-07-11 16:33