2010-01-07 3 views
1

Я использовал Объектно-ориентированную архитектуру MVC для веб-проекта, а все модели - OO Perl. Но я заметил, что пара в команде вернулась к процедурным методам и по сути использует «объекты» в качестве базы для смещения связанных функций. Их функции в основном читаются/записываются непосредственно в/из базы данных.Как я могу убедить людей использовать подходящий объектно-ориентированный Perl?

Каков наилучший способ убедить их в этом неправильно? Есть ли хорошие учебники, которые я могу заставить их прочитать?

+0

Если у вас есть установленный API для доступа к БД, все обращения к БД должны его использовать. Если API не имеет необходимых функций, API БД должен быть расширен, чтобы обеспечить их.ИМО, такое поведение было бы проблемой, требующей возмещения, независимо от того, какие парадигмы используются (ООП, процедурные, декларативные, функциональные и т. Д.). – daotoad

+0

Хм ... посмотрим. Один из подзаконных моментов Perl (так сказать): «Существует несколько способов сделать это», но вы хотите, чтобы некоторые хакеры Perl верили, что есть только один (правильный) способ сделать что-то в этом проекте. Что-то об этом, похоже, не очень хорошо подходит ... –

+0

IMO, Perl не очень дружелюбен. Это не помогает, что некоторые из стандартных библиотек являются OO, а некоторые нет (CGI.pm по любой причине предлагает оба). – Powerlord

ответ

4

я могу думать о трех возможных причин, почему некоторые члены команды не могут производить хороший код OO:

  1. Они не заботятся
  2. Они заботятся, стараются сделать это правильно, но не хватает навыков, чтобы сделать это правый
  3. Они делают это правильно, или, по крайней мере, достаточно! Некоторые вопросы дизайна - это вопросы мнения. Вернитесь назад и посмотрите на свой собственный старый код, код, который, по вашему мнению, был очень хорошим, есть хороший шанс, что вы сейчас пересмотрите некоторые из них.

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

Для того, чтобы оставить свои навыки, свои и ваши (и мои). Обзор кода кажется одним очевидным способом сделать это. Расскажите об альтернативах. Может быть, и парное программирование?

+0

Nice OO не обязательно * правильно, но это лучше, чем процедурные спагетти. (Хорошо структурированный процедурный код - еще один аргумент ...) – Paolo

4

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

3

Все ли они не в ногу с вами? Возможно, это просто вы, кто не в ногу!

чтобы Я, кажется шутливым, я имею в виду, что это ответы на следующие вопросы:

  • Что команда должна быть согласованные подход?

  • Чья ответственность заключается в обеспечении чистоты? Если вы не пойдете на принудительную чистоту, чья ответственность заключается в поощрении чистоты? Если это не так, взгляните в зеркало и убедитесь, что вы не раздражающий noob в команде, рассказывающий старые поты, как выполнять задания, которые они делали, так как вы были в детской одежде Perl.

  • Какие у вас механизмы для определения таких вопросов команды? Регулярные обзоры кодов, парное программирование, бои-костяшки?

  • Просить их прочитать некоторые учебники, вероятно, будет пустой тратой времени. Каковы ваши аргументы в пользу того, что вы делаете OO? Как заметил Борис, ОО не является самоцелью, это всего лишь средство для конца, а не единственное средство.

В вашей ситуации, вероятно, есть что-то еще, но вы должны начать.