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

再见,干净代码

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

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

    干净前端架构

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

    15410

    干净

    镜像后文章: 下面是我原文: 这文章来真是容易,整个网站除了显示作者地方显示了一个域名,其余没有任何显示,这扒,内裤都给扒光了(现在只剩裤袜了,无所谓了,反正我也不喜欢穿内裤)。...还有一个冠冕堂皇说明: 美其名曰对文章和图片做永久存储,这就离谱。不过可以肯定是我网站肯定比你这个所谓永久存储能活更持久!! 另外:我没有以我网站名义给任何网站投稿。...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爬虫

    82630

    【玩转Lighthouse】手动网络重装一个干净Linux系统

    1、默认系统模板不可控: 使用过多个厂商服务器朋友们可能会发现:同一个系统,不同厂商模板并不相同。...不如自己安装一个全新系统,可以保证每台机子环境基本一致,减少使用时遇到问题。...3、每个人想要安装系统不同(有几十种系统上百个版本),对应具体安装过程也各不相同,本文只教到进对应系统安装界面为止,余下部分和平时在本地电脑上安装Linux是一致,部分系统支持简体中文安装,且网络上相关教程非常多.../dev/vda1 : 111.png 前一步可以看到 / 目录对应分区,这里需要忽略分区最后数字,得到 / 目录对应磁盘(/dev/vda),将下载好镜像写入 / 目录对应磁盘内...netboot.xyz.img of=/dev/vda 第三步,开始手动重装系统: 重启系统: reboot 等待该界面出现: 222.png 用方向键选择至“Linux

    86150

    前端领域干净架构”

    然后就是怎么把干净架构应用于前端,以及值不值得这么做。 接下来,我们会用干净架构原则来设计一个商店应用,并从头实现一下,看看它能不能运行起来。...干净架构就可以帮助我们实现这一目标。 什么是干净架构? 干净架构是一种根据应用程序领域(domain)相似程度来拆分职责和功能方法。 领域(domain)是由真实世界抽象而来程序模型。...有时会显得多余 一般来说,干净架构并不适用于所有场景、甚至有的时候是有害。如果本身就是一个很小项目,你还要按照干净架构进行设计,这会大大增加上手门槛。...上手更困难 完全按照干净架构进行设计和实现会让新手上手更加困难,因为他首先要了解清楚应用是怎么运行起来。 代码量增加 这是前端会特有的一个问题,干净架构会增加最终打包产物体积。...“干净度”来减少一些实现时间和代码量。

    1.3K20

    如何干净卸载_怎么把360卸载干净

    Oracle大家都知道下载简单,但是想卸载,没那么轻松,会发现自己卸载不干净,导致再次安装就会失败,现在我就一步一步演示如何彻底卸载Oracle,然后再重新安装。(本机win10) 1....手工删除注册表和环境变量中信息 运行regedit 选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,右击删除Oracle开头文件即可; 选择HKEY_LOCAL_MACHINE...\Services\Eventlog\Application, 右击删除Oracle开头文件即可; 删除HKEY_CLASSES_ROOT目录下所有以Ora、Oracle、Orcl或EnumOra为前缀键...删除HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI中除Microsoft ODBC for Oracle注册表键以外所有含有Oracle键。...注意,删除表键时候,要仔细别漏删也别多删,如果没有就不删 4. 环境变量 我电脑–>属性–>高级–>环境变量,删除环境变量CLASSPATH和PATH中有关Oracle设定。 5.

    1.4K20

    vs2012卸载不干净_CAD如何卸载干净

    大家好,又见面了,我是你们朋友全栈君。...当VS2005卸载不干净时 那个恶心……当手动删除一部分文件(也许这部分文件中包括了卸载程序)后,再调用win卸载程序或360软件卸载来卸载VS2005,答案是……没办法卸载干净。...想想也是必然,没了对应卸载程序当然会卸载不了对应那部分信息,然而再次安装时安装程序首先检测注册表中有没有对应安装信息,假如检测到有,那你挂了,安装程序自动屏蔽掉已经有注册信息一部分,只安装被正常卸载那部分...,其实没有被正常卸载那一部分也不存在了,只不过没有走win流程,直接手动删除掉了。...在Google上搜索了一番,还好,找到一位国外兄弟跟我遇到相同情况,其实遇到这种情况大有人在,但在国内网站能搜到,大部分是只提问题不提答案……再一次恶心……国外兄弟博客当然全是英文了,不过幸好

    81020

    让操作系统环境更干净LinuxPATH变量

    PATH 玩Linux一定会和命令行打交道, 比如在Ubuntu中安装git, 输入 sudo apt install git -y 回车,运行完成后,就可以在命令行中使用git命令了 git如何在命令行中生效我们先查看...git安装位置 which git image-20201214090711670 git被安装到了/usr/bin 目录下 安装到/usr/bin目录下命令, 都可以被Linux自然而然地识别到,...就需要先人工进行筛选,再进行分享,很不方便, 而且Linux以管理多用户著称,如果所有用户都把软件安装到/usr/bin, 早晚会乱成一锅粥....PATH变量 事实上, 安装到/usr/bin目录下命令, 是通过PATH变量,被Linux自然而然地识别到。...image-20201214110937213 小结 PATH是非常重要环境变量,学习PATH使用原理,可以让我们思路清晰解决软件安装配置问题,也能让操作系统环境更干净

    2.5K20

    idea如何卸载干净

    ,如果遇到问题可以私信我,作者有时间可以帮大家伙解决问题,毕竟我也是从新手一步步升级打怪抗过来,经验还是有的,另外如果作者步骤有问题还请及时指出,我及时修正,也感谢大家伙信任,一句话总结(细心操作每一步...,核验自己操作结果,机器不会说谎,程序员自信很正常,但也要怀疑自己)。...我们在用idea时候,idea环境出现了莫名其妙问题,怎么也找不到问题原因时候可以试着把idea卸载重新安装。但是如果你卸载时候没有删除干净注册表里信息。...如何删除干净IDEA1.卸载程序** 打开控制面板,选中idea点击卸载。如果没有uninstall.exe,就先直接删除idea解压包。...Files\JetBrainsC:\ProgramData\Microsoft\Windows\Start Menu\Programs\JetBrains\相信经过以上步骤,你已经将idea残留配置清理干净

    6.6K20

    干净代码,贼差性能

    很多程序员还是一个“小萌新”时就听过这样说法:写出来代码必须得“干净”,为此很多人做了大量阅读和学习。 Redux 作者 Dan Abramov 就曾痴迷于“干净代码”和删除重复代码。...“干净代码”性能测试 下面来看几条有代表性干净”建议: • 相较于“if/else”和“switch”,尽量用多态; • 不要告诉代码它所处理对象内部; • 函数应该小一点;函数应该只做一件事...这些要求相当具体,听起来只要照着做了,就让编写出“干净代码。但问题是,这样代码执行起来效果如何? 为了更确切地测试“干净”代码实际表现,我决定直接用相关文献里列出示例代码。...: 可以看到,这次测试中“干净”代码表现更差。...Switch 语句性能达到了“干净”版本 2 倍,而查表版本更是达到后者 15 倍。 这也凸显出“干净”代码深层次问题:需求越复杂,这些规矩就越有损性能。

    56310

    linux shell:判断git工作文件夹是否干净(clean)

    本文链接:https://blog.csdn.net/10km/article/details/100689481 git diff 如果你不关注未纳入版本控制文件(untracked)文件,使用...git diff就可以判断git工作文件夹是否干净,如果是干净,git diff将没有输出,否则输出修改文件差异 #!...,git diff只是比较已经纳入版本控制文件被修改差异,如果git工作文件夹有新加入文件,git diff是不关注,这种情况下,git diff依然会认为文件夹是干净(clean). git...status 如果你同样关注git 文件夹中是否有未纳入版本控制文件,那么 git status 是更妥善办法,使用 git status -s命令输出当前状态,如果git 文件夹是干净(也没有...所以我们可以使用类似下面这样表达式来判断git 文件夹是否干净。 $ [[ -z $(git status -s) ]] || echo 'modified/untracked'

    3.6K50

    如何写出干净 JavaScript 代码

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

    93010

    编写干净代码之变量篇

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

    69430

    如何写出干净 JavaScript 代码

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

    1.1K30

    干净又卫生漂亮终端工具

    Tabby 简介 Tabby是一款现代化终端连接工具,开源并且跨平台,支持在Windows、MacOS、Linux系统下使用。...img Tabby 是一个基于 TypeScript 开发终端模拟器,适用于 Windows,macOS 和 Linux。...图片 下载安装 目前 Tabby 最新版本为 1.0.173,可以到官网、GitHub 下载对应安装包。...下载解压后双击 Tabby 使用,欢迎界面如图: 图片 修改配色方案 不同的人对终端配色都会有不同需求,如果你对默认终端显示配色方案不满意的话,可以选择其它配色方案。...图片 使用快捷键 习惯了 macos 各种快捷操作同学,想必应该最关心就是如何在 Tabby 中使用和自定义快捷键了,如果你想设置或者查看快捷键的话,打开 Hotkeys 即可,是不是很简单很方便

    1.7K20
    领券