Тренажеры 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 #Программирование
Что творит, ты посмотри на него, глядишь и код писать научимся :) Спасибо за видео, на конец то у меня есть аргументы и ссылочка, почему делать нужно именно так а не как иначе. Не мало нового узнал что жило в мое голове, ну не было возможности описать это коллегам, спасибо и за это!!!
Хорошая тема. Чтобы код был чистый, понятный, эффективный и может быть даже красивый - это и вправду целое искусство! Развиваемся и качаем навыки, дамы и господа))
Офигенно качественный контент! Контент других похожих ютуберов которых мне кидает в рекомендациях и рядом не стоит с твоим (ДЖАВАСКРИПТИЗЕРЫ | КИРИЛЛ ПОЗДНЯКОВ, purple group)
Неплохой подход к донесению информации!) Но делать столько примеров на Классах?) Сейчас редко встретишь адекватный проект на классах. ФП, маст хев) Личное субьективное мнение)
@@vladimirsergeevich1269 А если проект на angular2+? А проекты на nestjs? Там же почти все на классах. Может вы просто много лет писали на react и у вас сформировалась проф. деформация?
Очень полезный контент. Видео вставки и музыка немного напрягает, в них смысла нет, а времени наверное уходит много на монтаж. Давай больше про чистый код на реакте и структуру приложений
Если обратить на 1 секунде видео, написано Фронтенд Show. Сразу становиться поняться, сам материал подаётся в развлекательной форме, а не так как будто ты на уроке изучаешь очередную тему. Мне нравиться такой формат, легкий и не напрягающий
@@КириллХора Забавно то, что автор хоть и подает материал в более развлекательной и простой форме, но у него наверное один из замых понятных и полезных каналов по рассуждению на разные темы в программировании. По крайней мере точно лучше чем у некоторых инфоцыган, которые еще за свой "контент" какие то деньги просят
По поводу приватных полей в js, такие методы ложатся в сам инстанс класса, а не в прототип. В итоге если у нас будет 100 экземпляров класса, то в них будет условно 100 одинаковых методов, вместо одного в прототипе. Это больше никого не смущает? П.С. тот самый олдфаГ
0:33 то чувство когда ты фрилансер и очень далек от всей этой темы с ревьверами, менеджерами, и прочими непонятным словам которые означают не понятных людей, У меня есть один крупный заказчик, но они сайтом не на столько занимаются что бы нанимать прям команду, я им один сайт допиливаю, сам слежу и сам правлю )
Тоже удивился такому подходу в видео. Однажды видел лекцию, где преподаватель настаивал, что программу НУЖНО начинать с комментариев, а уже потом кодить. Тема явно неоднозначная.
Про однобуквенные переменные категорически не согласен. Подчёркивания иногда нужны даже в тайпскрипте - вот попробуй в декораторе приватные свойства использовать... А вообще, интересно, хотя некоторые моменты показались вкусовщиной.
Про черточки: пока в JS/TS не появятся # или {public get; private set} как в C# мы так и будем писать черточки. Иначе как ты назовешь одно и то же поле только одно это публичный геттер, а другое - приватное поле? field и privateField?
Простите, а если надо посчитать координаты? Например написать функцию которая ищет пересечение двух линий, то вместо x, y, нужно писать что-то вроде xCoordinate, yCoordinate?
@@alexander551 это идеологическое подтягивание за уши,к русскому языку это уже не имет отношения, это как если бы китайцы обиделись бы что их китайцами называют и потребовали чтобы их ханьцами называли по аналгии.
Фигня это, если цикл не более 3-5 строк, то i вполне годится. Если цикл в цикле, то тут на любителя, я бы дал осмысленные имена переменным, т.к. приростить i во вложенном цикле - классика. Но тут, конечно, имхо.
Который раз говорят об идеале, что редко выполнимо в реалиях. 20 строк на функцию и класс 500 ? Посмотрите движок UnrealEngine 4, такие кассы как скелетел меши, експорты - громадные методы. Или Блендер - не выполнимо такое правило. Может быть в каком-то маленьком UI для вашего сайтеца - будет достаточно, но для реально большого проекта - даже не заморачивайтесь.
Метод/класс должен выполнять только одну задачу. Чтобы когда его сломают, сломалось что-то одно. Отсюда идёт правило, про число строк. Много строк - много на себя берёт. Надо разбить по задачам.
А теперь немного про сам JS, попробуйте понять смысл увиденного : [1,2,5,3,8,4][4,2] == 5 Итак, объясняю: - Берём сначал укропу (последнее значение во втором массиве 2) - Потом кошачью **** (первый массив) - 25 картошек, 17 мандавошек (вся ебанутая логика реализованная в js) - Ведро воды и *** туды (берём из первого массива значение с индексом 2 равное пяти) - Охапку дров (сравниваем с пятёркой) - И плов готов! (получаем ответ true)
Первые квадратные скобки это массив, а вторые это обращение к эоементам массива. Во вторых скобках нужно знать как работает оператор запятая. Кажется что в других языках это точно так же работает
@@AbraKadabra000 получается, что последнее обращение по индексу к массиву перетирает первое значение , потом они сравниваются нестрогим равенством если заменить на строку в массиве и сравнить строку '' 5'' === 5 строгим равенством будет false и если разобраться как работает приведение к типу в JS , то многие неочевидные вещи станут понятны
так ты спеку почитай, там такого кейса, чтобы в индексатор передавались значения через запятую нет. Пример приведённый тобой лишь недостаток реализации какого-то из движков (скорее всего это V8), попробуй на других.
@@bloodrik сам почитай и сам проверь :-Р всё там есть иначе бы не работало. В "индексер" передаётся не массив а значение. Которое сформировано с использованием оператора запятая. Почитай про оператор запятая, и может быть что-нибудь поймёшь)
То, что так можно написать в JS не значит, что так кто-то пишет. Как там, большая гибкость накладывает большую ответственность (я посмотрел нового челопука, не советую)
Посмотрел половину, видео ни о чем, тезисы говно, ни выдерживающее малейшей критики, а автору бы самому поучиться перед тем как видео выкладывать. Засоряет мозги начинающих кодеров брехней про чистый код..
Умные мальчики пишут контруктивную критику вместо набрасывания фекалий. Я бы с удовольствием почитал почему не стоит использовать практики, которые применяются на большинстве крупных проектов
@@it2138 вот именно, что мальчики. А мне не очень интересно разуверять последователя секты чистого кода, но раз уж ты ответил мне, то я тоже постараюсь
@@it2138 про сокращение переменных: любой 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 для библиотек общих для проекта это де-факто стандарт в индустрии. Так что рекомендую тебе разобраться в этом вопросе получше, прежде чем делать такие громкие заявления