По поводу PHPDoc - я еще его использую для нескольких случаев: 1. @property для Eloquent-моделей. Во-первых, я вижу список свойств модели и их типы - не нужно держать в голове эту информацию или бегать за структурой в базу (или миграцию). Во-вторых, при работе с объектом этой модели, в моей IDE (PHPStorm) срабатывает autocomplete. Это исключает момент, когда мы можем допустить опечатку в свойстве, написав, например $user->pssword. И об этой опечатке мы уже узнаем только из-за ошибки в рантайме В-третьих, это свойство IDE автоматически подсвечивает - это тоже исключает опечатку. Ну а для меня еще и смотрится приятнее и IDE не ругается на магическое свойство)) В-четвертых, мы всегда видим тип свойства. Это особенно актуально, когда наша модель использует $casts. Например, когда мы смотрим в базу и видим, что поле status у orders это строка. Но мы не заметили, что модель использует Enum Casting и превращает свойство status из string в какой-нибудь enum OrderStatus. И когда мы будем пытаться работать с status как со строкой, мы будем получать неверный результат работы кода. - Ну вот о чем я говорю: drive.google.com/file/d/1MiXXVNGCNBLOZp-wBc3ITt8xPK7are7g/view?usp=share_link 2. @var для определения типа переменной Бывают ситуации, когда из-за магии php IDE не может определить тип переменной. Приходится использовать этот PHPDoc drive.google.com/file/d/18Lv7mMhBEzXNNV01hKs1lOTPYNiczE4s/view?usp=share_link Конечно, было бы здорово, если бы я вручную мог задавать тип переменной, например так: User $user = User::where('role', 'admin')->first(). Но пока такого не завезли в php( Кстати, ты говорил, что бесят позиционные маркеры. И я здесь абсолютно согласен - если ты разделил класс маркером на условные две секции, это означает, что ты можешь по этому же принципу разделить этот класс на два класса. Но все-таки есть один момент, когда я позволяю использовать себе эти маркеры - вот он drive.google.com/file/d/1MYfGXP2Jqo1W_82xIrGJNAAWMDOHHf68/view?usp=share_link Так уж вышло, что Eloquent-модель Laravel очень богата на функциональность. И некоторые модели становятся жирными из-за отношений, мутаторов и прочих приколов. В этом случае я разделяю мутаторы и отношения на две "секции". Для меня это удобно, очень быстро читается модель - захотел добавить/найти какой-нибудь relation, открываешь класс и глаз очень быстро за счет подсветки синтаксиса находит нужную область с нужными методами. Но это единственное место, где я могу себе такое позволить, в других местах таким не грешу))))
@freelancer_eyes2 жыл бұрын
Да, Eloquent напичкана магией, а там где магия - танцы неизбежны. Но тут опять-таки очевиден тренд. Поскольку в 8.2 динамическое объявление свойств уже задепрекейчено, ещё кое-какие антимагические усилия предпринимаются, то и Eloquent придётся под это дело как-то перетачивать. Ну а пока есть ведь пакет barryvdh/laravel-ide-helper. А он позволяет держать объявления свойств в отдельном файле, так что код моделей можно не засорять такими комментариями. При этом IDE чувствует себя прекрасно и все свойства видит. Спасибо за подробный комментарий. Очень полезное дополнение к ролику.
@viper_vlad2 жыл бұрын
@@freelancer_eyes ну модели не особо засоряются - если бы мы описывали каждое свойство модели внутри класса, это был бы такой же объем строк - по одной строке на каждое свойство (ну еще импорты других классов, да). Просто есть проблемы с объявлением свойств внутри класса у модели, поэтому приходится делать PHPDoc( В общем, да, если мы используем PHPDoc значит наш любимый пхп еще не совершенен. Поэтому ждем ухода от магии, объявления типа переменной и даже может быть когда-нибудь дождемся дженериков))
@freelancer_eyes2 жыл бұрын
@@viper_vlad Аминь
@ВладимирМороз-в9б2 жыл бұрын
еще б добавил, что без комментариев не обойтись в случае аннотаций для swagger-а и всяких psalm-ов
@alexanders5121 Жыл бұрын
Очень классный и интересный канал. Изложение просто великолепно. Спасибо за старания!
@freelancer_eyes Жыл бұрын
Вам спасибо на добром слове! Рад быть полезным
@Сергей-ы6е2ы2 жыл бұрын
Истории из жизни очень интересны!
@a1ex_sk2 жыл бұрын
Моя любимая история из жизни про комментарии в коде, это когда я на второй день работы в компании нахожу в не очень красивом коде (откровенный кастыль) коммент предыдущего разработчика "я не хотел писать ТАК, меня заставил тимлид" :) Лид действительно оказался чуваком с очень специфическим мироощущением))
@freelancer_eyes2 жыл бұрын
Хорошо, значит, буду продолжать вспоминать, если что-то по теме будет.
@viper_vlad2 жыл бұрын
Согласен - истории, если в них есть что подчерпунть, очень важны. Особенно актуально для тех, у кого мало опыта работы - они знают, как писать код, знают, как должна быть устроена разработка. Но они не знают, как бывает в реальной жизни и какие пути решения есть нестандартных ситуаций. И тут такие истории от уже опытных ребят приходят на помощь. Ну и в целом в ютубе много всяких видео типа "как сделать соц сеть за неделю" или "что такое кортеж в python", но нет (либо очень мало) видео, где разрабы со стажем делятся опытом реальной разработки. Поэтому автор не просто рассказывает историю, а делится ценным опытом)
@valeryv31942 жыл бұрын
Так и быть! Уговорили! Достал книгу, протер от пыли и начал читать) Ну, а в практике, в игровом движке - Unreal Engine, там столько комментариев, посланий для тех, кто будет его использовать. Диву даешься, иногда выручает и документации не надо) Вот крупный проект для сторонних разработчиков, там комментарии нужны. А в визуальном программировании в тех же Blueprints, хорошо что сегодня комментарии оставил для художника, вопросы все равно задавал, но было их меньше) Многие программисты со стажем рекомендуют прочитать эту книгу. Спасибо, для меня ваши мысли ценны! Как всегда жду продолжения.
@freelancer_eyes2 жыл бұрын
Спасибо, Валерий! Рад, что остаётесь постоянным зрителем канала. Не очень понял про Blueprints. Там тоже есть код? Интересно!
@valeryv31942 жыл бұрын
@@freelancer_eyes Blueprints это инструмент кодирования в Unreal Engine, есть подобное и в других движках. Для быстрого прототипирования или настроек, выглядит как визуальный язык, состоит из блоков-нодов у которых есть входы и выходы. Вышел из настроек материалов у 3D художников. Удобен тем, что нет долгой компиляции - подключил, тут же запустил, увидел. Когда ты раскрываешь этот "узор" из нод, то там без комментариев трудно сразу сообразить. Чем-то похож на электронную схему)
@freelancer_eyes2 жыл бұрын
Вон оно что. Понял. спасибо!
@artfiltersai10 ай бұрын
Спасибо за ролик, очень интересно смотреть ваши видео, только просьба в новых видео логотип канала справа верху по меньше сделайте пожалуйста много места занимает в экране
@ЭдуардЕвдокимов-й1о2 жыл бұрын
На прошлом проекте встретил комментарии подобного вида: "я ненавижу эту работу" или "блок боли". По-началу показалось забавным, а когда пришлось вносить правки... Оххх. Не поленюсь лишний раз выразить благодарность Александру за качественный контент и приятные розыгрыши)
@freelancer_eyes2 жыл бұрын
Спасибо!
@shiryshev2 жыл бұрын
Хорошая история. Больше историй из жизни! :)
@freelancer_eyes2 жыл бұрын
Надо будет и про тебя что-нибудь рассказать при случае :)
@shiryshev2 жыл бұрын
@@freelancer_eyes Меньше чем на повесть не согласен!
@pep4212 жыл бұрын
Спасибо за видео.
@freelancer_eyes2 жыл бұрын
Вам спасибо за поддержку!
@АлександрТванов-ю1я2 жыл бұрын
Александр, поскольку какого-либо опыта в разработке не имею, оставляю комментарий с благодарностью за доступный для понимания новичку материал!
@freelancer_eyes2 жыл бұрын
Дорогой тёзка, опыт обязательно придёт, куда он денется. А если мой канал в этом хоть немного поможет - лично я буду очень счастлив.
@TheBubaololo2 жыл бұрын
Мои поздравления! история моя очень новичковая, не уверен что тут есть настолько новички, но если есть возможно им будет полезно. Учил я голый пхп+всю обвязку наверное около года, по книге Котерова, параллельно пилил всякую мелочь вроде ботов, парсеров и верстал простые статические сайты. Когда книга закончилась решил (этой весной) поработать на первой пусть о очень простенькой но настоящей работе, в течение наверное недели ил или 2-х устроился в небольшую компанию, делающую саеты для местного опять же довольно небольшого бизнеса. Нарекли меня фуллстеком (ЛОЛ), в реальности это была вёрстка макетов + натяжка на битрикс, всё оффлайн, в офисе, первым заданием был сайт поликлиники на 25 прям разных и не самых простых страниц, который я сверстал за 1,5 месяца, и когда подошёл момент натяжки на битрикс я убедился что не хочу иметь с ним дела, о чём и сообщил, параллельно с решением уйти, в итоге я натянул этот сайт и уходил ещё 1,5 месяца т.к. хотел закончить другие более мелкие сайты которые на меня туту же накидали и параллельно можно сказать уговаривали попробовать ещё. В итоге я сказал что завтра просто не приду, т.к. битрикс этот я точно трогать не хочу и не буду, а буду учить ларавэль как и задумывал. Уже через полторы недели меня позвали заехать в офис и дали небольщой проект на ларавел уже в качестве самостоятельного удалённого разработчика с почасовой оплатой ровно в 2 раза выше той на которой я у них работал. Мой вывод такой: минус (а может и не минус) стека PHP это наличие на входе множества неинтересной и малоперспективной работы, заниматься которой можно годами без видимого прогресса. Но есть и очень интересная и приятная работа уровнем выше где настоящее программирование, нужно помнить какая у тебя цель и не залипать на том что тебе не позволит её достигнуть
@freelancer_eyes2 жыл бұрын
Отличная история и очень правильный вывод! Это вещь фундаментальная. Засиживаться на одном месте вообще нельзя. всегда нужно мечтать о том, что за горизонтом и неуклонно ломиться в эту сторону. Тогда всё получится.
@pep4212 жыл бұрын
Bitrix должен отмереть, не понимаю зачем его используют до сих пор.
@freelancer_eyes2 жыл бұрын
@@pep421 CMS вообще довольно устаревшая концепция. Но их ещё долго будут использовать, особенно при поддержке старых проектов. Потому что до сих пор сильно мнение, что CMS снижают затраты на выпуск продукта. Мнение в принципе справедливое, но проблемы начинаются тогда, когда выпущенный продукт нужно развивать и поддерживать. CMS зачастую становится оковами на руках.
@ЕвгенийК-ц9с Жыл бұрын
@@pep421 наверное только из-за админки из коробки
@ЭдуардЕвдокимов-й1о2 жыл бұрын
Еще вспомнился забавный случай с комментарием. Комментарий к закомментированной функции на JS, гласил: "Разкомментируй и приготовься". Немного напрягся, расскоментировал, обновил страницу и уведил дискотеку в форме оформления заказа. Поля формы на JS меняли цвета по таймеру. Такую вот пасхалку для проггеров оставили) Всем удачи в конкурсе и уверенного продвижения Александру с каналом. P.S. Ждем в Поэтах ;)
@freelancer_eyes2 жыл бұрын
Спасибо, Эдуард! В Поэтов я просто обязан вернуться вот буквально в ближайшее время. На работе всё более-менее выправил, пора и делом заняться :)
@romanchubich20132 жыл бұрын
@return array - если этого не написать, то IDE не узнает что там в массиве, который вернула функция.
@freelancer_eyes2 жыл бұрын
Да, верно. Спасибо за уточнение. Хотя идеальным решением в OOP, конечно, было бы возвращать отдельный класс-коллекцию. Но зачастую лениво, конечно,
@rm-rf882 жыл бұрын
Docblock уже на уровне рефлексов :-)
@freelancer_eyes2 жыл бұрын
Ага. Как и форматирование кода в IDE горячими клавишами. Иногда это не очень полезная привычка. В следующем ролике про чистый код постараюсь проиллюстрировать эту странную мысль.
@Mr4iloveg2 жыл бұрын
Лень как двигатель прогресса и здесь внесла свою лепту. Может за нежелания писать лишнее и появляются в итоге аннотации, указание типов и т.д. что позволяет писать меньше кода и уменьшает ошибки...
@freelancer_eyes2 жыл бұрын
И да, и нет. Кроме лени есть же ещё вопрос производительности (в том числе грамотное распределение памяти), безопасности и непосредственно доступных возможностей языка. Вот всё это вместе и даёт вектор развитию синтаксиса. Но лень, конечно. - на первом месте :)
@dmitryalinsky59112 жыл бұрын
Laravel с 10-ой версии переходит с аннотаций на атрибуты. Я когда услышал, до потолка подпрыгнул :) Так было непривычно возвращаться в PHP после 3-4 месяцев Java и Dart. Аннотации особенно бесили. Я всегда от них отмахивался. Но, как написал Viper, для дженериков (да и не только) они нужны. Комментарии в PHP - это цветочки, по сравнению с комментариями в HTML. Вот это прям масло масленное. Пробовали ли вы анализировать код с помощью PHP metrics? Там далеко не идеальный анализ, но, как минимум, очень удобно выявлять файлы с высокой цикломатической сложностью, чтобы их разгрузить для более удобной поддержки. А на счёт собственных историй, я ещё в ролике про массивы в PHP предложил вам делиться ими. В этом и есть уникальность материала. Приятно видеть, что не одному мне это интересно ;)
@freelancer_eyes2 жыл бұрын
Большое спасибо за комментарий! Насчёт комментариев в HTML - с трудом представляю их ценность. Всё что встречал до сих пор - это либо комментарии имени Капитана Очевидность, либо нежно мной любимый закомментированный код :) Спасибо, что напомнили про metrics! Это станет темой следующего ролика. Думаю, многим будет интересно посмотреть на этот инструмент.
@viper_vlad2 жыл бұрын
"Откатить, накатить". Ну да, если код плохой, то без "накатить" не разгрести) P.S. было бы здорово, если бы комментарии в телеграм-канале были открыты 🙏🏿
@freelancer_eyes2 жыл бұрын
Обязательно открою. Просто он пока в зачаточном состоянии - никому и не требовалось. Но, похоже, пора. Спасибо за совет!
@MaxSidex2 жыл бұрын
Комментарий для продвижения канала. Я хочу, чтоб это видео увидели как можно больше хороших айтишников и разъебали это мнение в труху
@freelancer_eyes2 жыл бұрын
Вы могли бы и самостоятельно начать. Только прошу выражения чуть смягчать. Я и сам не дурак поматериться, но не среди незнакомых людей.
@MaxSidex2 жыл бұрын
@@freelancer_eyes моих знаний недостаточно, но паззл в голове не складывается, а потому хочется узреть другого мнения
@freelancer_eyes2 жыл бұрын
Согласен. Я бы тоже с удовольствием послушал другую сторону
@ВладимирМороз-в9б2 жыл бұрын
@@MaxSidex Интуитивное несогласие? Ниче не понимаю, но очень осуждаю ))))
@views-lu6ph2 жыл бұрын
Эх, опоздал я на розыгрыш, а хотелось то Швеца в подарок)))) Но все равно спрошу. У Роберта Мартина есть намного более известный оппонент. Это Билл Гейтс... В своей книге "Бизнес со скоростью мысли" он как раз рекомендует придерживаться концепции полностью противоположной мартиновскому "Clean Code". Вкратце, там так - программный продукт нужно стараться как можно быстрее вывести рынок - пусть сырой, пусть плохо написанный, но вывести (такими были windows до 98/ХP версиq). Для чего? Чтобы протестировать бизнес-идею, насколько она живуча и проч. А уже потом - вычищать, допиливать, рефакторить! Он развивает это намного подробнее и детальнее, но идея такая. А что скажет автор канала?
@views-lu6ph2 жыл бұрын
и еще одна из главных задач по-гейтсовски - это захватить рынок!
@freelancer_eyes2 жыл бұрын
Дорогой товарищ! Давайте-ка я отвечу очень коротким, но отдельным роликом. Там есть что сказать.
@dmitryalinsky59112 жыл бұрын
Во первых - примите мои поздравления. Во вторых - желаю не терять дух и продолжать затрагивать такие интересные темы ;) Но, честно говоря. разачаровал ваш конкурс. Вы попытались предложить объективный вариант с рандомом, но это будет выглядеть ещё более субъективно, так как какой-нибудь не столь интересный комментарий, по типу этого, может победить. Я когда начал смотреть ваш ролик с розыгрышем, ожидал услышать что-то оригинальное. Предположил, что будет оцениваться какая-то интересная история по оптимизации и рефакторингу. Или что-то практическое, тут вы и для себя бы что-то подчерпнули. Но увы решили вы это по простому. Жаль, но дело ваше. Если, вдруг, этот комментарий победит, отдайте приз VIPER за комментарий в закрепе.
@freelancer_eyes2 жыл бұрын
Дмитрий, спасибо за постоянную поддержку, ваши комментарии всегда очень ценны. Надеюсь, вам удастся присоединиться к трансляции розыгрыша. Возможно, у меня получится чуть сгладить ваше разочарование. 🤐
@dmitryalinsky59112 жыл бұрын
@@freelancer_eyes Постараюсь. Есть несколько вопросов, надеюсь смогу задать. На будущие стримы, лучше всего создавать запрланированную трансляцию с точным временем. У вас основная аудитория - это взрослые работяги, и нам бы знать, во сколько стоит освободить своё время под такое мероприятие :)
@dmitryalinsky59112 жыл бұрын
@@freelancer_eyes alinsky.dmitry@gmail.com
@freelancer_eyes2 жыл бұрын
@@dmitryalinsky5911 Всё получилось, Дмитрий?
@dmitryalinsky59112 жыл бұрын
@@freelancer_eyes Только проснулся :) Курс получил, спасибо!
@bogdanchirukin1050 Жыл бұрын
ааа! закон леблана... я колегам "л" забыл сказать
@matash149 Жыл бұрын
почулось 'закон ...блана' )))
@freelancer_eyes Жыл бұрын
Да, не повезло человеку с фамилией. Хотя он этого никогда не узнает.
@topalek2 жыл бұрын
товарищ в закрепе опередил (( Действительно, комментарии в коде, в частности докблок очень помогают в шторме. Сам часто пользуюсь. Особенно в этом помогает пакет для лары barryvdh/laravel-ide-helper. Так что пока что, совсем без комментариев, не выходит)))
@freelancer_eyes2 жыл бұрын
Ничего, когда-нибудь доживём до объявления: теги комментирования в PHP задепрекейчены, в следующей версии будут вызывать фатальную ошибку 😂 Шутка, конечно. Почти