• 客户经常会问的一个问题是:如何有效地提升开发团队的水平?你如何让一组从未编写过Python的工程师使其成为高效的Python开发人员?你如何让从未构建过分布式系统的团队可以构建可靠,容错的微服务?让从未有云中构建经验的团队负责构建云软件?有人说培训会提升团队水平,引入一个可以教我们如
  • 本文将引导你完成一系列从传统的命令式代码重构到Java 8函数代码,要从本文中获得最大收益,你应该具备Java 8函数的一些实践经验。 1)优先于匿名Lambda的命名函数为了热身,让我们从简单的任务开始,
  • 假设有一个简单的程序来管理存储在本地文件系统上的某些文件的元数据,用户可从磁盘读取这些文件并以某种方式处理它们。管理文件元数据的类: icon
  • 我们将重构一个简单的问题跟踪应用程序,通过典型的层隔离,根据领域驱动的战术设计模式进行建模。这个问题跟踪应用程序非常简单。您可以使用它执行多项业务操作 - 全部通过REST API,并且所有操作都完全由集成测试覆盖(请参阅 icon
  • Spring Java格式化开源组件是一组可应用于任何Java项目的插件,以提供一致的“Spring”样式。该组件目前包括: 应用包装和空白约定的源码格式化程序 一个checkstyle插件,可以强制执行代码库的一致性 由于此项目的目的是提供一致性,因此每个 icon
  • 假设你已经使用了lambdas流,巨长的Stream的代码如下: icon
  • 编程是从浪费生命中学到的可怕教训,编写易于删除但不易扩展的代码。 “每一行代码都是在没有理由的情况下编写的,有自己的弱点,并且偶然间会被删除” Jean-Paul Sartre的ANSI C编程。 icon
  • 这是有关Michael Feathers的大力重构的四小时研讨会笔记:Michael开始讨论什么是 icon
  • 假设有三种电影类型,每种类型都有自己的计算公式,该公式是根据借出的天数计算价格: icon
  • 在一个范式和技术堆栈一直在变化的世界中,保持竞争力和提高生产力和质量的斗争有时候证明是一项挑战。在本文中,我想首先展示一下函数编程(FP)的优势,特别是加强Java编码体验。在尝试将范式转换为函数式编程时,我将尝试迭代我发现最重要的几个原因。请记住,这绝不是一个巨大的创新,我相信FP icon
  • 空指针并不存在,是我们发明了它,我们现在就摆脱它,好吗?下面代码练习很简单:我们需要返回一个格式很好的行,根据他收集的点数为客户打印合适的折扣: icon
  • Any code of your own that you haven't looked at for six or more months might as well have been written by someone else." - Alan Eagleson icon
  • 在编写对性能敏感的代码时,最好记住它的算法复杂性。它通常用Big-O表示法表示。B icon
  • 这是我们从长期维护大型JavaScript应用程序中学到的经验教训。在我们的机构,客户项目通常持续几个月。从第一个客户联系和设计阶段到实施和首次启动,项目大致需要半年时 icon
  • Effective Java的一条建议是,除非有充分的理由让它们变得可变,否则你应该让你的类不可变。如果一个类不能成为不可变的,那么尽可能地限制它的可变性。不可变类定义了一旦创建,就永远不会改变其状态的对象。所有状态信息都是在构造对象时提供的,并且在对象的生命周期内不会改变。 icon
  • 我之前写过关于抽象成本的文章。一旦你在IT行业工作了几十年,一旦你在遗留代码上阅读了数百万行,你就会对任何一种抽象产生正常的怀疑。并不是说我们可以不做抽象。我们需要它能够 icon
  • 在Michael Feathers的消极架构中,他列举了Haskell(函数式编程)中提到IO Monad作为一个例子,在面向对象编程中也有类似的例子,通过使用分层和依 icon
  • 实践重构不仅仅是改进我们的代码,它还有助于我们更好地推理我们的代码。让我们的代码变得更好似乎不会让我们变得更好,但这里面还是有因果关系,虽然不是很明显。我遇到的最有趣的想法之一是 icon