Как я могу убедить людей использовать правильный объектно-ориентированный Perl? - PullRequest
1 голос
/ 07 января 2010

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

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

Ответы [ 3 ]

4 голосов
/ 07 января 2010

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

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

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

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

4 голосов
/ 07 января 2010

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

3 голосов
/ 07 января 2010

Они все не в ногу с тобой? Возможно, это только ты, кто не в шаге!

Чтобы я не казался шутливым, я имею в виду ответы на следующие вопросы:

  • С какой командой согласился подход?

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...