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

【五分钟阅读系列】程序员修炼之道——2:软件的熵

在市区,有些建筑漂亮而整洁,而另一些却是破败不堪的“废弃船只”。为什么?...如果没有足够的时间进行适当的修理,就用木板把它钉起来。或许你可以把出问题的代码放入注释(comment out),或是显示“未实现”消息,或是用虚设的数据(dummy data)加以替代。...但他们拖着粗大、肮脏的消防水管冲到房间门口却停住了——火在咆哮——他们要在前门和着火处之间铺上垫子。   他们不想弄脏地毯。   这的确是一个极端的事例,但我们必须以这样的方式对待软件。...如果你发现自己在有好些破窗户的项目里工作,会很容易产生这样的想法:“这些代码的其余部分也是垃圾,我只要照着做就行了。”项目在这之前是否一直很好,并没有什么关系。...在最初得出“破窗户理论”的一项实验中,一辆废弃的轿车放了一个星期,无人理睬。而一旦有一扇窗户被打破,数小时之内车上的设备就被抢夺一空,车也被翻了个底朝天。

77120

探索openKylin:中国首个独立开源桌面操作系统

我在虚拟机上安装了openKylin,以查看用户体验如何。允许我向您展示一下。初始印象首先是openKylin的安装。安装程序主要是中文(简体)语言。...不过幸运的是,有一个选项可以选择安装英文版的openKylin。奇怪的是,启动菜单显示的是“用内核5.15安装openKylin”,而不是内核6.1;我想那是个错误。...在自定义安装下,您可以选择引导加载程序安装的存储设备并创建新的分区表。图片在确认安装方法后,安装过程开始。一个漂亮的进度条显示所有常见的元素,如进度栏、日志和功能横幅。...您可以通过点击任务栏上的应用程序启动器旁边的Taskview按钮来访问它。图片任务栏还具有一个整洁的侧边栏菜单,可以控制设备并访问一些工具。...图片同样,系统监视器在提供所需信息方面做得很好,并且有一种熟悉的感觉。图片“设置”应用程序的布局相当整洁,所有重要的设置都分为不同的部分和子部分。图片当您点击其中一个时,您将被带入相应的菜单。

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

    再见,干净的代码

    Rectangle、Header 和 TextBlock 也存在一些重复,因为文本块是矩形。 我有一个想法。...如果我们想要改变特定方向或形状的行为,我们可以在一个地方完成,而不是到处更新方法。 已经很晚了(我太过分了)。我将我的重构提交到主分支并上床睡觉,为自己整理同事混乱代码的能力感到骄傲。...一旦我们学会了如何创建抽象,就很容易因为这种能力而陷入沉迷,并且在看到重复的代码时随意地创造出抽象。编程几年后,我们会发现重复无处不在——而抽象成为了我们的新超能力。...如果有人告诉我们抽象是一种美德,我们会全盘接受。并且开始对其他人不崇尚“整洁”而进行评判。 我现在明白,我的“重构”在两个方面都是一场灾难: • 首先,我没有和写这段代码的人交谈。...它们究竟如何影响代码编写和修改的方式呢? 我确实没有深入思考这些事情中的任何一个。我对代码的外观进行了很多思考,但并没有考虑它如何与一群有血有肉的人一起发展。 编码是一段旅程。

    7310

    前沿动态 | 带你提前体验CSS未来的新特性

    在撰写本文时,Firefox是目前唯一支持Flexbox这些新属性的浏览器,预计将在Firefox 63中版本中发布(在您阅读本文时应该可以使用它)。 但是我希望其他浏览器也会效仿。...回到我们上一个示例,我们可能希望我们的box框始终具有250像素的长度,而不管方向如何。 这些新属性是在写入模式下(writing-mode)运行的方式——水平布局,在任何垂直书写模式下水平布局。...然后我们希望它在块维度中具有150个像素的长度,常用在特定写入模式中显示例如文章段落的块状的显示方式。...下面的代码创建了一个项目列表,其中父项具有固定高度,溢出设置为滚动。我希望项目在滑动到顶部进行捕捉。...我可以使用以下代码监测触摸并定义相关属性: @media(pointer: coarse){ / *CSS rules for touch screen*/ } 复制代码 我也可以监测hover属性,

    1.7K60

    如何让你的代码整洁漂亮?

    是代码的整洁漂亮。 同时书写整洁漂亮的代码是一名伟大的软件匠人的标志。 这里有两个涉及到学习这门卓越技术的要点- 知识与练习。知识可以教会职业中所需的模式、原则、实践和启发式。...主程用其所选的编程语言的架构来构建一个更丰富,更有表现和更干净的代码块,就像一个完美的讲故事的人 注释并不能弥补劣质的代码 Venus Williams曾很好地说道: “每个人有自己的注释,这就是谣言开始的方式...这是错误,彻底错误的。代码应该是整洁的、健壮的,可以用优雅的方式风格解决错误。这是一名伟大软件匠人的标志。 一个处理的方法是在try-catch语句中合理的闭合并捕获错误。...这些块某种程度上也定义了你代码的作用域。当你在try-catch-finally语句中的 try部分执行代码的时候,就是在表明执行会在任意时刻终止,并在catch中恢复。...它用鲜明的词句表明了:仅仅是烘烤一个可爱的蛋糕是没有帮助的,如果你已经用狗屎给其上霜了。 这代码意识可以帮助程序员选择最好的工具,去指导他或者她努力创建一个更有价值的整洁漂亮的代码。

    96860

    重构的七宗罪 | TW洞见

    本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表。...重构经过了十几年的发展和应用,可以说它是极限编程中程序员最爱的实践之一了,纷纷争相在项目里应用。重构工作坊、Codekata重构练习等各种提升能力的方式也屡见不鲜,帮助程序员们去追求优秀的代码和设计。...重构是整理代码保持轻装前行的重要手段,然而我们也需要能够明确知道重构要做什么,最终的产出如何验证。总不能对项目经理说,我先改上50块钱的?...以我观察,在开始重构时仅凭自己对代码的理解就进行剪切、复制、删除、添加等大刀阔斧修改的人不在少数,尤其还没有完全掌握重构手法的新人们。结果当然错误百出,导致测试“奖赏”一片红。...这种做法在代码和模块层面都是相对比较容易实践,而针对架构层次的调整就相对比较复杂。这也是很多架构师需要去思考的问题,如何渐进式重构。

    82660

    探索openKylin:中国首个独立开源桌面操作系统

    我在虚拟机上安装了openKylin,以查看用户体验如何。允许我向您展示一下。初始印象首先是openKylin的安装。安装程序主要是中文(简体)语言。...不过幸运的是,有一个选项可以选择安装英文版的openKylin。奇怪的是,启动菜单显示的是“用内核5.15安装openKylin”,而不是内核6.1;我想那是个错误。...在自定义安装下,您可以选择引导加载程序安装的存储设备并创建新的分区表。图片在确认安装方法后,安装过程开始。一个漂亮的进度条显示所有常见的元素,如进度栏、日志和功能横幅。...您可以通过点击任务栏上的应用程序启动器旁边的Taskview按钮来访问它。图片任务栏还具有一个整洁的侧边栏菜单,可以控制设备并访问一些工具。...图片同样,系统监视器在提供所需信息方面做得很好,并且有一种熟悉的感觉。图片“设置”应用程序的布局相当整洁,所有重要的设置都分为不同的部分和子部分。图片当您点击其中一个时,您将被带入相应的菜单。

    98820

    如何让你的代码整洁漂亮?

    是代码的整洁漂亮。 同时书写整洁漂亮的代码是一名伟大的软件匠人的标志。 这里有两个涉及到学习这门卓越技术的要点- 知识与练习。知识可以教会职业中所需的模式、原则、实践和启发式。...主程用其所选的编程语言的架构来构建一个更丰富,更有表现和更干净的代码块,就像一个完美的讲故事的人 注释并不能弥补劣质的代码 Venus Williams曾很好地说道: “每个人有自己的注释,这就是谣言开始的方式...这是错误,彻底错误的。代码应该是整洁的、健壮的,可以用优雅的方式风格解决错误。这是一名伟大软件匠人的标志。 一个处理的方法是在try-catch语句中合理的闭合并捕获错误。...这些块某种程度上也定义了你代码的作用域。当你在try-catch-finally语句中的 try部分执行代码的时候,就是在表明执行会在任意时刻终止,并在catch中恢复。...它用鲜明的词句表明了:仅仅是烘烤一个可爱的蛋糕是没有帮助的,如果你已经用狗屎给其上霜了。 这代码意识可以帮助程序员选择最好的工具,去指导他或者她努力创建一个更有价值的整洁漂亮的代码。

    88480

    优秀程序员眼中的整洁代码

    Bjarne 也提到完善错误处理代码。往深处说就是在细节上花心思。敷衍了事的错误处理代码只是程序员忽视细节的一种表现。此外还有内存泄漏,还有竞态条件代码。还有前后不一致的命名方式。...我可以列出我留意到的整洁代码的所有特点,但其中有一条是根本性的。整洁的代码总是看起来像是某位特别在意它的人写的。几乎没有改进的余地。...在我看来,有意义的命名是体现表达力的一种方式,我往往会修改好几次才会定下名字来。借助 Eclipse 这样的现代编码工具,重命名代价极低,所以我无所顾忌。然而,表达力还不只体现在命名上。...这样做好处多多。 可以先用某种简单的手段,比如哈希表来实现这一功能,由于对搜索功能的引用指向了我那个小小的抽象,就能随需应变,修改实现手段。这样就既能快速前进,又能为未来的修改预留余地。...如果每个例程都让你感到深合己意,那就是整洁代码。如果代码让编程语言看起来像是专为解决那个问题而存在,就可以称之为漂亮的代码。 这种说法很 Ward。它教你听了之后就点头,然后继续听下去。

    64870

    一周技术思考(第22期)-编程的基本礼节

    在上周的技术思考那篇文章中,我们提到程序员之间最经常使用的沟通媒介是代码,程序员之间的互相尊重也体现在代码里面。 代码也是一种给人看的文档,而文档的本质在于交流。...在编程中,良好的交流意味着读代码的人能够理解、修改和使用代码。 另外,我们也提到,Bob大叔在《代码整洁之道》这本书中,曾说过,“人们说脏话的频率是衡量代码质量的唯一标准”。...你肯定不会选择代码段1的,那个排版首先就让人不舒服,你可能会说,代码段2看上去已经很可以了,格式整齐,是的,在整洁性上,它比代码段1肯定强了不少,你再看看代码段3呢,它又把代码段2中的重复性注释,都规整到一行里面了...还是第一种方式,对不对,这又是什么原理呢,还真有个原理: 首先处理正逻辑而不是负逻辑的情况。...pm" :"am"; 你说,也容易阅读呀,那如果碰到下面这样的呢。 ? 我们首要目的,是要把代码写的简单。 相对于追求最小化代码行数,一个更好的度量方法是最小化人们理解它所需的时间。

    26220

    再也不用为排版发愁了,五分钟带你学会markdown

    关于markdown的介绍我也在B站上传了视频,不想看文字的同学也可以点击阅读原文前往B站,也当给我个支持了~ 基本功能 首先,我们可以把markdown当做txt记事本来使用,也就是可以正常地输入文字...比如正标题、副标题、大标题、小标题…… 标题 在markdown当中,设计了6个等级的标题来应对不同的标题需求。我们使用#加空格的方式来创建标题,每多一个#表示级别加一。标题的级别越大字号越小。...一个星号表示斜体,也可以使用下划线_我是斜体_。显示出来的效果就是我是粗体、我是斜体。...代码块 对于程序员来说这是一个非常重要的功能,我们可以在markdown当中插入代码块。 代码块的插入分成两种,第一种是行内代码,第二种是完整的代码块。...使用图床也就是将图片上传到云端CDN,生成一个云端的图片链接,而不是存在本地通过相对路径引用。 这样的好处是由于图片是一个网络链接,所以涉及图片的markdown文本可以多端显示。

    2.7K10

    软件熵(Software entropy)

    是什么造成了这样的差异? 在市区,有些建筑漂亮而整洁,而另一些却是破败不堪的 “废弃船只”,为什么?...或许你可以把问题的代码加入注释(comment out),或是显示** “未实现”** 消息,或是用虚设的数据(dummy data)加以替代。...消防员冲进来救火 -- 和他的房子,但他们拖着粗大、肮脏的消防水管冲进房间门口却停住了 -- 火在咆哮 -- 他们要在前门和着火之间铺上垫子,他们不想弄脏地毯,这的确是一个极端的例子,但我们必须以这样的方式对待软件...如果你发现自己在有好些破窗户的项目里工作,会很容易产生这样的想法:“这些代码的其余部分也是垃圾,我只要照着做就行了”。...按照同样的道理,如果你发现你所在的团队和项目的代码是否漂亮:编写整洁、设计良好,并且很优雅,你就很可能会格外注意不去把它弄脏,就和那些消防员一样,即使火在咆哮(最后预期、发布时间、会展演示等等),你也不会想成为第一个弄脏东西的人

    1.2K30

    机器学习新手必看:Jupyter Notebook入门指南

    我无法在电子邮件或博客上发布不同的单元格或代码块,对吧? 进入 Files 菜单,你会看到一个 Download As 选项: 你可以将你的 Notebook 保存为 7 个选项中的任何一个。...最常用的是 .ipynb 文件,这样其他人就可以在自己的机器上复制代码;或者保存为 .html 文件, 这样会打开一个网页(当你想要保存嵌入在 Notebook 中的图像时,这会派上用场)。...Notebooks 看起来整洁干净, 让人赏心悦目也非常重要。 Matplotlib 可以很漂亮整洁地展示你的 Notebook,看看怎么使用它!...当你想创建演示文稿时,首先想到的工具是 PowerPoint 和 Google Slides。其实你的 Jupyter Notebooks 也可以创建幻灯片!还记得我说它超级灵活吗?...现在,每个代码块都在右侧显示一个 Slide Type 的下拉选项。它提供了以下 5 个选项: 好好试一试每一个选项以更好地理解它,它会改变你呈现你的代码的方式!

    2.8K40

    大话 JavaScript(Speaking JavaScript):第二十六章到第三十章

    例如: if (x) return x; 更喜欢字面量而不是构造函数 几个字面量产生的对象也可以通过构造函数创建。...... } // anonymous function expression 每个缩进级别四个空格 我看到的大多数代码都使用空格缩进,因为制表符在应用程序和操作系统之间显示的方式有很大不同。...保持变量声明局部 如果你的函数不太长(无论如何都不应该太长),那么你可以在提升方面放松一些,假装var声明是块作用域的。...换句话说,你可以在使用变量的上下文中声明变量(在循环内,在then块或else块内等)。这种局部封装使得代码片段更容易理解。也更容易删除代码片段或将其移动到其他地方。...前者更像是一种类型,而构造函数是实现类的一种方式。JavaScript 内置的定义类的方法有限,这就是为什么有许多 API 来帮助完成这个任务。

    16910

    如何让你的代码整洁漂亮?

    是代码的整洁漂亮。 同时书写整洁漂亮的代码是一名伟大的软件匠人的标志。 这里有两个涉及到学习这门卓越技术的要点- 知识与练习。知识可以教会职业中所需的模式、原则、实践和启发式。...主程用其所选的编程语言的架构来构建一个更丰富,更有表现和更干净的代码块,就像一个完美的讲故事的人 注释并不能弥补劣质的代码 Venus Williams曾很好地说道: 每个人有自己的注释,这就是谣言开始的方式...这是错误,彻底错误的。代码应该是整洁的、健壮的,可以用优雅的方式风格解决错误。这是一名伟大软件匠人的标志。 一个处理的方法是在try-catch语句中合理的闭合并捕获错误。...这些块某种程度上也定义了你代码的作用域。当你在try-catch-finally语句中的 try部分执行代码的时候,就是在表明执行会在任意时刻终止,并在catch中恢复。...它用鲜明的词句表明了:仅仅是烘烤一个可爱的蛋糕是没有帮助的,如果你已经用狗屎给其上霜了。 这代码意识可以帮助程序员选择最好的工具,去指导他或者她努力创建一个更有价值的整洁漂亮的代码。

    79830

    软件系统的熵——软件系统进化论

    你可以添加注释、或者显示“未实现”消息,或者用虚设的数据加以替代。采取某种行动防止进一步的损坏,并说明情势处在你的控制之下。整洁、运行良好的系统,一旦窗户破裂,就相当迅速的恶化。...是什么造成了这样的差异? 在市区,有些建筑漂亮而整洁,而另一些却是破败不堪的 “废弃船只”,为什么?...如果你发现自己在有好些破窗户的项目里工作,会很容易产生这样的想法:“这些代码的其余部分也是垃圾,我只要照着做就行了”。...按照同样的道理,如果你发现你所在的团队和项目的代码是否漂亮:编写整洁、设计良好,并且很优雅,你就很可能会格外注意不去把它弄脏,就和那些消防员一样,即使火在咆哮(最后预期、发布时间、会展演示等等),你也不会想成为第一个弄脏东西的人...即使可以通过阅读代码推断出此信息,我们也不想强迫模块用户这样做:阅读代码很耗时,并且迫使他们考虑很多不需要使用的信息模块。开发人员应该能够理解模块提供的抽象,而无需阅读其外部可见声明以外的任何代码。

    78720

    Python的这几个技巧,简直屌爆了

    -Tester-也哥- 01 进入正文 我已经使用Python编程有多年了,即使今天我仍然惊奇于这种语言所能让代码表现出的整洁和对DRY编程原则的适用。...下面我挑选出的这几个技巧常常会被人们忽略,但它们在日常编程中能真正的给我们带来不少帮助。 1....模块,也可以让其它任何东西打印输出的更漂亮。...创建一次性的、快速的小型web服务 有时候,我们需要在两台机器或服务之间做一些简便的、很基础的RPC之类的交互。我们希望用一种简单的方式使用B程序调用A程序里的一个方法——有时是在另一台机器上。...,没有外部的依赖,只有几句代码(当然,没有任何安全措施,所以只可以在家里这样做)。

    49140

    机器学习新手必看:Jupyter Notebook入门指南

    我无法在电子邮件或博客上发布不同的单元格或代码块,对吧? 进入 Files 菜单,你会看到一个 Download As 选项: 你可以将你的 Notebook 保存为 7 个选项中的任何一个。...最常用的是 .ipynb 文件,这样其他人就可以在自己的机器上复制代码;或者保存为 .html 文件, 这样会打开一个网页(当你想要保存嵌入在 Notebook 中的图像时,这会派上用场)。...Notebooks 看起来整洁干净, 让人赏心悦目也非常重要。 Matplotlib 可以很漂亮整洁地展示你的 Notebook,看看怎么使用它!...当你想创建演示文稿时,首先想到的工具是 PowerPoint 和 Google Slides。其实你的 Jupyter Notebooks 也可以创建幻灯片!还记得我说它超级灵活吗?...现在,每个代码块都在右侧显示一个 Slide Type 的下拉选项。它提供了以下 5 个选项: 好好试一试每一个选项以更好地理解它,它会改变你呈现你的代码的方式!

    5.2K40

    机器学习新手必看:Jupyter Notebook入门指南

    我无法在电子邮件或博客上发布不同的单元格或代码块,对吧? 进入 Files 菜单,你会看到一个 Download As 选项: 你可以将你的 Notebook 保存为 7 个选项中的任何一个。...最常用的是 .ipynb 文件,这样其他人就可以在自己的机器上复制代码;或者保存为 .html 文件, 这样会打开一个网页(当你想要保存嵌入在 Notebook 中的图像时,这会派上用场)。...Notebooks 看起来整洁干净, 让人赏心悦目也非常重要。 Matplotlib 可以很漂亮整洁地展示你的 Notebook,看看怎么使用它!...当你想创建演示文稿时,首先想到的工具是 PowerPoint 和 Google Slides。其实你的 Jupyter Notebooks 也可以创建幻灯片!还记得我说它超级灵活吗?...现在,每个代码块都在右侧显示一个 Slide Type 的下拉选项。它提供了以下 5 个选项: 好好试一试每一个选项以更好地理解它,它会改变你呈现你的代码的方式!

    3.8K21
    领券