Jump to content
Akinix
Sign in to follow this  
Everlasting Summer

Разработка интерфейсов (React)

Recommended Posts

Список лекций:

  • Открытие Школ и Лектория
  • Инструменты разработки
  • Git
  • Асинхронность
  • Node.JS
  • React
  • Продвинутый React
  • Построение React-приложения
  • Тесты: Модульное тестирование, Интеграционное тестирование интерфейсов
  • Типизация
  • Инфраструктура
  • Продвинутый JS

Лекции, которые будут добавлены позже:

  • Сборка
  • Performance
  • Разбор домашнего задания по лекции Продвинутый JS
  • Функциональное программирование
  • Локализация
  • Разбор домашнего задания по лекции Сборка
  • Интенсив тренировки по алгоритмам
  • Ярмарка вакансий по направлениям + выкладываем тестовое задание на контесте
  • Навыки публичных выступлений
  • Общая встреча с руководителями и выпускниками
  • Weekend offer

Открытие Школ и Лектория

Инструменты разработки

Git

Асинхронность

Домашнее задание:

 

Где-то в параллельной вселенной всё асинхронное, даже массивы...

Внутри асинхронного массива может храниться либо число, либо другой асинхронный массив, а взаимодействие происходит через два метода:


type Elem = AsyncArray | number;  
 
type AsyncArray = {  
  // получить элемент по индексу  
  read(index: number, callback: (elem: Elem) => void): void;  
 
  // Получить количество элементов в массиве  
  size(callback: (size: number) => void): void;  
}  

Напишите функцию, которая сделает из вложенного асинхронного массива простой плоский массив и сохранит порядок элементов

Надо учесть, что, иногда, методы срабатывают с ошибкой и вместо результата возвращают null

Кроме того, операции асинхронные и занимают какое-то время, поэтому надо придумать что-то более оптимальное, чем последовательно читать каждый следующий элемент в массиве...

Формат ввода

Объект AsyncArray:


AsyncArray([  
    8,  
    AsyncArray([  
        15,  
        16,  
    ]),  
    AsyncArray([  
        AsyncArray([  
            AsyncArray([  
                42,  
                AsyncArray([  
                    AsyncArray([]),  
                    23,  
                ]),  
            ]),  
        ]),  
        4,  
    ]),  
])

Формат вывода

Массив чисел:


[8, 15, 16, 42, 23, 4]

Примечания

Задачу требуется решить на JavaScript (ES2017) и оформить решение по шаблону:


module.exports = async function (input) {  
    // основная функция  
 
    return answer;  
}  
 
// вспомогательные функции

Если после нескольких посылок вердикт по решению — IL, скорее всего, решение работает слишком медленно. Вы же помните, что не все await одинаково полезны?

Песочницу для решения можно загрузить по ссылке: playground.js

 

Node.JS

React

Продвинутый React

Построение React-приложения

Тесты: Модульное тестирование, Интеграционное тестирование интерфейсов

Типизация

Домашнее задание:

 

Домашнее задание к лекции расположено в этом репозитории https://github.com/nikalexxx/ts-homework

Разбор домашнего задания:

Инфраструктура

Продвинутый JS

Домашнее задание к лекции "Продвинутый JS"

 

Напишите свою реализацию Set, почти как в ES6 (см. playground (YetAnotherSet).js)

Примечания

  • В коде решения запрещено использовать встроенные Set и Map
  • Решение должно работать на ES 2019 (Node 12) и его требуется оформить по шаблону:

module.exports = YetAnotherSet  
 
function YetAnotherSet (iterator = []) {  
   // основная функция  
   // ...  
}  
 
// вспомогательные функции  
// ...

Песочницу для решения можно загрузить по ссылке:

playground (YetAnotherSet).js

 

Edited by Бесконечное лето

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...