编程时如何遮盖我的背部?(建立冗余而不是让事情变得偶然)

Gur*_*epS 5 c#

我在一个非常恶劣的环境/公司(我是一个初级开发人员)工作,当然,如果你做一些编码,它会上线,并且有一个错误,你的工作就行了.

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

如何确保我的代码(无论多小)能在所有环境中运行?我已经不遗余力,试图建立冗余和备份计划.例如,无论出于何种原因,我决定通过电子邮件记录错误,我知道这意味着我将所有鸡蛋放在"互联网必须在线"的篮子中,而且很容易就不会,如果是这样,就不会发生任何记录,如果有人说有错误,我没有证据,"他对我的言论"不适合我,因为我是小辈.所以必须记录所有内容,当然会导致性能和存储损失.

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

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

在家里,我有各种各样的测试工具,Exception Hunter,各种各样的东西,帮助我.在工作中我不这样做.

我对C#技术感兴趣,以帮助解决这个问题(我在工作中使用的语言,通常是我的主要技能)和一般编程技巧.我在谷歌上找不到这个.

另外,如果我登录电子邮件并使用我的catch方法,这是一种糟糕的技术,如果失败了,我会登录到文件吗?(所以我有一个计划,如果一种方法不起作用).我似乎应该做出性能/技术上的牺牲来掩盖我的背影.

谢谢

use*_*559 9

这听起来像是一场噩梦.我曾在没有源代码控制的地方工作过,人们在实时系统上做了改动,而且我必须明确地证明我的代码不是问题所在.但是如果有人搞砸了什么,我们的工作就没有了.只要它不经常发生.

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

然后有时间他通过确保作业从cron运行而不是实际从磁带读取数据来"满足客户的备份".当然磁带很糟糕 - 他将stderr重定向到/ dev/null.当客户在2个月后丢失了硬盘和5年的历史数据时,我必须领导扫描和OCR打印记录以重建类似数据库的内容.他们提升了另一个人.我不久后就退出了.

这让我回到了你的处境.

  • 让您的简历保持最新状态.
  • 在银行有一些积蓄; 2周后能够找到工作而不会无家可归.
  • 开始静静地寻找其他工作.这种经济不会永远持续下去,每个月你都会变得更有市场.生命太短暂,无法忍受敌对的工作场所.
  • 尽你所能去CYA.
    • 开始使用RCS为您自己的东西.
    • 彻底测试你的东西.保持测试; 进行更改时重新测试.
    • 记下(通过电子邮件发送给自己或编辑文本文件)关于您已更改的内容以及在部署之前的测试方式.运气好的话,好的文件将胜过更多的传统人物的指责.
    • 寻找公司内部的导师.

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


ret*_*ile 6

如果没有别的,为自己设置源代码控制.

如果是我,我会更进一步:我在我的开发机器上安装Trac和Subversion,然后使用它.如果其他人开始想知道我是如何设法追踪引入错误的确切变化等,我会将它们指向URL.让它成为病毒式增长.

但听起来你需要找一个更好的工作场所.

(披露:我是Trac开发者之一,所以我有偏见.)


T.E*_*.D. 0

初级人员(和许多高级人员)似乎不明白的一件事是,检查修订控制更改的流程需要如下所示:

  1. 测试您的代码以确保其正常工作。
  2. 检查您的更改
  3. 将整个基线拉入一个全新的目录
  4. 建立基线
  5. 再次测试

每个人都想在第 2 步之后退出。但是,您会惊讶地发现在第 4 步和第 5 步中发现了多少错误。通常会发生的情况是您要么忘记签入更改,要么创建一个全新的文件并忘记将其添加到版本控制中。还可能发生其他奇怪的事情。从干净的目录构建可以尽可能地保护您免受自己的错误的影响。