Посты / Твой код говно! Не исходите на говно! Про Ларавел Ру сообщество.

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

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

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

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

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

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

Вторая проблема частично выплывает из первой. Если говорить на языке разработки, наследует первую проблему и привносит уже новую. Многие программисты из сообщества стали изучать Ларавел, как первый фреймворк (а может и PHP) в своей жизни. За несколько лет они научились следовать Laravel way. И очень самонадеянно решили, что они уже программисты, гуру и корифеи разработки. Это выглядит со стороны, как минимум, смешно. Такие люди не могут и не хотят понять, что то что они выучили - это не истина последней инстанции, это не есть вершина любого программиста, к которой они стремятся всю жизнь. Это означает только одно. Что такие люди "схитрили" и не пробежали весь 15 километровый марафон, а просто выскочили из-за угла и пробежали 100 метров до финиша. И самонадеянно считают, что они уже достигли житейской мудрости. Поэтому, если такого программиста кинуть в проект, сделанный на другой технологии, а может и другом языке программирования, то они будут в ступоре! Так как они самонадеянно решили, что их скилы в Ларавел - это заветный пропуск в мир профессионалов. От сюда и выплывает этот жуткий троллинг и бахвальство, неприятие другой точки зрения и постоянное битье себя пяткой в грудь, по поводу своей великой значимости.

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

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

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

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

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

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

Это сугубо мое личное мнение, которое я никому не навязываю. Всем успешного роста над собой. До новых встреч.
3

Комментарии (21):

извини чего то забухал вчера чушь какую то написал 
да ладно не парься я сам заморочусь
ну давай включи интуицию 
да нет тут тема гораздо больше на целый портал или тебе не когда?  с аналитикой с прогнозом ну и тд 
oleg_x писал(а):
Вопрос собеседований - это вообще большая и грустная тема, особенно в отечественных реалиях Я тут подумал не плохая тема может у тебя в блоге может еще где то. Как ты думаешь?
Да, могу на выходных написать ))
  Вопрос собеседований - это вообще большая и грустная тема, особенно в отечественных реалиях Я тут подумал не плохая тема может у тебя в блоге может еще где то. Как ты думаешь? 
Блин точно к комментам и дамперам докопался, я то думал они спросят почему я ресурсы в роутах не использовал )) Ну спасибо еще раз теперь буду фильтровать. Конечно печально все это, но теперь я могу сосредоточиться но том что задумал, я решил использовать свой опыт работы с опеном и  сделать интернет магазин  на Laravel со всеми фичами опеновскими задача конечно не простая но интересная..
oleg_x писал(а):
код на гите https://github.com/OlegTalyatKelpsh/news_list
Глянул быстро код. Могу с уверенностью в 100% сказать, что придолбались к код стайлу и закомментированному коду. В принципе, там больше ничего и нет такого. Простые связи в моделях, тонкие контроллеры.

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

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

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

Честно говоря не знаю, как в других специальностях, так же или нет, но в ИТ присутствует нездоровая токсичность, которая мешает и жить и развиваться. И как пример, на счет того же ларавел сообщества. Там один анонимный товарищ начал говном кидаться на мое решение (мол он такой крутой и умудренный опытом). А через неделю я его увидел в общем чате, где он спрашивал, где можно джуном устроиться, мол он только учится, и хочет попробовать работать. Тут вообще без слов. И таких море.
Я просто сам начинающий пришел из Opencart. Подучил Laravel вышел на фирму они мне тестовое задание скинули ,я сделал они мне отказали и прокомментировали мой код и я  два дня был депрессии а теперь я понял что нарвался на спецов из энтерпрайз и все встало на свои места. Я не говорю что мой код идеален но он работает а как я сказал, я пришел из  Opencart а там принцип (главное чтобы работало). Извините за длинную тираду просто задело за живое  и надо было с кем то поделиться. вот ссылка на задание что бы доказать что это не флуд    http://public.talyat.ru и код на гите    https://github.com/OlegTalyatKelpsh/news_list    Еще раз спасибо!
oleg_x писал(а):
Очень полезная статья, мне она очень пригодилась в плане понимания некоторых вещей общения программистов, спасибо!
Пожалуйста ))
Очень полезная статья, мне она очень пригодилась в плане понимания некоторых вещей общения программистов, спасибо!  
helldar wrote:
То есть возвращать массив - это плохо, но сделав класс с зависимостью и передавать в него значения метода, на выходе получив всё тот же массив - хорошо?))) Улыбнуло))Среду разработки стоит выбирать на основании проекта и возможного его будущего расширения. Идя в комьюнити по фрейму Laravel надеяться что там предложат решение для сайта-одностраничника без базовых знаний php и той же Лары как минимум глупо.Нужен сайт-одностраничник - ищи среду для него. Нужен мощный проект - ищи подходящий фрейм. Всё ж просто. А ругать других после того как на вопрос "как сделать лендинг на Ларе" и получив в ответ "кури ман" не стоит.
Я говорю не про stdClass. На выходе вы получите методы, которые отлично видятся автокомплитом вашей IDE. А вот с массивом уже лажа. Так как вам придется лазить по коду и смотреть, что там за ключи, чтобы не лажануться  при проверке. А с методом - это в принципе невозможно.

А что касается вопросов в сообществе, так вы ведь не знаете предыстории. Я вопросов не задавал, а опубликовал ряд статей и опен сорс решение. Вместо дельных замечаний (было всего от пары человек), я получил тонны помоев. Как в итоге выяснилось, больше всех лили те, кто только начал что-то изучать. Просто не приятно такое отношение, не больше, не меньше. Поэтому и написал эту статью, как некий выход своего эмоционально напряжения :)
Kirill wrote:
Давайте сразу определимся, чем отличается код в CMS и, к примеру, в Symfony.
Оно мне надо? Будто я не знаю чем отличается CMS от фрейма)
Kirill wrote:
В ЦМС или в бложике простом, возвращать в методе массив - это нормальное явление. А в симфони - не допустимое. Нужно делать новый класс, внедрять зависимость в которую передавать возвращаемые значения метода. А потом обращаться не к ключу массива, а к методу.
То есть возвращать массив - это плохо, но сделав класс с зависимостью и передавать в него значения метода, на выходе получив всё тот же массив - хорошо?))) Улыбнуло))Среду разработки стоит выбирать на основании проекта и возможного его будущего расширения. Идя в комьюнити по фрейму Laravel надеяться что там предложат решение для сайта-одностраничника без базовых знаний php и той же Лары как минимум глупо.Нужен сайт-одностраничник - ищи среду для него. Нужен мощный проект - ищи подходящий фрейм. Всё ж просто. А ругать других после того как на вопрос "как сделать лендинг на Ларе" и получив в ответ "кури ман" не стоит.  
helldar wrote:
Зачем это все? Помогать тому, кто будет после меня поддерживать сей проект? Зачем?)))
Возможно это была ирония, и я сразу не понял. Давайте сразу определимся, чем отличается код в CMS и, к примеру, в Symfony.

В ЦМС или в бложике простом, возвращать в методе массив - это нормальное явление. А в симфони - не допустимое. Нужно делать новый класс, внедрять зависимость в которую передавать возвращаемые значения метода. А потом обращаться не к ключу массива, а к методу. Внедрение IoC DI в сайтике на пару страничек - это просто круто, но зачем? Можно, конечно, и в лендинге бабахнуть доктриной, но в чем смысл? Можно для двух разделов сайта написать несколько слоев абстракций, предусмотреть возможность роста сайта из лендинга в Инстаграм и т.д.

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

Все же, кто мне что-то доказывает, уверяют меня, что они все, как один, из энтерпрайз! А пишут такие комментарии, что я в полных непонятках.
Kirill wrote:
Так ведь это первое правило программиста! Пиши понятный код, комментируй его.
Это сарказм, вырванный из контекста) И сарказм основан на цитируемом тексте ;-)
helldar wrote:
Зачем это все? Помогать тому, кто будет после меня поддерживать сей проект? Зачем?)))
Так ведь это первое правило программиста! Пиши понятный код, комментируй его. Да, рано или поздно вы уйдете с проекта, и придут другие люди, которым будет проще разобраться. Но также и вы придете в новый проект, и захотите работать с нормальным кодом, а не полным ужасом, где такое понаписано, что вам уже не хочется на этом проекте работать. У меня так было на последнем проекте. Фиг с ним, если это просто некрасивый код и мало пояснений. А когда программист формирует ява скрипты в методе класса, когда в подключаемых классах логики делает прямые запросы к БД, и еще очень много чего. Тебя берут в проект, рассказывая, что его писали уникальные люди (гении). А по факту нет ни документации, ни комментариев, ни соблюдается не один паттерн проектирования. И после небольшого промежутка времени ты понимаешь, что нужно сразу уйти. Если проект забросили даже те, кто его начинал делать, то зачем другому специалисту начинать вообще разгребать эту кучу навоза? 

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

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


Статья улыбнула) Дневной заряд позитива получен, статья разобрана на перлы)
Попробую ответить лишь на пару цитат.

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

2. "...вторая группа, очень крепких энтерпрайз разработчиков, начинает учить с лету новичка миллионам паттернов, энтерпрайз коду и т.д."
Не зная основ строительства, невозможно построить дом. В программировании та же песня. Некоторые новички, в силу малого количества практического опыта, пытаются изобрести велосипед из палок, веревок да скотча, а именно те "крепкие энтерпрайз разработчики" показывают им где лежит железо, инструмент и даже подробная схема сборки с указанием всех размеров, скажем, горного велосипеда. Что дальше? А дальше два пути: первый - когда "юнец" берет схему, изучает ее, берет материал, собирает по схеме горный велосипед и довольный едет кататься; второй - когда "юнец" говорит "многа букав" и поливает чем-нибудь тех, кто ему схему эту дал и на путь истинный направил.
EGORR писал(а):
Я таких много видел когда мы админили форум по jQuery. У нас был девиз из перефразированной японской поговорки: Здесь тебе не дадут рыбы. Здесь тебя научат её ловить!
Согласен на 100%. Я когда был в сообществе Друпал, даже кодекс Друпалера прописал, чтобы снять почти все вопросы: Кодекс Друпалера
Но есть еще и другие товарищи. Они либо вообще ничего не умеют, либо начинают только учится (как правило, это пацанва от 17 лет и выше). При этом, за кем-то начинают повторять бред, мол модуль отстой, код говно, и т.д. Аргументов и конкретики конечно же нет. А потом заходишь на другую ветку, и этот же самый человек уже задает детские вопросы: "А как подключить jquery? И где можно устроиться джуном на PHP?". Такие люди составляют подавляющее большинство сообщества. И взрослеют они в таком сообществе не в духе профессионального роста, а в духе низкокачественного тролля и очередного диванного воина. Это реально раздражает. И это по всему интернету так!
Про снобизм в прогерских сообществах совершенно согласен. 
Но будем справедливы: есть и другая сторона. На эти форумы толпами приходят дилетанты единственно чтобы получить ответы на вопрос "почему это не работает" и  заставить других думать за них. И когда им вместо поиска ошибок в их коде советуют учить основы, то следует ответ "мне это не нужно. Что сделать чтобы этот кусок работал?".
 Я таких много видел когда мы админили форум по jQuery. У нас был девиз из перефразированной японской поговорки: Здесь тебе не дадут рыбы. Здесь тебя научат её ловить!