首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Unix哲学

先讲两个很老小故事。 第一个故事。 有一家日本最大化妆品公司,收到了用户投诉。用户抱怨买来肥皂盒是空。...这家公司为了防止再发生这样事故,很辛苦地发明了一台X光检查器,能够透视每一个出货肥皂盒。 同样事故,发生在一家小公司。...===================== 这几天,我在看Unix,发现很多人在谈"Unix哲学",也就是开发Unix系统指导思想。 Wikipedia上列出了好几个版本,不同的人有不同总结。...但是我发现,所有人都同意,"简单原则"----尽量用简单方法解决问题----是"Unix哲学"根本原则。...清晰代码不容易崩溃,而且容易理解和维护。重视注释。不为了性能一丁点提升,而大幅增加技术复杂性,因为复杂技术会使得日后阅读和维护更加艰难。 2. 模块原则。

99730

golang设计哲学

golang简介Google是一家顶尖创新与大神集结地方,员工工作方式也很特别,叫做“20%Time”,即允许工程师拿出20%时间来研究自己喜欢项目。...2007年9月20日下午,在谷歌山景城总部一间办公室里,谷歌大佬级程序员Rob Pike启动了一个C++工程编译构建。按照以往经验判断,这次构建大约需要一个小时。...golang设计哲学这里整理出go语言设计者Rob Pike一些公开演讲,然后提炼出golang设计之初哲学之道,这些演讲分别是:Concurrency is not Parallelism....除此之外,并发与组合哲学是一脉相承,并发是一个更大组合概念,它在程序设计层面对程序进行拆解组合,再映射到程序执行层面:goroutine各自执行特定工作,通过channel+select将goroutine...)Go 设计哲学:少即是多,哪里来

7910
您找到你想要的搜索结果了吗?
是的
没有找到

实用正面哲学

其一,尽管其宏伟标题,该帖子狭隘地专注于我们在 Liferay 云面向企业用例和我们在最近堆栈升级期间实施一些模式。事后看来,我宁愿详细介绍更多我建筑特定想法。...随着技术进步,可能会有新问题需要解决,但阳光下没有什么新鲜事。网络系统中只有如此多需求,这意味着有效满足这些需求方式是有限度。...这是一个有据可查问题,并不是什么新鲜事。jQuery UI 也是如此(不是说我在身边)也是如此,下一个广受欢迎包罗万象工具包也是如此,它承诺快速赢得 Web 开发人员。...但是,在一天结束时候,永远记住:它只是一个花哨模板引擎,为动态应用。提高我们连接和插值 HTML 能力质量工具,无论是静态还是动态,都将受到欢迎和赞扬。...安装神奇 NPM 模块很容易,这意味着很容易构建一个巨大、脆弱、不必要依赖树来权衡您应用。NPM近年来一直与争议相邻,但NPM只是人类使用工具。

36910

Filecoin架构与哲学

》 用模块化实现组件重用和多个实现之间互操作性 用无服务器实现弹性扩展和功能即服务 用系统构建系统 软件哲学方面通常是以理性为基础,以批判或者系统方式进行思考。...以下是我总结Filecoin设计中重要哲学: 关注协议,没有人是一座孤岛。 关注互联网中被破坏东西,参考《大话胡安: 我为什么创立协议实验室?》。...他初心和哲学都在这篇文章中了:《大话胡安: 我为什么创立协议实验室?》。 是什么让Filecoin与众不同?Filecoin官方总结了三个方面:复制证明、可验证市场和有用共识。...总体来说,Filecoin在架构与哲学方面是偏执,缺乏灵活性。...但Filecoin所坚持哲学和目标没有变更,那就是用研究支撑规范,让实现遵循规范,用反复迭代和多种实现保证实现安全。 我想,正是这种偏执,让Filecoin与众不同。 最多零知识证明系统

34530

MongoDB引用哲学 --- 游标

,但是有时候 从数据库取出来数据是跨数据,比如取第100页数据。...通俗说,游标不是查询结果,而是查询一个返回资源或者接口,通过 这个接口,可以逐条读取数据。 就类似java中读取流一样,使用包装类readLine()方法一行一行去读。...同样也可以使用jswhile语法来循环打印刚刚数据: 当然也可以使用for循环来打印: 还有一个比较常用方法,叫“forEach”,每一个forEach里面有一个 回调函数,这个函数中obj...对象就是游标指向数据集每一个数据。...: 如果我们不想迭代打印,想直接把结果以数组形式打印出来, 使用游标的toArray()方法: 想取出某一个,使用数组下标即可: 这里要提醒大家是,如果查询少量数据,可以使用toArray

1.5K40

Django设计哲学

Django 读作姜戈,第一个 D 不发音,与电影《被解救姜戈》姜戈除了读音一样,没有其他半毛钱关系。Django 是一个优秀 Web 框架,用 Python 编写,是非常流行全栈框架。...,在开发过程中他们发现很多共性代码可以提取出来复用,从而减少工作量,提高效率,慢慢就开发出一个可以填空 Web 框架,这个框架被越来越多的人使用,于是在 2005 年夏天,Django 源码开放...,一度成为非常流程框架,有着数以万计用户和贡献者,在世界广泛传播完善开源项目。...Django 是完美主义者开发框架,和 Python 一样有着自己设计哲学: 一、总体架构方面: 1、松耦合 Django 基本目标是松耦合和高内聚。...这也是 select_related() QuerySet 方法存在原因,对于常见查询相关对象情形,它是可选性能提升器。

2.1K10

DDD哲学意味(上)

最近有小伙伴在Thoughtworks DDD社区中提起了有关哲学的话题,这在我这个哲学民科(下文简称“哲民”)心中激起了阵阵涟漪。...据小道消息,Eric Evans认为DDD不是一种方法学,而是一种软件开发思想和哲学。言下之意,“方法学”把DDD给说小了。好吧,那咱就顺着艾老师意思,看看DDD和哲学能碰出什么火花来。...对于我们这些从小受到辩证唯物主义教育小伙伴来说,这没什么问题。但有些哲学家可未必同意。 首先,佛教哲学认为根本就不存在“客观世界”,一切都是空幻不实。印度教也认为我们不过是生活在梵天一场梦中。...好在这些哲学思辨并不会对程序员和领域专家们生活造成太大影响。...至于我们所认识到东西和客观世界(如果有的话)关系就留给哲学家们讨论吧。 不过上述论断对建模还是有一个细微但重要影响。

29020

DDD哲学意味(下)

这样哲学除了在象牙塔中孤芳自赏,又有多少实际意义? 到了十九世纪末,人们逐渐意识到问题很可能出在“语言”上,很多哲学问题来源于对语言误用。解决了语言问题,就解决了哲学问题。...由此产生了“语言哲学”,并成为了二十世纪上半叶英美哲学主流。如果说认识论是“对思考思考”,那么语言哲学就是“对言说言说”。...尽管历史上有很多哲学家也很重视语言,但那时语言只是研究哲学工具;而现在,语言成了哲学本身。...下面我们从语言哲学角度看一看软件开发中有关语言问题。 首先,语言哲学认为,语言意义是在使用过程中体现出来。...小结 我们用若干章节探讨了领域驱动设计哲学内涵。两者之间这种契合关系并非偶然。 哲学主要目的是解决对世界进行认识(认识论)和诠释(语言哲学)问题。

41430

Apple 设计哲学 · 交互篇

苹果是一家为数不多以设计驱动公司。 如今,当我们谈论起产品设计、谈论起用户体验,总是离不开苹果,它所坚持设计哲学是对细节和质量极致追求。下面,我就带大家看看 Apple 在交互方面做努力。...动态触控区域 Apple 为了解决在移动设备上输入本文问题,采用了一种流畅并且对用户友好解决方案:基于预测输入系统,扩大虚拟键盘有效触控区域。 ?...当你按下“th”时候,系统预测下一个字母可能是 e 或 i,从而动态增加这两个字母点击范围,以此提高输入命中率。 当然,视觉上你看不到按钮尺寸变化。指尖之上,一切都在无形之中。 — 02....重新定向 在使用设备中,用户操作是一直在改变,所以交互中间过程,同样需要重新定向。 ?...为用户创造一系列愉悦体验,这也许就是苹果设计哲学。 作者:阿洋,网易资深设计师,每周原创设计干货 本文首发自公众号:洋爷(ID:yangye365)

1.1K20

软件必备模块-软件哲学

我一直觉得设计哲学这个东西是一个很虚东西,直到我看了一个关于苏联暴力美学帖子,里面有一段写ak-47,t34等等。虽然也有人说这是苏联战略忽悠局。...经过一年工作发现确实生产中面临这样问题,如果用苏军内幕这本书里面的思想确实是可以改进很多问题。 坦克!进攻! 战略进攻 不要用战术上勤奋掩盖战略上懒惰?虽然把一个产品做精益求精是对事情。...因为我觉得写代码本身有意义,但是纠结在代码细枝末节是没有意义事情。首先作为一个公司或者一个技术团队,他意义是解决现实生活实际问题,有稳定可靠盈利。...简单组合 由结构简单组合组合成性能可靠巨大产品 由结构简单组合组合成性能可靠巨大产品 由结构简单组合组合成性能可靠巨大产品 这样组成产品易于维护,喝一瓶二锅头也写不错代码和加班熬夜几天还写不错模块是好模块...不同口径,为了音乐学院学生 显式调用 盗取代码,删库跑路是一件很可怕事情,不过更可怕事情是写不可维护代码,可读结构简单代码,就是战时武器,在仓促情况下,隐藏调用或者其他修改会。

79620

类和对象哲学思考

它们关系是,对象是类实例,类是对象模板,即哲学中共性与个性关系。...如果要找出52张牌共性,那就是牌点和花色,因为任何一张牌都有牌点和花色特性。 ? 共性是抽象,个性是具体 int类型是抽象,而对象5,9是具体。...共性与个性相互转化 在保持原有类属性和功能基础上,扩展新功能称为类继承。被继承已有类称为父类;派生出新类叫做子类。子类可以看作父类一个对象,而子类又可以生成对象。...这就是类和对象之间在一定条件下转化。 矛盾共性指矛盾普遍性,是绝对、无条件;矛盾个性指矛盾特殊性,是相对、有条件。...共性决定事物基本性质;个性揭示事物之间差异性。个性体现并丰富着共性。共性是绝对、无条件,个性是相对、有条件

57310

ER 模型背后建模哲学

将具体业务场景数字化,首先需要对场景进行抽象和设计。业务场景中概念及其联系,落到硬盘上就是数据库中一张张表,加载到内存中便是编程语言一个个类。...因此,对具体场景进行建模时,最重要便是数据库表设计和软件类图设计,而他俩又基本上是一一对应。...前者常使用 ER 模型进行辅助设计,识别问题域中关键概念和联系,进行图形化、精确化描述;后者当然有很多 ORM 框架和 UML 类图之类来表示。...实体是一个概念,可以对应编程语言中类,也可以理解为一个 Excel 中由表头确定一个表。而实体一个对象,则对应编程中一个类实例,也对应 Excel 表格中一行。...宠物医院类图 关系特点 实体与实体间关系一个最重要特征便是基数(cardinality)和参与度(participation)。前者就是我们常说:一对一,一对多,还是多对多关系。

23340

DDD哲学意味(中)

“关联”、《矛盾论》、毕达哥拉斯学派 DDD哲学意味(上)说到了“模型驱动设计”以及其中两个重要模式“实体”和“值对象”,两者统称“领域对象”。...这一点实属可惜,因为关联至少与实体有同样重要性。为什么这么说呢?下面还是先扯几句哲学。 前面提到毛老师《实践论》,这里再说说怹老人家另一篇杰作《矛盾论》。...形而上学认为事物发展是静态、外因驱动、孤立;唯物辩证法则认为事物发展是动态、内因驱动、联系(还记得中学政治课背过吗?)。前两点我们后面再聊,这里先讨论“联系”。...模型演进、辩证法、进化论 前文说到,唯物辩证法认为事物发展是动态、内因驱动、联系;并且已经讨论了“联系”。这一节首先讨论“动态”。 事物发展变化是永恒。...限界上下文与人类认识能力有限性 虽然哲学家可能是人类有史以来最喜欢争辩群体,但有一个观点,多数哲学家却是有共识:人认识能力是有限

26310

机器学习中哲学

本文有标题党之嫌,因为讨论内容并非严格哲学命题。但机器学习中有很多思想换个角度看和其他学科息息相关,甚至共通。在此总结了一些我觉得有意思观察,供大家讨论。 ?...△ 图为拉斐尔为梵蒂冈宫教皇绘制哲学主题壁画《雅典学派》 1. 没有免费午餐定理(No Free Lunch Theorem) - 什么算法最好?...奥卡姆剃刀定理(Occam’s Razor - Ockham定理) - 少即是多 奥卡姆剃刀是由十二世纪英国教士及哲学家奥卡姆提出:“ 如无必要,勿增实体”。 ?...那么h1更加简单,更加符合尝试,选择它:) 提供这个例子原因是为了提供一个量化方法来评估假设,其与奥卡姆剃刀有相同哲学内涵。...集成学习(Ensemble Learning) - 三个臭皮匠智慧 集成学习哲学思想是“众人拾柴火焰高”,和其他机器学习模型不同,集成学习将多个较弱机器学习(臭皮匠)模型合并起来来一起决策(诸葛亮

1K90

python异常处理哲学

所谓异常指的是程序执行出现了非预期行为,就好比现实中做一件事过程中总会出现一些意外事。异常处理是跨越编程语言,和具体编程细节相比,程序执行异常处理更像是哲学。...这两个问题分别在不同时间针对不同问题出自一个互联网巨头中某个资深QA和资深开发反问。 暂且不论对错,毕竟不同人考虑问题出发点是不同。...但是从这么坚决去异常处理回答中至少有一点可以肯定,那就是很多人对自己代码太过自信或者说是察觉代码潜在问题直觉力不够,更别提正确处理潜在问题以保证重要业务逻辑处理流程。...比如我们给第三方提供API或者使用第三方提供API。多数情况下要正确处理调用者错误调用参数和返回异常结果情况,不然就可能要背黑锅了。 在不可控环境中运行程序,异常处理是必须。...程序执行过程中抛出异常会匹配该对象对应异常类和其所有的基类。 可以从内置类型异常类派生出自定义异常类。 被捕获异常可以再次被抛出。

1.2K20

Go语言设计哲学

[GO专栏-2]Go语言设计哲学 简单 第一条原则:追求简单,少即是多 组合 偏好组合,正交解耦 理解golang结构体嵌入 为什么嵌入语法是组合而非继承 活用组合和接口让代码更加优雅 与其他语言对比...除此之外,并发与组合哲学是一脉相承,并发是一个更大组合概念,它在程序设计层面对程序进行拆解组合,再映射到程序执行层面上:goroutines各自执行特定工作,通过 channel+select...面向工程 原则: 面向工程,“自带电池” 要想理解这条设计哲学,我们依然需要回到三位 Go 语言之父在设计 Go 语言时初衷:**面向解决真实世界中 Google 内部大规模软件开发存在各种问题,为这些问题提供答案...这种设计哲学落地让 Go 语言具有广泛规模适应性:既可以被仅有 5 人初创团队用于开发终端工具,也能够满足像 Google 这样超巨型公司大规模团队开发大规模网络服务程序需要。...但作为面向工程编程语言,光有简单设计哲学还不够,每个语言设计细节还都要经过“工程规模化”考验和打磨,需要在细节上做好充分思考和讨论。

73120

回眸Unix设计哲学

这些设计或许在某个时刻已经不再为人所用,或者仅供瞻仰,但其设计精神却恒久而不废。 大约,Unix设计哲学亦如此。...思考架构模式中“管道过滤器”模式,思考事件驱动架构(EDA),思考Storm或者Spark Streaming对流处理,思考Scala中Parser原理,几乎都看到了这一Unix设计哲学影子。...Martin Kleppmann在文章Apache Kafka, Samza, and the Unix Philosophy of Distributed Data中比较了Unix设计哲学与数据库设计哲学...Unix设计哲学将stdin和stdout视为通信通道(communication channel),数据库设计模式则是服务器/客户端。...若没有它设计哲学作指引,它或许已经崩溃、疯狂或者死亡,正如人没有信仰。软件设计需有思想支持,否则设计结果没有灵魂。

1K60

Keyman算法设计哲学

前言whosbug项目中,最重要无非是两个部分:对接入项目的AST静态语法解析责任人归属算法`whosbug`初版发布后我们进行了一系列测试,发现了老算法在一些场景下局限性(如对没有第三方库调用处理....png" style="zoom: 50%;" />并且包 / 类也视作一个函数,将包/类内代码非函数内代码归入这个包 / 类函数图片获取可能和这次错误相关函数Init: 获取预设迭代次数NUMBER_OF_ITERATION...,新建相关方法集methods,以错误堆栈中涉及所有方法为初值不断地从methods内每个函数/方法找到与其相连且未在methods内方法,加入methods中,也同时得到该方法与直接错误方法距离...(输入堆栈中原始栈帧)距离(语法树中距离)、其原始栈帧到栈顶距离以及其置信度$$\mathit{Contribution}\ =\ \mathit{Confidence\ \ \frac{...,一定程度上也考虑了初版假设:越近修改越容易导致bug)函数大改时会基本回落到初始化置信度一定程度上区分bugfix型变动和业务变更变动初始化$$\mathit{Confidence\ =\

31431

Clojure component 设计哲学

Component 是一个微型 Clojure 框架用于管理那些包含运行时状态软件组件生命周期和依赖。 这主要是一种用几个辅助函数实现设计模式。可以被看成是使用不可变数据结构依赖注入风格。...store,函数,用于处理不同路由。...与将可变状态分散到不同命名空间做法不同,应用所有有状态部分都可以被聚合到一起。某些情况下,使用 component 可以不需要共享可变引用。举个例子,存储当前数据库资源链接。...Component 假设所有的应用状态都是通过参数形式传递给使用到它函数中。这样会导致很难应用到那些依赖全局或者单例引用代码。...框架产生 system 对象是一个巨大并且有很多重复复杂 map。同样 component 可能会在 map 多个地方出现。

1K00

茑屋经营哲学

思维导图 第一章 经营哲学 LOFT起点 我很喜欢大学社团氛围,从那时起我便暗下决心,如果有朝一日自己开了公司或店铺,一定要把它打造成一个拥有大学社团氛围集体 只要开在车站附近这样交通便捷地方...,哪怕不是在一楼(LOFT在五楼开业),也一定会有顾客来 我在车站前百货商场找到空铺位于五楼。...那就是站在顾客角度思考问题,或是以顾客心情思考问题 这是任何人都可以轻而易举做到,可是真正去做的人却少之又少 成长本质 所谓成长本质,拥有多少才能固然重要,但我认为,所处环境、当事人想法和决心也是非常重要...、加深项目理解、提高企划品质执念,才能够开创崭新时代 我在近期销售工作中思考 在科学技术日新月异、国际竞争日益激烈今天,而且是在人口不断减少日本,我认为,不改变才是最危险事情 不畏惧失败,因为失败能够带来发展...明确目标 简单组织 集思广益 奖惩分明 ---- 第三章 企划 企划精髓 企划本质是协调顾客价值、收益率、员工成长、社会贡献这四要素关系 企划必须满足四个条件 身为企划公司CCC制作出企划

61210
领券