ความคิดเห็น •

  • @konstantynnazarenko101
    @konstantynnazarenko101 5 หลายเดือนก่อน +2

    Много чего смотрел и много по чем учился, но такие доходчивые объяснения вижу впервые. Спасибо, Димыч, за твой невероятный труд!

  • @DanilGalochkin
    @DanilGalochkin 11 หลายเดือนก่อน +8

    Никогда не оставляю комментарии, но тут увидел в рекомендациях новый выпуск курса и не удержался. Я Учился по твоим видосам, в частности тем с социальной сетью, и скажу что он мне очень помог в свое время. Спустя время я уже работаю мидл фронтенд разработчиком в крупной финтех компании, но так и не успел поблагодарить тебя за все знания, что ты дал_)
    Через полчаса у меня собеседование в компанию таких масштабов, о которых в начале пути я мог только мечтать. Так что ребята, все кто смотрит этот курс и учится 24/7 без сна как и я пару лет назад - вам желаю огромной удачи, терпения и сил. Только с помощью упорного труда все получится. Я уверен, что как и в те времена, многие из вас думают что "это не про меня", "мне отказывают 99% компаний", "может все бросить" - гоните мысли в сторону и продолжайте работать! Буду рад ответить на вопросы, если они вдруг появятся у кого бы то ни было

    • @ITKAMASUTRA
      @ITKAMASUTRA 11 หลายเดือนก่อน +3

      Спасибо за свод историю и мотивацию

    • @ДмитрийА-э6н
      @ДмитрийА-э6н 11 หลายเดือนก่อน

      Привет. Во сколько лет начал учиться и сколько по времени это заняло?

    • @DanilGalochkin
      @DanilGalochkin 11 หลายเดือนก่อน

      @@ДмитрийА-э6н привет! Начал учится фронту на 2 курсе универа(гуманитарной специальности), сейчас заканчиваю 4ый. Где то 9 месяцев учился нон-стоп, потом работу нашел и вот сейчас сменил ее(сегодня пришел оффер)

  • @lisaborysenko7249
    @lisaborysenko7249 2 หลายเดือนก่อน

    прям очень крутой формат обучения

  • @timuratavaliev2566
    @timuratavaliev2566 8 หลายเดือนก่อน

    Спасибо!
    Маленькими шагами, но ежедневно всё закрепляю полученные знания, спасибо!

  • @Maksym-e6e
    @Maksym-e6e 9 หลายเดือนก่อน

    Крутяк, пазлики складываются и все становится понятнее. Огромное спасибо!

  • @serdarbabayev7617
    @serdarbabayev7617 11 หลายเดือนก่อน +1

    Офигенная рекламная вырезка - маркетологи начали работать:))

  • @ВадімПошук
    @ВадімПошук 11 หลายเดือนก่อน

    Дякую велике =)
    Чекаємо наступні відео!

  • @doroshkent
    @doroshkent 11 หลายเดือนก่อน

    ах как нужно, полезно и доступно. летим дальше!

  • @Natalia-zx6nl
    @Natalia-zx6nl 10 หลายเดือนก่อน

    Cпасибо огромное за вашу работу! Ждем с нетерпением следующее видео.

  • @Awe88Some
    @Awe88Some 11 หลายเดือนก่อน +3

    РЕАЛЬНО ТАК БЫСТРО?????????? БОЖЕЧКИ СПАСИБО ОГРОМНОЕ!!!!!!!!!!!!!!!!! лучший, лучший, тупа лучший, СПАСИБО((((((((((:

  • @aktotuttttt
    @aktotuttttt 10 หลายเดือนก่อน

    ну лучший просто! благодарочка и ждем с нетерпением новые выпуски!!!

  • @talaevleonid696
    @talaevleonid696 5 หลายเดือนก่อน

    Благодарю за твой труд))

  • @magomedsapraliev9548
    @magomedsapraliev9548 11 หลายเดือนก่อน

    дождался продолжения этого курса, наконец-то

  • @kelter1429
    @kelter1429 11 หลายเดือนก่อน

    Димыч, человеческое тебе спасибо за доступную информацию.

  • @userfhhoyhgfdgg
    @userfhhoyhgfdgg 7 หลายเดือนก่อน

    Спасибо за урок. Как всегда супер

  • @All_be_good
    @All_be_good 11 หลายเดือนก่อน

    Мужик, спасибо тебе огромное за труды. Я, как и многие, почерпнул много нового благодаря тебе!

  • @Савелий-з6ю5н
    @Савелий-з6ю5н 9 หลายเดือนก่อน

    Димыч и КО, спасибо за реальный трудный и полезный труд!!! Жду следующее видео. PS: очень ... очень жду следующее видео

  • @QaZaQ_Stranger
    @QaZaQ_Stranger 8 หลายเดือนก่อน +1

    Продолжаю может кому-то поможет!
    4:20 Начало урока
    6:37 Объяснение РЕДЬЮСЕРА (Димыч рисует)
    10:09 Как можно писать Array или YourNameType[ ] , но Димыч приучает нас к женерикам
    17:54 Что такое ТЕСТ? из каких частей он состоит?
    19:42 Теперь пишем редьюсер для тасок
    23:51 Начинаем писать тест на нашу заготовочку (шаблон/болванку) вспоминаем принцип TDD сначала тесты потом логика, пишем юнит-тест уже на task
    1:01:28 Димыч объясняет что action может работает на два редьюсера a -> R & R, обращаемся уже не к редьюсеру todolist а к редьюсеру task (пишем тест task-reducer.test.ts
    1:07:34 Отличие toBe & toEqual
    1:09:26 Создаем гибридный тест-редьюсер todolists-tasks-reducer.test.ts
    1:14:30 .not.toBeDefined() или .toBeUndefined()
    1:16:10 Подводим итоги
    1:18:12 Локальный стейт создается двумя способами useState и useReducer

    • @ITKAMASUTRA
      @ITKAMASUTRA 8 หลายเดือนก่อน

      Спасибо, добавил к видео

  • @snoopyskrat559
    @snoopyskrat559 11 หลายเดือนก่อน

    Дима спасибо огромное❤ ждемс следующий выпуск❤

  • @rossoneri902
    @rossoneri902 6 หลายเดือนก่อน

    Спасибо, Дима

  • @userfhhoyhgfdgg
    @userfhhoyhgfdgg 11 หลายเดือนก่อน

    Спасибо большое за труд. Как всегда бескрайне рад!

  • @igorstadnik707
    @igorstadnik707 10 หลายเดือนก่อน

    начинаю учить, спасибо за крутые видео. Мега круто разъясняете ❤

  • @user-nf5yc7xz9b
    @user-nf5yc7xz9b 11 หลายเดือนก่อน

    Димыч прям радуешь все больше с каждым днем!! Прям вижу что правильный нагоняй сделал))) взялся за голову! Умничка красавчик!!

  • @АлександрКабанов-ь9м
    @АлександрКабанов-ь9м 7 หลายเดือนก่อน

    Коммент для продвижения!

  • @ИльяБойко-э3к
    @ИльяБойко-э3к 10 หลายเดือนก่อน

    ты лучший, топи дальше, очень жду следующий урок!))

  • @AntonZubko
    @AntonZubko 10 หลายเดือนก่อน

    Димыч, спасибо тебе за отличную подачу материала React,Redux,Reducer,летим в космос!!!

  • @lisaborysenko7249
    @lisaborysenko7249 2 หลายเดือนก่อน

    класс, самое то что нужно)

  • @All_be_good
    @All_be_good 10 หลายเดือนก่อน

    Дружище! Давай следующий выпуск! У меня ломка без твоих видео :D

  • @aleksandertschernakow
    @aleksandertschernakow 11 หลายเดือนก่อน

    Ждем продолжение!

  • @dmytro_dev
    @dmytro_dev 11 หลายเดือนก่อน

    Спасибо! Давай следующий видос)

  • @asmodeus7862
    @asmodeus7862 6 หลายเดือนก่อน

    ЛЕТИМ!

  • @vitalyks
    @vitalyks 11 หลายเดือนก่อน

    Очень быстро и очень нужно ❤

  • @Dmitrijserg
    @Dmitrijserg 11 หลายเดือนก่อน +6

    Редюсеры и тесты. Взрослый контент пошёл.

    • @Awe88Some
      @Awe88Some 11 หลายเดือนก่อน

      ага, в 8 выпуске уже повзрослели)))) пора уничтожать собеседования уже идти))

  • @88hatecore
    @88hatecore 11 หลายเดือนก่อน

    Смотрим!

  • @Paul-x1i6y
    @Paul-x1i6y 11 หลายเดือนก่อน

    супер круто

  • @dendominskyi
    @dendominskyi 9 หลายเดือนก่อน +3

    1) 25:46 test('correct task should be deleted from correct array', () => {
    const startState: TasksStateType = {
    'todolistId1': [
    {id: '1', title: 'CSS', isDone: false},
    {id: '2', title: 'JS', isDone: true},
    {id: '3', title: 'React', isDone: false},
    ],
    'todolistId2': [
    {id: '1', title: 'bread', isDone: false},
    {id: '2', title: 'milk', isDone: true},
    {id: '3', title: 'tea', isDone: false},
    ],
    }
    const action = removeTaskAC('2', 'todolistId2')
    const endState = tasksReducer(startState, action)
    expect(endState['todolistId1'].length).toBe(3)
    expect(endState['todolistId2'].length).toBe(2)
    expect(endState['todolistId2'].every(t => t.id != '2')).toBeTruthy()
    })
    2) 36:23 test('correct task should be added to correct array', () => {
    const startState: TasksStateType = {
    'todolistId1': [
    {id: '1', title: 'CSS', isDone: false},
    {id: '2', title: 'JS', isDone: true},
    {id: '3', title: 'React', isDone: false},
    ],
    'todolistId2': [
    {id: '1', title: 'bread', isDone: false},
    {id: '2', title: 'milk', isDone: true},
    {id: '3', title: 'tea', isDone: false},
    ],
    }
    const action = addTaskAC('juce', 'todolistId2')
    const endState = tasksReducer(startState, action)
    expect(endState['todolistId1'].length).toBe(XXX)
    expect(endState['todolistId2'].length).toBe(XXX)
    expect(endState['todolistId2'][0].id).toBeDefined()
    expect(endState['todolistId2'][0].title).toBe(XXX)
    expect(endState['todolistId2'][0].isDone).toBe(XXX)
    })
    3) 45:32 test('status of specified task should be changed', () => {
    const startState: TasksStateType = {
    'todolistId1': [
    {id: '1', title: 'CSS', isDone: false},
    {id: '2', title: 'JS', isDone: true},
    {id: '3', title: 'React', isDone: false},
    ],
    'todolistId2': [
    {id: '1', title: 'bread', isDone: false},
    {id: '2', title: 'milk', isDone: true},
    {id: '3', title: 'tea', isDone: false},
    ],
    }
    const action = changeTaskStatusAC('2', false, 'todolistId2')
    const endState = tasksReducer(startState, action)
    expect().toBe()
    expect().toBe()
    })
    4) 1:02:31 test('new property with new array should be added when new todolist is added', () => {
    const startState: TasksStateType = {
    'todolistId1': [
    {id: '1', title: 'CSS', isDone: false},
    {id: '2', title: 'JS', isDone: true},
    {id: '3', title: 'React', isDone: false},
    ],
    'todolistId2': [
    {id: '1', title: 'bread', isDone: false},
    {id: '2', title: 'milk', isDone: true},
    {id: '3', title: 'tea', isDone: false},
    ],
    }
    const action = addTodolistAC('title no matter')
    const endState = tasksReducer(startState, action)
    const keys = Object.keys(endState)
    const newKey = keys.find(k => k != 'todolistId1' && k != 'todolistId2')
    if(!newKey) {
    throw Error('new key should be added')
    }
    expect(keys.length).toBe(3)
    expect(endState[newKey]).toEqual([])
    })
    5) 1:09:29 test('ids should be equals', () => {
    const startTasksState: TasksStateType = {}
    const startTodolistsState: Array = []
    const action = addTodolistAC('new todolist')
    const endTasksState = tasksReducer(startTasksState, action)
    const endTodolistState = todolistsReducer(startTodolistsState, action)
    const keys = Object.keys(endTasksState)
    const idFromTasks = keys[0]
    const idFromTodolists = endTodolistState[0].id
    expect(idFromTasks).toBe(action.todolistId)
    expect(idFromTodolists).toBe(action.todolistId)
    })
    6) 1:14:00 test('property with todolistId should be deleted', () => {
    const startState: TasksStateType = {
    'todolistId1': [
    {id: '1', title: 'CSS', isDone: false},
    {id: '2', title: 'JS', isDone: true},
    {id: '3', title: 'React', isDone: false},
    ],
    'todolistId2': [
    {id: '1', title: 'bread', isDone: false},
    {id: '2', title: 'milk', isDone: true},
    {id: '3', title: 'tea', isDone: false},
    ],
    }
    const action = removeTodolistAC('todolistId2')
    const endState = tasksReducer(startState, action)
    const keys = Object.keys(endState)
    expect(keys.length).toBe(1)
    expect(endState['todolistId2']).toBeUndefined()
    })

    • @GoldZhantaev
      @GoldZhantaev 6 หลายเดือนก่อน

      Лучший!

  • @vladvaren7111
    @vladvaren7111 9 หลายเดือนก่อน +1

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

    • @ITKAMASUTRA
      @ITKAMASUTRA 9 หลายเดือนก่อน +2

      Воспринимайте это как тренировка работы с такой структурой для будущего рывка! Прямо сейчас это избыточно с точки зрения практичности и необходимо именно в образовательных целях

  • @РусланПолянский-х7б
    @РусланПолянский-х7б 11 หลายเดือนก่อน

    Ну наконец то, спасибо!!!!!!!!!!!!!

  • @karatsergio4472
    @karatsergio4472 11 หลายเดือนก่อน

    какая прелесть =) лайкос

  • @fox_foxivich
    @fox_foxivich 11 หลายเดือนก่อน

    Димыч, привет! У меня 5-6 лет опыта во фронтенде, основной фокус всегда был на разработке React приложений. В России вообще никогда не было проблем найти хорошооплачиваему работу за короткий срок. Где-то полтора года переехал в США, в мае этого года получил документы в США и начал откликаться на вакансии. Английский у меня хороший. С начала мая я каждый день аплаюсь на 200-300 вакансий и в среднем за месяц приглашают только на 1 интервью и исход всегда один, либо HR сливает, либо дохожу до первого этапа интервью, выполняю задачу, отвечаю на все вопросы, но всё-равно в итоге идёт слив.
    Как думаешь? IT умирает? Или это сейчас кризис IT в США конкретно? Или же конкуренция на голову выше здесь? Коснулось ли это СНГ? Или в СНГ всё также легко в плане IT? Сколько осталось ещё профессии фронтендера? Куда бы ты порекомендовал переквалифицироваться, если всё же фронтенд умирает?

  • @ИльяБойко-э3к
    @ИльяБойко-э3к 10 หลายเดือนก่อน

    давай следующий урок, жду

  • @alexanderkomanov4151
    @alexanderkomanov4151 11 หลายเดือนก่อน

    Спасибо!

  • @denzelwashington4135
    @denzelwashington4135 9 หลายเดือนก่อน

    вот объясните пожалуйста как на маке вызывать импорт который на винде вызывается альт + ентер.заранее большое спасибо)

  • @igorstadnik707
    @igorstadnik707 11 หลายเดือนก่อน

    Ура ))) Дякую ;)

  • @nmsosin
    @nmsosin 11 หลายเดือนก่อน +1

    Куда зарепостить, чтобы все видео и дальше с такой частотой выходили?)

    • @Awe88Some
      @Awe88Some 11 หลายเดือนก่อน

      :DDD

  • @elperdante
    @elperdante 11 หลายเดือนก่อน

    Вот спасибо

  • @АртёмСаньков-ц8ы
    @АртёмСаньков-ц8ы 11 หลายเดือนก่อน

    🙌

  • @johna6436
    @johna6436 11 หลายเดือนก่อน

    Спасибо!!!!!!!!!!

  • @vendemiansparkle7163
    @vendemiansparkle7163 11 หลายเดือนก่อน

    Димыч топи топ!

  • @unicoxr5tj417
    @unicoxr5tj417 11 หลายเดือนก่อน

    😅 за песню сразу лайк, это шлягер

  • @Alexei-sb6kz
    @Alexei-sb6kz 3 หลายเดือนก่อน

    useReducer, It-kamasutra, It-Incubator как правильно пользоваться hook

  • @evgenstepanov6319
    @evgenstepanov6319 11 หลายเดือนก่อน

    Димыч, напиши уже песню, прикольно же получается)

  • @vladimir_fomin90
    @vladimir_fomin90 11 หลายเดือนก่อน

    Недавно устроился abap разработчиком(SAP), т.к. в городе ничего другого и нет, дальше как подрасту переключусь на java)

    • @2Extremum
      @2Extremum 11 หลายเดือนก่อน +1

      Держи нас в курсе обязательно, теперь будем все переживать как ты - подрос или нет.

    • @vladimir_fomin90
      @vladimir_fomin90 11 หลายเดือนก่อน

      я то подрасту, а вот ты не уверен@@2Extremum

    • @2Extremum
      @2Extremum 11 หลายเดือนก่อน

      @@vladimir_fomin90 Да куда уж нам до людей которые в комментах про разработку на javascript мечтают переключиться на java...

    • @ITKAMASUTRA
      @ITKAMASUTRA 11 หลายเดือนก่อน

      👍👍👍

  • @microspacer
    @microspacer 11 หลายเดือนก่อน

    А тайпскрипт будет?

    • @Awe88Some
      @Awe88Some 11 หลายเดือนก่อน

      про тайп скрипт было же с первого урока по туду листу, доступно вроде и понятно)

  • @doroshkent
    @doroshkent 10 หลายเดือนก่อน

    как-то странно, на фб поделилась, а количество репостов у записи не увеличилось
    жду, когда разбанят в твиттере)

  • @VV-ol5nx
    @VV-ol5nx 11 หลายเดือนก่อน

    Жми на лайк под видео, если любишь МАМУ💗

  • @valvetigu5207
    @valvetigu5207 6 หลายเดือนก่อน

    читается примерно как наше слово 'трусы', только ударение на первый, дыбиляцкое з.с (без упора языком) английское и 'ы' ближе к 'и'