期间:2015
华体会app下载二维码重构代码以加载文档
许多现代的web服务器代码与上游服务对话,上游服务返回JSON数据,对JSON数据进行一点修改,然后使用流行的单页应用程序框架将其发送到富客户端web页面。与使用此类系统的人交谈时,我听到他们对操作这些JSON文档需要做多少工作感到沮丧。这种挫折可以通过封装加载策略的组合来避免。
列表和散列
现在,在许多编程环境中,将数据结构表示为列表和hashmap的组合是很常见的。大多数主流语言现在都提供了这些数据结构的标准版本,特别是提供了丰富的操作范围收集管道,来操纵他们。这些数据结构非常灵活,允许我们以一种容易处理和操作的方式表示大多数层次结构形式。
发展的出版
当我开始我的写作生涯时,我从为技术杂志写文章开始。现在,当我写文章长度的文章时,它们都是为网络写的。纸质杂志仍然存在,但它们是越来越少的少数,可能注定要灭绝。然而,尽管纸质杂志正在衰落,纸质杂志的许多假设仍然牢牢地控制着作者和出版商。在最近与我想在我的网站上发表的文章的工作人员的交谈中,这一点尤其突出。
企业架构师在精益企业中的角色
当组织采用敏捷思维时,企业架构不会消失,但企业架构师的角色会发生变化。华体会体育网页版入口企业架构师不再做选择,而是帮助其他人做出正确的选择,然后传播这些信息。企业架构师仍然需要形成一个愿景,但随后需要在团队之间建立桥梁,以建立学习社区。这将允许团队探索新的方法并相互学习,企业架构师是这种增长的伙伴。
华体会app下载二维码重构到自适应模型
我们的大多数软件逻辑都是用编程语言编写的,这为我们提供了编写和发展这种逻辑的最佳环境。但是在某些情况下,将逻辑转移到命令式代码可以解释的数据结构中是有用的——我将其称为自适应模型。在这里,我将展示一些用JavaScript编写的产品选择逻辑,并展示如何将其重构为用JSON编码的简单生产规则系统。这个JSON数据允许我们在使用不同编程语言的设备之间共享这个选择逻辑,并在不更新这些设备上的代码的情况下更新这个逻辑。
远程工作与协同工作
远程工作与协同工作之间并没有简单的二分法,相反,对于团队来说,有几种分布模式,每种模式都有不同的权衡和适合自己的有效技术。虽然不可能确定结论性的证据,但我的感觉是,大多数团队在共同办公的方式下工作效率更高。但是通过使用分布式工作模型,您可以建立一个更高效的团队,因为它使您能够接触到更广泛的人才库。
华体会app下载二维码重构模块依赖关系
随着程序规模的增长,将其划分为模块非常重要,这样您就不需要理解所有的模块来进行小的修改。这些模块通常可以由不同的团队提供并动态组合。在这篇重构文章中华体会app下载二维码,我使用表示-域-数据分层拆分了一个小程序。然后重构这些模块之间的依赖关系,引入服务定位器和依赖注入模式。这些重构适用于不同的语言,但看起来不同,因此我以Java和无类JavaScript风格展示这些重构。华体会app下载二维码
所需接口
必需的接口是交互的客户端定义的接口,该接口指定供应商组件需要做什么,以便可以在该交互中使用它。
软件组件
自从我进入我们的行业以来,将软件开发从费力地编华体会登录网址写代码转变为通过简单的组件组装来构建强大的系统一直是我的目标。这一目标有时被瞥见,但从未真正实现——尽管许多技术都曾抛出工业重用的胡萝卜。
表示域数据分层
将一个信息丰富的程序模块化的最常见的方法之一是将它分为三个层次:表示层(UI)、领域逻辑(又名业务逻辑)和数据访问。因此,你经常会看到web应用程序被分成知道如何处理HTTP请求和呈现HTML的web层,包含验证和计算的业务逻辑层,以及处理如何管理数据库或远程服务中的持久数据的数据访问层。
反模式
安德鲁Koenig在JOOP的一篇文章中首次提出了“反模式”一词,遗憾的是,该词在internet上不可用。基本思想(我记得)是,反模式在开始时似乎是个好主意,但会给您带来麻烦。从那以后,这个词经常被用来指任何糟糕的想法,但我认为最初的焦点更有用。
排列图
对齐映射是组织信息散热器,它帮助可视化正在进行的工作与业务结果的对齐。工作可能是常规的功能添加或技术工作,如重新架构或偿还技术债务或改进构建和部署管道。团队成员使用对齐映射来理解他们的日常工作需要改进的业务结果。业务和IT发起人使用它们来理解正在进行的工作与他们关心的业务结果之间的关系。
华体会app下载二维码使用循环和集合管道进行重构
循环是处理集合的经典方法,但随着编程语言中大量采用一流函数,集合管道是一种有吸引力的替代方法。在本文中,我将通过一系列小示例来研究如何将循环重构为华体会app下载二维码集合管道。
开发运维文化
敏捷软件开发华体会登录网址打破了需求分析、测试和开发之间的一些竖井。部署、操作和维护是其他与软件开发过程的其他部分类似分离的活动。华体会登录网址DevOps运动旨在消除这些竖井,鼓励开发和运营之间的协作。
Microservice权衡
许多开发团队已经发现微服务体系结构风格是一种优于单片体系结构的方法。华体会体育网页版入口但其他团队发现它们是一个降低生产力的负担。与任何架构风格一样,微服务带来了成本和收益。为了做出明智的选择,你必须理解这些,并将其应用到特定的环境中。
收集管道
集合管道是一种编程模式,在这种模式下,您将一些计算组织为一系列操作,这些操作通过将集合作为一个操作的输出并将其提供给下一个操作来组成。(常用操作有filter、map和reduce。)这种模式在函数式编程中很常见,在具有lambda的面向对象语言中也很常见。本文通过几个关于如何形成管道的示例来描述该模式,这既是为了向不熟悉该模式的人介绍该模式,也是为了帮助人们理解核心概念,以便更容易地从一种语言转换到另一种语言。
神秘博士的樱桃采摘指南
《神秘博士》是一部长期播出的电视剧,但你不需要投入太多时间就能开始欣赏它。挑选优秀的独立剧集很容易。
Tor对技术人员来说
Tor如何工作以及如何使用它的摘要。它还涵盖了Tor浏览器捆绑包、隐藏服务、尾部,并研究了围绕Tor的一些争议。
不要从一个庞然大物开始
在过去的几个月里,我反复听到这样的说法:获得成功的微服务架构的唯一方法是首先从一个整体开始。华体会体育网页版入口套用Simon Brown的话:如果你不能构建一个结构良好的整体,你凭什么认为你可以构建一组结构良好的微服务?马丁·福勒(Martin Fowler)在这个网站上对这一论点进行了最新的——通常也是非常有说服力的——阐释。因为我有机会对早期的草稿进行评论,所以我有一些时间来思考这个问题。我的确这么做了,尤其是因为我经常发现自己和他的观点一致,而其他一些我通常持有相同观点的人似乎也同意他的观点。
我坚信从一个整体开始通常是错误的做法。
庞然大物第一
当我听到团队使用microservices架华体会体育网页版入口构,我注意到一个共同的模式。
- 几乎所有成功的微服务故事都是从一个庞然大物开始的,它变得太大了,然后被拆分了
- 我听说的几乎所有从零开始构建为微服务系统的系统都以严重的麻烦告终。
这种模式让我的许多同事认为你不应该用微服务开始一个新项目,即使你确定你的应用足够大,值得去做。.
Microservice溢价
的microservices建筑风格一直是去年的热门话题。在最近的O'Reilly软件架构会议华体会体育网页版入口在美国,似乎每次会议都在谈论微服务。足够让所有人的超级扯淡探测器亮起来了。这样做的后果之一是,我们看到团队太急于接受微服务,而没有意识到微服务为他们自己带来了复杂性。这增加了项目的成本和风险——这经常使项目陷入严重的麻烦。
华体会app下载二维码重构访问外部服务的代码
当我编写处理外部服务的代码时,我发现将访问代码分离到单独的对象中很有价值。在这里,我将展示如何将一些凝固的代码重构为这种分离的公共模式。
数据湖
数据湖是近十年来出现的一个术语,用来描述世界数据分析管道的一个重要组成部分大数据.这个想法是为组织中的任何人可能需要分析的所有原始数据建立一个单独的存储。通常人们使用Hadoop来处理湖中的数据,但这个概念比Hadoop更广泛。
www.rodiba.com 2014年底状态报告
运营www.rodiba.com网站是我在Thoughtworks工作的很大一部分。传统上,它的流量比我们的主站要多,不过随着我们主站的改进,这一情况将很高兴地改变。我的网站是我们影响行业的工具,是我们第二支柱工作的一部分。
Microservices说话
就像任何一点新的架构术语一样,对微服务是什么很难有一个像样的定义,所以本次演讲以解决这个问题开始,基于James和我的文章,这篇文章有助于激发人们的兴趣。然后,我将微服务与SOA进行比较,将体系结构与更单一的方法进行比较,并概述在部署微服务应用程序之前华体会体育网页版入口必须做好的重要事情。
多样性平庸的错觉
我经常参与关于有意增加一群人的多样性的讨论。软件行业最常见的例子是增加女性的比例。两个例子是在招聘和会议发言人名单上,我们讨论了如何让女性的比例高于通常水平。反对推动更大的多样性的一个常见论点是,这会降低标准,增加一个多元化但平庸的群体的幽灵。
预备重构的一个例子华体会app下载二维码
这是一个简单的例子,说明如何通过首先重构代码来简化更改。华体会app下载二维码