Твой код говно! Про русскоязычное Laravel сообщество.

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

Полноценного сайта сообщества, который бы ломился от наплыва желающих связать свою жизнь с Laravel, к сожалению нет. Есть сайт laravel.ru, который к сообществу не имеет отношения, и сайт сообщества laravel.su, который пока не может похвастаться сверх популярностью и посещаемостью. Поэтому информация на н`м устаревшая, которая при таком активном выпуске релизов от Тейлора, не обладает уже практической ценностью.

У сообщества есть своя группа в контакте: vk.com/laravel_rus. Сообщество должно обладать определенным набором характеристик и целей. А именно: иметь свою цель по продвижению идей популяризации Laravel в массы, иметь свой устав, уделять много времени на подготовку новых разработчиков, или переподготовку тех, кто пришёл с других систем или технологий, готовить интересные материалы и т.д.

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

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

Это проблема номер один.Не ищите того, чего вы там не найдёте. Есть и вторая проблема, которая касается уже непосредственно самого кодинга. А именно, твой код говно!

Вторая проблема частично выплывает из первой. Если говорить на языке разработки, наследует первую проблему и привносит уже новую. Многие программисты из сообщества стали изучать Laravel, как первый фреймворк в своей жизни. За несколько лет они научились следовать Laravel way. И очень самонадеянно решили, что они уже программисты, гуру и корифеи разработки. Это выглядит со стороны, как минимум, смешно.

Такие люди не могут и не хотят понять, что то что они выучили — это не истина последней инстанции, это не есть вершина любого программиста, к которой они стремятся всю жизнь. Это означает только одно. Что такие люди схитрили и не пробежали весь 15 километровый марафон, а просто выскочили из-за угла и пробежали 100 метров до финиша. И самонадеянно считают, что они уже достигли житейской мудрости.

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

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

Компания очень сильно натаскивает своих специалистов именно для серьёзных приложений крупного корпоративного сектора. И такие люди добиваются очень серьезных успехов в организации грамотного кода, гибких и сложных интерфейсов, слабосвязанной архитектуры и т.д.

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

Клиент платит деньги за готовое решение, а не супер спроектированную архитектуру и вылизанный до совершенства код. Ему нужно за разумные сроки получить готовое решение. И денег на проект у него в обрез! Ведь реальный мир устроен совсем иначе, и всё не так гладко и хорошо, как должно быть в идеале. Но на такое положение вещей есть вполне объективные причины, и их нужно понимать.

Давайте сразу определимся, чем отличается код в CMS и, к примеру, в Symfony.  В ЦМС или в простом бложике, возвращать в методе массив — это нормальное явление. А в симфони — не допустимое. Нужно делать новый класс, внедрять зависимость в которую передавать возвращаемые значения метода. А потом обращаться не к ключу массива, а к методу.

Внедрение IoC DI в сайтике на пару страничек — это просто круто, но зачем? Можно, конечно, и в лендинге бабахнуть доктриной, но в чём смысл? Можно для двух разделов сайта написать несколько слоёв абстракций, предусмотреть возможность роста сайта из лендинга в Инстаграм и т.д.

Вы понимаете о чем я говорю? При чем тут понятный и логичный код с комментариями, до кода энтерпрайз уровня? В мелких сайтах нет никакого смысла продумывать сложную и независимую архитектуру, строить слои абстракций делать декомпозицию, соблюдать большинство паттернов проектирования, кроме основных, и ещё миллион чего!

Всё же, кто мне что-то доказывает, уверяют меня, что они все, как один, из энтерпрайз! А пишут такие комментарии, что я в полных непонятках.

То есть возвращать массив — это плохо, но сделав класс с зависимостью и передавать в него значения метода, на выходе получив всё тот же массив — хорошо?

Среду разработки стоит выбирать на основании проекта и возможного его будущего расширения. Идя в комьюнити по фрейму Laravel надеяться что там предложат решение для сайта-одностраничника без базовых знаний PHP и той же Лары как минимум глупо. Нужен сайт-одностраничник — ищи среду для него. Нужен мощный проект — ищи подходящий фреймворк.

Я говорю не про stdClass. На выходе вы получите методы, которые отлично видятся автокомплитом вашей IDE. А вот с массивом уже лажа. Так как вам придется лазить по коду и смотреть, что там за ключи, чтобы не лажануться  при проверке. А с методом — это в принципе невозможно.

А если я по-другому не умею? Да, лично мой код далёк от совершенства, но следуя этому мнению и текущий мой код уже не подходит для блогов, гостевых сайтов и прочего, так как слишком мудрqён для них. Подумаешь, всё логически выстроено, присутствуют комментарии везде, где они необходимы. Зачем это всё? Помогать тому, кто будет после меня поддерживать сей проект? Но зачем?
Так ведь это первое правило программиста! Пиши понятный код, комментируй его. Да, рано или поздно вы уйдёте с проекта, и придут другие люди, которым будет проще разобраться. Но также и вы придёте в новый проект, и захотите работать с нормальным кодом, а не полным ужасом, где такое понаписано, что вам уже не хочется на этом проекте работать.

Фиг с ним, если это просто некрасивый код и мало пояснений. А когда программист формирует ява скрипты в методе класса, когда в подключаемых классах логики делает прямые запросы к БД, и еще очень много чего. Тебя берут в проект, рассказывая, что его писали уникальные люди и гении. А по факту нет ни документации, ни комментариев, ни соблюдается не один паттерн проектирования.

И после небольшого промежутка времени ты понимаешь, что нужно сразу уйти. Если проект забросили даже те, кто его начинал делать, то зачем
другому специалисту начинать вообще разгребать эту кучу навоза?

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

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

Не зная основ строительства, невозможно построить дом. В программировании та же песня. Некоторые новички, в силу малого количества практического опыта, пытаются изобрести велосипед из палок, веревок и скотча, а именно те крепкие энтерпрайз разработчики показывают им где лежит железо, инструмент и даже подробная схема сборки с указанием всех размеров, скажем, горного велосипеда.
Если вы начнёте изучать, к примеру, машиностроение, придёте на крупный завод, слегка почитавши теорию, а вам махнут рукой на цех со станками и склад металла, и даже дадут чертежи танка, то вам это не поможет. Начнётся ваше обучение с того, что вам покажут, как просверлить в монетке дырочку. А дальше — много лет тяжелого обучения, в процессе которого придёт реальное понимание, как всё устроено.

В этом-то и проблема с такими профессиями, как программисты. Написал пару классов и уже программист. А поработал пару лет на крупном проекте, то уже сениор. А приведёт к такому сениору его начальник клиента и попросит поработать с клиентом. Предложить, как минимум, стек технологий для решения бизнес задач. И давайте угадаем, что предложит этот сениор?

Ну конечно же, именно те технологии, с которыми он уже два года работает. Будет ли это решение объективным и верным? Скорее всего нет. А почему произойдёт именно так? А потому что сениор ничего другого не знает. Вот такая проза жизни. Кругом одни профи и сениоры, а в какой проект не попадешь, начинаешь невольно подозревать, что мир как-то иначе устроен.

Что дальше? А дальше два пути: первый — когда юнец берёт схему, изучает её, берёт материал, собирает по схеме горный велосипед и довольный едет кататься; второй — когда юнец говорит многа букав и поливает чем-нибудь тех, кто ему схему эту дал и на путь истинный направил.

И именно при таком положении дел сообщество должно на самом деле называться «Анти сообщество Ларавел», так как цели по популяризации этого замечательного фрейворка достигаются обратно противоположные.

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

Но есть еще и другие товарищи. Они либо вообще ничего не умеют, либо начинают только учится, как правило, это пацанва от 17 лет и выше. При этом, за кем-то начинают повторять бред, мол модуль отстой, код говно, и т.д. Аргументов и конкретики конечно же нет. А потом заходишь на другую ветку, и этот же самый человек уже задает детские вопросы: а как подключить jQuery? И где можно устроиться джуном на PHP?

Такие люди составляют подавляющее большинство сообщества. И взрослеют они в таком сообществе не в духе профессионального роста, а в духе низкокачественного тролля и очередного диванного воина. Это реально раздражает. И это по всему интернету так!