いくつかのタスクのためにあなたの会社によってサポートされていない言語を使用しても大丈夫ですか?

softwareengineering.stackexchange https://softwareengineering.stackexchange.com/questions/1750

質問

私は、Cobol、VB6、C#、Javaのいくつかの言語をサポートする会社で働いています。
私はこれらの言語を主要な作業に使用していますが、Pythonでマイナーなプログラム(スクリプトなど)をコーディングすることにしばしば自分自身を見つけます。

たとえば、アナリストがいくつかのDBテーブルを入力する複雑なCSVファイルを提供してくれるので、Pythonを使用してそれを解析してDBスクリプトを作成します。

どうしたの?
私が見る主な問題は、これらの迅速で汚いスクリプトのいくつかの部分がゆっくりと重要性を獲得していることです。

  1. 私の会社はPythonをサポートしていません
  2. それらはバージョン制御されていません(私は別の方法でそれらをバックアップします)
  3. 私の同僚はパイソンを知りません

アナリストは電子メールでそれらを参照し始めました(「エクスポートするスクリプトを起動する...」)。

これらのスクリプトは、メインプロジェクトの一部ではないユーティリティにすぎないことを付け加える必要があります。彼らは単に、より短い時間で些細なタスクを成し遂げるのに役立ちます。私自身の小さな仕事のために、彼らは大いに役立ちます。

要するに、もし私が宝くじの勝者だったら 事故に遭うこと, 、私の同僚は、これらのスクリプトなしでプロジェクトを生かし続ける必要があります。たとえば、CSVエラーを手作業で修正するためにより多くの時間を費やします。

これは一般的なシナリオですか?私は何か間違ったことをしていますか?私は何をすべきか?

役に立ちましたか?

解決

この点に実際に到達するべきではなかったので、状況を正式にする必要があります。ただし、これらのことが起こるので、個人的な使用のためにこれらのスクリプトを作成したことを上司に説明する必要がありますが、それらはより広い流通に「脱出」しました。 (必要に応じて)あなたがこれをより早く彼の注意を引いていないことに責任を負っていたことを認めてください。

少なくともスクリプトは、「念のために」ソース制御の下に置く必要があります - 少なくとも(何らかの理由で)利用できない場合は、同僚がスクリプトにアクセスできます。

次に、Pythonがこれらのために行く方法であることを上司に納得させるか、サポートされている言語で書き直す必要があることを受け入れる必要があります。スクリプトを文書化し、Pythonで同僚を教育するコストが書き直しのコストよりも低い場合、議論に勝つかもしれません。

他のヒント

私はあなたにあなたが何についての完全な答えを与えることはできません したほうがいい 行う。私はあなたが始めるために使用できる1つの提案しか与えることができません:

すべての(必須)開発者がアクセスできるリポジトリにスクリプトを確認します。しかし、あなたがあなたのためにこれらのスクリプトを最初に書いたという事実に注意してください 自分の 目的、つまり、与えられたタスクを実行するために。次に、これらのスクリプトのみをチェックして、他の人がそれらを使用するという利点を許可するだけであると付け加えます。

その後、他の人がそれにどのように反応するかを見る必要があります。

私は仕事をしている同様の問題に遭遇しました。 「PHPとは何ですか?」と聞きました。何年か前。彼らはMSスタック以外のことを理解したり気にしたりしません。 Pythonが仕事に適したツールである場合、監督者にそれについて話すだけで、Pythonが正しい選択である理由について多くの比較と説明する準備ができています。イライラするでしょうが、Pythonがテキスト操作に適していることにほとんどの人が同意すると思います。

最初にする必要があるのは、チームと上司と話すことです。現在、あなたは巨大なトラック要因を持っています(トラックに襲われた場合、他の誰もあなたのスクリプトを簡単に維持することができません)。これらのタスクを実行するスクリプトを持っていることは重要ですが、これらのスクリプトを編集および維持する必要がある人なら誰でも重要です。 Pythonを使用することで価値を追加する方法、つまり時間、努力、リソース、お金などを節約する方法を説明する必要があります。

次に、プロジェクトのバージョンコントロールに入力します。今。プロジェクトのために作成することは、そのプロジェクトのバージョン制御の外にあるものではありません。

反発に備えてください - 人々は通常、変化が好きではありません。サポートされていない未知の(チーム/組織に)テクノロジーを使用して、自分で走り去ることは、少なくとも他の開発者に相談し、すべての人のためにこれらのタスクを自動化する最良の(プロジェクトだけでなく)最良の方法を決定することなく、悪い考えでした。使用する。

これはおそらく良いケースだと思います

許可を得るよりも許しを求める方が簡単です。

あなたは仕事を成し遂げたように聞こえますが、あなたは今、その影響に対処しなければならないでしょう。

私の親指のルールは次のとおりです。

他の人の仕事に潜在的に影響を与えるものはすべて、できるだけ早く仲間や上司と議論する必要があります。

だが、 それがあなたとあなただけのために、あなたの会社のインフラストラクチャやセキュリティに何の損害を与えない限り, 、あなたは仕事を終わらせたいと思うように自由にやることができます。

2つのオプションがあります。

  1. それを標準にします
  2. 標準ツールに変換します

組織に応じて、#1は困難な場合があります(結局のところ、標準テクノロジーのリストを制限することで、トレーニングとサポートスキルの要件の組み合わせ爆発が回避されます)。

2番目のオプションはスキルセットに役立ち、サードパーティ(および商業的にフレンドリーなライセンスを備えたオープンソース)を見つけることができるかもしれません。たとえば、「linqからcsv」の検索では、有用なヒットが得られるはずです。

ところで、VB6の開発者ツール(IDE、コンパイラ)はサポートされていないため(セキュリティ修正さえありません)、とにかく標準のニーズが更新される可能性があります。 (VB6ランタイムは、現在のWindowsバージョンの一部としてサポートされ、インストールに含まれています)。これはおそらく、#1に近づくためのヘルパーとして使用できます。標準ツールセットは、サプライヤーの依存関係のために移動ターゲットを上げる必要があります。

タスクが与えられ、時間通りにそれを達成できる唯一の方法をeitheする場合、あなたには本当に選択肢がありません。私は、あなたが何をしているのかを担当者に知らせるのが賢明だと思います。必要なソースコントロールの外に出るべきではありません(絶対に機能しない限り?)テストとドキュメント。

企業は、単一の開発者が開発の新しい分野を検討し始める必要がある場合があります。残念ながら、このコードは、他の誰よりも速度を上げることができるよりも速く制作に進出する可能性があります。

まあ、私は20の異なる言語で作業することが多くのことを認めなければなりませんでした。

c dllを呼び出すJavaバイナリを呼び出すperlスクリプトを呼び出すpythonスクリプトを呼び出すバッシュスクリプトがあります...

その後、何かがパイプライン全体でファンに当たり、あなたは通り抜けます-Wthはdat kodezですか?特にPerlで...そして、たとえば、エンコードの問題などのシンプルなデバッグは、悪夢のような混乱に変わります。 7つの言語のうち5つを効果的にデバッグすることはできず、実際の痛みに変わります。

または、単純な変更を追加する必要がありますが、PerlにはGotchas、JavaにはGotchasなどがあるため、10のエラーが作成されます。

そして、その7以上の言語チェーンは一度に1つのステップを開始します。

注意深くトレッド、ここにドラゴンになります...

それらがあなた自身のために使用するツールである場合、あなたはあなたをより生産的にすることを自由に行うことができます。

実際、あなた 奨励する必要があります そのようなツールを作成して使用するために、最終的に腕の延長になります。

最終的に、彼らはそのようなツールを持つことの重要性を認識し、 どんな言語に書かれていても, 、そして彼らの作業環境で実装を開始します。

STHを使用するコードを書くように言われた場合、言語は通常指定または暗示されます(企業のルール)。

しかし、DBにデータをインポートするなど、いくつかのワンショットタスクを実行する必要がある場合、あなたは自分の意見で最も適しているツールを自由に選択できます。ツールではありません。

だから、私はそのルールを使用します:

1)データのインポートなど、いくつかのタスクを実行するように言われた場合、ツール/言語などを使用します。それは私にとって最も便利であり、タスクにとって最も速いでしょう。

2)いくつかのデータをインポートするなど、いくつかのタスクを実行するツールを作成するように言われた場合、マネージャーで使用する言語/ツールについて説明します(例外を除いて、標準を暗示している言語を使用する場合、たとえば会社が使用する場合など] Javaのみ)。

3)タスクがワンショットのように見えたが、繰り返し可能になった場合は、マネージャーと相談して1)から2)に変更し、好みの会社からサポートされた言語に書き直す必要があります。

私はあなたが決定する立場にいないと思います(または、あなたは質問をしないでしょう)。あなたの上司はこの問題についてどう思いますか?あなたは彼と話をして、パイソンが行く方法だと彼に納得させようとするべきです...

もちろん、問題はあなたが去るときに何が起こるかについてです。コードを維持できないことは、おそらくPythonの使用を停止するのに十分な理由です。または、この言語に同僚を教育し始めることができます...

ライセンス: CC-BY-SA帰属
所属していません softwareengineering.stackexchange
scroll top