Code Monkey home page Code Monkey logo

league-ta-oop's Introduction

Правила

  1. Каждое ДЗ должно быть в файле в src вида src/<имя>/<номер урока>.ts. Либо, несколько файлов, если задача большая
  2. ДЗ должно быть сделано в отдельной ветке, которая называется lesson-<номер урока>. Например, lesson-1
  3. Отправка происходит как Pull-Request в ветку master в этом репозитории на Github

Запуск кода

Как запускать код на TypeScript? Если вам не нужна сборка для веба или Node.js, то можно запускать через ts-node или bun. Пример:

npx ts-node src/boris/3.ts

bun src/boris/3.ts
  1. Установите Node.js или Bun JS, если не установлено
  2. Установки пакетов (1 из 3 команд на выбор) - npm i / yarn / bun i
  3. Пример скриптов запуска в package.json - скрипты start:example:. Не для редактирования - для примера!
  4. Не нужно писать свои скрипты запуска в package.json, просто запускайте файлы напрямую через npx ts-node или bun

ДЗ урок 5

Код из файлов урока 005* отрефакторен и перенесен в src/boris/5.tsx (Action, State, Reducer) и src/boris/6/app.tsx (React, Context, импорт редьюсеров из файла 005.tsx).

  1. Задание - ПЕРЕД ВЫПОЛНЕНИЕМ ДЗ сделать git pull и получить новую версию кода
  2. Задание - ознакомиться и вспомнить, что такое редъюсеры, экшены, стейт, и как они должны влиять на интерфейс согласно FLUX. (Т.е. вспомнить прошлый урок, перечитав файлы - src/boris/5.tsx, src/boris/6/app.tsx сейчас там чище)
  3. Задание - Прочитать файл src/boris/6/server.tsx, там всего 50 строчек. Установите bun и запустите этот файл. Откройте сайт (ссылка будет в консоли) и сопоставьте увиденное с содержимым папки src/boris/6. Не забудьте открыть консоль браузера, чтобы увидеть лог экшенов.
  4. Задание - в файле src/boris/6.tsx вы найдете пример асинхронной функции. На её примере реализуйте другие. Используйте async / await:
    • sleep - принимает число миллисекунд и возвращает Promise, который резолвится через указанное время
    • ping - принимает строку и число и возвращает Promise, который резолвится через указанное время с указанной строкой.
    • randomBatchPing - принимает массив строк. Для каждой строки создает ping со случайным временем. Каждая строка - результат вызова ping с рандомным числом и строкой из массива.
    • serializePings - принимает массив строк и возвращает Promise, который резолвится через указанное время со строкой вида ping1 ping2 ping3..., где ping1 - результат вызова ping с рандомным числом и первой строкой из массива и т.д.

ДЗ урок 3

  1. Сделать обертку над существующей функцией calculateStateDiff (либо её вариант) из файла ./src/boris/4.ts - calculateObjectDiffRecursive, , которая ищет различия в объектах, вложенных в объекты. Пример:
const state1 = {
  a: 1,
  b: {
	c: 2,
	d: 3,
  },
  e: 4,
};

const state2 = {
  a: 1,
  b: {
	c: 20,
	d: 3,
  },
  e: {
	f: 5,
  },
};

calculateObjectDiffRecursive(state1, state2) // -> ["b.c", "e"]
  1. Написать тесты на новую функцию calculateStateDiff
  2. На строке 29 в файле ./src/boris/4.ts есть ошибка TS. Напишите, почему она там, но различия между строками ищутся

ДЗ урок 2

Расширить класс LinkedList

  1. Ознакомиться с докой по JS итераторам (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator)
  2. Поддержать интерфейс reducable (пример в ./src/boris/2_2.ts)
  3. Сделать LinkedList с предохранителем от циклов (и конечно с [Symbol.iterator])

league-ta-oop's People

Contributors

valdman avatar juliecherner avatar alexanderyakubov avatar tiger656 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.