Java接口实现
可汗学院使用Go静态上下文理顺全局变量和依赖 - khanacademy

可汗学院正在完成一个巨大的项目,将我们的后端从Python迁移到Go。虽然这个项目的主要目标是迁移到一个过时的平台上,但我们看到了改进我们代码的机会,而不仅仅是直接移植。 我们想改进的一件大事是我... 详细
避免过早的软件抽象 - Jonas

Swift面向协议的编程 - arturgruchala

2015 年,苹果推出了一个新概念—— 面向协议的编程 。我敢肯定,您正在使用这些技巧中的大部分,甚至全部。 案例:您正在使用UserDefaults. 也许是一个简单的保存用户关于黑暗主题偏好的决... 详细
软件工程中的海仑定律 - hyrumslaw

海仑定律(Hyrum's Law)是软件工程中一种观察经验: 有了足够数量的 API 用户, 您在合同中承诺什么并不重要: 您系统的所有可观察行为 都将取决于某人。 我(H... 详细
LSP-Liskov替代原理 - deepdive

Liskov替换原则是SOLID的一部分,该缩写缩写总共捆绑了5条设计原则。 它通常与干净的代码相关联。 但是到底是什么,对您来说重要吗,您甚至应该关心吗? 它是什么? 如果S是T的子... 详细
Java中的重载和覆盖的细微差别 - rajivprab

我已经用Java编程超过五年了,并且认为我知道重载和覆盖是如何工作的。只有一次我开始思考并写下以下的角落案例,我才意识到我几乎不知道它。为了游戏化这些细微差别,我在下面将它们列为一系列谜题。 ... 详细
Java中基于泛型的交叉类型 - {4Comprehension}

简单地说,交集类型是通过组合至少两种不同类型而创建的匿名类型的形式。 想象一下,我们需要模拟两种类型的动物: 那些可以飞的 那些可以游泳的 我们可以简单地实现两个接口: ... 详细
用汽车比喻理解OOP - Jonathan Kuhl

站在任何街角,观看交通一段时间,来来往往都是汽车。它们具有相同的基本结构:四个轮子,一个发动机,一个方向盘,用汽油或柴油运行。然而,它们在颜色,马力,形状,特征甚至可能使用的汽油类型方面差异很大。每... 详细
一个控制器一个Action - Janos Pasztor

你在控制器中放了多少个动作Action?5-6?20?如果我告诉你我的限制只能是一种Action方法,你会怎么说? 可以肯定地说,大多数Web应用程序在其控制器中都有太多的Action操作方法,但它... 详细
你为什么要使用接口? - Janos Pasztor

我从很多人那里收到了同样的问题:为什么你甚至会使用接口? 当涉及到接口时,人们倾向于认为他们唯一的用途是当你有多个实现时,你可以轻松地将它们切换出来。然而,大多数人在他们的应用程序中没有特定功能的多... 详细