关于Hard Code的思考 - 程序员的管理不能简单使用制度

【信息科学与工程学】计算机科学与自动化——第三百零五篇 数据中心 Scale-Up、Scale-Out、Scale-Across 20 GPU 训练中的各种算子融合技巧、梯度压缩与稀疏通信的高级变体、混合专家模型的负载均衡与通信优化、长序列模型的注意力机制优化、模型量化与蒸馏的联合优化、分布式训练中的容错与恢复、以及一些新兴硬件特性的建模(如 HBM3、GDDR7、CXL 3.0 内存语义、PCIe Gen6 PAM4 信令等)。每条仍然包含四个方程式子节。 阅读详情

版权声明:本文可以自由转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明

先说Hard Code吧,这个问题我想有经验的程序员都知道,但是还是说一下吧。比如有这么一段代码:

int sum = count * price * 0.75;

这里面的0.75就是一个"Magic number",也叫hard code。有人翻译成“硬编码”。这样是不好的,因为

1。读代码的人不会知道0.75是什么意思。

2。如果这个数字将来要变化,恨难修改。

3。如果是个字符串,说不定有spell error。

...

问题很多,我就不多说了,我们是一定不能Hard Code的。

于是,为了防止程序员写出低质量的代码,“永远不能Hard Code”这一点被写入了编程规范,并且由SQA监督,定期做Code review来查看是否有人触犯编程规范。

但是,有趣的事情发生了,看下列代码:

int sum = count * price * SEVENTY_FIVE;

String sql = SELECT + BLANK + FROM + BLANK + ASTERISK + tableName + BLANK + WHERE

    + BLANK + fieldName + EQUAL + String.valueOf(sum);

看到这样的代码,做Code Review的人是看不到Hard Code了,可是这样写出来的代码,还不如Hard Code呢。问题在哪里呢?关键是那些用来替换“magic number”的变量的取名,这些变量的取名应该具有实际的意义,如果说 sum = count * price * DISCOUNT; 这样就比较好懂,因为折扣是有Business方面的意义的,而SEVENTY_FIVE是没有Business方面的意义的,而且DISCOUNT可以变成其它的值,想80,但是SEVENTY_FIVE就不能是80。

思考一下,不仅仅是如何避免Hard Code的问题,还有就是如果把这些思想在整个团队里面能正确的执行,这是一个很好玩的话题。

创业公司程序员软件工程师绩效管理制度 • 效果联想: o 员工会抓紧时间完成手中任务以获取更多的奖金和未来的加薪预期。没有任何参与评估简易度。 o 难度将以曲线式递增。以增加员工工作效率换取更多的成长空间。 o 不要跟我谈加薪 o 不要跟我谈理想 o 请跟我谈条件 o 谢谢 立即下载

相关推荐

DesignToken2Code:将设计标记转换为SCSS变量作为代码

DesignToken2Code DesignToken2Code是一个Sketch插件,可以将形状颜色用作设计令牌转换为诸如scss变量的代码。 该插件是使用skpm创建的。 有关工作原理的详细说明,请。 为什么? 我想要一个易于维护设计和代码之间关系的工作流。 更多详细信息(日语): : 安装 使用Sketch Runner安装使用Sketch Runner,只需转到install命令并搜索DesignToken2Code 。 Runner允许您管理插件,并可以做更多的事情来加快Sketch中的工作流程。 。 用法 添加画板和名称Tokens 。 在Tokens画板中添加形

请别在代码里面hardcode

今天又遇到同事在对历史悠久的代码进行bug排查,结果看到了一些类似***>2的逻辑判断,当场也就懵了,完全不知道它代表啥业务情形!群里面几十个同事包括不少老员工都在,可是就不能给于明确的解答。 当然针对这种情况,可以使用VCSLog和VCSAnnotate来对代码的log进行追溯,然后看下是哪个分支合并的,然后继续往前查,也许你找到了源头,并看到注释说是哪个bug或者哪个需求所以加了这段逻辑,但

linxuping的专栏 3727

2024.6.15丨基于VFDB数据库的致病菌毒力因子注释实战指南

本文提供了一份基于VFDB数据库进行致病菌毒力因子本地化注释的实战指南。详细介绍了从环境准备、DIAMOND工具安装、VFDB数据库选择与构建,到核心比对操作及结果解读与过滤的全流程。重点阐述了本地化分析相较于在线工具在速度、稳定性和批量处理上的优势,旨在帮助微生物基因组研究人员高效、精准地识别致病菌的关键毒力因子。

weixin_29220405的博客 272

什么是hardcode编码

所谓hardcode,即硬编码: 1、把一个本来应该(可以)写到配置信息中的信息直接在程序代码中写死了; 2、程序代码中出现了魔法值。 对于情况1,例如我们写了一个收发邮件的程序,用户名、密码,服务器地址等这些配置信息写成外部配置,在程序代码中读取配置信息;但是如果我们直接写死在程序代码中,每次改信息时都需要重新编译,且如果多处程序代码中出现了这种配置信息,修改起来也比较麻烦…这种程序不易于维护。 大部分程序语言里,可以将一个固定数值定义为一个标记,然后用这个特殊标记来取代变量名称。当标记名称改变时,变.

梦蝶 8604

2025浏览器指纹伪装终极指南:Playwright修改WebGL+时区+分辨率,小红书爬1000条零验证

2025年小红书的反爬已经进入“多维校验”时代,单纯修改某一个指纹维度已失效。本文方案的核心是“让所有特征都一致且合理”——WebGL+Canvas+时区+分辨率+UA+行为,形成一个完整的“真实用户画像”,让小红书的反爬系统无法区分是爬虫还是真人。这套方案不仅适用于小红书,也可迁移到知乎、抖音、跨境电商等其他高反爬平台,只需替换对应的指纹库和数据提取逻辑。记住:指纹伪装的本质不是“欺骗”,而是“模拟真实”,把每个细节都做到和人类一致,自然就能实现“零验证”爬取。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3071

Hermes Agent vs OpenClaw:2026 年开源 AI Agent 框架深度对比

两款 2026 年最受关注的开源 AI Agent 框架,一个主打「自进化」,一个聚焦「网关路由」——它们究竟有何不同?本文将从架构原理、核心机制、使用方式到适用场景,为你全面拆解。无论你是 AI 研究者、开发者,还是想用 AI 提升工作效率的个人用户,这篇文章都将帮助你做出最适合的选择

程序猿_三产 3753

什么叫硬编码?如何避免硬编码

硬编码(Hardcoding或Hard-coding)是指在编写程序时,直接将具体的值(如字符串、数字、路径等)写入源代码中,而不是通过变量、配置文件、数据库查询或其他动态方法来获取这些值。通过上述方法,可以提高软件的可维护性、可读性和灵活性。

qq_35374791的博客 6676

方案设计之亿级排行榜方案设计

该方案通过 “Redis Zset 为核心 + 分治策略为骨架 + 多级优化为细节”,在亿级用户场景下实现了:本质是将 “亿级大问题” 拆解为 “千万级小问题”,用分布式思想和精细化设计平衡性能、可用性与成本。

shine0312的专栏 1100

硬编码是什么意思?底层原理是什么?

底层原理是,在编写代码时,程序员可以将固定的值或字符串直接嵌入到程序中,程序在执行时会直接使用这些值或字符串,而不是从外部获取。硬编码(Hard Coding)是指将常量、参数、变量等直接编写在程序中的做法,而不是使用配置文件、数据库或其他外部资源进行存储和管理。不易维护:如果需要修改这些值或字符串,必须修改代码并重新编译,而且很难进行统一管理和查找。安全风险:如果将敏感数据硬编码到程序中,可能会暴露给攻击者,增加安全风险。可读性差:硬编码的代码难以阅读和理解,降低了代码的可读性。

长风破浪会有时的博客 1752

Office系列完全干净卸载工具合集(最全)

使用 Microsoft Fix it 卸载 Microsoft Office 套件 一、Windows 7、Windows Vista或Windows XP下卸载Office 1.MicrosoftEasyFix50416 工具用来卸载office 2003 MicrosoftEasyFix50416_Office2003.msi 2.MicrosoftEasyFix50154 工具用来卸载office 2007 MicrosoftEasyFix50154_Office2007.msi 3.Microso

业精于勤,荒于嬉 3万+

手把手教你学Simulink--基于新能源并网与协调控制的场景实例:双馈异步风力发电机并网运行仿真

随着“双碳”目标的推进,风力发电已成为新能源并网的核心组成部分。其中,双馈异步风力发电机(Doubly-Fed Induction Generator, DFIG)因其变频器容量小(仅处理转差功率)、可实现有功/无功独立调节、运行效率高等优势,广泛应用于现代兆瓦级风电机组。DFIG系统通过转子侧变流器(Rotor-Side Converter, RSC)和网侧变流器(Grid-Side Converter, GSC)实现对发电机转矩与电网无功的精确控制,支持最大功率点跟踪(MPPT)和。

MHD0815的博客 280

软件项目时间估算的四步实战法:从拍脑袋到有依据

软件项目时间估算本质是工程化决策过程,其核心在于将模糊需求转化为可度量、可验证、可追溯的任务单元。基于规划谬误认知偏差与外部强压现实,需融合任务拆解、三色时间建模、历史效能基线校准及双轨甘特图呈现等方法,实现估算从主观经验向数据驱动跃迁。该方法显著提升交付确定性,降低需求蠕变与环境成本风险,广泛适用于敏捷开发、ToB定制化交付及技术团队资源规划等典型场景。

clugcpne10995的博客 340

微信小程序 - 详细实现可移动悬浮按钮,全屏悬浮元素图标可拖动拖拽并自动吸附边缘,微信小程序实现悬浮球吸附边缘+计算靠边靠拢效果(详细代码,拖拽中途放手,靠左就自动跑到屏幕左侧,反之靠右跑到屏幕右侧)

微信小程序,vue2,vue3,微信小程序悬浮功能小按钮,自动吸附边缘效果,微信小程序之可拖动悬浮按钮的实现,如何实现靠近边缘自动吸住功能,小程序右下角的悬浮效果,实现可拖动悬浮图标,自动向两边靠拢,悬浮按钮的实现,微信小程序悬浮球效果,微信小程序(可拖动悬浮按钮)当靠近屏幕边缘时会磁吸靠近,如何实现全局悬浮按钮,悬浮球判断吸附在左右,全屏悬浮能拖着走,小程序怎么做悬浮图标靠近左右两侧能吸附住,悬浮菜单按钮,悬浮球可拖拽,全局悬浮球,全局悬浮框,实现悬浮按钮可拖动,自动吸附边缘效果,若按钮此时位于页面中间偏

🏆 前端领域优质创作者 1万+

[解释]“hardcode”是什么意思?

<br />hardcode----硬编码。<br />所谓硬编码,hardcode,就是把一个本来应该(可以)写到配置信息中的信息直接在程序代码中写死了。   <br />    <br />  例如,写了一个收发邮件的程序,用户名,密码,服务器地址等最好做成外部配置,   <br />  但是如果直接写死在程序代码中,每次改信息时需要重新编译了……   <br />    <br />  这种程序不好维护。   <br />  一般懒的程序员或者初学者这种程序产量较大。<br /><br />     

风_韵雪 For 优快云 1万+

基于STM32设计的太阳能智慧路灯_444

本文设计并实现了一种基于 STM32 的太阳能智慧路灯系统。系统以 STM32F103C8T6 单片机为核心,集成温湿度检测、空气质量检测、环境光照检测、行人检测和路灯故障检测等功能,实现对路灯运行环境和工作状态的实时感知。

463

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

硬编码和软编码的区别到底是什么?使用场景是什么?底层原理是什么?

通过上述方法,我们可以更好地理解硬编码与软编码之间的区别、各自的优点及适用范围。无论是在设计初期还是后期维护阶段,合理运用这两种技术都能显著提高代码的质量和项目的成功率。

长风破浪会有时的博客 2198

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

硬编码和软编码

"硬编码"和"软编码"是在软件开发和编程中常用的两个术语,它们涉及到如何处理和组织代码中的常量或配置。这样,通过修改配置文件或在运行时传递参数,就可以更灵活地调整超时时间,而不需要修改源代码。举个例子,考虑一个程序中的超时时间。

我的博客 1612

OV9734 DATASHEET,完整规格书

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

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

程序设计之HardCoding

写死 (英文称 hard code, hard coding) 指的是在软体实作上,把输出或输入的相关参数 (例如:路径、输出的形式、格式) 直接写死在原始码中,而非在执行时期由外界指定的设定、资源、资料、或者格式做出适当回应

gzyes 2096

什么是硬编码?

维基百科解释: 硬编码(英语:Hard Code 或 Hard Coding )是指在软件实现上,将输出或输入的相关参数(例如:路径、输出的形式或格式)直接以常量的方式撰写在源代码中,而非在运行期间由外界指定的设置、资源、数据或格式做出适当回应。一般被认定是种反模式或不完美的实现,因为软件受到输入数据或输出格式的改 与硬编码相对的则是软编码,两者是相对关系,没有绝对之分。 硬编码是关联很紧密的...

飞机飞过天空的博客 1万+

Hard Coding

硬编码(英语:Hard Code或Hard Coding)指的是在软件实现上,把输出或输入的相关参数(例如:路径、输出的形式或格式)直接硬编码在源代码中,而非在运行时期由外界指定的设置、资源、数据或格式做出适当回应。一般被认定是种反模式或不完美的实现,因为软件受到输入数据或输出的

txgc1009的专栏 2744

什么是硬编码?什么是软编码?

硬编码:将具体数值、参数等直接写入程序代码中,缺乏灵活性,不易修改和维护。软编码:通过变量、配置文件等方式将数值或参数抽象出来,使得程序更具灵活性,易于修改和维护。

weixin_44943389的博客 7029

Later深度解析:让你的Mac桌面瞬间整洁的终极技巧

Later(GitHub 加速计划)是一款专为 Mac 用户设计的效率工具,通过一键操作即可将所有打开的应用程序暂时保存,让桌面瞬间恢复整洁状态。无论是工作中需要专注处理单一任务,还是希望在娱乐前清理屏幕,Later 都能成为你的得力助手。 ## 为什么选择 Later?快速解决桌面混乱的痛点 Mac 用户常常面临这样的困扰:打开的应用程序越来越多, Dock 栏被挤满,桌面图标杂乱无章,不仅

gitblog_01055的博客 346

基于 Java 解释一下硬编码和非硬编码?

属性值,而无需更改和重新编译Java代码。这大大提高了应用程序的灵活性,使得维护和配置更新更加简单。例如,如果你在代码中直接指定了数据库的连接字符串,那么当你需要更换数据库服务器时,就。硬编码和非硬编码是指软件开发中配置数据和变量处理方式的概念。在上述非硬编码的示例中,如果数据库URL发生变化,只需修改。硬编码是指在程序代码中直接写入具体的。等方式来设置和获取程序中使用的。这样做的好处是,修改配置时。

訾博(ZiBo)的博客 1005

学会安排事情的优先级

在一般人的印象里面,只有管理人员才会忙得晕头转向,需要学习时间的管理。其实,程序员也会面对同时有多个任务要做,也要学习管理自己的时间。关于时间的管理,太多的理论无益,我觉得要点就是:要有排出优先级的习惯。一个经典的理论是这样的,事情分成两类,重要的和紧急的,组合起来就有四种情况。优先级应该这样排:1。既紧急又重要。2。重要但是不紧急3。紧急但是不重要4。不紧急也不重要关于这个理论,我就不多说了,我

选择 8315
上一篇: 声明
下一篇: 字符串的拼接,StringBuffer性能上还是远远优于String的
decision
博客等级 码龄21年 0粉丝 19原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值