所谓异常指的是程序的执行出现了非预期行为,就好比现实中的做一件事过程中总会出现一些意外的事。异常的处理是跨越编程语言的,和具体的编程细节相比,程序执行异常的处理更像是哲学。...限于认知能力和经验所限,不可能达到像解释器下import this看到的python设计之禅一样,本文就结合实际使用简单的聊一聊。 0....写代码的时候如果只简单考虑正常的情况,那是在往代码中下毒。 接下类本篇博文将按照套路出牌(避免被Ctrl + W),介绍一下python的异常处理的概念和具体操作. 1....然而困难的地方是当异常发生时,如何进行处理。 2. python异常处理 下面逐步介绍一下python异常处理相关的概念。...总结 python 异常处理: 使用对象来表示异常错误信息,每种异常均有一种对应的类,BaseException为所有表示异常处理类的基类。
摄影:产品经理 产品经理心心念念的海胆水饺 Python 有一套自己的哲学,其中 EAFP 是其中比较有名的。...在开发的过程中,我们经常遇到需要多次判断的情况,比如说,使用 requests请求一个接口,首先要判断请求返回的HTTP Code是不是200,接下来要判断请求返回的数据是不是 JSON 格式,接下来要判断数据解析成字典以后...但是如果使用 EAFP 哲学来写代码,就变得非常简单了: import requests try: resp_info = requests.get('https://xxx.com/xxx'...).json() data = resp_info['data'] print(data) except Exception: print('请求失败') EAFP 哲学让你在写代码的过程中...当然,EAFP虽然是 Python 推荐的一种编码风格,但使用的时候还是需要看具体情况。我们日常生活中,经常听到某某渣男追女神一直追不上,于是直接把事情办了,再跪下来一边打自己脸,一边哭,一边求原谅。
先讲两个很老的小故事。 第一个故事。 有一家日本最大的化妆品公司,收到了用户的投诉。用户抱怨买来的肥皂盒是空的。...这家公司为了防止再发生这样的事故,很辛苦地发明了一台X光检查器,能够透视每一个出货的肥皂盒。 同样的事故,发生在一家小公司。...===================== 这几天,我在看Unix,发现很多人在谈"Unix哲学",也就是开发Unix系统的指导思想。 Wikipedia上列出了好几个版本,不同的人有不同的总结。...但是我发现,所有人都同意,"简单原则"----尽量用简单的方法解决问题----是"Unix哲学"的根本原则。...清晰的代码不容易崩溃,而且容易理解和维护。重视注释。不为了性能的一丁点提升,而大幅增加技术的复杂性,因为复杂的技术会使得日后的阅读和维护更加艰难。 2. 模块原则。
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 设计哲学:少即是多,哪里来的?
本节的内容有些趣味性,涉及到很多人为什么会选择Python,为什么会喜欢这门语言。我带大家膜拜下Python作者的Python之禅,然后再来了解下Python的编程规范。...2.1.1 ZEND OF PYTHON 在Kali中启动终端,输入Python,进入交互模式。 ? 图2 输入命令 import this “一首诗”呈现在我们眼前。 ?...对于初学者,我必须要强调的是,Python没有C语言那样的大括号,可以表示代码块和代码之间的层级关系,也没有VB那样的begin…end,它是靠缩进来表示这些的。...对于用惯了大括号的的程序员来说,多少会有些不适应,因为有大括号的情况下,我们可以随意调整缩进,让代码按照我们的审美来排列,但是在Python里就不能这么做了。...图6 下面我把PEP8的Python编码规范转引过来,翻译不是我的原创,来自于http://damnever.github.io/2015/04/24/PEP8-style-guide-for-python-code
其一,尽管其宏伟的标题,该帖子狭隘地专注于我们在 Liferay 云面向企业的用例和我们在最近的堆栈升级期间实施的一些模式。事后看来,我宁愿详细介绍更多我的建筑特定想法。...随着技术的进步,可能会有新的问题需要解决,但阳光下没有什么新鲜事。网络系统中只有如此多的需求,这意味着有效满足这些需求的方式是有限度的。...但是,在一天结束的时候,永远记住:它只是一个花哨的模板引擎,为动态应用。提高我们连接和插值 HTML 的能力的质量工具,无论是静态的还是动态的,都将受到欢迎和赞扬。...从 The Zen of Python: 应该有一个 - 最好只有一个 - 明显的方式做到这一点。...安装神奇的 NPM 模块很容易,这意味着很容易构建一个巨大的、脆弱的、不必要的依赖树来权衡您的应用。NPM近年来一直与争议相邻,但NPM只是人类使用的工具。
》 用模块化实现组件重用和多个实现之间的互操作性 用无服务器实现弹性扩展和功能即服务 用系统构建系统 软件的哲学方面通常是以理性为基础,以批判或者系统的方式进行思考。...以下是我总结的Filecoin设计中的重要哲学: 关注协议,没有人是一座孤岛。 关注互联网中被破坏的东西,参考《大话胡安: 我为什么创立协议实验室?》。...他的初心和哲学都在这篇文章中了:《大话胡安: 我为什么创立协议实验室?》。 是什么让Filecoin与众不同?Filecoin官方总结了三个方面:复制证明、可验证市场和有用共识。...总体来说,Filecoin在架构与哲学方面是偏执的,缺乏灵活性。...但Filecoin所坚持的哲学和目标没有变更,那就是用研究支撑规范,让实现遵循规范,用反复迭代和多种实现保证实现的安全。 我想,正是这种偏执,让Filecoin与众不同。 最多零知识证明的系统
,但是有时候 从数据库取出来的数据是跨数据的,比如取第100页的数据。...通俗的说,游标不是查询结果,而是查询的一个返回资源或者接口,通过 这个接口,可以逐条读取数据。 就类似java中的读取流一样,使用包装类的readLine()方法一行一行去读。...同样也可以使用js的while语法来循环打印刚刚的数据: 当然也可以使用for循环来打印: 还有一个比较常用的方法,叫“forEach”,每一个forEach里面有一个 回调函数,这个函数中的obj...对象就是游标指向的数据集的每一个数据。...: 如果我们不想迭代打印,想直接把结果以数组的形式打印出来, 使用游标的toArray()方法: 想取出某一个,使用数组的下标即可: 这里要提醒大家的是,如果查询少量的数据,可以使用toArray
Django 读作姜戈,第一个 D 不发音,与电影《被解救的姜戈》的姜戈除了读音一样,没有其他半毛钱关系。Django 是一个优秀的 Web 框架,用 Python 编写,是非常流行的全栈框架。...Django 是完美主义者的开发框架,和 Python 一样有着自己的设计哲学: 一、总体架构方面: 1、松耦合 Django 的基本目标是松耦合和高内聚。...5、显式胜于隐式 这是 Python 中的核心原则 PEP 20,这意味着 Django 不应做太多“魔术”功能“魔术”功能,除非有充分的理由。...四、网址设置层面: 1、松耦合 Django 应用中的 URL 不应与基础 Python 代码耦合。将 URL 绑定到 Python 函数名称是一件不好的事。...这是模板系统不允许任意Python代码的另一个原因。 9、扩展 模板系统应认识到高级模板作者可能希望扩展其技术。这是自定义模板标签和过滤器背后的理念。
这样的哲学除了在象牙塔中孤芳自赏,又有多少实际意义? 到了十九世纪末,人们逐渐意识到问题很可能出在“语言”上,很多哲学问题来源于对语言的误用。解决了语言问题,就解决了哲学问题。...由此产生了“语言哲学”,并成为了二十世纪上半叶英美哲学的主流。如果说认识论是“对思考的思考”,那么语言哲学就是“对言说的言说”。...尽管历史上有很多哲学家也很重视语言,但那时语言只是研究哲学的工具;而现在,语言成了哲学本身。...下面我们从语言哲学的角度看一看软件开发中有关语言的问题。 首先,语言哲学认为,语言的意义是在使用的过程中体现出来的。...小结 我们用若干章节探讨了领域驱动设计的哲学内涵。两者之间的这种契合关系并非偶然。 哲学的主要目的是解决对世界进行认识(认识论)和诠释(语言哲学)问题。
最近有小伙伴在Thoughtworks DDD社区中提起了有关哲学的话题,这在我这个哲学民科(下文简称“哲民”)的心中激起了阵阵涟漪。...据小道消息,Eric Evans认为DDD不是一种方法学,而是一种软件开发的思想和哲学。言下之意,“方法学”把DDD给说小了。好吧,那咱就顺着艾老师的意思,看看DDD和哲学能碰出什么火花来。...对于我们这些从小受到辩证唯物主义教育的小伙伴来说,这没什么问题。但有些哲学家可未必同意。 首先,佛教哲学认为根本就不存在“客观世界”,一切都是空幻不实的。印度教也认为我们不过是生活在梵天的一场梦中。...好在这些哲学思辨并不会对程序员和领域专家们的生活造成太大影响。...至于我们所认识到的东西和客观世界(如果有的话)的关系就留给哲学家们讨论吧。 不过上述论断对建模还是有一个细微但重要的影响。
我一直觉得设计哲学这个东西是一个很虚的东西,直到我看了一个关于苏联暴力美学的帖子,里面有一段写ak-47,t34等等。虽然也有人说这是苏联的战略忽悠局。...经过一年的工作发现确实生产中面临这样的问题,如果用苏军内幕这本书里面的思想确实是可以改进很多问题。 坦克!进攻! 战略进攻 不要用战术上的勤奋掩盖战略上的懒惰?虽然把一个产品做的精益求精是对的事情。...因为我觉得写代码本身有意义,但是纠结在代码的细枝末节是没有意义的事情。首先作为一个公司或者一个技术团队,他的意义是解决现实生活的实际问题,有稳定可靠的盈利。...简单的组合 由结构简单的组合组合成性能可靠的巨大产品 由结构简单的组合组合成性能可靠的巨大产品 由结构简单的组合组合成性能可靠的巨大产品 这样组成的产品易于维护,喝一瓶二锅头也写不错的代码和加班熬夜几天还写不错的模块是好模块...不同口径,为了音乐学院的学生 显式调用 盗取代码,删库跑路是一件很可怕的事情,不过更可怕的事情是写不可维护的代码,可读的结构简单的代码,就是战时的武器,在仓促的情况下,隐藏调用或者其他的修改会。
苹果是一家为数不多以设计驱动的公司。 如今,当我们谈论起产品设计、谈论起用户体验,总是离不开苹果,它所坚持的设计哲学是对细节和质量的极致追求。下面,我就带大家看看 Apple 在交互方面做的努力。...动态的触控区域 Apple 为了解决在移动设备上输入本文的问题,采用了一种流畅并且对用户友好的解决方案:基于预测输入系统,扩大虚拟键盘的有效触控区域。 ?...当你按下“th”的时候,系统预测下一个字母可能是 e 或 i,从而动态增加这两个字母的点击范围,以此提高输入的命中率。 当然,视觉上你看不到按钮尺寸的变化。指尖之上,一切都在无形之中。 — 02....重新定向 在使用设备中,用户的操作是一直在改变的,所以交互的中间过程,同样需要重新定向。 ?...为用户创造一系列的愉悦体验,这也许就是苹果的设计哲学。 作者:阿洋,网易资深设计师,每周原创设计干货 本文首发自公众号:洋爷(ID:yangye365)
将具体的业务场景数字化,首先需要对场景进行抽象和设计。业务场景中的概念及其联系,落到硬盘上就是数据库中的一张张表,加载到内存中便是编程语言的一个个类。...因此,对具体场景进行建模时,最重要的便是数据库表的设计和软件类图的设计,而他俩又基本上是一一对应的。...前者常使用 ER 模型进行辅助设计,识别问题域中关键的概念和联系,进行图形化的、精确化的描述;后者当然有很多 ORM 框架和 UML 类图之类的来表示。...实体是一个概念,可以对应编程语言中类,也可以理解为一个 Excel 中由表头确定的一个表。而实体的一个对象,则对应编程中的一个类的实例,也对应 Excel 表格中的一行。...宠物医院类图 关系的特点 实体与实体间关系的一个最重要特征便是基数(cardinality)和参与度(participation)。前者就是我们常说的:一对一的,一对多的,还是多对多的关系。
它们的关系是,对象是类的实例,类是对象的模板,即哲学中共性与个性的关系。...如果要找出52张牌的共性,那就是牌点和花色,因为任何一张牌都有牌点和花色的特性。 ? 共性是抽象的,个性是具体的 int类型是抽象的,而对象5,9是具体的。...共性与个性相互转化 在保持原有类的属性和功能的基础上,扩展新的功能称为类的继承。被继承的已有类称为父类;派生出的新类叫做子类。子类可以看作父类的一个对象,而子类又可以生成对象。...这就是类和对象之间在一定条件下的转化。 矛盾的共性指矛盾的普遍性,是绝对的、无条件的;矛盾的个性指矛盾的特殊性,是相对的、有条件的。...共性决定事物的基本性质;个性揭示事物之间的差异性。个性体现并丰富着共性。共性是绝对的、无条件的,个性是相对的、有条件的。
“关联”、《矛盾论》、毕达哥拉斯学派 DDD的哲学意味(上)说到了“模型驱动的设计”以及其中两个重要的模式“实体”和“值对象”,两者统称“领域对象”。...这一点实属可惜,因为关联至少与实体有同样的重要性。为什么这么说呢?下面还是先扯几句哲学。 前面提到毛老师的《实践论》,这里再说说怹老人家的另一篇杰作《矛盾论》。...形而上学认为事物的发展是静态的、外因驱动的、孤立的;唯物辩证法则认为事物的发展是动态的、内因驱动的、联系的(还记得中学政治课背过吗?)。前两点我们后面再聊,这里先讨论“联系”。...模型的演进、辩证法、进化论 前文说到,唯物辩证法认为事物的发展是动态的、内因驱动的、联系的;并且已经讨论了“联系”。这一节首先讨论“动态”。 事物的发展变化是永恒的。...限界上下文与人类认识能力的有限性 虽然哲学家可能是人类有史以来最喜欢争辩的群体,但有一个观点,多数哲学家却是有共识的:人的认识能力是有限的。
[GO专栏-2]Go语言的设计哲学 简单 第一条原则:追求简单,少即是多 组合 偏好组合,正交解耦 理解golang的结构体嵌入 为什么嵌入语法是组合而非继承 活用组合和接口让代码更加优雅 与其他语言对比...这种设计哲学的落地让 Go 语言具有广泛的规模适应性:既可以被仅有 5 人的初创团队用于开发终端工具,也能够满足像 Google 这样的超巨型公司大规模团队开发大规模网络服务程序的需要。...但作为面向工程的编程语言,光有简单的设计哲学还不够,每个语言设计细节还都要经过“工程规模化”的考验和打磨,需要在细节上做好充分的思考和讨论。...比如 Rob Pike 就曾谈到过 Go 当初为何没有使用 Python 那样的代码缩进来表示程序结构,而是选择了与 C 语言相同的大括号,就是因为他们经过调查发现 Python 的缩进结构在构建小规模程序时的确很方便...类似的面向工程的语音设计细节考量还包括: 重新设计编译单元和目标文件格式,实现 Go 源码快速构建,让大工程的构建时间缩短到类似 Python 的交互式编译的编译速度; 如果源文件导入它不使用的包
本文有标题党之嫌,因为讨论的内容并非严格的哲学命题。但机器学习中有很多思想换个角度看和其他学科息息相关,甚至共通。在此总结了一些我觉得有意思的观察,供大家讨论。 ?...△ 图为拉斐尔为梵蒂冈宫教皇绘制的哲学主题壁画《雅典学派》 1. 没有免费的午餐定理(No Free Lunch Theorem) - 什么算法最好?...奥卡姆剃刀定理(Occam’s Razor - Ockham定理) - 少即是多 奥卡姆剃刀是由十二世纪的英国教士及哲学家奥卡姆提出的:“ 如无必要,勿增实体”。 ?...那么h1更加简单,更加符合尝试,选择它:) 提供这个例子的原因是为了提供一个量化方法来评估假设,其与奥卡姆剃刀有相同的哲学内涵。...集成学习(Ensemble Learning) - 三个臭皮匠的智慧 集成学习的哲学思想是“众人拾柴火焰高”,和其他机器学习模型不同,集成学习将多个较弱的机器学习(臭皮匠)模型合并起来来一起决策(诸葛亮
前言whosbug项目中,最重要的无非是两个部分:对接入项目的AST静态语法解析责任人归属算法`whosbug`初版发布后我们进行了一系列的测试,发现了老算法在一些场景下的局限性(如对没有第三方库调用的处理....png" style="zoom: 50%;" />并且包 / 类也视作一个函数,将包/类内的代码非函数内代码归入这个包 / 类的函数图片获取可能和这次错误相关的函数Init: 获取预设的迭代次数NUMBER_OF_ITERATION...,新建相关方法集methods,以错误堆栈中涉及的所有方法为初值不断地从methods内的每个函数/方法找到与其相连且未在methods内的方法,加入methods中,也同时得到该方法与直接错误方法的距离...(输入的堆栈中的原始栈帧)的距离(语法树中的距离)、其原始栈帧到栈顶的距离以及其置信度$$\mathit{Contribution}\ =\ \mathit{Confidence\ \ \frac{...,一定程度上也考虑了初版的假设:越近的修改越容易导致bug)函数大改时会基本回落到初始化的置信度一定程度上区分bugfix型的变动和业务变更的变动初始化$$\mathit{Confidence\ =\
这些设计或许在某个时刻已经不再为人所用,或者仅供瞻仰,但其设计的精神却恒久而不废。 大约,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),数据库的设计模式则是服务器/客户端。...若没有它的设计哲学作指引,它或许已经崩溃、疯狂或者死亡,正如人没有信仰。软件设计需有思想的支持,否则设计的结果没有灵魂。
领取专属 10元无门槛券
手把手带您无忧上云