技术人员如何写一本书?

我在过去的几年中,写了4本书。有传统意义上的两本实体书:《JavaScript核心概念及实践》和《轻量级Web应用开发》,还有两本电子书《3周3页面》和《函数式编程乐趣》。当然对我而言,主职工作是软件开发,写作是个副业。

微服务——大企业是如何在实践微服务中成长的

Martin Fowler描述过当组织在考虑实现微服务架构时,必须要有的一组“能力基线”,但大企业通常有各种理由不太愿意去尝试和成长以达到这样的能力。有很多的文字都提到,在成长之路完成后便能收获微服务架构所能带来的各种好处。这篇文章将描述一个大企业为达到Martin Fowler的能力基线,所经历的挑战和决心。

敏捷中的QA

说到QA,通常指的是质量保证(Quality Assurance)工程师,但我更喜欢定义敏捷中的QA为质量分析师(Quality Analyst),主要基于以下几个方面的原因。

浅谈快捷键

回想第一次接触键盘应该就是小学时代玩过的打字机了,通过敲击键盘上的某一个按键,驱动一个撞针,将该按键对应的字符的字模打击到色带上,从而在纸上打出该字符,知道为什么我们现在叫“打字”了吧。回想那个时候其实是没有快捷键这么个东西的,连换行这种事情都不是通过按键而是通过手动去移动卷纸的那个机械轴来完成的。

IT小小鸟生存指南-学习起步篇

经常跟公司的年轻人聊天(说起来好伤悲),他们大多在充满激情的同时表达出自己对于学习的迷茫。面对快速发展的技术被迷晕了双眼,不知道学什么,也不知掉怎么学,不知道从哪开始,也不知道学到何时为止。前两天也在知乎上回答了一个类似的问题,想想应该把自己的一些经历和问题以及对于这些问题自己的思考梳理一下,分享出来。

哪里才是中国最真实的农村?

当我们与6月说再见的时候,P3的“你我同行”系列活动也已完整告一段落。从上半年双月P3工作坊[1]以及三次“下农村”[2]体验活动,我相信每个人心中或许和我一样,一方面向往着“采菊东篱下、悠然见南山”的郝堂村生活意境,但当看到蒲城或是巴中市花溪乡走马村那种村落凋零、文化跌落或是农村社会断裂时,另一方面却更加充满了对农村“贫困”回归的失落,失落的背后是更多地思考真正的乡村未来是什么?我们能为现在的农村建设做点什么?

getter和setter的那些事

相信每一个以Java或者C++作为编程入门语言的程序员,一定会记得一条金科玉律:字段(Filed)要声明成private,如果要读取或修改字段,就声明一些公开方法(Public Method),以get和set开头,

Ruby Web服务器:这十五年

本文谨以Ruby Web服务器技术的发展为线索,回顾Ruby截至目前最为人所知的Web领域中,重要性数一数二的服务器技术的发展历程,试图帮助我们了解过去,预见未来。

郝堂新村——新农村新面貌之星星之火

作为今年P3“economic justice”活动内容之一的Personal Journey,郝堂村之旅为我们更加深入理解农村经济状况提供了极大的帮助。这次活动的主旨是为了帮助ThoughtWorkers对这些农村相对弱势的群体给予更多的关注,并且思考能为他们做点什么。在国家快速城市化过程中,通过郝堂村我们也可以对如何构建新农村以及当前面临的挑战有更加全面的认识。

学习的逻辑 2: 职业半山腰

我该学什么? 这是一个错误的问题。这个问题可以有很多出发点. 今天讨论基于的假设是对工作方向的迷惘, 即不知道自己下一步努力的重点是什么, 但又不想时光虚度, 总觉得该学点什么, 又不知从何学起.

软件缺陷的有效管理

“这次发布之前怎么这么多的缺陷,是不是需要分析一下啊?” 答案是肯定的,可是这个时候才想起要分析已经有点晚了,有可能这些缺陷很难分析了。这是发生过的一个真实场景,所记录的缺陷包含信息很有限,很难有效的做好分析!本文就来聊聊如何有效的管理和分析缺陷。

亲爱的,今天你“债”了吗?

打开百度百科,债务指债户还债的义务,有时也指所欠的债及为了清偿所有的债务而工作。

1992年一个叫Ward Cunningham的大牛提出了“技术债务”的概念,可以理解为程序YUAN为了赶工期快速构建一些可以工作的代码出来,而不考虑代码本身的可读性,可重用性,复杂度和整洁度;或者测试人员为了尽快完工而不进行仔细完整的软件验证。

与技术债务类似,被《哈佛商业评论》誉为当代“创新大师”的Steve Blank提出了“组织债务”的概念,指的是一个组织在发展初期曾经为了快速使业务走上正轨不得不采用许多折衷的方法,比如公司仍然沿用管理小规模团队的模式来管理规模已经扩张后的组织架构。

Inception的核心逻辑

Inception是ThoughtWorks多年以来使用的启动软件设计和交付项目的方法,通过3天到两周的时间,采用集中式、互动式的设计工作坊,帮助客户在最短时间内达成对项目范围的一致,快速进入项目交付。