Что такое антипаттерны?

  Рет қаралды 49,709

Merion Academy

Merion Academy

Күн бұрын

Пікірлер
@merionacademy
@merionacademy 2 ай бұрын
Пройди бесплатный вводный урок нашего продвинутого курса по Python: wiki.merionet.ru/merion-academy/courses/python-advanced-prodvinutyj-kurs/?YT&
@oWeRQ666
@oWeRQ666 2 ай бұрын
2:56 Это как раз пример когда лучше скопировать, чем городить франкенштейн функцию(с). Чтобы избежать дублирования достаточно просто вызвать первую функцию из второй, что тоже плохо, но лучше франкенштейн функции(с).
@logonikgg
@logonikgg 2 ай бұрын
Тоже удивился этому примеру. Недавна наоборот читал статью о том что так делать не стоит.
@AndroidsReview
@AndroidsReview 2 ай бұрын
по вашему JSON.strungify это функция Франкенштейн?
@Dadadadam999
@Dadadadam999 Ай бұрын
Ну да, первый принцип SOLID в примере нарушен, это правда.
@son9261
@son9261 2 ай бұрын
Лучший стиль программирования это stack over flow программирование
@Fosdark
@Fosdark 2 ай бұрын
Айда видео про потоки и процессы!
@postoronny
@postoronny 2 ай бұрын
Зачем? Потоки текут, процессы происходят...
@nikuma6659
@nikuma6659 2 ай бұрын
Я пукнул
@daniil2704
@daniil2704 2 ай бұрын
4:20 - я никогда код не копировал из старых проектов или с интернета, смотрел как он работает, и писал как мне нужно. Максимум копировал что бы запустить у себя локально, потыкать что и как работает, понять как работает, и взять себе это на заметку
@МихаилМаркин-в5ж
@МихаилМаркин-в5ж Ай бұрын
Я досмотрел, но не удаляйте. Пусть другие тоже посмотрят
@ZZS_ZigZag
@ZZS_ZigZag 2 ай бұрын
Ну одна из хороших практик это комментирование каждой части кода, так порой когда читаешь свой коментарий можешь найти такие моменты которые можно оптимизировать, либо же в будущем можно было легко разобраться за что отвечает та или иная часть кода
@stalferver
@stalferver 2 ай бұрын
Если ты работаешь в комманде, то да, комментировать стоит, мало ли кто там будет просматривать этот код. Но если ты работаешь один или в маленькой команде, то твой код изначально должен комментировать сам себя. Можешь почитать про это и ты поймёшь, что значит "комментировать сам себя".
@stdio6294
@stdio6294 2 ай бұрын
Комментировать надо только странные решения, объясняя их причину, чтобы не было вопросов на ревью. То есть комментарий должен отвечать не на вопрос "что делает этот код", а на вопрос "почему этот код делает именно так" Все это не касается служебных классов, там надо просто JavaDoc/KDoc комментарий, что этот класс или метод делает. Я конечно говорю про котлин и джаву, но это просто здравый смысл, который применим и в питоне
@user-tk2jy8xr8b
@user-tk2jy8xr8b 2 ай бұрын
Совершенно бесполезная активность. Коментарий полезен только в случае WTF-кода, например при какой-то хитрой оптимизации или в удивительной бизнес-логике, реализованной по требованию заказчика.
@РоманМамаев-ч7ц
@РоманМамаев-ч7ц Ай бұрын
Если код хорошо написан, ты и так читая его поймешь что он делает. Коментарий нужен либо оставть TODO для правок потом в будущем либо указать какую то важну бизнес логику, и почему сделали этот костыль или еще чего. Комментировать все и вся нет смысла, Единственный пример где это хорошая практика, написание библиотеки которая будет публично использоваться сторонними разработчиками
@aquinary.
@aquinary. Ай бұрын
Код должен быть самодокументируемым. Если код требует комментариев (исключая doc-стринги для документации), то значит код плохо написан. И только в редких случаях какие-то неочевидные моменты должны объясняться в комментариях.
@АрамТуманян
@АрамТуманян Ай бұрын
3:00 По-моему, здесь "исправленный" пример даже хуже того, что было: дважды повторяется инструкция `return a * b`. Правильно писать так: ``` def multiply_numbers_with_condition(a, b, condition=None): if condition is None or condition(a, b): return a * b return 0 ``` Или можно в одну строчку: ``` def multiply_numbers_with_condition(a, b, condition=None): return a * b if condition is None or condition(a, b) else 0 ```
@QwDragon
@QwDragon Ай бұрын
Ага. Вот так и стоило сделать.
@Сергей-х3в2ь
@Сергей-х3в2ь Ай бұрын
Тут есть проблема со вторым примером. Да, ты показываешь свою крутось как программист переписав функцию их 4-х строчек в 2. НО! Потом эти сокращенные строчки очень тяжело читать и разбираться что в них происходит. Особенно если тебе нужно во время встречи быстренько зяглянуть в код и расскзать как там бизнес логика работает. Я часто намеренно пишу код как в 1 варианте т.к его проще понимать и поддерживать
@mrybsminecraft
@mrybsminecraft Ай бұрын
​@@Сергей-х3в2ьну если сложно читать, добавь скобки
@Сергей-х3в2ь
@Сергей-х3в2ь Ай бұрын
@@mrybsminecraft я тут скорее про всякие компактные конструкции говорю
@АрамТуманян
@АрамТуманян Ай бұрын
@@Сергей-х3в2ь Как в 1-м варианте - имеешь в виду мой первый вариант, а не вариант автора видео? Если так, согласен с тобой только отчасти. Я считаю, что выбор между моими двумя вариантами - дело вкуса. Для меня предпочтительнее второй. Не вижу ничего сложного в операторе if-else, он позволяет писать лаконичный код. Но у каждого свои предпочтения - я потому и привёл два варианта.
@PostScriptonGaming
@PostScriptonGaming 2 ай бұрын
Ахахаха, гениальная реклама, в голос посмеялся) Прес качат Анжуманя Бегит
@PurpleDaemon_
@PurpleDaemon_ 2 ай бұрын
3:01 из одного антипаттерна сделали сразу два. Нужен ранний выход и вынесение флага в отдельный метод.
@QwDragon
@QwDragon Ай бұрын
Не нужно. И нет там флага. Надо проверять по-человечески и всё.
@costolommi
@costolommi 2 ай бұрын
Как всегда интересно и познавательно!
@BlackSoul57
@BlackSoul57 Ай бұрын
Использование булевских и других флагов, забор из if, функции и методы с простыней кода, игнорирование всего синтаксиса языка (когда на ООП языке пишешь в процедурном стиле), решение простых задач с помощью массивных фреймворков (городить сущности и модель для ОРМ, когда для какого-нибудь отчета достаточно селекта из таблицы)
@annieleonhart-f3x
@annieleonhart-f3x 2 ай бұрын
ждём видосы про код ревью) очень нужная тема
@non5309
@non5309 2 ай бұрын
классный видос, представляю сколько ушло времени на подбор мемов и монтаж!
@romandonw
@romandonw 2 ай бұрын
Я пишу на языке ассемблера под MS-DOS. Я доволен (пока-что)
@Macaronena
@Macaronena Ай бұрын
Пишите код как пишется, а потом смотрите что можно улучшить/убрать. Так гараздо проще чем сразу по правилам писать
@RumEvo
@RumEvo 2 ай бұрын
7:00 человек с молотком, везде видит гвоздь!
@user-tk2jy8xr8b
@user-tk2jy8xr8b 2 ай бұрын
Пример кода на бидоне прекрасно читается без всяких проблем (я даже не пыхтон программист и прочитал комменты уже после осмысления происходящего), это не спагетти код. Функция структурирована, её цикломатическая сложность низкая, влазит на экран. Для одноразовой утилиты самое то. Как часть более сложного проекта - может быть уже спорно. Кстати, разве в петухоне нет всяких там map'ов? Перекладывать списки через циклы - это стиль, в котором наши отцы писали.
@Torbjorn-ph7rt
@Torbjorn-ph7rt Ай бұрын
kstati pod kapotom oni tak i perekladyvayutsya
@nikitatimofeenko9351
@nikitatimofeenko9351 2 ай бұрын
2:56 Избавились от дублирования, но добавили флаг, что тоже антипаттерн...
@ogone4ek880
@ogone4ek880 2 ай бұрын
надо было просто во второй функции вызвать первую
@QwDragon
@QwDragon Ай бұрын
1. Нет там флага. 2. Не избавились от дублирования.
@mehrheitler
@mehrheitler 10 күн бұрын
4:16 Из этого блока я понял, что преждевременная оптимизация это когда ты бездумно копируешь код из интернета :-|
@sharko7604
@sharko7604 Ай бұрын
Про Петьку и Василь Ивановича выпал
@tareto1000
@tareto1000 Ай бұрын
Новый выпуск🎉
@qwfpgjful
@qwfpgjful Ай бұрын
С магическими числами не все так однозначно (Не говоря уже про 0 или 1). Главное в написании кода - это что бы было всё понятно, это достигается не только именами для констант. Например нужно перевести км в час в метры в секунду. Для этого можно вынести константу 3.6 и делить на константу. Но лучше сделать функцию, которая просто поделит на 3.6 Т е. Пример: Def kmchToMs(km): return km/3.6 Против const ratioKmchToMs = 3.6 А потом вспоминай что нужно именно делить на эту константу
@CTAK_CO6AK
@CTAK_CO6AK Ай бұрын
Кстати да
@plotoh5087
@plotoh5087 29 күн бұрын
в некоторых случаях можно моржовым оператором объявить переменную сразу в return
@Dadadadam999
@Dadadadam999 Ай бұрын
Про лодочный якорь тоже не сказано главного. Чтобы не собирать неиспользуемый код в проекте, достаточно использовать git (или другие системы контроля версия) и правильно им пользоваться. При таком подходе даже комментарии в коде не нужны, т.к. правильно названные и сделанные коммиты будут описывать код, лучше, чем комментарии. Так же при использовании тэгов версий, всегда можно восстановить версию до рефкаторинга и при необходимости проследить вообще все изменения.
@QwDragon
@QwDragon Ай бұрын
03:00 Молодец - и функции объединил, и копипаст оставил. Сарказм, если непонятно.
@ja-prodaction
@ja-prodaction 2 ай бұрын
Топ! Все мое на старте собрали 🤠
@edman-yy5gs
@edman-yy5gs 25 күн бұрын
когда по ходу ролика понимаешь что в своем коде ты собрал комбо их всех антипаттернов ._.
@Lexxl67
@Lexxl67 2 ай бұрын
Да, меня лодочный якорь из спагетти где то валяется. моя первая программа на lua. я там почти все в одну строчку писал, точнее большими абзацами. Не помню правда зачем, то ли думал, что код ускоряю, то ли, что бы запутать потенциального противника... 🤣
@ruria_coda
@ruria_coda 2 ай бұрын
Хороший видос!
@e-loser
@e-loser 2 ай бұрын
Жёсткое кодирование мне понадобится после просмотра этого видео
@user-sx2in3pu7i
@user-sx2in3pu7i Ай бұрын
5:48 Игроки Factorio: о мама Мия!
@Creveoolus
@Creveoolus 2 ай бұрын
Начал развивать свой проект, соответственно начал проводить код-ревью. Очень жду про него ролик, а то ничего не понятно)
@Ivan-Shyriaiev
@Ivan-Shyriaiev 2 ай бұрын
6:42 вместо того чтобы переписывать франкенштейна, можно ему ещё один костыль добавить, а в будущем ещё и ещё и ещё (его же кто то написал уже 😂)
@гойда-гол
@гойда-гол 2 ай бұрын
спасибо за курсы по норм писанию кода
@bauyrzhanakhmetov
@bauyrzhanakhmetov 2 ай бұрын
Практики хорошего программирования укороченно будет ПХП. Вам это о чем нибудь говорит ? 01:13
@ДмитрийКарпич
@ДмитрийКарпич Ай бұрын
Вы уверены что в вашей аналогии на это сокращение средняя буква - "хорошего" ?
@bauyrzhanakhmetov
@bauyrzhanakhmetov Ай бұрын
@@ДмитрийКарпич у каждого, своя трактовка ПХП😂
@ВладимирПутин-ф6ж9э
@ВладимирПутин-ф6ж9э 2 ай бұрын
3:01 а как решить подобную проблему на си?
@eng9507
@eng9507 2 ай бұрын
Многопоточность подавай!!!! Спасибо огромное за контент
@bro-de8nq
@bro-de8nq 2 ай бұрын
Сделайте видос про Dependency injection (DI)
@rothschildtriyer4962
@rothschildtriyer4962 2 ай бұрын
Ребята вы лучшие !!!
@ДаниилШестаков-щ8к
@ДаниилШестаков-щ8к 2 ай бұрын
Даешь видос про код ревью !
@kyk3805
@kyk3805 2 ай бұрын
вопрос по антипаттерну "изобретение велосипеда", разве чтобы развиваться как разработчик не нужно стараться самостоятельно писать код? типо в чем смысл твоего кода, если ты почти всё взял из чужих кодов/ии/интернета и т.д.
@enosunim
@enosunim Ай бұрын
Байт на комент зассчитан. В рубрике хардкода никакого хардкода и нет. Все ключи и имена файлов в отдельных переменных. Делайте с ними что хотите, хотите из скрытого хранилища грузите, а хотите из конфиг файла. А вот хардкод это когда ключ прямо в код вставлен. Не через переменную.
@Integrity_Knight_101
@Integrity_Knight_101 2 ай бұрын
паттерны со временем становятся антипаттернами
@superalphashow4719
@superalphashow4719 Ай бұрын
Про изобретение велосипеда, не всегда справедливо, к примеру я по мере необходимости пилю свой фрэймворк для CMSIS STM32 на С. Так вот зачем если есть тот же HAL или arduino? HAL хоть и более простой (на уровне ардуино) но очень не удобный. Arduino хорош для мелких неоптимизированных проектов. А CMSIS позволяет на низком уровне записывая биты в регистры управлять всем. Причем невероятно гибко, проще говоря это ассемблер но с синтаксисом Си. Но беда в том что на CMSIS очень мало библиотек и для настройки пина хотябы как выход нужно слишком много писать кода, а теперь представь себе тебе нужно настроить пины SPI протокола, а так-же передавать и принимать данные по этому низкоуровневому протоколу... С учетом того что CMSIS под каждый процессор и контроллер свой... Приходится изобретать то что делали HAL и разработчики ардуино
@qwertymangames1800
@qwertymangames1800 2 ай бұрын
Две крайности. 1. Пишешь простой и понятный код в функциональном стиле на каком-нибудь Haskell 2. Пишешь оптимизированный код который потом будет сложно читать в процедурном стиле на Си Ну да можно попробовать использовать ООП в C++, но часть ресурсов компа будет уходить на создание абстракций классов и объектов. На Си код более оптимальный. Оптимальнее только ассемблер и машинный код.
@nakidai
@nakidai 2 ай бұрын
пиши ооп на си
@user-tk2jy8xr8b
@user-tk2jy8xr8b 2 ай бұрын
Можно писать на хаскеле простой и понятный код, который сгенерирует код на мерзком си
@daniil2704
@daniil2704 2 ай бұрын
На самом деле бывает грешу дубляжом, когда проект уже на проде, и постоянно какие то фичи не нужны, ну простой сайт крч и разве что просит внести какие то правки, новую страницу, то что бы не растягивать и по цене и по времени, бывает грешу этим, выходит быстро и работает, и никак потом в колено себе этим не выстрелю, так как трогать это я больше не буду. Ну и выходит так что сайт выходит в целом чистым и прекрасным, а потом с правками, особенно которые по хорошему заставят переписать пол сайта, что делать конечно никто не будет, прилипает немного говнеца, но в целом как бы норм. Будь это постоянный проект, какое то аля приложение, то там конечно так нельзя, потом страдать будешь
@anatoly-k
@anatoly-k 2 ай бұрын
Лайк за lgtm и номер на тачке
@_C.A.T.
@_C.A.T. 2 ай бұрын
Кайф,спасибо большое
@RumEvo
@RumEvo 2 ай бұрын
6:27 🤣🤣🤣🤣🤣
@fentomi9618
@fentomi9618 Ай бұрын
Крайне странным показался листинг кода на третьей минуте видео. Тут начинает страдать нейминг: название функции как будто предполагает, что дополнительное условие должно существовать обязательно. Также функция начинает выполнять две задачи, вместо одной - это нарушает принцип единственной ответственности. Первой задачей становится определить тип умножения: обыкновенное или с добавочным условием, а вторая задача - умножение. Также плохой практикой, по мнению Роберта Мартина, написавшего "Чистый код" и придумавшего SOLID-принципы, считается наложение if/else друг на друга. Если честно, выпади мне доля реализовать алгоритмы умножения двух чисел и умножения двух чисел с условием, то я бы оставил самый первый, доходчивый и легко читаемый, пример. Только бы модифицировал вторую функцию, добавив вызов первой. Тут сложно подобрать оптимальный и единственный вариант решения задачи, поскольку нет полного листинга кода проекта, где используется умножение и умножение с условием.
@hidusa
@hidusa Ай бұрын
Никто абсолютно никто, я: в 1 массиве данные для всех переменных, спросите как это работает 🤨 очень просто, создаем массив string и в этот массив записываем абсолютно все данные, вряд ли кто-то сможет взломать программу с 1 переменной ведь она абсолютно везде, из плюсов то что она везде и не надо голову ломать 🤓 также для более уверенности данные в массиве закодировать 128битным ключом шифрования, который для каждого блока когда свой 😂 дальше я еще лучше сделал, так как моя программа умеет передавать данные если код замечат что-то кроме ожидаемых данных, программа со стороны отправителя закрывается 🤗 боже упаси того человека кто попытается взломать мое приложение я же шизик
@Denisko123
@Denisko123 2 ай бұрын
А книга про г-код реальна или фотошоп ? Я бы почитал.
@snatvb
@snatvb 2 ай бұрын
6:23 да да, конечно, во всем виновата удаленка :D что за бред) по поводу копирования есть другой антипаттерн, его противоположенность - это когда стоило бы сделать копию и на ее основе построить другой блок программы, который логически не связан (выполняет разные бизнес задачи). Но его связывают и так получается связный код, который вообще невозможно поддерживать. Это еще опаснее чем копипаста)
@ДмитрийКарпич
@ДмитрийКарпич Ай бұрын
Или делают два продукта с одной кодовой базой и кучей рогаток внутри, потому что "ну это почти одно и то же же" а потом у клиента появляется интерфейс менеджера из-за бага.
@denissozonov2655
@denissozonov2655 2 ай бұрын
класс спасибо
@jon4775
@jon4775 2 ай бұрын
Не досмотрел, не удаляйте пока
@ДмитрийКарпич
@ДмитрийКарпич Ай бұрын
воу, воу. 3:00 - "одна универсальная функция" - это хорошо, а 5:23 - "другая иниверсальная функция" - это нехорошо :) мдааа... определитесь :)
@indraoozuki1838
@indraoozuki1838 2 ай бұрын
все антипаттерны базируются на нарушении принципов SOLID
@ruria_coda
@ruria_coda 2 ай бұрын
Ну и SOLID базируется на специально долгом написании кода😂
@LeXX_009
@LeXX_009 2 ай бұрын
Код должен просто работать, все это фигня, часто вижу что сейчас правильно, но потом будет сложно поддерживать, но идёт поддерживать буду уже не я 😂
@Ivan-Shyriaiev
@Ivan-Shyriaiev 2 ай бұрын
Так вот кто создал этих франкенштейнов у меня на проекте 😂
@LeXX_009
@LeXX_009 2 ай бұрын
@@Ivan-Shyriaiev да таких много как я много которые в ит не из за того что я кайфую от работы, а просто это простая работа за хорошие деньги
@ICastTheBan
@ICastTheBan 2 ай бұрын
Нашел для себя очень крутой способ. Пишите говнокод, или как умеете, но главное чтобы работало так как вы задумали, потом просите чат гпт оптимизировать и улучшить код. Плюс от такого способа в том что можно узнать крутые решения до которых я бы Никогда не додумался. Таким способом в python я научился пользоваться генераторами списков, функцией next например и теперь уже без чата ими пользуюсь, потомучто понял как они работают и зачем нужны
@user-ed9px3cz7g
@user-ed9px3cz7g Ай бұрын
1:47 ну я же ем, какое еще говно...
@yohohowowowo9471
@yohohowowowo9471 2 ай бұрын
Ну, программирование копипастом - это обычная вещь для функционального программирования, поэтому и придумали перегрузки))
@lithiumoverdose1298
@lithiumoverdose1298 2 ай бұрын
Ребята, видео очень хорошее, но, пожалуйста. Сделайте звук как раньше, более качественный. А то чувство, что мне диктор в левое ухо говорит только, ещё и небольшой перегруз есть.
@ДмитрийЦмаков
@ДмитрийЦмаков 2 ай бұрын
Посмотрел, удаляйте
@xInkognito
@xInkognito 2 ай бұрын
Прочитал, удаляй
@Lexxl67
@Lexxl67 2 ай бұрын
@@xInkognito Понял тебя, удаляйся.
@GTLOLhoh
@GTLOLhoh 2 ай бұрын
​Я понял мир, останавливай матрицу ​@@Lexxl67
@PoolKid12
@PoolKid12 2 ай бұрын
Изгой
@_H4
@_H4 2 ай бұрын
хватит так писать, это же глупо и заезженно
@wxwxvxvx
@wxwxvxvx 2 ай бұрын
175-й Haх
@igroykt
@igroykt 2 ай бұрын
не согласен! в жс там считаются трактористы )))
@Zlobusz
@Zlobusz 2 ай бұрын
Как программист с 10 летним стажем вынесу вердикт этому видео: нормально делай, нормально будет 😂
@knighipoprogrammirovaniiu
@knighipoprogrammirovaniiu 2 ай бұрын
Норм )
@kokses3678
@kokses3678 Ай бұрын
я говнокодер в восьмилетнем стажем
@KeNNyKennyYT
@KeNNyKennyYT Ай бұрын
Пиши код как знаешь и как тебе нравиться, потому что это только твой проект, и пихуй на все эти антипаттерны. К примеру если писать не на каком то пихтоне, а на c или c++, то там все перечиснные антипаттерны, не имеют смысла. Что с сокрашентем имен переменных, что с копипастом, если у тебя реально большой проект и когда есть способ сократить время для написания какой мини задачи почему бы это не сделать, и да это не делает тебя не опытным программистом. А спагетти код, пхх что если какой то участок кода просто для дебага и временный, который просто нужен чтобы что то проверить, поэтому это вообще бред. И да главный антипатерн - не смотри подобные видео, а учись с книг или же с stack over flow.
@Dadadadam999
@Dadadadam999 Ай бұрын
Касаемо копирования кода, очень странный аргумент. Копировать код из проекта в проект или из вне, вполне себе стандартная практика. Не, можно конечно писать один и тот же код с нуля, но это бред. Не знаю, как там в ваших питонах, но в нормальных ЯП есть такое понятие, как инкапсуляция. Т.е. если я пишу класс, то его прелесть в том, что могу его использовать и в других проектах, т.к. его логика инкапсулирована. Касаемо первого примера, то в нём строгое нарушение первого принципа solid. Если в названии метода или функции, стоит слово and или or, то лучше её разнести на 2 функции, а в данном случае достаточно вообще убрать функционал кондишена из функции оборачивая её в условие. П.С. Лично я чтобы не копипастить код из проекта в проект, который часто использую создаю небольшие библиотеки. Потому что переиспользование готового проверенного и оттестированного кода, куда целесообразней, чем переписывание своих велосипедов с нуля каждый раз.
@maxandreev27
@maxandreev27 2 ай бұрын
Читайте классику Robert Martin "Clean Code", но сильно не загоняйтесь.
@Михазагрздин
@Михазагрздин 2 ай бұрын
64
@al_phoenix
@al_phoenix 2 ай бұрын
Автор не разбирается в антипаттернах.
@merionacademy
@merionacademy 2 ай бұрын
Большое спасибо за вашу подробную, экспертную и тщательно обоснованную аргументацию!
@lisidra
@lisidra 2 ай бұрын
​​@@merionacademy Внесу чуть больше ясности: ролик гоано.
@merionacademy
@merionacademy 2 ай бұрын
Как приятно общаться с профессионалами, которые с уважением относятся к собеседнику и четко, аргументированно доносят свои мысли!
@dfdf-bs7dr
@dfdf-bs7dr 2 ай бұрын
@@merionacademy не язви.у тебя в примере про хардкод указаны постоянные - логин,пароль,урл. а потом ты говоришь что если перенести файлы,то всё сломается.какие на хуй файлы? в примере их нет. у тебе ооочень неудачные примеры антишаблонов.короче, ты гавноблогер
@merionacademy
@merionacademy 2 ай бұрын
Если продолжите ругаться матом, то больше никаких карманных денег не получите 😉
@LithiumDeuteride-6
@LithiumDeuteride-6 Ай бұрын
Антипаттерн: использовать питухон для прототипирования, используйте JS например. Не надо этот питухон пихать во все дырки. И да питухон это сложный ЯП с кривой норкоманской реализацией. Самый простой ЯП это Lua, из действующих и современных ЯП проще нету.
@No1d3d
@No1d3d Ай бұрын
На питоне прототипы пишут только по двум причинам: его удобно читать ( он похож на псевдокод) и большая часть людей, которые начинают программировать, выбирают именно этот язык.
@kotejka1038
@kotejka1038 Ай бұрын
Лучше всего писать псевдокод
@exdevil3832
@exdevil3832 2 ай бұрын
Копи паст, это же про меня, я в знал что так нельзя делать, но каждый раз говорил потом вытащю на отдельную функцию и так уже у меня проверка данных в бд уже повторяется 3 раза 😄Надо как нибудь все переписать))
@anri77777777
@anri77777777 2 ай бұрын
Если код хороший, его переносят в библиотеку. Так что или подключать библиотеку, либо перепечатывать осознанно - никаких копипастов.
@TuTAH_1
@TuTAH_1 2 ай бұрын
Как-нибудь потом переписать - это сложнее и дольше, чем сразу написать нормально. Такие вещи лучше не оставлять на потом.
@exdevil3832
@exdevil3832 2 ай бұрын
@@TuTAH_1у меня не большой проект, я так пару месяцев только разработчик.я думаю впринципе что я чет все не правильно делаю и можно по лучше
@ViolentFury1
@ViolentFury1 2 ай бұрын
Открою секрет новичкам - всё что сказано в видео - мусор. Забудьте и пишите как приходит в голову. Так код проще и понятнее чем когда вы везде впихиваете сраные паттерны. Проблемы которые решают паттерны, по словам автора, почти никогда не случаются. Паттерны для неудачников
@merionacademy
@merionacademy 2 ай бұрын
Спасибо за ваше мнение, хотя форма его выражения несколько грубовата. Вероятно, вы профессионал в технических навыках, однако стиль коммуникации и уважение к собеседнику в интернет-пространстве многое говорят о человеке. Согласитесь, работая в компании, вы, скорее всего, не стали бы называть труды коллег ‘мусором’. От этого легко сделать вывод, что вы вряд ли являетесь профессионалом, способным давать советы. Тем не менее, оставим это на ваше усмотрение. Рекомендуем лишь подкрепить ваш профессионализм ссылкой на LinkedIn, чтобы люди могли убедиться в вашей компетенции, а не воспринимать ваши слова как нечто несерьёзное.
@mechanism-o4h
@mechanism-o4h 2 ай бұрын
А ты из тех, которые 15 лет на одном месте свою лапшу пишут или которые каждый год с места на место прыгают, наплевав, как их лапшу потом будут другие поддерживать?
@ViolentFury1
@ViolentFury1 2 ай бұрын
@@mechanism-o4h Вот и пример для новичков. Человек считает что он неспособен написать ничего хорошего не следуя каким то субъективным правилам, которые по его мнению каким то образом должны работать всегда и везде, в любом проекте. Новички, не берите такой пример, думайте сами как всё делать и с практикой станете в разы лучше дурачков которые молятся на паттерны, правила и книги от шарлатанов.
@mechanism-o4h
@mechanism-o4h 2 ай бұрын
@@ViolentFury1 ты что-то додумываешь того, чего я выше не писал, какой-то разговор самим с собой. Интересно было бы посмотреть, что ты сам создал, чтобы кого-то называть шарлатаном? Какой-то, видимо, всемирно известный проект? Или библиотеку, которой пользуются миллионы программистов по всему миру? А по поводу новичков, в любой крупной компании есть стандарты написания кода, по ним и будешь писать, иначе просто ни одно код-ревью не пройдешь. Независимо от того, что и в каких книгах написано. И если человек планирует какую-то карьеру, то он должен писать так, как понятно другим, а не как ему кажется, что верно, т.к. любой проект это командная работа, а не твой личный стартап. Если хочешь писать так, как нравится, то открывай ИП и велком.
@ViolentFury1
@ViolentFury1 2 ай бұрын
@@mechanism-o4h воооооот, уже ближе к правде насчёт того, что в писать паттерны и прочий мусор придётся потому, что в фирме какой то гений сделал такой стадарт, а не потому, что так писать хорошо. согласен а насчёт всемирно известного проекта, это по твоему критерий "хорошего кода" ? тогда почему всякие фейсбуки переписывали проект после того как стали всемирно известными ? потому, что из-за всех и стандартов кода, код был слишком хорошо и нужно было его слегка попустить ? ;D не понимаю а насчёт того, что код должен быть понятен комманде - так именно если писать как я он будет понятней комманде. пишешь как приходит в голову, смотришь что получается, делаешь код понятным для себя и он будет понятным для других. нет насильно внедрённой необходимости знать всякие паттерны/правила/архитектуры из кучи книг чтобы понять проект. пишешь примитивно и просто и тогда его поймёт даже начинающий программист. а внедрять какие то правила и паттерны из книг - зачем ? что, есть какие то эмпирические доказательства, что все эти правила делают код лучше ?
@r1-yzf216
@r1-yzf216 2 ай бұрын
ахаххаахх
@F1KAL931
@F1KAL931 2 ай бұрын
первый
@huhtykto6903
@huhtykto6903 2 ай бұрын
первый
Все о принципах SOLID
16:07
Merion Academy
Рет қаралды 38 М.
Что такое Nginx?
11:21
Merion Academy
Рет қаралды 123 М.
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН
Что такое Data Science?
16:05
Merion Academy
Рет қаралды 18 М.
Что такое Mikrotik?
10:21
Merion Academy
Рет қаралды 93 М.
Что такое REST на самом деле?
11:32
Merion Academy
Рет қаралды 94 М.
CI/CD - Простым языком на понятном примере
15:29
Артём Шумейко
Рет қаралды 123 М.
Про микросервисы за 8 минут
8:01
Merion Academy
Рет қаралды 160 М.
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН