🎧 Публичное собеседование #5: net, c#, angular, асинхронность, patterns, db, orm, api, сбор мусора

Подготовка к собеседованию на C# Developer

Транскрипция видео:

  • привет расскажи вкратце над какими проектами ты работаешь на чем пишешь и какие парадигмы используют для этого прошу работая по большая часть сейчас нагуляли джесс и нас занимаешь медицинским проектом в одну актер своей фирме которая работает на американский рынок с работе в основном использую процедурную прыгнул и или объектно-ориентированное ну давай наверное начнем с bk да значит ты пишешь я так понимаю а фишки на сишарпе правильно наша шапка да и с базой данных работаешь с какой су бды какой каким способом ты работаешь

    00:00:01 - 00:02:03

  • в своих под проектах я использовал mssql server в компании на проекте у нас моей сфер сервер и архивирует рмс entity фреймворком сталкивался до сталкивался и со данных тоже ну и как ты сравнишь в общем тема с используешь и с этими технологиями ну насколько я понимаю что то штопором систему построенные на ладан эти и запрос и пам пам будет зайдет форматирование в обычную строку запроса и синтаксические дарит клинки с точки зрения допустим там где может быть больше бойлер plateau где там нужно удобнее писать где

    00:01:04 - 00:03:00

  • чисто с вообще девелопер experience какой ну мне лично удобнее работать сантики у меня больше опыта так как своих тот проектах я использую его а в компании я писал именно искали запросы линки запросы я не писал через санки верные вот я как они я сказал работают хотят 2 слой на месяца и пока по большей части меня вводят в курс в по вот как раз окуляром филер с этот ум активно занимаясь задач по бэг-энда по работе с базой данных было очень мало пока что ну вот скажи мне как бы почему нам обязательно нужно

    00:02:15 - 00:03:51

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

    00:03:06 - 00:04:37

  • почему нам обязательно нужно делать а фишку и какие в этом будут проблемы и в чем удобство я думаю здесь немаловажный вопрос безопасность такого подхода перри использован никода описано на ганди и [музыка] ну и может быть еще смотреть такая штука что вот где то нам нужны просто крут и какие-то а где-то нужно какие основные вещи ну то есть там 90 процентов крутов и 10 процентов кастомных вещей и вклиниться в такое сгенерировать вы ну было бы наверное сложно то есть там в одном месте допустим там не знаю

    00:03:52 - 00:05:27

  • там какие-то поля перри медового часть полей то значит как-то трансформировать там что-то вычислить какую-то ну по сути бизнес-логику на стороне сервера нужно будет еще сделать обратиться там какого-то api третьей стороны это ну такого плода может быть ты знаешь какие-то способы как можно совместить подход с тем чтобы у нас от появлялись практические авто сгенерированные груды с кастомной логикой вот как это можно объединить на тех технологиях которые ты использовал если мы говорим про entity я знаю что у

    00:04:41 - 00:06:01

  • нас есть несколько интерфейсов 2-ой marvel и рыбы от зависимости от использования трофей собой порт по разному сформирован сам запрос к базе данных вот если мы говорим про иномарок нос мы возьмем все данные потом уже локально с этой пачкой дам им работать если мы говорим про интерфейс и кори был то у нас ну например будет какой-нибудь select а потом очень будет в какой-нибудь будет еще джоин в общем это все сразу сформируется в 11 роковой запрос и отправиться на басу если я правильно понял вопрос

    00:05:24 - 00:06:42

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

    00:06:05 - 00:07:44

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

    00:06:55 - 00:08:21

  • чтобы писать запросы к ней и описку генерировать и в базе данных она нужна потому что там как бы тоже нам что теперь три раза все писать ну то есть вот как бы create table писать руками значит эти самые классы на сишарп описать руками и надейся там тоже писатели класса или прототипы или еще как-нибудь или мы можем переиспользовать одну и ту же модель с какими-то допустим нюансами там или как-то ее там авто генерировать или что-нибудь такой вот какие-то подходы используешь если я правильно понимаю почему говорите

    00:07:42 - 00:09:09

  • то своих проектах и на проекте рабочим у нас три модели отдельных 1 в 1 на серверной части одно на клиентской везде отдельные классы моделей использует пишется три раза а если допустим в каком-то одном ты добавляешь поле тебе нужно в двух других тоже добавить да я сталкивался с такой задачей когда они приходили необходимые данные нужно было от этого модель на сервере исповедь и на клиентской части продублировать изменение звезда может быть ты слышал что есть какие-то способы решения этой проблемы

    00:08:26 - 00:10:04

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

    00:09:15 - 00:10:51

  • когда ты уже то значит 6 8 месяц такой однотонной работы понимаешь что постоянно приходится добавлять новые сущности новые поля менять старые и ты просто открываешь там два три разных места ну короче идет богата ная работа хочется что-то кислота оптимизировать и автоматизировать и тогда люди начинают искать ну типа этаж не мне 1 такая задача вообще приходит и такая вот проблема ну и на самом деле почти все люди которые делают формочки и а фишки они рано или поздно сталкиваются с тем что в общем хочется

    00:10:03 - 00:11:43

  • какой-то touring написать или же найти или применить написать в общем по разному так ну ок в общем пока что ты освоил сами технологии но в общем да автоматизации труда еще не дошел до не дошел давай может быть ты расскажешь какие шаблоны проектирования это используешь ну вот для бэг-энда для фронтенда и где какие то есть что больше подходит для какой части может для работы с базой данных вот для всех трех звеньев в цепи так как ты full stack то можешь сравнить по термину или какие-то дополнительные

    00:10:56 - 00:12:25

  • там здесь вниз все под использование повторно команда при создании доступных приложений на видов могут писать в чем идея давай расскажи про команду я сталкивался с ситуациями он делал свои текстовые редакторы на рельеф когда нужно выполнить одну и ту же операцию но там есть несколько вариантов и выполнения там через нажатия грубо говоря кнопки через комбинации клавиш и здесь на помощь и я нашел себе такой попарно команду а так вообще в теории я рассматривал вот если мы говорим про по данным банды четырех я рассматривал их

    00:11:42 - 00:13:13

  • всех в теории но на практике он применял пока вот по моему только команда он может быть абстрактную фабрику ну да как бы человека чтобы фабрику не применял вряд ли ну то есть как бы это что java скрипте да правильно ты имеешь ввиду отгуляли ты применял не обманывай эти всех командой камень на бы candida но потом вообще на самом деле в джейси ну как бы если функция возвращает объект а такое в джерси вообще постоянно происходит от но это что же фабрика архитектурные попарные тоже немного знаю на проекте у нас in step on the run

    00:12:30 - 00:14:02

  • своих проектах я использовал энергиям она опять же как доступных приложений по сравнив их могут сравнить дам то что тот паттерна контроллер и наш объем адель они не знают детальной информации по источник данных и не знают про то как эти данные отображаются уже на клиентской части но это по сути это ты тут это паттерн и построения пользовательских интерфейсов а почему у нас в пользовательских интерфейсах хотелось бы экранировать эти вещи то есть почему сделать так чтобы не знали ну эту возможность сфере использовать

    00:13:25 - 00:15:00

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

    00:14:13 - 00:15:38

  • я сейчас такой вопрос спросил можно было сказать очень кратко чтобы понизить зацепление просто ответить что такое зацепление в коде ты понимаешь но я так подозреваю то что я не снял сейчас пару минут это она и есть три если у тебя одна часть кода знает что-то про другую часть кода то они зацеплены что может она знать да вот так вот в кавычках знать какие поля там каких типов эти поля сигнатуры функций ну ты понимаешь да то есть если это практически зацепление это ну синоним некоторых аспектов hard кодинга если мы

    00:14:55 - 00:16:33

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

    00:15:47 - 00:17:33

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

    00:16:39 - 00:18:12

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

    00:17:26 - 00:19:00

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

    00:18:15 - 00:19:50

  • абстрактного класса должны производить интерфейс и кто угодно может реализовать интерфейс не включаем дерево наследование ну и соответственно если не включаем в дерево на исследование значит не наследуется поведение а наследуется только ну как ты сказал да наследуется только сигнатуры контракт наследуется ну точнее он не наследуется а контракт реализуются а потом включается в дерево расследование соответственно у нас есть общее поведение а есть конкретное поведение то есть по сути все таки происходит

    00:19:14 - 00:20:32

  • наследование происходит переход проведение вызов поведения предка все дела все таки вещи похожие но разница существенная ну в зависимости от предметной области уже было применялся и уже интерфейс или баксов на класса нужна маленькая ситуации теперь по поводу асинхронности давай так как ты пишешь и java скрипте и на сишарпе может быть ты какой-то сделаешь сравнительное такое вот сравнительное описание как там асинхронность работает как там вратарский скажешь про значит провисы вот в чем как бы похоже с разница

    00:19:54 - 00:21:36

  • я смотрел ваши лекции о синхронности на примере как раз видел что есть несколько вариантов в писании с помощью call back of promise of и вот как раз passing away the в шарпе есть несколько вариантов можно использовать close thread который позволяет исполнить операцию в отдельном потоке есть класс task который позволяет тоже исполнять задачу в отдельном потоке вот я разбирался с классом раз видел некой схожести с вопросами java скрипте а кто является абстракцией более высокого и более низкого уровня таскали thread

    00:20:45 - 00:22:21

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

    00:21:36 - 00:23:09

  • использования thread пула конечно мы имеем существенный выигрыш в использовании ресурсов и еще в использовании task-ов есть ну что ли может удобства синтаксические какие-то удобства есть или ну сталкивался с этим доступных приложениях когда есть какой-то графический интерфейс и запрос к базе данных и вот использовал как раз паски и метод эстетический рон для того чтобы запустить какую-нибудь процесс в отдельном потоке хорошие не прислала мы не должны там ничего следовать не чем мы просто сунули

    00:22:37 - 00:24:02

  • туда анонимный делегаты он работает оба можем прямо линду туда передать ему и все запустился of tragedy как в трепетом передается объект класса thread старт я пробовал передавать от него и лямку она так тоже работает так и когда мы понимаем что ну в общем как происходит работа с дредами если из нескольких трендов мы обращаемся к какому-то общему стоит у и как происходит стас коми если вот мы из нескольких task-ов обращаемся к общему стоит какому-то объекту в котором есть там поля и они нам доступны и из task-ов

    00:23:24 - 00:25:00

  • и из трендов и я когда работал с классом трек использовал locker для того чтобы вот как разблокировать ресурс во время исполнения отдельным потоком с классом таск у меня таких по уму задач даже не было расскажет это что за локеры зачем нам вообще локинг нужен но какие задачи решает ну это предоставляет нам что ли очевидная по ведение общих ресурсов для нескольких потоков почему и вот как бы без этого вот мы сами можем просто там полям обращаться и что может случиться вот при этом мы можем но будет как бы непредвиденное поведение

    00:24:15 - 00:25:57

  • менять значения этих переменных ожидаем что там должно лежать что-то другое а мы поменяли в потоке которой исполнился ванне это называется дельта рейз или рейз кондишен временного ей такой незнаком окей слушаю вас что не было этого самого параллельного программирования yamaha ром курсе ваш курс я то думал что я со старшекурсников разговариваю потому что ты так нормально это самое поддерживает диалог я понял так значит это еще все предстоит ну короче естественно при работе с объектами в многопоточном режиме может случиться

    00:25:08 - 00:26:45

  • crops in state а то уж объекты это состояние в памяти и [музыка] состояние может прийти в не консистентные положение мне консистентная это имеется в виду что если у нас там допустим какой-то объект у него одно поле грубо говоря там есть какая-то цена количество и сумма да и вроде как эти поля да они должны иметь какую-то функциональную зависимость если у нас сумма вычисляется из двух других но храниться оно отдельно ну то есть какой-то кусок бизнес-логике и вычисляет она никак вычислимое поле там и никак

    00:26:04 - 00:27:34

  • better да вот реально просто вот иногда мы запускаем куда процедуру которая вычисляет и записывает то что будет если мы через 3d мы будем обращаться вот такой вот зависимым поля поможете еще раз как не погром сотвори есть цена количество и сумма ну и понятно что сумма будет там количество умножить на цену вот у них есть ты внутри поле у них какая то вот есть функциональная зависимость и если мы будем менять цену и количество из разных мест и вызывать функцию которая будет вычислять сумму и в этом в третье поле писать

    00:26:49 - 00:28:36

  • новые нити ли дошло при выполнении программы будет несколько потоков взаимодействовать с какой-нибудь функцией и при этом где-то успею поменять значение такое случается причем это же может случится самое страшное что это может случиться там в один из миллиона случаев то есть может такое быть что у тебя тест это все проходят все хорошо но 1 миллион случаев получается что два вызова которые вычисляют сумму одновременно срабатывают и она неправильно вычисляется и потом такую ошибку найти ну как тебе сказать это

    00:27:50 - 00:29:33

  • если все тесты проходят и вроде как все обычно в приложение работает нормально только иногда до глючит вот это самые страшные ошибки вот это рейс и вообще ошибки связанные со синхронностью или с параллельным программированием одни из самых страшных ошибок потому что она может пойти там в продакшен код мы можем жить с этим там допустим два года до а потом окажется что вот где то что то не правильно считает иногда все и как бы exception of его лица при этом oxi action of не валяться и вроде как все легально только

    00:28:44 - 00:30:10

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

    00:29:26 - 00:31:05

  • же асинхронная то как бы сразу нужно как я защищаю эти данные как я защищаю эти поля причем даже в языках в которых код исполняется в одном рейде там все равно эта проблема есть вот в java скрипте тоже проблем этой тирекса есть потому что в любом месте где мы пишем и weight туда может вклиниться исполнении какого-то чужого кода чужого нашего железу параллельно вызванного там с другого события там или откуда-то асинхронной операции и испортить нам коробках нам наш state ну в общем это просто классика

    00:30:18 - 00:31:46

  • но я синхронности сталкивался из разряда чтобы форма не подвисла пока вновь наполняется какой-нибудь запросу базе пока таких ситуаций у меня за мудреных не было ну на фронте просто это происходит достаточно редко и кроме того на фронте не происходит по сути работой с несколькими пользователями нету какой-то к оперативной работы и сами эти случаи происходят редко потому что нет интенсивной нагрузки а на сервере может оказаться что интенсивность доступа к объекту гораздо выше потому что к нему лезут разные

    00:31:05 - 00:32:19

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

    00:31:45 - 00:33:02

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

    00:32:26 - 00:34:07

  • или целиком отмене а ну если случится перехлёст этих последовательностей то значит закончится может только одна последняя но это все если не последняя та которая там раньше открылась после блокировки могут ли раз и уровне транзакций могут быть разные в разных зубы до есть возможность делать как это называется оптимистические да то есть можно открыть несколько транзакций но конфликту они не приведут а может такое быть что они эксклюзивные да даже открыть вторую невозможно только ты запросился хочу менять что-то

    00:33:16 - 00:34:44

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

    00:34:00 - 00:35:23

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

    00:34:42 - 00:36:06

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

    00:35:24 - 00:36:54

  • нет не рассматривал у меня в нескольких лекциях и то есть так скажи сначала по поводу су шерпов а потом может как-то найдешь и сравнишь хорошо ну у нас есть несколько поколений сборки мусора зависимости от того сколько у нас наш ресурс будет использоваться ходе работы программы будет находиться в своем поколении может пережить сборку мусора может по итогу оказаться во втором поколении то нельзя просто так далее не не услышал а зачем поколение поколение сейчас расскажу у нас есть интерфейса де способом и

    00:36:09 - 00:37:56

  • [музыка] мы можем его реализовывать описывая метод иди сполз и в этом используя у нас может быть закрытия каких-нибудь внешних ресурсов подключались в банке включались и нам нужно освободить этот те ресурсы в общем методы сполз по месяц очередь финализации и сколько я помню объект по месяца как и анализируемый перейдет следующее поколение что его нужно освободить и там не помню как этот процесс называется ну в общем когда памяти чистится изливается в одно место что удобно было дальше распределять

    00:37:08 - 00:38:57

  • необходимости я свою крышу не туда нормально это это видишь вот зачем поколение я так и не понял из этого унимался же долго играющие объекты которые живут у нас работы программы а есть жизненный цикл а почему почему так случается что нам нужно разделять их на быстрые и долги [музыка] потому что возможно это связано с тем сколько они занимают места по нитям не потому что замечено что [музыка] если объект прожил больше чем несколько секунд то скорее всего он проживет очень долго ну то есть это просто

    00:38:03 - 00:40:07

  • сразу было не понятно поэтому сразу люди изобрели сборщик мусора без поколений поколение ввели потом потому что статистически проанализировали ок и оказывается люди пишут код таким способом что нету значит объектов живущих случайное время есть очень мало живущие и очень долго живут же нету каких-то среднячком ну а если локальная переменная которая ну вот zanussi по сути есть объекты которые живут на стыке то есть ссылки на эти объекты они живут в контексте методов функции и вот когда все стек очистился

    00:39:07 - 00:40:41

  • все они все сто хлеб а есть которые живут где куча ссылки на эти объекты находятся все равно стать но сами объекты находятся куча объекты всегда находятся в кучу основные типы до объекты всегда находятся в кучу но если мы ссылки на эти объекты поместим в какие-то коллекции там значит свяжем с другими объектами все это будет скажем так но вот на инстанциировать и привязалась к глобальному контексту или коллекциям которые там лежат в глобальном контексте но это будет жить очень долго пока у нас там applications

    00:39:55 - 00:41:23

  • грубо говоря живет и все это дело удаляется только когда у нас есть принудительно что ли вызывается какой-то метод который их отцепить от тех контекстов которые их держат правильно понимаю ну то есть вот ну произойдет то что называется ян валидация кеша то есть мы там значит что-то на киш и равале из базы что-то по вызывали какие-то api и третьей стороны у нас куча объектов мы их положили в коллекции они там лежат пока мы их из этих коллекций не удалим вот по сути у нас есть два типа объектов которые лежат в коллекциях и

    00:40:39 - 00:42:08

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

    00:41:23 - 00:42:58

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

    00:42:16 - 00:43:44

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

    00:43:00 - 00:44:33

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

    00:43:48 - 00:45:27

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

    00:44:36 - 00:46:04

  • что как бы занимаясь практикой и периодически там ныряя в теорию всегда у тебя будет проходить какие-то параллели ну то есть ты в рабочем коде будешь находить тебе стал слушать а можешь вот это применить я вообще по этому поводу могу даже следующие сказать что я до того как начал работать смотрел вот исключительно в сторону backend а еще и на платформу вот нет частности наша шапка а как устроился на работу на full stack разработчикам то я познакомился с небом я как-то вот в эту сторону очень скептически раньше смотрел но это тоже

    00:45:21 - 00:46:45

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

    00:46:05 - 00:47:52

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

    00:46:58 - 00:48:17

  • share.war это на публичное пространство все давай пока спасибо сего спасибо что уделили горя до сна пока

    00:47:40 - 00:48:01

Менторы

Специалисты своей области, которые смогут помочь вам

  • Нигма Нурия
    Нигма Нурия

    Middle .Net Developer

  • Сущенко Татьяна
    Сущенко Татьяна

    Senior Product Manager

  • Гудков Денис
    Гудков Денис

    Middle Python Developer

  • Курочкин Константин
    Курочкин Константин

    Ведущий программист

  • Гудман Макс
    Гудман Макс

    Backend Software Engineer (PHP)

  • Гребенкин Антон
    Гребенкин Антон

    Senior .NET/C# developer

  • Ахназаров Фёдор
    Ахназаров Фёдор

    Middle DevOps Engineer | Tbilisi, Georgia

  • Шорохов Дмитрий
    Шорохов Дмитрий

    Middle C# .NET

  • Жуков Александр
    Жуков Александр

    Senior PHP-разработчик

  • Мазикин Павел
    Мазикин Павел

    Middle python developer

© 2024 HireGuru. Сделано в Санкт-Петербурге с hireguru.ru