期间:2020
2020年我最喜欢的音乐发现
2020年我最喜欢的六个新音乐收购
数据网格原理和逻辑架构华体会体育网页版入口
我们渴望用数据增强和改善业务和生活的方方面面,这要求我们在如何大规模管理数据方面进行范式转变。虽然过去十年的技术进步已经解决了数据量和数据处理计算的规模问题,但它们未能解决其他维度的规模问题:数据环境的变化、数据来源的扩散、数据用例和用户的多样性以及对变化的响应速度。数据网格处理这些维度,建立在四个原则之上:面向领域的分散数据所有权和体系结构、数据作为产品、自助数据基础设施作为平台和联邦计算治理。华体会体育网页版入口每个原则驱动技术体系结构和组织结构的新逻辑视图。华体会体育网页版入口
计算笔记本
计算笔记本是一个编写散文式文档的环境,允许作者嵌入代码,这些代码可以很容易地执行,结果也可以合并到文档中。它是一个特别适合数据科学工作的平台。这样的环境包括Jupyter Notebook、R Markdown、Mathematica和Emacs的组织模式。
不要将数据科学笔记本投入生产
我们遇到过许多客户,他们对数据科学家开发的计算笔记本感兴趣,并将它们直接放入生产应用程序的代码库中。数据科学的想法确实需要从笔记本电脑转移到生产环境中,但是试图将笔记本电脑部署为代码工件破坏了大量良好的软件实践。可以预见的是,这导致了许多观察到的痛点。这种行为是一个更深层次问题的症状:数据科学家和软件开发人员之间缺乏合作。
高盛之死
一个误导性的标题,把读者吸引到一个偶尔真实的故事
社交媒体应该抑制不确定的故事吗?
当一个来源可疑的新闻故事出现时,社交媒体应该使用临时屏蔽来减缓它的传播吗?
写谷歌应用程序脚本的想法
谷歌表脚本是为非程序员共享简短脚本的方便方法。
再次投票反对特朗普
为什么投票反对特朗普总统和他的支持者很重要。
不比较平均
在商务会议中,通过比较平均数来比较一组数字是很常见的。但这样做往往会在这些群体的人数分布中隐藏重要信息。有许多数据可视化显示显示了这一信息。这些图表包括条形图、直方图、密度图、箱形图和小提琴图。它们很容易用免费的软件制作出来,小到12人,大到数千人都可以使用。
数据在软件开发中不断发展的角色华体会登录网址
由于无法前往澳大利亚参加他们的2020年XConf,我与斯科特·肖(Scott Shaw)进行了一次zoom对话:Thoughtworks澳大利亚技术主管。我们讨论了数据在现代应用程序开发中所扮演的不断变化的角色:应用程序开发人员和数据库之间的区别、大数据(和混乱的)数据的出现所带来的变化、提高数据读写能力的需要以及收集投机性数据的社会影响。
Sam Newman关于微服务的采访
goto会议邀请我就山姆·纽曼(Sam Newman)的书《从巨石到微服务》(monolths to Microservices)进行采访。这变成了一场关于微服务以及何时使用它们的一般性对话。Sam认为它们的三个主要原因是独立可部署性、数据隔离和反映组织结构。我更怀疑第一个,但考虑到数据和人员是软件开发的复杂部分。华体会登录网址
政变53
简要回顾政变53:一部记录1953年伊朗政变的纪录片。
运动优势2 -使用三年后复查
简单回顾一下Kinesis vantage2人体工程学键盘,现在我已经使用它三年半了。
数据是不同的
我们的欧洲“数据女巫”Em Grasmeder和我计划在欧洲为我们的XConf系列做主题演讲。到了2020年,我们讨论了数据科学家的角色:这个角色实际上是什么,他们需要获得的工具,以及他们与其他形式的软件开发的关系。华体会登录网址
给开发人员的威胁建模指南
本文提供了清晰而简单的步骤,以帮助希望采用威胁建模的团队。威胁建模是一种基于风险的设计安全系统的方法。它的基础是查明威胁,以便制定减轻威胁的办法。随着网络安全风险的增加和企业越来越意识到他们的责任,软件开发团队需要有效的方法将安全构建到软件中。华体会登录网址不幸的是,他们往往难以采用威胁模型。许多方法需要复杂的、详尽的前期分析,这与现代软件团队的工作方式不匹配。因此,比起停止一切去创造完美的威胁模型,我鼓励团队从简单开始并从中发展。
管理源代码分支的模式
现代的源代码控制系统提供了功能强大的工具,可以轻松地在源代码中创建分支。但最终这些分支必须合并到一起,许多团队要花费大量的时间来处理错综复杂的分支。有几种模式可以让团队有效地使用分支,集中精力集成多个开发人员的工作,并组织到生产版本的路径。最重要的主题是,应该频繁地集成分支,并将精力集中在一个健康的主线上,该主线可以以最小的努力部署到生产中。
特性分支
特性分支是一种源代码分支模式,开发人员在开始开发新特性时打开一个分支。她在这个分支上完成所有关于特性的工作,并在特性完成后与团队的其他成员集成更改。
梯形接口
华体会登录网址软件开发团队发现,如果尽可能频繁地集成他们的工作,生活会变得容易得多。他们还发现频繁地发布到生产环境中是很有价值的。但是团队不希望向用户公开开发了一半的功能。处理这种紧张关系的一种有用的技术是构建所有后端代码,进行集成,但不要构建用户界面。功能可以被集成和测试,但是UI被保留到最后,直到像keystone一样添加它来完成功能,向用户展示它。
卑微的对象
有些程序元素本身就很困难,甚至不可能进行测试。因此,这些元素中的任何逻辑都容易出现错误,难以发展。为了缓解这个问题,将尽可能多的逻辑移出难以测试的元素,移到代码库中其他更友好的部分。通过让不可测试的对象变得谦逊,我们减少了它们藏匿邪恶虫子的机会。
黑启动
暗启动一个特性意味着采用一个新的或更改的后端行为,并从现有用户那里调用它,而用户无法知道它正在被调用。这样做是为了在公开宣布新功能之前评估额外的负载和对系统的性能影响。
领域驱动设计
领域驱动设计是软件开发的一种方法,它将开发集中在对领域的过程和规则有丰富理解的华体会登录网址领域模型编程上。这个名字来自Eric Evans 2003年的一本书,书中通过模式目录描述了这种方法。从那时起,一群从业者进一步发展了这个想法,催生了各种各样的其他书籍和培训课程。这种方法特别适合复杂的领域,在这些领域中需要组织大量通常很混乱的逻辑。
华体会app下载二维码重构:该类太大了
在本文中,我将介绍一组来自真实代码库的重构。华体会app下载二维码这不是为了展示完美,但它确实代表了现实。
结对编程
结对编程是一种软件开发实践,它让开发人员以两华体会登录网址人为一组进行工作。所有严肃的代码都是由两个程序员编写的,他们通常与一个显示器并排坐在一起,通常只有一个键盘。当他们添加代码时,他们会一起讨论每个步骤。
如何进行有效的视频通话
得到好的音频,使用画廊视图,静音如果不说话,欢迎猫。
应对2019冠状病毒病第二部分
第二篇帖子是关于Thoughtworks如何应对2019冠状病毒病(Covid-19)的爆发
建筑中的大象华体会体育网页版入口
我们和我们的同事经常被要求为我们的客户执行体系结构评估。当我们这样做时,涉及这些系统的架构师将讨论这些系统的性能、它们对故障的适应性如何,以及如何设计它们以轻松地支持新功能。然而,很少出现的问题是不同的系统如何贡献业务价值,以及该价值如何与这些其他体系结构属性交互。
应对Covid-19
迄今为止,我们在应对2019冠状病毒病(Covid-19)爆发过程中学到了什么
产品服务合作伙伴
当客户公司购买软件产品时,他们通常需要熟练的员工来安装它们。这些员工通常由服务提供商公司提供,因为软件产品供应商认为建立自己的服务部门在商业上没有意义。客户需要了解产品供应商和服务供应商之间的关系,并且应该要求与他们合作的人对这种关系的透明度。随着云供应商的崛起,这些合作关系日益突出,透明度也变得越来越重要。
在输出结果
想象一个为购物网站编写软件的团队。如果我们查看团队的产出,我们可能会考虑他们在上个季度创造了多少新功能,或者一个跨职能的衡量指标,如页面加载时间的减少。然而,结果度量将考虑增加销售收入的度量,或减少产品的支持呼叫数。关注结果,而不是输出,有利于构建更多地提高软件用户和客户效率的功能。
如何在一个产品模式的组织中管理一个程序
在它们的理想状态下,产品模式组织是由松散耦合的、自治的团队组成的,这些团队能够快速响应明确的和未明确的用户需求。然而,有时会出现需要跨多个团队协调的响应的机会。如果不进行有效的管理,结果将导致失去收入、客户不满意和团队能力浪费。我们把响应这些机会的组织计划称为计划。在本文中,我们将通过一个程序变坏的例子来分享我们在产品模式组织中管理程序的经验。
在结对编程
今天从事软件开发的许多人都听说过结对编程的实践,华体会登录网址但它在行业中仍然只有零星的采用。人们对它的接受程度不一的一个原因是,它的好处不是立即显现出来的,它的回报更多是在中期和长期。而且它也不像“两个人在一台电脑前工作”那么简单,所以很多人在感觉不舒服的时候很快就忽略了它。然而,根据我们的经验,结对编程对于协作团队和高质量的软件是至关重要的。