写更少的代码

SAP 针对不同行业(制造业、零售业、金融业)推出了专属的云解决方案,以下是各行业的核心方案与特点 SAP推出行业专属云解决方案:制造业(SAP Digital Manufacturing Cloud)提供AI排产与质量预警,降低缺陷率;零售业(S/4HANA Cloud零售版)实现AI预测补货与全渠道库存同步,减少浪费;金融业(Business ByDesign)支持合规自动化与实时风控,降低审计成本。各方案均采用云原生架构,典型案例显示实施效果显著。 阅读详情
软件开发的一个基本事实是:你需要写代码。但是一个最大的概念误区是“写代码就是我的工作”。当我开始我的软件开发者生涯时,我就陷入了这个误区。代码是强大的,它能让你做许多事情,你觉得自己是有效率的,觉得自己完成了工作。然后,这些年来我学到了事情的真实的本质:一个程序员的工作的本质是写尽可能少的代码。

不要误解我的意思。我不是说我们应该把压缩代码,以尽量少敲键盘为目的,从而让写出来的代码根本无法理解。当你想到,作为一个程序员,你的绝大部分时间将用来维护你写的可怕的代码这一事实的时候,你就会觉得“写更少的代码,不要让自己写的代码给自己更来更大的工作量”这一原则是一个非常不错的主意。

为什么?
想想你的工作。想想你使用的工具,看看你喜欢用来开发的框架。你做的每件事,你使用的每件工具,都是为了让你写更少的代码。你的工具能让你犯更少的错误,并且把那些可能会给你带来麻烦的底层细节都抽象出来。

那么,为什么你需要写更少的代码?前文中我说:你的工作就是写更少的代码。其实我没有说出真相。你的真正的工作是思考。你的工作是思考要解决的问题,设计一个优雅的解决方案,然后把这个方案变成软件。而开发软体的一个副产品是,你需要通过写代码来解决问题。

代码是副产品
代码并没有那样重要。之所以我们喜欢让自己那样认为,是因为当我们开始干活、把解决方案变成代码时,写代码看来就好像即是手段,又是目的。我们谈论自己使用的编辑器,谈论我们使用的编程语言和我们的编程环境。我这样做过,你这样做过,我们都这样做过。诚然,享受你的工作带给你的快乐是无可厚非的,但是你要意识到:代码是很棒的,但它同样是你的敌人:写代码花掉你大量的时间,它可能有各种bug,它可能很难理解,或者不够鲁棒。

这就是我为什么坚持“写更少的代码”的原因。当我觉得一些东西变得超出需要的烦琐、或者比它原本的样子更复杂时,我告诉自己“写更少的代码”。当我写了太多的代码以至于很难在上下文中理解它们时,我就重构,清理,坚持想着“写更少的代码”。

虽然让我很痛苦,但不得不说:有时写大量的代码是无法避免的。但是,当你不能保持简洁(concise)时,保持清晰(clear)。“写更少的代码”是就写干净(clean)的代码,写清晰(clear)的代码。当你写的代码足够简练时,你的程序的目的就变得更加清楚。
那么,这一课的经验是什么呢?我认为最重要的是“代码只是一个副产品”,它是你在你工作的过程中不可避免要创造出来的东西。因此,多思考,多重构,去掉一些老旧的代码,写更少的新的代码,给自己一个机会,从今天开始。
YOLOv8改进,YOLOv8添加DCNv4可变性卷积(windows系统成功编译),全网最详细教程 DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1. 移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2. 优化内存访问以最小化冗余操作,从而加速计算。这些改进使得DCNv4相比DCNv3显著加快了收敛速度,并且处理速度大幅提升,前向传播速度超过三倍。 阅读详情

相关推荐

避坑指南:Win10安装Docker Desktop时Hyper-V报错的7种解决方案(2024最新版)

本文提供了2024年最新、最全面的Windows 10系统下Docker Desktop安装时Hyper-V报错的解决方案指南。文章深入剖析了Hyper-V与Docker的共生关系,并系统性地给出了从BIOS/UEFI设置、Windows功能启用、bcdedit命令修复到处理多虚拟化环境共存等7种核心解决方案,帮助开发者彻底解决安装困局,顺利部署容器化开发环境。

weixin_28840143的博客 529

JAVA-写更好更少的代码(技巧)

做项目,从数据角度出发,分为增删查改,先做增逻辑,再做查逻辑,一般到这里就可以写核心代码了,最后再做删、改逻辑,这样可以减少很多开发过程中的问题,即使遇到问题修改量也会少些,谨记!!! 一、判断字符串是否为空白/null,(来源org.apache.commons.lang3.StringUtils) StringUtils.isBlank(str);StringUtils.isNotB...

wangpeng322的博客 400

U2Net网络实战:从原理到代码实现(附背景去除应用)

本文深入解析了U2Net网络的原理与代码实现,重点剖析了其独特的嵌套U型结构(RSU模块)和显著图融合机制。通过实战演示,指导读者如何加载预训练模型并应用于精准的图像背景去除任务,为电商、摄影等领域提供高效的自动化抠图解决方案。

nn3456的博客 491

一年365天每天进步 5‰或1%和每天退步 5‰或1%最后的结果分别是多少

一年365天每天进步 5‰或1%和每天退步 5‰或1%最后的结果分别是多少 程序如下 变量等于0.005 #tiantianxiangshang.py ttbl=0.005 ttxs=pow(1+ttbl,365) ttxx=pow(1-ttbl,365) print("向上:{:.2f},向下:{:.2f}".format(ttxs,ttxx)) 运行结果 变量等于0.01 ...

学习笔记的博客 4660

UE5新手必看:如何用蓝图系统快速打造赛车游戏(含Chaos Physics配置)

本文为UE5新手提供使用蓝图系统快速打造赛车游戏的完整指南,涵盖Chaos Physics配置、载具蓝图架构设计、控制逻辑实现等关键步骤。通过详细的实战案例和优化技巧,帮助开发者高效构建具备专业物理反馈的赛车游戏原型。

weixin_29001327的博客 387

从UE4到Unity:双叶高光技术在角色皮肤渲染中的移植全流程

本文详细解析了将UE4中的双叶高光技术移植到Unity引擎的全流程。该技术通过模拟皮肤油脂层和真皮层的不同反射特性,能显著提升角色皮肤渲染的真实感。文章从核心原理、贴图资产处理、Shader代码重构到参数调校,提供了完整的跨引擎移植实战指南,帮助开发者实现高质量的皮肤质感还原。

alice7model的博客 477

厉害了,Google大神每天写多少行代码?

文章转自开源中国社区,编译自:QuoraQuora上有个有趣的问题:Google工程师们每天写多少行代码?Google 的 AdMob 全栈工程师 Raymond Far...

Java技术栈,分享最主流的Java技术 1581

ADS新手必看:ICCAP数据导入与导出CSV的完整流程(附常见问题解决)

本文为ADS新手详细讲解了如何将ICCAP测试数据导入ADS进行仿真分析,并导出为通用CSV格式的完整流程。内容涵盖文件格式解析、导入设置、数据验证、处理技巧及常见问题排查,重点解决了数据文件导入过程中的兼容性与单位映射等核心难点,帮助射频工程师高效连接测量与仿真环节。

peace的博客 557

写更少代码,进一步简化你ListView的Adaptor

简化 ListView Adaptor,仿仿 RecyleView.Adaptor

生活不止眼前的苟且 421

ROS2初级面试题汇总

总结和收集了一些关于ros2的问题和解答记录

qq_57633442的博客 5555

规控面试常见问题

规划控制算法常见问题。

每天进步一点点。 982

物联网应用开发服务商选型指南:从需求梳理到合同避坑

物联网应用开发不止是做一个App,而是一条从设备端到平台再到应用端的完整数据链路。理解设备接入、MQTT等通信协议、边缘计算与平台规则引擎的基本原理,是评估任何物联网项目的前提。随着AI应用开发、鸿蒙生态等新变量融入,智能硬件与云平台的协同越来越复杂,服务商是否具备从嵌入式到云端全栈落地能力,直接决定项目成败。实际选型场景中,企业既需要梳理设备、数据、用户、场景四大需求,也需要从技术底座、案例含金量、团队结构、报价透明度、售后保障五个维度评估服务商。合同中的知识产权、源代码交付、分阶段验收等条款更是避坑关键

weixin_34348174的博客 358

idea出现 EXCEPTION_ACCESS_VIOLATION (0xc0000005) 的解决方法

idea启动的时候出现如下问题,以为没啥事,就索性关闭 后面再打开idea的时候发现直接闪退,之后打开其他软件,直接蓝屏

码农研究僧的博客 4817

写更好的代码,还是写更少的代码?

先来看一个有趣的讨论: 我宁愿让我的学生尽他们最大的努力去写更好的代码,而不是写更好的注释。——Uncle Bob Martin(设计模式和敏捷开发先驱,《代码整洁之道》作者) “比起“更好”的代码,我更宁愿学生们写更少的代码。”——Bob Marshall “没有任何事情比“非常有效率地做了一件本不应该做的事”更没用的了。"——Peter Drucker

HTML5中国的专栏 500

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

如果我有更多的时间,我会写更少的代码

TS艾略特(TS Eliot)的一句话很明显:“如果我有更多的时间,我会写一封短些的信”。也许那天我想到了: 如果我有更多的时间,我会写更少的代码 在我看来,花在解决问题上的时间越多,通常得到的代码就越少; 我会进行重构,通常会找到更优雅的设计-减少代码并提供更好的解决方案。 这是程序员本能的核心,即好的代码比废话要花费更长的时间来编写。 但是正如鲍伯叔叔告诉我们的那样 : 快速前...

danpu0978的博客 305

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jQuery开发教程让你写更少的代码,做更多的事情

课程介绍 jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。  它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计

京庐空间 2996

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

AI Slop泛滥?用“写更少的代码”抵抗AI辅助编程的隐性债务

在AI辅助编程快速普及的今天,开发者开始面临一种新型代码问题——AI slop。这类代码语法正确、测试能过,却缺少清晰的业务意图,往往以“模块全家桶”“过度封装”和“教程式半成品”的形式悄然涌入仓库。与文本slop不同,代码slop需要长期阅读、维护和测试,每一行冗余都会变成未来迭代的约束。要降低这种负担,核心原则不是停止使用AI,而是学会“写更少的代码”:通过收敛生成边界、删除无调用者路径、限制输出形状,让每一段保留的代码都具备真实的存续理由。这种做法既是代码审查的延伸,也是将精力从“生产多少”转向“保留

aodiyi6351的博客 383

微场景 源代码叫我有_如果我有更多的时间,我会写更少的代码

微场景 源代码叫我有 TS艾略特(TS Eliot)的一句话很明显:“如果我有更多的时间,我会写一封短些的信”。也许那天我想到了: 如果我有更多的时间,我会写更少的代码 在我看来,花在解决问题上的时间越多,通常得到的代码就越少; 我将进行重构,通常会找到更优雅的设计-从而减少代码并提供更好的解决方案。 这是程序员本能的核心,即好的代码比废话要花费更长的时间来编写。 但是正如鲍伯叔叔告诉我...

danpu0978的博客 254

MQTT 5.0 协议升级实战:补课协议层,守住三大基本功

MQTT 是物联网核心轻量级发布/订阅消息协议,其 5.0 版本并非简单功能叠加,而是针对规模化、异构化、强管控场景的系统性演进。它在保留原有轻量异步特性的前提下,通过可选 Properties 机制显式定义连接管理、消息语义与订阅控制等关键能力,解决 3.1.1 中隐式约定导致的认证黑盒、会话失控、重传歧义、通配符低效等工程痛点。技术价值体现在可观察性增强(如 Reason String、$SYS 主题)、端到端可追溯(Correlation Data、Response Topic)、动态会话治理(Ses

weixin_34049948的博客 468

从代码到架构师的思维跃迁:不是写更多代码而是做更少决策

从工程师到架构师的跃迁不是"写更多代码"或"做更大项目",而是转变解决问题的方式:从解决一个问题 → 避免产生更多问题,从编码能力 → 决策能力。架构师的核心产出不是代码,是高质量决策。做可逆的决策(快速、低风险)、降低认知负荷(简洁 > 灵活)、同时考虑技术和系统合理性(不是"技术上最优的",是"对团队和业务最合适的")。

2609_95049439的博客 4981

“写更少的代码” 是否真的有必要?

下面的两种代码编写风格,你更倾向于哪一种呢? 第1种: public static void happyBirthday(int age) { if ((age == 16) || (age == 21) || ((age > 21) && (((age % 10) == 0) || ((age % 25) == 0)))) {

我的Github 1240

社区说 | 写更少的代码,完成更多的事情 — 用 Annotation 加速您的应用开发

活动时间8月5日 (本周四)20:00pm-21:00pm活动日程20:00-20:45写更少的代码,完成更多的事情 — 如何使用 Annotation 加速您的应用开发介绍 Annota...

Android开发者 357
上一篇: 第一个完整Andorid项目总结
下一篇: Google故事
coding_or_coded
博客等级 码龄16年 216粉丝 115原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值