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

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

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

18 ответов

40 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта