译 | 结对编程实践指南
使用结对编程开发出的代码中的bug可以减少15% (Laurie Williams, 2000)。然而,对我来说,这还不少最重要的。
使用结对编程开发出的代码中的bug可以减少15% (Laurie Williams, 2000)。然而,对我来说,这还不少最重要的。
文章讲的一个故事,来源于真实的事件改编,情节有所夸张,请勿对号入座。
结对编程并非只是把两个人扔一起、让他们疯狂撒欢。多年以来,从业者开发了一些应用于不同情况的技术,通过实践与实验,他们对这些技术作了提高与完善。
结对编程是软件开发过程中所使用的一种技术,两名程序开发人员共享同一台工作站。其中一个扮演驾驶者(Driver)的角色,进行代码编写,另一个扮演观察员(Observer)或导航员(Navigator)的角色,对代码进行评测。
我的直接主管是来自台湾的Ben,他非常喜欢探索新的开发模式,其中有一次他让我这个只有一年开发经验的人新人和一个工作三四年的工程师一起做结对编程。和我一起结对的编程的L先生是一个经验非常丰富的老工程师,他写的代码质量、效率极高,跟他一起学了很多好的编程习惯。第一次尝试采用结对编程(Pair Programming)这种编程模式,虽然时间不长,但还是感觉体会颇多,拿出来与大家分享一下。
结对编程技术是指两位程序员坐在同一工作台前开发软件。与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。因此不少企业的开发团队都在推行结对编程,对于IT男来说,一听结对,那就最好是男女搭配吧,所以就有了这样“想要”的工作画面:
你观察一下结对比较默契的同事,他们会一起喝水,一起上厕所,一起抽烟。只有保持一致的节奏,才能最大化地提高效率。不然,一个去厕所了,另一个人在那写,回来可能就跟不上了。刚跟上,之前那位又要出去抽根烟…
本文认为,喜欢结对编程的人是少数,只是他们声音大,所以造成一种假象好像结对编程已成主流、每个团队都得搞结对编程似的;结对编程实际上效率低,内向的程序员就只想安静编程、不想边敲代码边说话边与人互动。
我也没有什么灵丹妙药能让结对成为更加神奇的体验,不过在这里我还是有几点建议,让大家可以更好的面对Marcos提到的那些挑战:
是什么原因导致他们不采用结对编程呢?在我个人的经验当中,采用结对编程和协作仍有许多障碍。许多团队合作(cooperate)的很好,但实际上并不是协作(collaborate)。因为协作基于信任,它是结对编程的关键环节之一。
Flutter 是 Google 开源的跨平台移动开发框架。 它允许从单个代码库为 iOS 和 Android 构建高性能,美观的应用程序。它也是 Google 即将推出的 Fuchsia 操作系统的开发平台。此外,它的架构可以通过定制的 Flutter 引擎将其引入其他平台。
工程师的世界,不止代码,还应有对未来的洞察与从容。阿里首部技术经验精选集:《不止代码》,现已正式公开,可免费下载阅读。阿里多位P9、P10技术大牛现身说法,用十多年阅历和经验,陪你“打怪升级”。
关于犯错的宝贵价值,我留给你们一则名人轶事:20 世纪初期,IBM 的总裁托马斯·J·沃森遇到了一位因为多次决策错误让公司损失惨重的员工,当问及是否要开除这个员工时,沃森答道:
我是一个苦b的程序员,今晚加班到快通宵了,困得快睁不开眼了,女上司很关心,问我要不要吃宵夜。我没好气地说,宵夜就算了,能让我睡一觉就行了。女上司红着脸说了句讨厌
过去几年,Python 3 的采用量明显增加,但它仍有很长的路要走。采用 Python 的大型公司倾向于在其基础架构上运行大量的 Python 2.7 代码,Facebook 也不例外。在今年的 PyCon 2018 会议上,Facebook 产品工程师 Jason Fried 讲述了该公司在过去四年时间里,Python 3 从几乎无人问津到成为该公司主流 Python 版本的全过程,也展示出 Fried 作为一名工程师的坚持。
有人向你反馈了一个bug。 “26楼会议室的灯亮着。它需要被熄灭。”bug的备注里写道“你应该能在5分钟内搞定,只要按一下开关就好了。“ 你去了26楼的会议室。灯的确亮着,但房间里没有灯的开关。
这里介绍的概念对所有 Tensorflow 程序来说都很重要,但这些还都只是表面上的东西。在你的 Tensorflow 探险之旅中,你可能会遇到各种你想要使用的其他有趣的东西:条件、迭代、分布式 Tensorflow、变量作用域、保存和加载模型、多图、多会话和多核数据加载器队列等。
经过初步了解,配电脑、修电脑、装系统等都可以找程序猿来干。而且程序猿不会油嘴滑舌的。很多妹子也都这么想的,于是大学四年,程序猿钻了不少次各种妹子宿舍,一去就一下午,他说装系统太慢,我暂且就信了吧。
我们在Quora上发现,很多开发人员都将Go语言视为Node.js的优秀替代者,所以本文将集中探讨到底是为什么会出现这种情况以及为什么很多企业和开发人员会首选Go语言而不是流行的Node.js。
小Z所在公司的信息安全建设还处于初期阶段,而且只有小Z新来的一个信息安全工程师,所以常常会碰到一些疑难问题。一天,小Z接到运维同事的反映,一台tomcat 的web服务器虽然安装了杀软,但是还是三天两头会出现杀软病毒报警,希望他能查下原因。
我们阐明区块链的特性最适应现有的哪些商业问题,并量化其如何改变产业现状。我们突出展示那些将探索或赋能这一进程的私有和上市企业——并分析区块链可以创造哪些新的利润池,或是破坏哪些旧的利润池。
看来大家对谷歌前程序员写的代码,不是很满意,认为问题很多。其实不一定大牛写的代码就很牛逼,有些时候,也会出现一些小问题。曾经因为一行代码错误,日本价值18亿的卫星就失控了。
有一天,我想找点乐子玩,于是我就在自己的笔记本里一条条列出「中国製造」的这些应用和我在美国用的那些有何不同。写完才发现列了这麽长,于是我决定专门写一篇文章,进行一个系统的分析。
这篇文章写于2008年06月24日,到今天正好是整整十年。最近不知道怎么突然在美国的社交媒体上又火了起来,我们节选了其中的一部分
全球著名的民宿预订平台 Airbnb 突然宣布要弃 React Native 坑而逃,回归原生技术开发,不得不说,这一举措着实让 React Native 备受打击,也让很多趟过坑的同学们感同身受。
回看 Flutter 的发布轨迹:在 Google I/O 2017 开发者大会上正式公布;2018 年 2 月发布第一版 beta;Google I/O 2018 开发者大会上发布 beta 3,以及 6 月 21 日新鲜出炉的首个发布预览版。
有Hacker News用户留言指出,Darwin-XNU也就是OS X/iOS的内核已经通过苹果官方开源过了,这个消息的重点应该是苹果竟然开始用GitHub了……
但这种说法很快也被反驳:“不是这样,iOS的部分就是首次放出”。
架构设计的代码或者文档,都是以有述无,写的是你看得见的代码,心思都在没有写的代码身上。如果你把心思都放在写的那些代码上,那架构设计就变成详细设计了。架构设计无法学样子,问题就在这个地方。