- Автор: https://github.com/tshemsedinov
- Новости в телеграм канале: https://t.me/HowProgrammingWorks
- Для вопросов группа в телеграме: https://t.me/MetarhiaHPW
- Youtube: https://www.youtube.com/@MetatechEducation/playlists
- ⭐ Введение
- ⭐ Идентификаторы: переменные и константы
- ⭐ Запись значений и типы данных
- ⭐ Функции и блоки, область видимости, контексты
- ⭐ Условия и ветвление
- ⭐ Циклы: for, for..of и for..in
- ⭐ Циклы while и do..while
- ⭐ Коллекции: массивы и объекты - Array и Object
- ⭐ Объекты: примеси и сериализация
- 🧑💻 Задачи 1-5
- 🧑💻 Разбор решения задач 1-5
- ⭐ Коллекции: Множества Set и хеш-таблицы Map
- ⭐ Callback - функции обратного вызова и Таймеры
- ⭐ Замыкания (closure) функция и контекст
- ⭐ Async/await - асинхронные функции
- ⭐ Ошибки (Error), исключения (exceptions), баги, throw, try/catch
- ⭐ Системы модульности: ESM (ECMAScript Modules) та CJS (CommonJS)
- ⭐ Декомпозиция программы на модули
- ⭐ Рекурсия (recursion), выход из нее и стек вызовов (call stack)
- 🧑💻 Задачи: 38 примеров плохого кода для переписывания
Продолжение будет...
Более сложные лекции можно найти тут: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Fundamentals.md
🧑💻 Задачи: https://github.com/HowProgrammingWorks/Exams/tree/master/Tasks
- Код изначально работает, и выдает правильный результат, вам нужно исправлять файл, но не сломать код
- Используйте тесты из каталога
Tests
для проверки решений. - Ваша задача улучшить: понятность кода, стиль, простоту
- Тут чеклист частых ошибок (они точно должны быть исправлены):
- Не модифицируйте входные параметры функций
- Предпочитайте стрелочные функции
- Используйте eslint и prettier с нашими настройками (см. в корне репозитория NodejsStarterKit)
- Предпочтительно использовать
for..of
, режеArray/map
, режеfor
по переменной, избегайтеfor..in
иforEach
- Используйте промежуточные идентификаторы разделяя длинные выражения
- Предпочитайте
const
, реже используйтеlet
, но никогда не используйтеvar
- Преобразуйте все магические значения в константы
- Придерживайтесь правил именования идентификаторов
- Хорошо подумайте над именами идентификаторов, чтобы при прочтении кода всем было понятно их содержимое
- Не делайте слишком длинных функций
- Не делайте большую стопку if-выражений, вместо этого используйте массивы и объекты
- Важно не переписать с нуля, а именно пошагово улучшать
👉 Индекс других курсов: https://github.com/HowProgrammingWorks/Index