我在一家支持几种语言的公司工作:COBOL,VB6,C#和JAVA。
我将这些语言用于我的主要工作,但是我经常发现自己在Python中编码一些次要程序(例如脚本),因为我发现它是该任务的最佳工具。

例如:分析师为我提供了一个复杂的CSV文件来填充一些DB表,因此我将使用Python对其进行解析并创建DB脚本。

有什么问题?
我看到的主要问题是,这些快速且肮脏的脚本中的一些部分逐渐变得重要,并且:

  1. 我的公司不支持Python
  2. 它们不受控制(我以另一种方式支持它们)
  3. 我的同事不认识python

分析师甚至已经开始在电子邮件中引用它们(“启动脚本出口...”),因此需要比我最初想象的要需要更多的时间。

我应该补充说,这些脚本只是不是主要项目一部分的实用程序。他们只是有助于在更少的时间内完成琐碎的任务。对于我自己的小任务,它们很有帮助。

简而言之,如果我是彩票赢家 发生事故, ,我的同事需要在没有这些脚本的情况下保持项目的生命;例如,他们将花更多的时间在手工修复CSV错误上。

这是常见的情况吗?难道我做错了什么?我应该怎么办?

有帮助吗?

解决方案

您需要将情况正式化,因为它并不应该真正达到这一点。但是,这些事情发生了,因此您需要向老板解释一下您创建了这些脚本以供个人使用,但它们已“逃脱”到更广泛的流通中。承认(如有必要的话)您没有尽快将其引起他的注意。

至少应该将脚本放在源控制下“以防万一” - 至少如果您不可用(出于什么原因)您的同事将可以访问脚本。

然后,您要么需要说服您的老板,Python是要选择这些的方法,要么接受您必须用支持的语言重写它们。如果记录脚本和在Python中教育您的同事的成本低于重写的成本,那么您甚至可能会赢得论点。

其他提示

我不能给你一个完整的答案 应该 做。我只能给出一个建议,您可以用来开始:

将脚本检查为所有(必需)开发人员都可以访问的存储库。但是,请肯定地注意到您首先为您的书写了这些脚本的事实 自己的 目的,即执行您获得的任务。然后补充说,您只检查这些脚本,以允许其他人使用它们。

之后,您只需要看看其他人对此有何反应。

我在工作的地方遇到了类似的问题。我听到“什么是PHP?”几年前。他们不理解或不愿意在MS堆栈之外学习任何东西。如果Python是工作的正确工具,我只会告诉我的主管,并准备好进行很多比较,并解释为什么Python是正确的选择。这会令人沮丧,但我认为大多数人都同意Python是文本操纵的好选择。

您需要做的第一件事是与团队和您的老板交谈。目前,您有一个巨大的卡车因素(如果您被卡车撞到,没有其他人很容易维护您的脚本)。看来有脚本来完成这些任务很重要,但是任何需要编辑和维护这些脚本的人也重要。您需要解释使用Python如何增加价值 - 如何节省时间,精力,资源,金钱等。

其次,将其放入项目的版本控件中。现在。您为项目生产的任何东西都不应超出该项目的版本控制。

为反弹做好准备 - 人们通常不喜欢改变。独自奔跑,使用不支持和未知的(对团队/组织)技术是一个坏主意,而没有咨询至少其他开发人员,并确定(对于项目,而不仅仅是您)为每个人自动化这些任务的最佳方法使用。

我认为这可能是一个很好的情况

提出宽恕比获得许可要容易。

听起来您已经完成了工作,但是您现在必须处理影响。

我的拇指规则是:

任何可能影响他人工作的事情都应尽快与您的同龄人和上级讨论。

但, 如果它适合您并且您一个人,只要它对公司的基础设施或安全造成任何损害, ,您可以随意完成工作。

您有两个选择:

  1. 使其成为标准
  2. 转化为标准工具

根据组织的不同,#1可能具有挑战性(在所有限制标准技术列表之后,避免了培训和支持技能要求的组合爆炸)。

第二种选择将有助于您的技能,您也许可以找到第三方(并且可能具有商业友好的许可证)来完成一些辛勤工作。例如,搜索“ Linq到CSV”应该获得一些有用的热门单曲。

顺便说一句,VB6的开发人员工具(IDE,编译器)不受支持(甚至不是安全修复程序),因此无论如何都可能更新标准需求。 (VB6运行时被支持当前Windows版本的安装中,并包含在安装中)。这也许可以用作接近1的助手:由于供应商的依赖性,标准工具集需要向移动目标增加。

如果您获得了一项任务,并且唯一可以按时完成任务的方法,那么您真的没有选择。我确实认为让负责人知道您在做什么是明智的。您不应该超出所需的源控件(除非绝对根本不起作用?)测试和文档。

有时,公司可能必须让单个开发人员开始研究新的开发领域。不幸的是,该代码可能比其他任何人都能快速发展生产速度。

好吧,我必须承认使用20种不同语言的臭味。

您有一个调用Python脚本的BASH脚本,该脚本调用Perl脚本,该脚本调用Java二进制脚本,该脚本称为C DLL ...

然后,某些东西在整个管道中击中了风扇,然后您可以通过-WTH是Dat Kodez?尤其是在Perl ...和简单的调试,例如编码问题,变成了噩梦般的混乱。您不能有效地调试7种语言中的5种,这会变成真正的痛苦。

或者,您必须添加一个简单的更改,但是您会创建10个错误,因为Perl有Gotchas,Java有Gotchas,等等。

那7+语言链一次开始一步。

小心翼翼,这是龙...

如果这些是您自己使用的工具,那么您可以自由地做任何使您更有生产力的事情。

实际上,你 应该鼓励 制作和使用此类工具,最终将成为您手臂的延伸。

最终,他们将认识到拥有此类工具的重要性, 不管他们写了什么语言, ,并将开始在其工作环境中实施。

当您被告知编写执行STH的代码时,通常会指定或暗示该语言(公司中的规则)。

但是,当您必须执行一些单次任务(例如导入数据到DB)时,您可以自由选择认为最好的工具,因为您必须做正确和快速的事情,结果很重要,很重要,不是工具。

因此,我将使用该规则:

1)如果您被告知要执行一些任务,例如数据导入,我将使用工具/语言/等。这对我来说最方便,这将是最快的任务。

2)如果您被告知要编写执行某些任务的工具,例如导入一些数据,我将讨论与经理使用的语言/工具(当我使用隐含标准的语言时,例如,当公司使用[几乎]只有java)。

3)如果任务似乎是一声的,但是它变得可重复,则应与经理交谈以将其从1)更改为2),然后从您的首选中重新编写为公司支持的语言。

我想您没有决定(否则您不会问这个问题)。您的老板对这个问题有何看法?您应该与他交谈,并试图说服他python是要走的路...

当然,问题在于您离开时会发生什么。无法维护代码可能是一个足够好的原因,可以停止使用Python。或者,您可以开始对同事进行这种语言教育...

许可以下: CC-BY-SA归因
scroll top