c# - 编程时如何遮住背部? (建立冗余,不要让事情碰运气)

标签 c#

我在一个充满敌意的环境/公司工作(我是其中的一名初级开发人员),当然,如果你做了一些编码,它就会上线,如果出现错误,你的工作就危险了。

在这家公司(以及我工作过的所有其他公司),我从来没有任何可用的专用测试工具。我们没有源代码控制、测试服务器、错误跟踪等,但我们已经为客户完成了大规模开发。

我如何确保我的代码无论多小都能在所有环境中运行?我已经不留任何机会,并尝试建立冗余和备份计划。例如,如果出于某种原因我决定通过电子邮件记录错误,我知道这意味着我把所有的鸡蛋都放在了“互联网必须是活的”的篮子里,而它很可能不是,如果是这样,就不会发生日志记录并且如果有人说有错误,我没有证据,而且“他的话反对我的话”对我来说不起作用,因为我还小。所以一切都必须记录下来,这当然会导致性能和存储损失。

我可以应用哪些技术来确保我的代码能够在不同的环境中工作?这不适用于浏览器兼容性,仅适用于 winform 应用程序之类的东西,并确保我可以写入每台机器上的事件日志。

我正在做备份/冗余的想法(例如,如果我不能登录到邮件,登录到本地文件),以及记录所有内容,而不是硬编码系统值,这些值因机器而异。

在家里,我有单元测试工具、Exception Hunter 之类的东西来帮助我。在工作中我没有。

我对有助于解决此问题的 C# 技术(我在工作中使用的语言,通常是我的主要技能)和一般编程技术很感兴趣。我在 Google 上没有找到太多相关信息。

此外,如果我登录到电子邮件,并且在我的 catch 方法中,如果失败,我登录到文件,这是不是一种糟糕的技术? (所以如果一种方法不起作用,我有一个计划)。看来我应该做出性能/技术牺牲来弥补我的背。

谢谢

最佳答案

这听起来像是一场噩梦。我曾在没有源代码控制的地方工作过,人们会即时更改实时系统,而且我必须明确证明我的代码不是问题所在。但如果有人搞砸了,我们的工作就不会受到影响。只要它不经常发生即可。

这可能是因为其中一位高级开发人员是最严重的违规者。他最喜欢的技巧是让 shell 脚本调用 shell 脚本调用 shell 脚本并将 stdout 和 stderr 显式重定向到/dev/null,有时深度为 2 层和 3 层。

还有一次,他应客户的要求“验证客户的备份”,确保作业是从 cron 运行的,而不是实际从磁带读取数据。当然磁带坏了——他将 stderr 重定向到/dev/null。当客户在 2 个月后丢失硬盘驱动器和 5 年的历史数据时,我必须带头扫描他们的打印记录并对其进行 OCR 处理,以重建类似于数据库的东西。他们提拔了另一个人。不久之后我就辞职了。

这让我回到你的情况。

  • 更新您的简历。
  • 在银行有一些存款; 2 周后能够在无家可归的情况下找到工作。
  • 开始安静地寻找其他工作。这种经济不会永远持续下去,而且你每个月都变得更有市场。人生苦短,无法忍受充满敌意的工作场所。
  • 为 CYA 尽你所能。
    • 开始将 RCS 用于您自己的东西。
    • 彻底测试你的东西。保持测试;进行更改时重新测试。
    • 记下(通过电子邮件发送给自己,或编辑文本文件)关于您所做的更改以及您在部署前的测试方式。运气好的话,好的文档将胜过更高级的人的指责。
    • 在公司内寻找导师。

祝你好运。正如另一位评论者所说:我们都去过那里。

关于c# - 编程时如何遮住背部? (建立冗余,不要让事情碰运气),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1280519/

相关文章:

c# - 编写 C# 控制台代码后在 XNA 中可视化游戏

c# - 如何使用 Ajax.BeginForm 更新 div 并执行 javascript 函数?

c# 如何发送仍在写入的文件流并一直发送到创建结束

c# - SCRIPT87 : Invalid argument in IE 9, ASP.NET C#

C# SQL Server 字符串在检索期间转换为 Int

c# - 组合框默认值

C# Winform 应用程序 GUI 未显示使用 .BAT 文件按计划任务运行

c# - 如何在不将类标记为可序列化的情况下对其进行深度复制

c# - WP7 浏览器控件不会调用 javascript 错误 80020101

c# - 未触发动态 ImageButton 单击事件