В своей текущей работе я создаю набор сценариев Perl, которые сильно зависят от объектов. (используя Perl bless()
для хэша, чтобы максимально приблизиться к OO)
Теперь, из-за отсутствия лучшего способа выразить это, большинство программистов в моей компании не очень умны. Хуже того, они не любят читать документацию и, похоже, имеют проблемы с пониманием кода других людей. Ковбойское кодирование - это игра здесь. Всякий раз, когда они сталкиваются с проблемой и пытаются ее решить, они приходят к ужасному решению, которое на самом деле ничего не решает и, как правило, ухудшает.
В результате я, честно говоря, не доверяю им код, написанный на языке утки. В качестве примера я вижу слишком много проблем, когда они не получают явную ошибку за неправильное использование объектов. Например, если у типа A
есть член foo
, и они делают что-то вроде instance->goo
, они не увидят проблему немедленно. Он вернет нулевое / неопределенное значение, и они, вероятно, потратят час на поиск причины. Затем измените что-то еще, потому что они не смогли правильно определить исходную проблему.
Так что я собираюсь найти способ сохранить свой язык сценариев (его быстрое развитие является преимуществом), но выдает явное сообщение об ошибке, когда объект не используется должным образом. Я понимаю, что, поскольку нет стадии компиляции или статической типизации, ошибка должна быть во время выполнения. Я в порядке с этим, пока пользователь получает очень явное уведомление о том, что «этот объект не имеет X»
Как часть моего решения, я не хочу требовать, чтобы они проверяли, существует ли метод / переменная, прежде чем пытаться его использовать.
Несмотря на то, что моя работа на Perl, я думаю, что это может не зависеть от языка.