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

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

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

18 ответов

27 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта