6

私は自分の仕事で、広く、不適切に設計されたWebポートフォリオを継承しました。サイトで取り込まれ、処理され、表示されるほとんどのデータはフラットファイルの形式で提供されるため、ほとんどのページはPerlで記述されます。フラットファイルは、MySQLおよびOracleデータベースに細心の注意を払って登録およびデータベース化する必要があります。

この環境の最初のITトレーニングを受けたマネージャーとして、私はWebサイトをスクラブし、開発プロセスに何らかの構造を構築することに専念しています。私が与えられた選択肢の1つは、Perlで続行するかどうかを選択することです。Javaにはかなりの社内の才能があり、PHPはかなり簡単に習得できます。私は開発者の手綱を外し、ページに使用したい言語を開発者に選択させることを検討しましたが、PHPを選択した人がバスに襲われ、他の誰もそれを修正できない場合は問題になるかもしれません。

Perlプログラマーを雇う年月が経つにつれて、ますます困難になり、ページを立ち上げて実行することだけに主眼を置いていた以前の開発者からのレガシーPerlコードを維持することの複雑さは非常にリソースを消費するようになっています。別の以前の(IT以外の)マネージャーは、最初に正しく行われたことを確認するのではなく、ページの迅速なターンアラウンドと即時の満足に焦点を当てていました(彼はその後、私たちの支店の外に昇進しました)。

実動サーバーはsolarisです。MySQLにはほとんどのデータがありますが、新しいプロジェクトではOracleをますます使用し始めています(GISデータ用)。Webサーバーは普遍的にApacheです。私たちは通常のインターネットから切り離されたイントラネットに住んでいます。私たちの開発は、アジャイルで反復的な方法で行われます。

どの言語を選択して進めても、既存の開発スタッフを再トレーニングするためのリソースがあります。いずれにせよ、私たちの環境に入ってくるデータは死ぬまで再認識されなければならないので、perlはすぐになくなることはありません。コミュニティへの私の質問は、上記で定義されたWeb開発環境の次の言語の長所と短所は何ですか:Perl、PHP、Java、Python、そして-ここにお気に入りの言語を挿入してください-。もう一度やり直す必要がある場合、どの言語設定を選択しましたか?

編集と明確化: 私の元の投稿について少し明確にしましょう。私はすべてを捨てているわけではありません。私は船の進路をより良い船首方位であると私が信じているものに調整する機会を与えられました。私が新しい言語を選んだとしても、perlコードはしばらくの間存在するでしょう。

仮に、新しい言語としてアセンブリを選択した場合(笑)、おそらくいくつかの基本的なアセンブリクラスに送信することで、古い開発者をスピードアップする必要があります。新しいページ/プロジェクトは新しい言語で作成され、古いページ/プロジェクトは新しいページ/プロジェクトとうまく連携する必要があります。いつか新しい言語に書き直されることもあれば、決して変更されないこともあります。

Perlに常に存在する可能性が高いのは、フラットファイルからデータベース情報を選別するために数年前に作成した解析スクリプトです。しかし、それらはWebページとインターフェイスせず、データベースとインターフェイスするため、問題ありません。

ご意見ありがとうございました。これまでのところ非常に役に立ちました。

4

6 に答える 6

13

あなたの問題は、言語自体よりもレガシーコードと非公式の開発方法論にあるようです。したがって、すでにPerl開発者がスタッフにいる場合は、新しい言語に切り替えて異種のコードベースを作成するのではなく、メソッドとコードベースの最新化を始めてみませんか。

最新のPerlは、優れたプラクティスと強力なツールの点で多くのことを提供します。テストが強調され、Test::*モジュールとWWW::Mechanizeを使用すると、データベースの相互作用はプレーンDBIを介して実行できますが、優れたDBIxなどのORMモジュールを使用することもできます。 :: Class、OO with Mooseは、より現代的な言語と同等になりました。mod_perlを使用すると、Apache内の多くの機能にアクセスできます。Perl用のMVCフレームワークもかなりあります。注目を集めているのがCatalystです。

Perlのベストプラクティスのいくつかのコピーに投資し、最新の開発方法に関するいくつかのクラスに適切なトレーナーを連れてきて、グループの文化を変え始めてください。

また、Perlに既に精通している開発者を見つけるのに問題がある場合は、いつでも優れたPHP担当者を雇ってトレーニングすることができますが、それほど難しくはありません。少なくとも、新しい言語を学ぶ意欲は、彼らの柔軟性と向上への意欲の良い兆候となるでしょう。

コードの状態を、コードが書かれている言語のせいにするのは常に魅力的ですが、あなたの場合、それが当てはまるかどうかはわかりません。多くの大企業はPerlで巨大なコードベースを管理するのに問題がないようです。リストは長いですが、主要なWeb企業はすべてそこにあり、多くの金融機関もあります。

于 2009-02-21T07:25:03.130 に答える
5

Perl少なくとも現在のデザインを見るために、非常に優れた人を連れてきます。彼らは、コードが実際にどれほど悪いかPerl、そしてそれを良い形にするために何をする必要があるかを教えてくれるでしょう.

その時点で、私は自分の選択肢を検討し始めます。コードが修復可能である場合はPerl、優れたものではなく、Perl. また、既存のコードベースを支援するために、既存のスタッフの一部をトレーニングします。Perlコードを担当する熟練した人がいない場合Perl、コードベースは現在よりもさらに悪化する可能性があります。

ひどい状態だった場合にのみ、別の言語に切り替えることを検討します。その言語とは何か、それはあなた自身が考えなければならないことです。

ps私は少し偏っていますが、私は好きですPerl

于 2009-02-21T18:01:24.753 に答える
1

正規表現が重要な場合は、サポートの行き届いた言語を選択します。

Javaを使用する場合は、スラッシュをエスケープする必要があるため、perlコードから正規表現コードをコピーして貼り付けることはできません。だから私はJavaに反対票を投じるでしょう。

私はその正規表現機能を知るのに十分なphpに精通していませんが、あなたの選択を考えれば、私はpythonを選びます。Pythonでよりクリーンなコードを作成できます。

ルビーもオプションでしょうか?また、正規表現サポートのような優れたPerlを備えており、Railsは箱から出してすぐにアジャイルWeb開発をサポートします。

于 2009-02-21T06:34:59.770 に答える
1

まず、 MySQLの空間拡張機能がGISで機能することを指摘しておきます。

第二に、新しいサイトでけん引する必要のあるPerlプログラマーがたくさんいる場合、最善の策は、彼らが理解するのにそれほど問題がないものを選択することです。そこにある明らかな「何か」はPHPです。PHPを学んだとき、私は数年前にPerlを実行し、すぐにPHPを習得しました。

Javaや.Net(またはRuby on Rails)のようなものに切り替えると、設計がはるかに劇的に変化します。

さらに、Apacheサーバーを使用すると、環境がすでにセットアップされており、PerlとPHPの組み合わせとして開発をかなり簡単にステージングできます。

あなたの質問の最後の部分に関して:あなたがそれをもう一度やり直すことができたら、あなたはそれを何でしますか?私にとって、それは別の、基本的に無関係な質問です。実際には、巻き戻して最初からやり直すのではなく、ただ...最初からやり直すだけです。したがって、レガシーサポート、移行、スキル開発、およびその他すべての問題は、他のすべてが同等である場合に完璧な世界で何を選択するかという仮説的な質問よりもはるかに重要です。

好きでも嫌いでも、PHPは人気があり、すぐにどこにも行きません。それを行うために熟練した人々を見つけることはそれほど難しくありません(まあ、彼らがコーディングできると思うができないと思う独学のカウボーイスクリプトジョッキーから彼らを除外するのは難しいです)そしてそれはWebベースのPerlからそれほど遠くありません。

于 2009-02-21T06:42:40.907 に答える
1

開発者が優れていれば、投げられたものは何でも処理できます。どの言語を使用するかを決定することは、非常にトリッキーな戦略的立場にありますが、MORE を導入する前に非常に慎重に検討することをお勧めします (つまり、導入しないでください)。

もちろん、あなたが持っているもので絶対にできない(または正気ではできない)何かがある場合を除きます.

于 2009-02-21T19:04:56.363 に答える
0

単一の言語を選択することが重要だと思います。データベースが主にMySQLである場合、PHPは当然の選択のようです。それは自然にあなたのデータベースで動作します、それはオープンソースであり、たくさんのドキュメント、ソースコードがあり、コンパイルなどを必要としません。

人々はポジションを行き来し、どんなウェブサイトも時間とともに進化します。あなたがいくつかのガイドラインとルールを設定する能力を持っているなら、私は寛容で、ありふれた、そして学びやすいものを選ぶでしょう。

また、将来人々が車輪の再発明をしないように、それを書き留めておくことをお勧めします。

于 2009-02-21T06:20:13.847 に答える