关于粗心的反思

1. 写在最前面

似乎有很多为「粗心」犯错,而开脱的理由,比如:

  • 人非圣贤,孰能无过

  • 知错能改善莫大焉

但是事实真的如此吗?依稀记得很久之前自己思考过,其实有很多职业是一点粗心都允许出现的。比如:

  • 作为医生,如果粗心,那就可能将患者的置于「失去生命」的危险中

  • 作为核工程师,如果粗心,那就可能带来无法挽回的「核事故」风险

  • ……

软件开发工程师,虽然不要求对粗心零容忍,但是也要时刻警醒自己「已经犯过的错,不能再犯第二次」。尊重别人的时间也是一种美德。

2. 粗心记录

粗心的地方有两处:

  • 没有认真 review 同事的出包 Dockerfile:

    • 导致用错了 Dockerfile 的 ADD 关键词的语法问题没有提前被发现

    • 导致拷贝了 python 依赖的 libonnxruntime.so.1.17.1 动态库,但是没有更新动态链接库配置,导致系统无法找到库文件位置

  • 测试的时候只看了转录效果,但是没有认真查看服务的日志

2.1 出包脚本问题

问题一: 同事写的的 Dockerfile 里,用 ADD 关键字,将需要测试的 .zip 包进行了拷贝,并且期待它会解压到对应的目录中。

失效原因: Docker 的 ADD 指令支持自动解压缩 .tar.tar.gz.tar.bz2.tar.xz 文件,但不支持解压缩 .zip 文件。这个功能在 Docker 的早期版本就已经存在,具体来说,自 Docker 1.0 版本起就支持这些格式的自动解压缩。

正确做法:

  • 在 Dockerfile 里在 base 镜像里,安装 zip 命令

  • 显示运行 unzip 解压包的命令

问题二: 由于出包的镜像里缺少了 libonnxruntime.so.1.17.1 库,同事从其他存在该库的镜像中拷贝到了镜像里,但是更新动态链接库配置,导致库存在,但是程序在引用的时候,还是返回无法找到。

失效原因 : 没有在镜像里更新动态链接库的配置

正确做法: 更新 ldconfig 动态链接库的配置方式如下:

  • echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/onnxruntime.conf

  • sudo ldconfig

借用伟大领袖的一句话,「实践是检验真理的唯一标准」,不能因为开发同事的积累更丰富,就默认写出的代码没有任何问题。「不攀附、不盲从,遇事有自己的判断和想法」这很重要。

2.2 复测行为确认的粗心

由于上文中所记录的原因,「预期使用新版本的包进行效果测试,但是由于没有正确配置,导致了误用了上个版本的包。」

但是这个问题是可以在测试效果行为的时候被发现的,不必让测试的同学测试一天后反馈的时候,研发才发现此问题。根因还是笔者测试的时候,进入了想当然的惯性思维,只检查了效果是否符合预期,但是没有做日志版本的检查。

注:惯性思维是一种可怕的行为,它似乎就好像是温水煮青蛙一样,让你变得不再对新事物充满好奇,不自觉的抵制解除新的改变,这真的很不好!

2.3 感悟

「浪费别人的时间,与谋财害命无异」,希望自己能引以为戒,再以后避免类似问题的出现。遇到事情知道就勇敢的说出自己的观点,不知道也不能攀附盲从,觉得大佬写的一定没有问题。

注:周五要请测试的小姐姐一起喝下午茶,简单弥补一下自己的错误产生的伤害。

3. 碎碎念

上海的气温真的是一秒入冬,真的寒冷的一天,看起来要开始喝热水了。

  • 你不会的东西,觉得难得东西,一定不要躲,先搞明白,后精湛,你就比别人优秀了。因为大部分人都不舍得花力气去钻研,自动便被淘汰,所以你执着的努力,就占了大便宜

  • 真正聪明的人,从来不说难听的话,因为人性不需要听真话,只需要听好听的话。

  • 你看天上的云聚了又散,散了又聚,人生离合,亦复如斯

  • 物物而不物于物

下载方式:https://pan.quark.cn/s/c9b9b647468b ### 初级JSP程序设计教程核心内容解析#### 一、JSP基础概述JSP(JavaServer Pages)是由Sun Microsystems公司创建的一种动态网页技术规范,主要应用于构建动态网站及Web应用。JSP技术使得开发者能够将动态数据静态HTML文档整合,从而实现网页内容的灵活性和可变性。##### JSP的显著特性:1. **动态静态内容的分离**:JSP技术支持将动态数据(例如数据库查询结果、实时时间等)嵌入到静态HTML文档中。这种设计方法增强了网页的适应性和可维护性。2. **易用性**:开发者可以利用常规的HTML编辑工具来编写静态部分,并通过简化的标签技术将动态内容集成到页面中。3. **跨平台兼容性**:基于Java平台的JSP具有优良的跨操作系统运行能力,能够在多种不同的系统环境中稳定工作。4. **强大的后台支持**:JSP能够通过JavaBean组件访问后端数据库及其他资源,以实现复杂的数据处理逻辑。5. **执行效率高**:JSP页面在初次被请求时会被转换为Servlet,随后的请求可以直接执行编译后的Servlet代码,从而提升了服务响应的效率。#### 二、JSP指令的运用JSP指令用于设定整个JSP页面的行为规范。这些指令通常放置在页面的顶部,向JSP容器提供处理页面的相关指导信息。##### 主要的指令类型:1. **Page指令**: - **语法结构**:`<%@ page attribute="value" %>` - **功能**:定义整个JSP页面的运行特性,如设定页面编码格式、错误处理机制等。 - **实例**: ...
在网络安全领域,人为因素是导致安全漏洞的重要原因之一。许多安全事件的发生并非由于技术防御不足,而是由于人员操作不当或安全意识薄弱所致。在心得中融入关于人为粗心导致安全漏洞的分析见解,可以从以下几个方面展开: - **引入典型案例**:引用真实的安全事件,如员工误将敏感数据上传至公开存储库、配置错误导致数据库暴露、点击钓鱼邮件导致恶意软件感染等。这些案例能够直观展示人为失误对系统安全的破坏力。例如,2017年美国信用评级机构Equifax因员工未及时更新服务器补丁,最终导致1.43亿用户数据泄露。 - **分析行为动机心理机制**:结合心理学人因工程理论,探讨人们在面对安全提示时为何容易忽略或跳过。例如,频繁的安全验证弹窗可能引发用户疲劳,使用户倾向于选择弱密码或绕过安全机制。这种行为模式可结合“安全可用性悖论”进行讨论,即过于复杂的安全措施反而可能诱导用户做出不安全决策。 - **提出人为因素的量化评估方法**:通过引入人为错误概率(Human Error Probability, HEP)或人因分析工具(如SHERPA、HEART),说明如何对人员操作失误进行建模评估。例如,在系统设计阶段可结合HEART方法估算不同操作步骤中人为失误的可能性,并据此优化用户界面流程设计。 - **结合安全意识培训行为干预**:强调组织在提升员工安全素养方面的作用。定期开展模拟钓鱼攻击演练、安全知识培训、安全行为激励机制等措施,有助于降低人为失误率。例如,某机构通过引入“安全积分”制度,鼓励员工主动报告可疑行为,成功将误点击钓鱼邮件的比例从15%降至3%。 - **构建人机协同的防御机制**:在技术层面,设计能够容忍人为错误的安全机制。例如,采用默认安全配置、实施最小权限原则、引入双因素认证等,可以在用户操作不当的情况下仍保持系统安全。此外,结合自动化监控异常行为检测技术,如用户行为分析(UEBA),可及时发现并响应潜在的人为失误。 ```python # 示例:使用Python模拟简单的用户行为异常检测 import random def detect_anomalous_behavior(user_actions): # 模拟用户行为特征,如登录时间、访问资源、操作频率等 baseline = {"login_attempts": 3, "file_access": 20} if user_actions["login_attempts"] > baseline["login_attempts"] * 2: return True if user_actions["file_access"] > baseline["file_access"] * 3: return True return False # 模拟用户行为数据 user_data = { "login_attempts": random.randint(1, 10), "file_access": random.randint(5, 50) } if detect_anomalous_behavior(user_data): print("检测到异常行为,可能由人为失误或恶意操作引起!") else: print("用户行为正常。") ``` - **总结反思**:在心得的总结部分,强调技术防护人为管理的平衡。指出即使拥有最先进的安全技术,若忽视人员因素,系统仍可能面临巨大风险。同时,提出未来在安全设计中应更加注重人因工程,提升系统的易用性安全性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值