Смешанные языковые веб-среды разработки - PullRequest
6 голосов
/ 21 февраля 2009

Я унаследовал широкое, плохо спроектированное веб-портфолио на моей работе. Большинство страниц написаны на Perl, так как большая часть данных, принимаемых, обрабатываемых и отображаемых на сайте, представлена ​​в виде плоских файлов, которые затем необходимо тщательно проверять и базы данных в наших базах данных MySQL и Oracle.

Будучи первым обученным ИТ-специалистом менеджером этой среды, я взял на себя ответственность по чистке веб-сайтов и определению структуры процесса разработки. Один из вариантов, которые мне дали, - выбрать, продолжать или нет в Perl. Ява обладает значительным внутренним талантом, и PHP довольно прост в освоении. Я решил снять с разработчиков бразды правления и позволить им выбирать любой язык, который они хотят использовать для своих страниц, но кажется, что это может быть проблемой, если парень, выбравший PHP, столкнется с шиной, и никто другой не сможет это исправить.

С годами найм программистов на Perl становится все более и более трудным, и сложность обслуживания устаревшего кода Perl от предыдущих разработчиков, чья основная задача, возможно, заключалась в том, чтобы просто запустить и запустить страницу, становится очень трудоемкой. Другой, предыдущий (не ИТ-менеджер), был больше сконцентрирован на быстрой обработке и немедленном удовлетворении страниц, чем на том, чтобы убедиться, что это было сделано правильно с первого раза (с тех пор его продвигают за пределами нашего филиала).

Производственный сервер - Solaris. MySQL хранит большую часть наших данных, но новые проекты начали использовать Oracle все больше и больше (для данных ГИС). Веб-серверы универсально Apache. Мы живем во внутренней сети, отключенной от обычного интернета. Наша разработка ведется Agile, итеративно.

Какой бы язык ни был выбран для продвижения вперед, есть ресурсы для переподготовки существующего персонала по разработке. Независимо от того, что данные, поступающие в нашу среду, должны быть пересмотрены до смерти, чтобы Perl не исчезал в ближайшее время. Мой вопрос к сообществу заключается в том, каковы плюсы и минусы следующих языков для определенной выше среды веб-разработки: Perl, PHP, Java, Python и - вставьте ваш любимый язык здесь -. Если бы вам пришлось делать это снова и снова, какой язык вы бы выбрали?

Правки и уточнения: Позвольте мне немного разъяснить мой оригинальный пост. Я не все выбрасываю. Мне дали возможность скорректировать курс корабля так, как я считаю, лучше. Даже если я выберу новый язык, код на Perl будет в течение некоторого времени.

Гипотетически говоря, если бы я выбрал Assembly в качестве моего нового языка (ха-ха), мне пришлось бы ускорить работу старых разработчиков, возможно, отправив их в некоторые базовые классы ассемблера. Новые страницы / проекты будут на новом языке, а старые страницы / проекты должны будут хорошо играть с новыми страницами / проектами. Некоторые могут когда-нибудь быть переписаны на новый язык, некоторые никогда не будут изменены.

Что, вероятно, всегда будет в Perl, это сценарии синтаксического анализа, которые мы написали много лет назад, чтобы просеивать информацию в базе данных из простых файлов. Но это нормально, потому что они не взаимодействуют с веб-страницами, они взаимодействуют с базой данных.

Спасибо всем за ваш вклад, он был очень очень полезен.

Ответы [ 6 ]

13 голосов
/ 21 февраля 2009

Кажется, что ваша проблема - это более унаследованный код и неформальная методология разработки, чем язык как таковой. Поэтому, если у вас уже есть разработчики Perl, почему бы не начать модернизировать ваши методы и вашу кодовую базу вместо того, чтобы переключаться на новый язык и создавать гетерогенную кодовую базу.

Modern Perl предлагает много полезных примеров и мощных инструментов: особое внимание уделяется тестированию с модулями Test :: * и WWW :: Mechanize , взаимодействие с базой данных может осуществляться через обычный DBI , но также с использованием модулей ORM, таких как превосходный DBIx :: Class , OO с Moose теперь на одном уровне с более современными языками mod_perl дает вам доступ к мощным возможностям Apache. Существует также немало MVC-фреймворков для Perl. Тот, который привлекает много внимания, это Катализатор .

Инвестируйте в несколько экземпляров Perl Best Practices , приведите подходящего инструктора для нескольких занятий по современным методам разработки и начните изменять культуру своей группы.

И если у вас возникают проблемы с поиском разработчиков, которые уже хорошо владеют Perl, вы всегда можете нанять хороших людей PHP и обучить их, что не должно быть слишком сложным. По крайней мере, их желание изучать новый язык было бы хорошим признаком их гибкости и желания совершенствоваться.

Всегда соблазнительно винить состояние вашего кода на языке, на котором он написан, но в вашем случае я не уверен, что это так. Многие крупные компании , похоже, не имеют проблем с управлением огромными базами кода в Perl, список длинный, но есть все основные веб-компании, а также ряд финансовых учреждений.

5 голосов
/ 21 февраля 2009

Я бы пригласил кого-то, кто очень хорош в Perl, чтобы хотя бы взглянуть на текущий дизайн. Они смогут рассказать вам, насколько плох код Perl на самом деле, и что нужно сделать, чтобы привести его в порядок.

В этот момент я бы начал рассматривать свои варианты. Если код Perl пригоден для спасения, то лучше нанять кого-нибудь, кто владеет Perl. Также обучите некоторых из ваших существующих сотрудников, чтобы помочь на существующей базе кода. Если у вас нет эксперта в Perl, отвечающего за код Perl, ваша кодовая база может стать еще хуже, чем она есть.

Только если бы он был в ужасной форме, я бы подумал оставить его на другом языке. Что это за язык, вам нужно подумать об этом самостоятельно.

p.s. Я немного предвзят, я предпочитаю Perl

1 голос
/ 21 февраля 2009

Если ваши разработчики хороши, они смогут справиться со всем, что им брошено. Решение о том, какой язык использовать, является довольно сложной стратегической позицией, но я рекомендую вам очень тщательно подумать, прежде чем вводить БОЛЬШЕ (т.е.

Если, конечно, есть то, что вы абсолютно не можете (или не можете делать разумно) с тем, что у вас есть.

1 голос
/ 21 февраля 2009

Прежде всего позвольте мне указать, что Пространственные расширения MySQL работают с ГИС .

Во-вторых, если у вас есть куча программистов на Perl, которым на новых сайтах потребуется буксировка, тогда вам лучше всего выбрать то, что им не составит труда понять. Очевидное «что-то» есть в PHP. Когда я выучил PHP, я несколько лет назад сделал Perl и совсем быстро освоил PHP.

Переключение на что-то вроде Java, .Net (или даже Ruby on Rails) было бы гораздо более драматичным изменением в дизайне.

Кроме того, с серверами Apache у вас уже есть настроенная среда, и вы, вероятно, можете довольно легко подготовить любую разработку в виде смеси Perl и PHP.

Что касается последней части вашего вопроса: что бы вы сделали, если бы вы могли сделать это снова? Для меня это отдельный и принципиально неактуальный вопрос. Дело в том, что вы не перематываетесь и начинаете сначала, вы просто ... начинаете сначала. Так что поддержка, переход, развитие навыков и все эти другие вопросы гораздо важнее, чем любой гипотетический вопрос о том, что бы вы выбрали в идеальном мире, если бы все остальные вещи были равны.

Нравится это вам или нет, PHP популярен и никуда не денется в ближайшее время. Найти опытных людей, чтобы сделать это, не так уж сложно (ну, сложность состоит в том, чтобы отфильтровать их от самообученных ковбойских сценаристов, которые думают, что они могут писать, но не могут), и это не далеко от веб-Perl. 1013 *

1 голос
/ 21 февраля 2009

Если регулярное выражение важно, я бы выбрал язык с хорошей поддержкой.

Если вы будете использовать java, вы не сможете просто скопировать и вставить свой код регулярного выражения из кода perl, поскольку косые черты должны быть экранированы. Поэтому я бы проголосовал против Java.

Я недостаточно знаком с php, чтобы знать его возможности регулярных выражений, но, учитывая ваш выбор, я бы пошел на python. Вы можете создать более чистый код в Python.

Будет ли вариант ruby? Он также имеет хороший Perl-подобный regex, и rails поддерживает гибкую веб-разработку из коробки.

0 голосов
/ 21 февраля 2009

Я думаю, что выбор одного языка является ключевым, и если ваша база данных в основном MySQL, то PHP кажется очевидным выбором. Он естественным образом работает с вашей базой данных, имеет открытый исходный код и содержит массу документации, исходного кода, не требует компиляции и т. Д.

Люди приходят и проходят через позиции, и любой веб-сайт со временем будет развиваться. Если у вас есть возможность установить некоторые руководящие принципы и правила, я бы выбрал что-то прощающее, обычное и легкое (э) учиться.

Я бы также предложил записать его, чтобы люди в будущем не изобретали велосипед заново.

...