169 похожих чатов

Всем привет . Работаю месяц+, есть вопрос . Как научиться

разбираться в коде старших коллег? Был написан компонент, который должен быть общим . Довольно большой, обёртка над компонентом из либы . Сейчас он имеет логику, которая мне не подходит для моей задачи . И нужно его научить работать с логикой другой. Вот как мне адекватно вообще разобраться в его работе и зависимостях ? Как вы это делали ?

18 ответов

8 просмотров

пристальный взгляд и девтулзы

Ну наверно там typescript. Ну посмотреть например описание его пропсов. Если они грамотно именованы, то из этого можно извлечь много пользы. В некоторых случаях, если вы не можете вносить изменение в его код, но управление через пропсы этим компонентом вас категорически не устраивает, то вероятно можно сделать обертку-адаптер. А так по сути документация к компоненту (если она конечно есть), ну и главное это изучение его исходного кода (вот почему так важен навык чтения кода). Еще можно ветку отдельную экспериментальную сделать и там "поэкспериментировать с компонентом". Еще storybook (если есть конечно на проекте) может помочь. Ну конечно мне тут говорили про "божественные" компоненты от 500 строк в размере, ну тут даже не знаю. В такой ситуации тут уже возможно и ничего не поможет.

Словами через рот со старшими коллегами

Евгений-Шевченко Автор вопроса
cool29horhoj
Ну наверно там typescript. Ну посмотреть например ...

Как он работает я понимаю, когда читаю код(документации нет по коду комментов тоже ) . Там по сути расширенный антовский компонент таблицы, только с изменённой логикой . И то, что подходило в антовский компонент - сюда уже не подходит. Несколько кастомных хуков . На фильтра, сортировки , все это работает прям из запросов . Он как бы общий переиспользуемый, но для моей задачи не подходит. . Так как все тянет с помощью запросов, а у меня решили , что бы отрисовывалось из стейтов и сделать лайв поиск и другие вещи. Просто пробросить туда пропсы и повесить логику , фильтрцй из стейта а не запросами и тд - не устраивает . Тоесть по сути надо переписать компонент который делал сеньор и который ичэспользуется уже в одном месте под его задачу . В сумме там 1к строк кода думаю .

Ну я вот что думаю. Там по любому есть хуки которые можно назвать "ПОСТАВЩИКАМИ ДАННЫХ" (они же вероятно отвественны за серверный поиск и сортировку), вот как по мне так вероятно будет достатчно логику в них переписать, как бы на локальную обработку данных. Сам вот недавно делал такой компонет, и хотя он и не очень большой по размеру, но мне полностью удалось отделить "поставщиков данных" от их рендера, и поэтому я без проблем смог использовать этот компонент и для обработки данных от сервера и для обработки локальных данных. Так что вероятно я бы попытался как-то выделить в компоненте то что отвечает за "поставку данных" от того, что собственно отрисоввывает эти данные и вызывает обработчики. А затем веротно бы сделал интерфэйс взаимодействия между этими частями. Ну и в дальнейшем можно было бы просто менять "поставщика данных" для этого компонента.

Евгений-Шевченко Автор вопроса
cool29horhoj
Ну я вот что думаю. Там по любому есть хуки котор...

Да, все верно, нужно сделать кчто то похожее. И так как.писал не я , а чел сеньор , там довольно много кода, который Нето, что бы переписать и с новой логикой, даже понять мне надо будет походу пару дней..

Может, он притворяется сеньором? Написать тыщу строк «общего» кода и говорить джуну «ну ты должен разбираться» — это не то, чем занимаются сеньоры

Евгений-Шевченко Автор вопроса
Ivan 🧑‍🚀
Может, он притворяется сеньором? Написать тыщу стр...

Ну по сути я согласен с общим посылом . Тоесть если этот чел уволится, кто будет дальше работать с этим кодом, если сейчас все делает он? Типа вот задача , ее надо сделать. Мы используем Ант, и у нас есть этот общий компонент например для таблиц. Я бы мог просто взять снова из анта эту таблицу нативную, и как то сам для себя все написать . Но это ведь не правильно, если мы хотим иметь общий свой компонент?

Я знаю так иногда себе зарплату побольше выбивают. Особенно если не уверены что с легкостью найдут другую работу. Иногда у некоторых возникает "подозрение", что новичок может "похитить" их работу. ВОт они и создают максимум препятствий для работы новичков.

Евгений-Шевченко Автор вопроса

Так стоп, а разве то что я выше описал так не должно быть? Ну вот я Джун да , с парой мес опыта работы . Вот мы делаем продукт , философия делать максимально переиспользуемые компоненты над либой например . У нас много где есть таблицы . Поэтому сделан этот компонент, как бы основа для будущих задач . И вот у меня прилетела задача, к которой надо бы использовать его ,и из него вытекающие компоненты, но он не умеет делать то, что надо для моей задачи . Как тогда быть, его же должен изменить и дописать я, и с помощью него сделать свою задачу, а не тот сеньор ,кто его писал ведь ???

Ну я лишь предполагаю. )) Возможно идея в том, что бы выставить тебя непригодным для данной работы, путем провоцирования невыполнения тасков, за счет чрезмерной сложности этих тасков. А если больше никого нет, то и проверить "адекватность тасков твоему опыту" никто не сможет. А он таким образом может например спровоцировать твое увольнение и за счет этого решить некоторые свои проблемы, например финансовые, за счет того что будет выглядеть в глазах начальства "незаменимым" Но это конечно гипотетически.

Евгений-Шевченко Автор вопроса
cool29horhoj
Ну я лишь предполагаю. )) Возможно идея в том, чт...

Это я понимаю ) А если это опустить, и именно по вопросу что можешь сказать? Вот именно последнее. Или так не должно быть?

Евгений Шевченко
Так стоп, а разве то что я выше описал так не долж...

Я тут могу только предполагать. Лично я наверно попробовал бы решить эту проблему. Причем тем способом который описывал выше. т.е. по сути разбил бы его внутри на две части. и вторую часть сделал бы заменяемой (та которая отвественна за данные). т.е. по сути сделал бы рефакторинг. Но тут я бы честно на твоем месте сказал: я попробую но ты сам понимаешь что я могу не справиться и завалить сроки.

Евгений-Шевченко Автор вопроса

А ты в продуктовой работал компании? Когда делаешь продукт, получается есть смысл изучать такие компоненты например по выходным и вечерам? Что бы потом уметь их использовать в работе? Раз без этого никак

Евгений Шевченко
А ты в продуктовой работал компании? Когда делаешь...

Ну я разработкой занимался, но это у меня не основная задача была. Но руководил отделом из 7 человек, поэтому знаю про то кто и за что отвечает. По ночам ничего не учил, хватало всегда рабочего времени. Но я сам себе всегда сроки ставил, по части разработки, а у начальства все сроки всегда были: ВЧЕРА)))

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Всем привет!) я тут новенький и пытаюсь освоить evolution методом тыка. У меня при переходе между папками файлов выскакивают вот такие уведомления Можете подсказать как их от...
Диман Samoed
10
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Карта сайта