Тренажеры HTML Academy (HTML, CSS, JS, React) + Академия + Книга рецептов фронтендера + комьюнити за 99 рублей: boosty.to/how-to-learn-it Какие тренажеры бывают: htmlacademy.ru/courses#fe-start В моем Telegram - канале "Как пройти в IT?" публикуется ровно один пост в день! Это отборный и полезный материал для вашего развития! На пути в синьоры-помидоры важно каждый день уделять образованию хотя бы 10-15 минут! Подписывайтесь: t.me/howToLearnIT ________________ 0:00 Пролог 00:58 Первое правило чистого кода 02:00 Пиши, Сокращай 02:50 Общее и частное 03:33 Проблема, которая есть в каждом проекте 05:40 Как укратить функцию? 08:11 Линтер - верный спутник чистого кода 09:02 Открытость - Закрытость 09:27 Гигантизм 10:15 Какие комментарии самые полезные? 11:40 Газетная метафора в JavaScript 12:32 Порядок в доме 13:35 Психология фронтенда 14:00 Настольная книга, каждого разработчика 14:26 Резюме ________________ Упоминаются в ролике: 1) PowerThesaurus - www.powerthesaurus.org/ 2) Чистый код Мартин Роберт К. #JavaScript #js #Frontend #Программирование
@ЭдгарЕдигарян-ц3ъ2 жыл бұрын
природе осталось очень мало 🤣🤣🤣🤣🤣🤣 kzbin.info/www/bejne/bXm8m2ePm7OAiK8
@uvy.studios3 жыл бұрын
Дружище, ты стал первым, на ком я проверил работу ютубовского колокольчика. Респект!
@enjoymtx3 жыл бұрын
Кстати, я тоже)
@pirozhok20973 жыл бұрын
+
@volodimiryemshyn7153 жыл бұрын
Что творит, ты посмотри на него, глядишь и код писать научимся :) Спасибо за видео, на конец то у меня есть аргументы и ссылочка, почему делать нужно именно так а не как иначе. Не мало нового узнал что жило в мое голове, ну не было возможности описать это коллегам, спасибо и за это!!!
@olehy50003 жыл бұрын
Очень нравится подача материала! Очень полезный контент! Подписка и колокол однозначно)
@androidpasha Жыл бұрын
Очень полезная информация. Спасибо.
@alexeleave45513 жыл бұрын
Хорошая тема. Чтобы код был чистый, понятный, эффективный и может быть даже красивый - это и вправду целое искусство! Развиваемся и качаем навыки, дамы и господа))
@Ramosok Жыл бұрын
Очень хороший контент, весёлый позновательный всегда жду с нетерпением новых роликов.
@dimakovalenkov78352 жыл бұрын
приватные поля через # это пока экспериментальное предложение так что продолжаем чёрточки ставить, ребят = )
@dreykanbern1453 Жыл бұрын
Привет из будущего
@astkh4381 Жыл бұрын
Лучше ts использовать
@coffeebit6468 Жыл бұрын
Восхищаюсь полезностью и практичностью твоих видео!🎉
@YarkiiYa3 жыл бұрын
Обожаю твою подачу! Супер респектище)
@max_mgtow3 жыл бұрын
Приветствую дружище 🤝 Всегда жду роликов👍
@snatvb3 жыл бұрын
с 1:55 поржал) это я когда ревьюю своих соколиков)))
@olezhonnv3215 Жыл бұрын
Вкусовщина сплошная. Чувак, тебе в проповедники надо - больше заботаешь)
@apsolution47223 жыл бұрын
ЗИП файл! Теперь я буду писать чистейший арийский код, спасибо
@DimaTiunov Жыл бұрын
11:33 используйте let, назначение которого полностью не заменяет var
@Re_p1ay3 жыл бұрын
Очень круто, спасибо за твой труд 😊
@Nabunga3 жыл бұрын
Клеевое видео, спасибо за труд!
@noname-nh8mx Жыл бұрын
Офигенно качественный контент! Контент других похожих ютуберов которых мне кидает в рекомендациях и рядом не стоит с твоим (ДЖАВАСКРИПТИЗЕРЫ | КИРИЛЛ ПОЗДНЯКОВ, purple group)
@malyarevich Жыл бұрын
8:22 что это за сервис?
@bublik4623 жыл бұрын
Очень интересно и полезно , спасибо !
@saitaro Жыл бұрын
Хорошие советы. Для Python тоже годятся.
@EsteradThyssen3 жыл бұрын
Осторожно, в видео присутствует 25 кадр, вызывающий привыкание и стимулирующий ставить лайк.
@nikolay_51 Жыл бұрын
Осторожно, в этом комментарии тоже присутствует 25 кадр, который заставляет поставить лайк этому комментарию:)
@motivator3d Жыл бұрын
Что такое 25 кадр?
@Amelin1207 Жыл бұрын
@@motivator3dто что не успевает уловить человеческий глаз)
@motivator3d Жыл бұрын
@@Amelin1207 спасибо
@АлексейБомко-ь1ш3 жыл бұрын
Не знаю почему, но очень захотелось написать комментарий, поставить лайк и нажать колокольчик. Магия какая-то!)
@romanryaboshtan92703 жыл бұрын
1:39 Этого я не знал, респект
@soulwind75773 жыл бұрын
- Да кто писал этот код, тут лишний пробел, нейминг не правильный :) - Это был ты - Какие божественные пробелы XD
@Evgeny..3 жыл бұрын
Спасибо за хорошие мысли .но сопровождающие видео-фрагменты немного пугают))
@pasokolov Жыл бұрын
Для понимания бэка и фронта в плане разности названий есть великая вещь - swagger и OpenAPI
@hola-ig9gb2 жыл бұрын
После этого видео захотелось писать хороший код ещё раз в десять сильнее чем до него.
@FailValiev3 жыл бұрын
Да, как раз читаю "Чистый код" от известного дядюшки
@chirkov2 жыл бұрын
"В коде коллег" услышал как "В коде калек" ))
@dmaberlin2 жыл бұрын
Спасибо!!!
@Volodymyr-Serhiovych3 жыл бұрын
Неплохой подход к донесению информации!) Но делать столько примеров на Классах?) Сейчас редко встретишь адекватный проект на классах. ФП, маст хев) Личное субьективное мнение)
@lol-q1v3 жыл бұрын
хз чел. в маленьких проектах может быть. в больших проектах классы очень часто встречаются
@Volodymyr-Serhiovych3 жыл бұрын
@@lol-q1v за последние 5 лет, только на овер старых проектах видел классы…ито если тим лид пхп-шник) и я говорю за большие saas продукты.
@bubblesort63683 жыл бұрын
@@Volodymyr-Serhiovych А если проект на angular2+? А проекты на nestjs? Там же почти все на классах. Может вы просто много лет писали на react и у вас сформировалась проф. деформация?
@ТурдыбекДиас2 жыл бұрын
@@Volodymyr-Serhiovych Я хз, больше классы нравятся. Наверное привык из-за других языков.
@ТурдыбекДиас2 жыл бұрын
Да и классы более чисто выглядит.
@illiaonishchenko63033 жыл бұрын
топ видео, годный контент
@АндрейБ-п4я9н2 жыл бұрын
палец вверх за 25 кадр))
@zergzerg48442 жыл бұрын
можно ссылку на видео про декомпозицию, не могу найти
@tatyana8852 жыл бұрын
спасибо
@AbraKadabra0003 жыл бұрын
Иногда на кодревью просят кократить context до ctx , и element до el ))
@oleg_deezus3 жыл бұрын
Это нормально, если так в проекте везде и проект достаточно зрелый. Лучше безобразно, но однообразно.
@soulwind75773 жыл бұрын
мне попадалось, что наоборот, но так лень бывает в элементарных местах прописывать полное название )))
@ИмяФамилия-э4ф7в3 жыл бұрын
@@soulwind7577 имхо, важно просто приучить себя, и потом так пишешь на автомате.
@diogen8443 Жыл бұрын
User в проучаемой дате? Меня тл все время дрчил чтоб было абстрактное название.
@awenn20152 жыл бұрын
0:33 то чувство когда ты фрилансер и очень далек от всей этой темы с ревьверами, менеджерами, и прочими непонятным словам которые означают не понятных людей, У меня есть один крупный заказчик, но они сайтом не на столько занимаются что бы нанимать прям команду, я им один сайт допиливаю, сам слежу и сам правлю )
@konstantinchernyaev3011 Жыл бұрын
Про черточки: пока в JS/TS не появятся # или {public get; private set} как в C# мы так и будем писать черточки. Иначе как ты назовешь одно и то же поле только одно это публичный геттер, а другое - приватное поле? field и privateField?
@konstantinchernyaev3011 Жыл бұрын
Это про поля. В методах такое встречается гораздо реже
@Eugeniyges2 жыл бұрын
Простите, а если надо посчитать координаты? Например написать функцию которая ищет пересечение двух линий, то вместо x, y, нужно писать что-то вроде xCoordinate, yCoordinate?
@funnycatvideo8968 Жыл бұрын
i-index, j-jindex, k-kindex?
@mikaelgevorgyan45214 күн бұрын
А если функция такая 🤔, что надо так сделать?
@АлександрРыбальченко-г8ч3 жыл бұрын
Привет, недавно решил попрбовать js, что бы ты мог посоветовать для начинающего, после изучения синтаксиса?
@bubblesort63683 жыл бұрын
Потом что то из большой тройки на выбор: angular, react, vue
@noisekov Жыл бұрын
@@bubblesort6368 ну точно не после изучения синтаксиса 😂😂😂
@AbraKadabra0003 жыл бұрын
"Кодирование", это из области алкоголизма))
@darkside31843 жыл бұрын
лайк за 25ый кадр)
@VadimSuharnikov2 жыл бұрын
8:45 Ты чего, форматтер не врубил что ли, пробел пофикси! Нижний private имеет лишний пробел в отступе.
@forsez49042 жыл бұрын
13:08 Уши шапочкой не закрывают 😫 , а так видео полезное
@jorgenUA3 жыл бұрын
Просьба: объяснить на примерах что класть в Redux, а что нет
@АндрейСидоров-б7н10 күн бұрын
Про кавычки вконце не сказал
@cxldz58593 жыл бұрын
А как назвать итератор в ситуации, когда у меня цикл в цикле? Вместо i можно назвать index, а какие альтернативы для k/j?
@ИмяФамилия-э4ф7в3 жыл бұрын
Фигня это, если цикл не более 3-5 строк, то i вполне годится. Если цикл в цикле, то тут на любителя, я бы дал осмысленные имена переменным, т.к. приростить i во вложенном цикле - классика. Но тут, конечно, имхо.
@VasyaFF3 жыл бұрын
Я методы пишу в том порядке, в котором они используются программой. (понятно, что так не всегда возможно) Так логичнее, или нет?
@ГенаПетров-н5ы3 жыл бұрын
Очень полезный контент. Видео вставки и музыка немного напрягает, в них смысла нет, а времени наверное уходит много на монтаж. Давай больше про чистый код на реакте и структуру приложений
@КириллХора3 жыл бұрын
Если обратить на 1 секунде видео, написано Фронтенд Show. Сразу становиться поняться, сам материал подаётся в развлекательной форме, а не так как будто ты на уроке изучаешь очередную тему. Мне нравиться такой формат, легкий и не напрягающий
@soulwind75773 жыл бұрын
@@КириллХора Забавно то, что автор хоть и подает материал в более развлекательной и простой форме, но у него наверное один из замых понятных и полезных каналов по рассуждению на разные темы в программировании. По крайней мере точно лучше чем у некоторых инфоцыган, которые еще за свой "контент" какие то деньги просят
@alex-lar3 жыл бұрын
Половины слов не понял, конечно, но было поучительно
@konstantinchernyaev3011 Жыл бұрын
Про порядок функций это булщит. Когда разбираешься с кодом лучше чтобы функции шли по порядку вызова, а API IDE подскажет
@tohadolinskiy7791 Жыл бұрын
В целом круто. Но некоторые вещи нереалистичные в коммерческом проекте с ограниченным буджетом
@unknown96212 жыл бұрын
Блин, у тебя очень знакомый голос. У тебя есть (был) еще какой-то канал не связаный с программированием?
@WATCHAKOV2 жыл бұрын
Код лучше сократить, потому что чем меньше кода, тем меньше памяти и тем лучше будет работать программа или сайт.
@bebe55881221 күн бұрын
Современные сборщики уже давно умеют разбивать код на чанки, а фреймворки поддерживают их ленивую подгрузку.
@YuriiHoroshkov Жыл бұрын
По поводу приватных полей в js, такие методы ложатся в сам инстанс класса, а не в прототип. В итоге если у нас будет 100 экземпляров класса, то в них будет условно 100 одинаковых методов, вместо одного в прототипе. Это больше никого не смущает? П.С. тот самый олдфаГ
@LuckyStilet13 жыл бұрын
Приятно читать - понятие растяжимое, лично я ненавижу отступы между функциями. Начало функции видно за 2 метра.
@AbraKadabra0003 жыл бұрын
Про комментарии к коду не согласен. Посмотрите исходники того же реакта) . как правило бесполезного там нет
@TheMorisBlack3 жыл бұрын
Тоже удивился такому подходу в видео. Однажды видел лекцию, где преподаватель настаивал, что программу НУЖНО начинать с комментариев, а уже потом кодить. Тема явно неоднозначная.
@romanryaboshtan92703 жыл бұрын
10:42 Этот принцип не подходит, когда ты пишешь алгоритм какой-то, там придётся комментировать, в остальных случаях я с тобой согласен
@alexanderafonin1688 Жыл бұрын
Вот это я понимаю поле для холивара))))
@chikenmacnugget3 жыл бұрын
моя настольная книжечка
@qwertin19983 жыл бұрын
В чем смысл писать onUserChange и ТД на обработчиках, какое это даёт представление о том, что конкретно делает обработчик? Имхо это глинокод
@bebe55881221 күн бұрын
А зачем тебе это представление?)) Что-то делает и ладненько ахах.
@bebe55881221 күн бұрын
А если серьезно, на то он и обработчик, что как-то реагирует на события. Если правильно декомпозировать логику, то не особо то и важно, как он называется, потому что он, по хорошему, будет вызывать методы, которые уже и представляют собой реализацию. К тому же в этом примере, насколько я помню, показывается публичный интерфейс, и, если это так, то тем более не должно быть никаких goToIndexedDBAndSaveChangedUserOrIComeInUrHouseAndKillUrDog()
@alfany62523 жыл бұрын
Жду C#
@mikaelgevorgyan45214 күн бұрын
Особенно когда одна функция будет работать с 1000 и более сущностями и все приносят ту же самую сущность, тогда, как их наименовывать? 😂
@chip2533 жыл бұрын
Который раз говорят об идеале, что редко выполнимо в реалиях. 20 строк на функцию и класс 500 ? Посмотрите движок UnrealEngine 4, такие кассы как скелетел меши, експорты - громадные методы. Или Блендер - не выполнимо такое правило. Может быть в каком-то маленьком UI для вашего сайтеца - будет достаточно, но для реально большого проекта - даже не заморачивайтесь.
@ritsu1332 жыл бұрын
причем в том же реакте функцию ты по сути пишешь как полноценный класс, со своими методами и ретерном возможного огромного jsx'a
@Akasa_Lust2 жыл бұрын
Метод/класс должен выполнять только одну задачу. Чтобы когда его сломают, сломалось что-то одно. Отсюда идёт правило, про число строк. Много строк - много на себя берёт. Надо разбить по задачам.
@РоманДерябин-е2к3 жыл бұрын
(e) => {} ---- на тебе в борщ!
@MrVertu013 жыл бұрын
Видео мантра прям
@trays1377 Жыл бұрын
В проекте,а не НА. "На" это то что сверху, а "В"внутри. Как будто речь про работодателя который как раз стоит над проектом.
@alexander551 Жыл бұрын
В Украине?
@trays1377 Жыл бұрын
@@alexander551 это идеологическое подтягивание за уши,к русскому языку это уже не имет отношения, это как если бы китайцы обиделись бы что их китайцами называют и потребовали чтобы их ханьцами называли по аналгии.
@artempronenko51053 жыл бұрын
Экстрим код не одобрит)
@catalan28573 жыл бұрын
Пусть не одобряют, у них вообще какой-то клоун-контент
@lancelottheknightofthelake52403 жыл бұрын
@@catalan2857 Гении зачастую становятся отвергнуты обществом. Ну а вообще Экстрим код всё по факту говорит
@artempronenko51053 жыл бұрын
@@catalan2857 так и есть) они же не делают обучающий контент. Просто угарают мужики)
@heisserkaiser3943 жыл бұрын
@@catalan2857 излишняя серьёзность - первый признак низкого IQ
@max_mgtow3 жыл бұрын
Петухони поставит 😆
@СултанНуриев-ъ3м2 жыл бұрын
Че мой коммент удалил =)
@Howtogoit2 жыл бұрын
Это промысел ютуба)
@timofey9052 Жыл бұрын
13:24, не объективно)
@realmanproject75293 жыл бұрын
збс
@QwDragon2 жыл бұрын
Про однобуквенные переменные категорически не согласен. Подчёркивания иногда нужны даже в тайпскрипте - вот попробуй в декораторе приватные свойства использовать... А вообще, интересно, хотя некоторые моменты показались вкусовщиной.
@mikaelgevorgyan45214 күн бұрын
Ммм комменты используйте😅🗿, обязательно без них проект будут поддерживать месяцами это ужасно😅😅
@ИгорьКовальков-м3ш3 жыл бұрын
kzbin.info/www/bejne/bXm8m2ePm7OAiK8 рили? у кого такой же шрифт, на таком мониторе?
@AbraKadabra0003 жыл бұрын
У меня, чтобы коллеги подходя могли видеть что именно написано)
@ИгорьКовальков-м3ш3 жыл бұрын
@@AbraKadabra000 блиииин, жадь что я на удаленке, тоже бы так сделал
@heisserkaiser3943 жыл бұрын
А теперь немного про сам JS, попробуйте понять смысл увиденного : [1,2,5,3,8,4][4,2] == 5 Итак, объясняю: - Берём сначал укропу (последнее значение во втором массиве 2) - Потом кошачью **** (первый массив) - 25 картошек, 17 мандавошек (вся ебанутая логика реализованная в js) - Ведро воды и *** туды (берём из первого массива значение с индексом 2 равное пяти) - Охапку дров (сравниваем с пятёркой) - И плов готов! (получаем ответ true)
@AbraKadabra0003 жыл бұрын
Первые квадратные скобки это массив, а вторые это обращение к эоементам массива. Во вторых скобках нужно знать как работает оператор запятая. Кажется что в других языках это точно так же работает
@____Olga__3 жыл бұрын
@@AbraKadabra000 получается, что последнее обращение по индексу к массиву перетирает первое значение , потом они сравниваются нестрогим равенством если заменить на строку в массиве и сравнить строку '' 5'' === 5 строгим равенством будет false и если разобраться как работает приведение к типу в JS , то многие неочевидные вещи станут понятны
@bloodrik3 жыл бұрын
так ты спеку почитай, там такого кейса, чтобы в индексатор передавались значения через запятую нет. Пример приведённый тобой лишь недостаток реализации какого-то из движков (скорее всего это V8), попробуй на других.
@AbraKadabra0003 жыл бұрын
@@bloodrik сам почитай и сам проверь :-Р всё там есть иначе бы не работало. В "индексер" передаётся не массив а значение. Которое сформировано с использованием оператора запятая. Почитай про оператор запятая, и может быть что-нибудь поймёшь)
@ИмяФамилия-э4ф7в3 жыл бұрын
То, что так можно написать в JS не значит, что так кто-то пишет. Как там, большая гибкость накладывает большую ответственность (я посмотрел нового челопука, не советую)
@flatl1ne2 жыл бұрын
Посмотрел половину, видео ни о чем, тезисы говно, ни выдерживающее малейшей критики, а автору бы самому поучиться перед тем как видео выкладывать. Засоряет мозги начинающих кодеров брехней про чистый код..
@Howtogoit2 жыл бұрын
Умные мальчики пишут контруктивную критику вместо набрасывания фекалий. Я бы с удовольствием почитал почему не стоит использовать практики, которые применяются на большинстве крупных проектов
@flatl1ne2 жыл бұрын
@@Howtogoit вот именно, что мальчики. А мне не очень интересно разуверять последователя секты чистого кода, но раз уж ты ответил мне, то я тоже постараюсь
@flatl1ne2 жыл бұрын
@@Howtogoit про сокращение переменных: любой js программист, да и не только, прекрасно знает самые популярные сокращения, вроде el == element, i == index, btn == button, db == database и т.д. Это те сокращения, которые мы используем постоянно и читать их не составляет никакого труда. Почему же не использовать полное слово, вместо сокращения, чтобы "даже менеджер понял ваш код"? Во-первых, нахуя менеджеру вообще смотреть ваш код, во-вторых, чтобы уменьшить размер конечного файла и быстрее передавать его по сети === у клиента быстрее грузится ваше приложение, в-третьих, чтобы код стал более лаконичным в местах, где не требуется излишнее обьяснение происходящего "const mailBoxes = users.map(u => u.mail)", в-четвертых, чтобы меньше писать. Про обобщения в нейминге: Это неплохой совет, но какой же отсосный пример, начиная от того, что fetch возвращает тебе не юзера, а обьект ответа Response (точнее промис, который резолвит обьект ответа в случае успеха), и твой нейминг только запутает читающего код, заканчивая тем, что даже тело ответа может содержать не юзера, а что-то вроде { message: 'success', code: 0, data: и тут обьект юзера }, в общем, неубедительно Про разный нейминг для одной сущности мне понравилось Про нейминг функций тоже неплохо, но я считаю и я такой не один, что все функции (мб за исключением предикатов) должны начинаться с глаголов, т.к. функция всегда отражает некоторое действие, не clickHandler, а handleClick Про отступы тоже хороший совет А вот про комментарии это полный ахтунг! Комментарии не то, что желательны, а зачастую обязательны. Тезис про то, что код должен говорить за себя - чушь. Что, например, сможет сказать за себя функция, в которой используются только битовый операторы или функция реализующая мат. формулу или что скажет за себя функция throttle, человеку не знакомому с ней? Очевидно, что комментарии нужно использовать, но нужно использовать их грамотно. Те комментарии, что у тебя в примерах действительно лучше не писать. Комментарий должен давать понимание, для чего написана данная функция или класс, как их можно использовать, не углубляясь в детали реализации (кому надо сам прочитает и поймет). Реализацию стоит описать в комментарии, когда она не очевидна, например, использует нестандартный, но эффективный алгоритм. А уж использовать jsdoc для библиотек общих для проекта это де-факто стандарт в индустрии. Так что рекомендую тебе разобраться в этом вопросе получше, прежде чем делать такие громкие заявления
@wraithking34062 жыл бұрын
@@flatl1ne постарался) Автору за видео большое спасибо! Эстетика - превыше всего
@ionizePlaying Жыл бұрын
в Dart приватные методы все еще делаются с черточками