程序员组合思维

     

Python中使用函数管道简化数据处理

45 4K

函数管道允许以顺序方式无缝执行多个函数,其中一个函数的输出作为下一个函数的输入。什么是函数管道函数管道允许以顺序方式无缝执行多个函数,其中一个函数的输出作为下一个函数的输入。这种方法有助于将复杂的任务.

htmx是可组合的插件系统

108 4K

很容易在HTMX中开发一个强大的插件系统。人们曾认为 JSON 驱动的 REST API 是构建可组合 Web API 的唯一方法。现在,HTMX 将后端和前端融合成一个整体组件。htmx 的可组合性.

如何从头开始开发算法 | 培养算法思维

108

算法是用于解决问题的分步指令。发展算法思维有助于将复杂问题分解为更小的问题,然后解决更小的问题并将它们组合起来为该复杂问题提供解决方案。通过解决难题来发展算法思维: 解决谜题和脑筋急转弯有助于增强逻辑.

抽象两种方法:上下文与类型

338 2 3K

“抽象”的中文意思是“抽出象形”。奥妙就在于实现手段有很多,也是创新所在,这里比较三种手段:首先是中文字面意思上的“抽象”:抽出象形,中国文化谓之为神,例如中国水墨国画,还有古诗词:“窗前明月光疑是地.

ACE Dev : 自适应组合进化开发

111 4K

ACE Dev或自适应组合进化开发:描述自 1999 年开始专业从事面向对象编程以来所采用的开发风格的术语。ACE dev 由一组简单的原则组成,应用这些原则通常会自然地实现灵活且可维护的代码。当你理.

编程范式列表

122 3K

本文中介绍的编程范例的列表: 结构化编程 函数式编程 面向对象编程 面向数据的编程 可组合编程 依赖注入 声明式编程 自上而下与自下而上 极简主义与极简主义 自适应编程 渐进式软件开发 自我驱动的开.

一张图说明继承的缺点

191
多轮继承以后,无法确定结果类型。解决方法: 1、只限制一轮继承 2、只限制在业务功能上的继承,如领域模型实体和值对象 3、默认使用组合,类似Golang Rust语言直接迫使你使用组合,完全形式化与函.

“组装理论”统一物理学和生物学解释了进化和复杂性

121

一个国际研究团队开发了一个新的理论框架,将物理学和生物学联系起来,为理解自然界的复杂性和进化如何出现提供了统一的方法。今天发表在《自然》杂志上的这项关于“组装理论(Assembly Theory)”的.

产品经理的第一性原理

452 4K

第一原理思维 是一种解决问题的方法,您可以将情况分解为基本部分,然后重新构建它们以得出解决方案。在这篇文章中,我们将了解作为产品经理如何利用“第一原理思维”来解决常见问题并创造成功的产品。为了更好地理.

Rust 可组合性比较差

510 3K

我爱锈。我希望他们能花更多时间让它真正适用于非 hello-world 用例。迭代Rust 有一个很好的迭代语法:for x in &mut something {    *x = (*x) * 2;.

什么是CUPID快乐编码?

454

CUPID 的五个属性是: Composable可组合:与其他人一起玩得很好 Unix哲学:做好一件事 Predictable可预测的:做你期望的 Idiomatic惯用语:感觉自然 Domain-b.

Python的Monad设计模式详解

1041 11K

Monad 设计模式是一种函数式编程概念,它提供了一种以简洁优雅的方式封装复杂操作和计算的方法。通过提供一组用于组合函数和处理副作用的规则和约定,Monad 允许您编写易于阅读、维护和测试的代码。无论.

Golang 不是 Java,类型嵌入不是继承。

519

在 Golang 中,可以使用结构将一个类型嵌入到另一个类型中。这看起来像一个普通的字段声明,但没有名称。这是将一个结构嵌入另一个结构:type inner struct {    a int}typ.

可组合架构 - DZone

1123 1 2K

本文讨论可组合应用程序架构的概念和架构模式。在一个组织中进行软件选择的基本假设已经发生了变化。虽然原则、政策和指导方针是相同的,但在大多数情况下,以下因素对产品、技术和开发的选择有直接影响。 一个组织.

关于如何以及为什么需要函数式编程? - Merrick

848 3K

让我们从一个例子开始:在 Advent of Code 2022 day 1 中,我们有一组数字的字符串,看起来像:10002000300040005000600070008000900010000我.

为什么组合优于继承?

1728 1

过度(滥用)继承一直是OO的最大问题之一。组合可以在OO或FP中实现,对FP的了解(哪怕是一点点)可以积极地影响你如何写OO代码。继承不应该是学生们学习的第一件事,但它却是。我看到很多初学者从第一天开.

业务的未来是可组合的 - Gartner

1090

可组合业务意味着创建一个由可互换构建块组成的组织。模块化设置使企业能够根据外部(或内部)因素(例如客户价值的转变或供应链或材料的突然变化)根据需要重新安排和调整方向。 可组合业务的三个组成部分是:  .

复杂性是心智杀手 - PhilipK

936

当面临选择时,总是选择最简单的东西来解决你眼前的问题。然后确保你以后可以改变主意。我所说的最简单的事情是指最容易推理的解决方案。当我们总是选择最简单的解决方案时,我们就可以避免分析瘫痪,即找出在我们可.

架构师应该多维度多视角地思考 - Gregor

1408 1 2K
程序员是无到有构建代码,应该注重组合思维,做出来的东西需要能够相互组合在一起;而架构师是从上而下的视角,因为不参与具体细节构建,但为了落地,应该具有多维度多维度视角,从程序员到架构师思维转变很重要,下.

互联网是模块化的 - Gordon

923 1

互联网的关键架构原则之一是模块化;模块化是一种设计原则,它有意使组件高度独立(“松散耦合”);当一个系统由具有可识别边界的较小的独立部分组成时,它就是模块化的。在设计模块化架构时,系统架构师以最小化组.

《掌控习惯》:如何养成好习惯入定心流? - chrisbehan

2425 2 6K
《掌控习惯》是一本写给程序员的知识脑力工作者的改变认知的书籍。詹姆斯·克利尔(James Clear)著作,2019年北京联合出版公司出版。以下是书籍中精要思想的一些提炼,更全面原文点击标题: 什么是.

分而治之 (D&C) 和动态编程 (DP) 是伟大的算法 - Franc0

1429 1

Divide and Conquer (D&C:分而治之) 和Dynamic Programming (DP:动态编程)是伟大的算法技术,两者都将给定的问题分解为子问题并解决子问题(banq注:还原论.

幽默:可组合性是软件的复利

1695 1

可组合性之于软件,正如复利之于金融。  软件的可组合性需要更深思熟虑的思考,并且更难像复利那样简单地实施。可组合性(相对于复利)的优势在于新手不必从头开始。这绝对是我认为导致软件驱动经济呈指数增长的原.

为什么纯函数式语言至今无法流行起来?

2170 3

编程可以从冯诺依曼风格中解放出来吗?使用一种函数式风格及程序代数替代它?为什么纯函数式编程无法成为主流?为什么纯函数式语言无法真正解决实际问题?CS大学里那些书呆子的梦想式白日梦还是终有一天会实现?冯.

从特斯拉刹车事件看AI如何与人类和谐交互

1847 3

本文不持有任何立场,只是以这个事件为案例,强调复杂系统不是简单的部件组合,部件交互作用是整体系统最重要的特征。特斯拉车主抗议特斯拉刹车时僵硬,导致刹车时间过长,导致车祸,从大量视频讨论中看出:特斯拉的.

如何通过“就像XX”启发创新思维? - mathiasverraes

986 1

类比、隐喻、比喻、类比虽然让人更容易理解,但是也是最危险的思维方式,故马斯克提出使用第一性思维替代他们,本文式DDD专家mathiasverraes的一篇文章,也是谈论这种启发性(heuristic).

如何提升自己对问题的理解深度?

1358

如果您不能明智地为一个问题的正反双方都进行辩护,那么您对这个问题的理解就不够好,也就不能为任何一方辩护。 网友讨论:banq注:老子《道德经》的“反者道之动”也是这个道理。 芒格定律 这是只有标准答案.

什么是二阶思维? - fs

6117
通常,当我们解决一个问题时,最终会无意间创造出另一个更糟的问题。检查我们的决策的长期后果的最佳方法是使用二阶思维。二阶思维不仅是考虑我们的决定的后果,而且还考虑这些后果的后果。霍华德·马克斯(Howa.

《组合性》第一卷网上刊物已经出版

1294

《组合性》第一卷已经出版!你可以在这里阅读它:https://compositionality-journal.org“可组合性”是关于如何从较简单的零件组装出复杂的东西。 《组合性》是一门研究性期刊.

GRASP之高凝聚模式 - Kamil Grzybek

1308

问题:如何保持对象集中,易于理解,易于管理以及作为副作用支持低耦合?解决方案:分配责任,以保持凝聚力。用凝聚力大小来作为分配职责的判断标准。凝聚力衡量元素的所有责任的相关程度。换句话说,元素内部的部分.