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

再见,干净的代码

我的同事刚刚提交了他们整个星期一直在编写的代码。我们正在开发一个图形编辑器画布,他们实现了通过拖动边缘的小手柄来调整矩形和椭圆等形状的大小。 代码运行正常。 但它是重复的。...太干净了。如果我们想要改变特定方向或形状的行为,我们可以在一个地方完成,而不是到处更新方法。 已经很晚了(我太过分了)。我将我的重构提交到主分支并上床睡觉,为自己整理同事混乱代码的能力感到骄傲。...我的老板邀请我进行一对一的交谈,在那里他们礼貌地要求我撤销我的更改。我感到震惊。旧代码很混乱,而我的代码是干净的! 我勉强同意了,但花了我好几年才明白他们是正确的。...并且开始对其他人不崇尚“整洁”而进行评判。 我现在明白,我的“重构”在两个方面都是一场灾难: • 首先,我没有和写这段代码的人交谈。我重写了代码并在没有他们参与的情况下进行了检查。...我的抽象化将变得更加复杂数倍才能应对这些情况,而原始的“混乱”版本则可以轻松地进行此类更改。 我是说你应该写“肮脏”的代码吗?不是的。我建议你深入思考当你说“干净”或者“肮脏”时,你到底意味着什么。

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

    干净的前端架构

    免费体验 Gpt4 plus 与 AI作图神器,我们出的钱 体验地址:体验 干净的前端架构,围绕这个话题有很多原则: SOLID、KISS(保持简单明了)、DRY(不要重复自己)、DDD(领域驱动设计)...然而,作者认为,前端架构的最有价值的原因是任何项目的可维护性和可扩展性。 那么,前端架构是什么样的呢? 根据作者的经验,大多数时候都使用分层架构。但是,也会有一些项目采用了六边形架构。...API:由 Open-API 生成器生成的DTO和服务 服务:包括映射器(DTO到前端模型,反之亦然)和使用 REST 端点与 API 通信的服务 存储:包含从服务层检索到的所有数据 Booking:包括模型和组件在内的领域...导入不必要的库,增大捆绑包大小 使用嵌套订阅 在模板中添加业务逻辑 未经测试的业务逻辑 所以,这些都是反模式。但如何确保代码的可维护性呢?大家可能都知道,业务逻辑会随着时间的推移而增长。...代码有了历史性的发展。起初,它是 "干净代码"(Clean Code),但现在我们的代码已经无法像以前那样容易维护了。 是的,这是一个非常常见的问题。不过,以下简单的规则可以帮助我们保持可维护性。

    16610

    重头开始学Docker

    Docker的优点 >1、简化程序: Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。...Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。...方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。 2、避免选择恐惧症: 如果你有选择恐惧症,还是资深患者。...3、节省开支: 一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。...the -p 端口进行映射,将本地 8081 端口映射到容器内部的 80 端口。 补充 文章首发于重头开始学Docker

    38210

    Docker 开始收费了?

    3、Docker Desktop 仅适用于 Windows 和 Mac,如果你用的 Linux,丝毫不受影响。 4、如果你用的是社区版的 DockerCE,不受 Docker 公司的任何影响。...要说的是 DockerHub,DockerHub 是 Docker 公司提供的公共镜像存储服务,可以把它看做 Docker 镜像的GitHub,是不开源的,由 Docker 公司说了算。...用过 Docker 的都知道,Docker 的镜像很容易变得非常大,对应的 DockerHub 的存储空间暴涨,已经超过 15 PB(1PB=1048576GB),Docker 最近增加了一个新的服务条款...Docker 的替代产品 Docker 其实还有不少替代产品,感兴趣的可以了解一下。...学习 Docker,这里分享下之前的文章: 3分钟将Python应用容器化 手摸手,带你入门docker docker 容器从入门到入魔 最后的话 关于 Docker 的变化,对我们开发者来说,关我鸟事

    11.6K20

    扒的好干净

    镜像后的文章: 下面是我的原文: 这文章来的真是容易,整个网站除了显示作者的地方显示了一个域名,其余没有任何显示,这扒的,内裤都给扒光了(现在只剩裤袜了,无所谓了,反正我也不喜欢穿内裤)。...还有一个冠冕堂皇的说明: 美其名曰对文章和图片做永久的存储,这就离谱。不过可以肯定的是我的网站肯定比你这个所谓的永久存储能活的更持久!! 另外:我没有以我的网站的名义给任何网站投稿。...2022.05.30更新: 网站已经删除了之前的文章以及链接,支持大家传播技术,但是请尊重版权。此事到此为止。...☆文章版权声明☆ * 网站名称:obaby@mars * 网址:https://h4ck.org.cn/ * 本文标题: 《扒的好干净》 * 本文链接:https://h4ck.org.cn/2022...---- 分享文章: 相关文章: 秀人集爬虫 【22.04.12】【Windows】【Mac M1】 性感美女爬虫 Windows【22.04.12】 Win10修改已连接网络的名称 KU138爬虫

    86830

    前端领域的 “干净架构”

    干净的架构就可以帮助我们实现这一目标。 什么是干净的架构? 干净架构是一种根据应用程序的领域(domain)的相似程度来拆分职责和功能的方法。 领域(domain)是由真实世界抽象而来的程序模型。...我们很难在一开始就把模块所有的交互和需求都想的很明白,我们设计的时候需要时刻留意哪些地方可能发生变化,所以要考虑更多的可扩展性。...如果你尝试直接去调用一个外部 API,这就是有问题的,最好在还没出问题之前写个适配器。 商店应用的设计 说完了理论,我们就可以开始实践了,下面我们来实际设计一个商店应用的。...如果一切都符合我们预期的,我们就可以开始设计领域转换了。 创建数据转换 我们刚刚设计的这些类型数据会发生各种各样的事情。我们可以添加商品到购物车、清空购物车、更新商品和用户名等。...有什么可以改进的 上面介绍的这些已经可以让你开始并初步了解干净的架构了,但是我想指出上面我为了让示例更简单做的一些偷工减料的事情。

    1.3K20

    了解【Docker】从这里开始

    由于 Docker 轻量、资源占用少,使得 Docker 可以轻易的应用到构建标准化的应用中。...Docker 的用途 Docker 的主要用途,目前有三大类。 1. 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。 2. 提供弹性的云服务。...这时候我们得把厨房用具给装到一个通了水电煤的房子才行,那么Docker镜像也是这样,单纯的Docker镜像是不能用的,它得装到Docker容器中通了水电煤才能使用。...等我们装好了厨房用具之后我们就可以开始做饭,那么我们的Docker镜像装到Docker容器之后,我们应用就可以跑起来了。...也可以通过socket或者RESTful api访问远程的Docker daemon 了解了Docker的组成,再来了解一下Docker的三个主要概念: Docker image: 镜像是只读的,镜像中包含有需要运行的文件

    67220

    【Docker】从零开始将自己的应用打包到docker镜像

    docker的安装和部署此处不再赘述。以下从docker安装完成后开始讲。 首先,我们写一个demo,使用了python的flask框架,文件名为 app.py 。...我们的目的是,将这个代码以服务的形式,打包到docker镜像中。...首先,requirements.txt的内容如下图,这为了安装python依赖包: 然后我们开始编写Dockerfile FROM python:3.8      # 拉取一个基础镜像,基于python3.8...图中红色部分报错是pip包版本不是最新的告警,不影响构建过程,可以忽略。 现在,我们可以查看一下镜像情况 使用命令 docker images 如上图,镜像已经构建出来了。 那么,开始启动容器。...此外,还有个别常用的docker相关的管理命令也一并贴上来 # 删除镜像 docker rmi 镜像ID # 删除容器 docker rm 容器ID # 杀容器,会将运行中的容器停下来 docker

    21.8K43

    从零开始的Docker Desktop使用,Docker快速上手,Docker介绍和基础使用

    Docker中文社区 Docker 包括三个基本概念: 镜像(Image) Docker的镜像概念类似于虚拟机里的镜像(比如.ISO文件),是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据...daocloud国内仓库: 国内也有一些优秀的商店,他和Docker官方的仓库的区别类似与Github和Gitee的区别。...1.3 换源 首先,我们打开Docker的设置 选择Docker Engine,在其中输入(这里使用的是163的源,如果想要使用其他源可以自行设置,github上有个项目:docker_mirror...可以自动检测在你的网络环境下那个源是最快的) 1.4 Docker基础使用 首先我们输入docker run hello-world是否会出现下图所示的提示,如果出现报错,这环境配置可能出现了问题...几条删除命令的区别 docker rm: 删除一个或多个 容器 docker rmi: 删除一个或多个 镜像 docker prune: 用来删除不再使用的 docker 对象 1.5.4加载镜像(docker

    7K10

    “干净”的代码,贼差的性能

    很多程序员还是一个“小萌新”时就听过这样的说法:写出来的代码必须得“干净”,为此很多人做了大量的阅读和学习。 Redux 作者 Dan Abramov 就曾痴迷于“干净代码”和删除重复代码。...这些要求相当具体,听起来只要照着做了,就让编写出“干净”的代码。但问题是,这样的代码执行起来效果如何? 为了更确切地测试“干净”代码的实际表现,我决定直接用相关文献里列出的示例代码。...这是三到四年的硬件演化进程,只靠不用多态就给消弭掉了。 但这还只是刚刚开始。 忽略对象内部? 如果我们违反更多规矩,会怎么样?比如说去掉第二条,“忽略对象内部”。...Switch 语句的性能达到了“干净”版本的 2 倍,而查表版本更是达到后者的 15 倍。 这也凸显出“干净”代码的深层次问题:需求越复杂,这些规矩就越有损性能。...|Log4j 一周年特别报道 阿里过去一年裁员达19000人;字节跳动布局中国版 ChatGPT;马斯克称下周将开源推特算法代码 | Q资讯 活动推荐 InfoQ 写作社区征文活动已经开始啦!

    57210

    编写干净的代码之变量篇

    当我们自己写代码的时候,都知道这一行行的代码是什么意思,如何工作,如何实现业务需求的,当然,这些仅仅是「当我们自己在写」的时候。...而真实的情况是:当时确实如此,但明天,下周,明年,事实可能是南辕北辙的差别。还有其他人了解我的编码风格吗?对于必须维护我的代码的新团队成员来说,代码是否便于阅读?...这就是为什么「干净」代码如此重要的原因。使代码尽可能干净将提高其质量,以便其他人可以直观地理解它,从而减少出错的可能性并提高维护的质量。 在本文中,将只讨论干净代码,变量的一个方面。...每一个主题标题下的简短的说明性文字。 意图明显 变量名称应显示程序员的意图。程序员打算使用该变量的意图应该很明显而且易于理解的。不要引用使用变量名t为老师的对象,最好使用全程teacher。...结论 变量名称只是使代码干净的一小部分,在确保维护代码的人员理解的道路上,还有很长的路要走。

    69730

    如何写出干净的 JavaScript 代码

    一段干净的代码,你在阅读、重用和重构的时候都能非常轻松。编写干净的代码非常重要,因为在我们日常的工作中,你不是仅仅是在为自己写代码。实际上,你还需要考虑一群需要理解、编辑和构建你的代码的同事。...变量 使用有意义的名称 变量的名称应该是可描述,有意义的, JavaScript 变量都应该采用驼峰式大小写 ( camelCase) 命名。...当对象或类已经包含了上下文的命名时,不要再向变量名称添加冗余的上下文。...函数 使用有意义的名称 函数名称需要描述函数的实际作用,即使很长也没关系。函数名称通常使用动词,但返回布尔值的函数可能是个例外 — 它可以采用 是或否 问题的形式,函数名也应该是驼峰式的。...toggleThemeSwitcher() { // ... } function didAgreeToAllTerms(user) { // ... } 使用默认参数 默认参数比 && || 或在函数体内使用额外的条件语句更干净

    93010

    编写干净的C#代码技巧

    然而,编写干净且可伸缩的代码并不容易。在本文中,我们将讨论一些为我们的项目编写干净C#代码的技巧。乍一看,任何以前从未见过您的代码的开发人员都必须尽可能地理解它,它帮助我们更好地理解代码。...下面是编写干净C#代码的一些重要技巧。 使用好的IDE 首先,为您的技术堆栈选择最好的IDE。在我们的例子中,Visual Studio是C#最流行、最好的IDE之一。它是微软可靠的、完全的产品。...Visual Studio有相当稳定的智能感知特性,可以纠正和建议代码中的更改。 使用有意义的名字 命名变量可能是整个软件开发生命周期中最困难的部分。为变量和方法想一个有意义的名称是非常耗时的。...现在我们之前写的多行代码可以使用三元运算符缩减为一行,您可以开始想象这将节省多少行代码!...Age is " + student.Age; } 从C# 6开始,引入了String Interpolation功能。这提供了一种更具可读性和凉爽性的语法来创建格式化的字符串。

    25230

    如何写出优质干净的代码

    现在,想象一下,那时如果没有编写干净的代码,那么在第一眼看到代码之后,该是有多糟糕和混乱。而且,也可以知道从当初离开的地方开始编码有多困难。...因此,现在必须花更多的时间在项目上,因为我们需要理解之前编写的代码。这本来是可以避免的,如果从一开始就编写干净的代码,然而现在必须为此付出代价。...而且,旧代码是如此混乱和糟糕,以至于我们可能决定从头开始。客户听到这些消息后可能不会高兴。 另一方面,干净的代码通常就没有这个问题。...如果我们的代码很乱,写得很差,就需要花更多的时间来学习代码。另一方面,如果代码干净、易读、简单易懂,她将能够更快地开始她的工作。 有些人可能会说,这不是个问题,因为其他开发人员可以帮助她。...然而,这仅仅是个开始,同时还需要确保开发人员能够愿意遵循我们的编码模式。当然,使用干净的代码比混乱的代码更容易实现这个目标。

    76020

    通过Dnsmasq自建干净的DNS服务

    不晓得为撒,用网上的一些公共DNS服务的时候,总是莫名其妙的有些网站无法解析,有时候114能解析,阿里DNS不行或者腾讯DNS不行,导致总是来回切换DNS,很是烦心。...网上搜了一下,好像很复杂的样子,一直就没动手,但是今天试了下,发现出奇的简单,体验了一番,感觉效果良好。...首先你要有一个VPS,质量不用太好,我在我美国的64M内存的VPS上面完美安装,看了下内存32M应该也是可以的。...: 需要注意的一点是,检查一下no-hosts前面是不是已经有了#号,默认的情况下是有的,dnsmasq 会首先寻找本地的 hosts 文件再去寻找缓存下来的域名, 最后去上游dns 服务器寻找。...一般搭建DNS服务,可以允许所有用户使用你的DNS服务,即listen-address默认注释掉即可,如果你不想所有用户都使用你的DNS服务,可以在listen-address后面加上你指定的IP地址,

    11.3K81

    如何写出干净的 JavaScript 代码

    一段干净的代码,你在阅读、重用和重构的时候都能非常轻松。编写干净的代码非常重要,因为在我们日常的工作中,你不是仅仅是在为自己写代码。实际上,你还需要考虑一群需要理解、编辑和构建你的代码的同事。...变量 使用有意义的名称 变量的名称应该是可描述,有意义的, JavaScript 变量都应该采用驼峰式大小写 ( camelCase) 命名。...函数 使用有意义的名称 函数名称需要描述函数的实际作用,即使很长也没关系。函数名称通常使用动词,但返回布尔值的函数可能是个例外 — 它可以采用 是或否 问题的形式,函数名也应该是驼峰式的。...toggleThemeSwitcher() { // ... } function didAgreeToAllTerms(user) { // ... } 使用默认参数 默认参数比 && || 或在函数体内使用额外的条件语句更干净...你的点赞、在看和关注是对我最大的支持!

    1.1K30
    领券