如何维护同事的在'防御性编程'下写的代码

51 天前
 qiangguodiceng

背景

初期情况

问题发现

当前困境

公司情况

寻求建议

3116 次点击
所在节点    职场话题
37 条回复
zdw189803631
51 天前
这代码我觉得还行,实话
kokutou
51 天前
你写一个试试,你看看是不是也这样
magic3584
51 天前
如何改善同事的编程习惯?
-- 管好你自己就行

如何向老板解释情况?
-- 当然是说实话了

如何在不影响团队关系的前提下改善代码质量?
-- 当领导,制定代码规范
iloveayu
51 天前
别碰,绕过去然后拉一坨新的屎。
sagaxu
51 天前
防御性编程 ❌

腹黑性编程 ✅
zgl263885
51 天前
我也分不清有些人到底是防御性编程还是单纯的菜,手头接手代码删除了一半了(工具统计),功能还差不多是这些,而且感觉还能删除 3 成。不是非删了才显得自己厉害,是真看不下去,一个方法复制 20 遍,卧槽 tmd,越想越来气!
leokun
51 天前
这个还好,逻辑比较集中,上下文不是很长,js 最恶心的是滥用闭包
Laysan
51 天前
防御性编程( Defensive Programming )是一种软件开发方法和策略,其主要目的是通过在代码中实施一系列预防措施,来增强软件系统的稳定性、可靠性和安全性。防御性编程的核心理念是在设计和实现软件时,不仅仅考虑正常情况下的预期行为,还要特别关注异常情况和不正确输入可能带来的潜在问题。以下是防御性编程的关键特征和实践:

1. **输入验证和过滤**:在接收和处理用户输入、外部数据或其他系统交互时,进行严格的输入验证。这包括数据类型、格式、长度等方面的检查,以防止不良数据导致的错误或安全漏洞。

2. **异常处理**:设计和实现代码时,考虑可能发生的异常情况,并编写相应的异常处理机制。良好的异常处理可以确保系统在出现问题时能够优雅地恢复或提供适当的反馈,而不会导致系统崩溃或产生未预期的行为。

3. **边界检查**:在使用数组、指针或其他数据结构时,进行边界检查和越界防护。这可以防止因为访问超出数据结构边界而导致的内存错误或数据损坏。

4. **资源管理**:合理管理系统资源,包括内存、文件句柄、数据库连接等。防御性编程要求在使用完资源后及时释放,避免资源泄露和系统性能问题。

5. **日志和错误处理**:适当地记录错误信息和系统状态,以便于问题排查和分析。良好的日志记录是防御性编程的重要组成部分,有助于及时发现和解决潜在问题。

通过采用这些实践,防御性编程可以显著提高软件系统的健壮性和可维护性,减少由于意外情况导致的系统故障和安全漏洞,从而增强整体的用户体验和系统可靠性。
abelmakihara
50 天前
@zgl263885 培训班刚出来的那种吧 脑子里没那个意识
Georgedoe
50 天前
工作能力确实有问题 , 还喜欢归咎外因
maymay5
50 天前
防御型编程是怎么做到的,我干过的公司,基本代码仓库都专门有个审核分支,写的代码都只能提交到审核分支,负责人看完后合并到主分支,没通过的直接邮件和工单,注释量和变量名甚至什么时候用 for 什么时候用 foreach 都要管🙄
twofox
50 天前
写几何算法的,能够优雅到哪里。其实我看着你这个还好,也给你留注释了。

不过楼上那几个跳脚的,真没必要

别说什么污名化防御性编程

语言本来就是用来沟通的,大部分人知道这个意思是什么即可。防御性编程在不同语境可以有不同的含义,这并没有什么问题

非要去找定义,并要求大家都按照这个定义来说话

那要不你们先把奇葩这个词的含义改回来
nullxx
50 天前
防御性编程不是默认参数都不对多加校验吗 怎么变成防优化了
duan602728596
50 天前
这个算是标准的非前端程序员的代码了。
Betsy
50 天前
你要写具体的文档来证明这代码真的就是一坨屎,维护成本高,并且拉会跟老板一条一条的过来说服老板。如果你不能证明,那老板觉得你能力不行或者态度不端理所应当。

PS:嘴上跟老板说这代码太烂了,顺口举几个不痛不痒的例子,或者截几张图,这种做法个人觉得毫无意义,大概率只会加剧老板对你的不满。
iClass
50 天前
不懂就问
PainAndLove
50 天前
怎么跟我理解的防御性编程不是一个东西呢。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1061240

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX