разбираться в коде старших коллег? Был написан компонент, который должен быть общим . Довольно большой, обёртка над компонентом из либы . Сейчас он имеет логику, которая мне не подходит для моей задачи . И нужно его научить работать с логикой другой. Вот как мне адекватно вообще разобраться в его работе и зависимостях ? Как вы это делали ?
пристальный взгляд и девтулзы
Ну наверно там typescript. Ну посмотреть например описание его пропсов. Если они грамотно именованы, то из этого можно извлечь много пользы. В некоторых случаях, если вы не можете вносить изменение в его код, но управление через пропсы этим компонентом вас категорически не устраивает, то вероятно можно сделать обертку-адаптер. А так по сути документация к компоненту (если она конечно есть), ну и главное это изучение его исходного кода (вот почему так важен навык чтения кода). Еще можно ветку отдельную экспериментальную сделать и там "поэкспериментировать с компонентом". Еще storybook (если есть конечно на проекте) может помочь. Ну конечно мне тут говорили про "божественные" компоненты от 500 строк в размере, ну тут даже не знаю. В такой ситуации тут уже возможно и ничего не поможет.
Словами через рот со старшими коллегами
Чет вот про этот способ я забыл ))
Как он работает я понимаю, когда читаю код(документации нет по коду комментов тоже ) . Там по сути расширенный антовский компонент таблицы, только с изменённой логикой . И то, что подходило в антовский компонент - сюда уже не подходит. Несколько кастомных хуков . На фильтра, сортировки , все это работает прям из запросов . Он как бы общий переиспользуемый, но для моей задачи не подходит. . Так как все тянет с помощью запросов, а у меня решили , что бы отрисовывалось из стейтов и сделать лайв поиск и другие вещи. Просто пробросить туда пропсы и повесить логику , фильтрцй из стейта а не запросами и тд - не устраивает . Тоесть по сути надо переписать компонент который делал сеньор и который ичэспользуется уже в одном месте под его задачу . В сумме там 1к строк кода думаю .
Может, лучше словами через рот?
Ну я вот что думаю. Там по любому есть хуки которые можно назвать "ПОСТАВЩИКАМИ ДАННЫХ" (они же вероятно отвественны за серверный поиск и сортировку), вот как по мне так вероятно будет достатчно логику в них переписать, как бы на локальную обработку данных. Сам вот недавно делал такой компонет, и хотя он и не очень большой по размеру, но мне полностью удалось отделить "поставщиков данных" от их рендера, и поэтому я без проблем смог использовать этот компонент и для обработки данных от сервера и для обработки локальных данных. Так что вероятно я бы попытался как-то выделить в компоненте то что отвечает за "поставку данных" от того, что собственно отрисоввывает эти данные и вызывает обработчики. А затем веротно бы сделал интерфэйс взаимодействия между этими частями. Ну и в дальнейшем можно было бы просто менять "поставщика данных" для этого компонента.
Да, все верно, нужно сделать кчто то похожее. И так как.писал не я , а чел сеньор , там довольно много кода, который Нето, что бы переписать и с новой логикой, даже понять мне надо будет походу пару дней..
Может, он притворяется сеньором? Написать тыщу строк «общего» кода и говорить джуну «ну ты должен разбираться» — это не то, чем занимаются сеньоры
Ну по сути я согласен с общим посылом . Тоесть если этот чел уволится, кто будет дальше работать с этим кодом, если сейчас все делает он? Типа вот задача , ее надо сделать. Мы используем Ант, и у нас есть этот общий компонент например для таблиц. Я бы мог просто взять снова из анта эту таблицу нативную, и как то сам для себя все написать . Но это ведь не правильно, если мы хотим иметь общий свой компонент?
Я знаю так иногда себе зарплату побольше выбивают. Особенно если не уверены что с легкостью найдут другую работу. Иногда у некоторых возникает "подозрение", что новичок может "похитить" их работу. ВОт они и создают максимум препятствий для работы новичков.
Так стоп, а разве то что я выше описал так не должно быть? Ну вот я Джун да , с парой мес опыта работы . Вот мы делаем продукт , философия делать максимально переиспользуемые компоненты над либой например . У нас много где есть таблицы . Поэтому сделан этот компонент, как бы основа для будущих задач . И вот у меня прилетела задача, к которой надо бы использовать его ,и из него вытекающие компоненты, но он не умеет делать то, что надо для моей задачи . Как тогда быть, его же должен изменить и дописать я, и с помощью него сделать свою задачу, а не тот сеньор ,кто его писал ведь ???
Ну я лишь предполагаю. )) Возможно идея в том, что бы выставить тебя непригодным для данной работы, путем провоцирования невыполнения тасков, за счет чрезмерной сложности этих тасков. А если больше никого нет, то и проверить "адекватность тасков твоему опыту" никто не сможет. А он таким образом может например спровоцировать твое увольнение и за счет этого решить некоторые свои проблемы, например финансовые, за счет того что будет выглядеть в глазах начальства "незаменимым" Но это конечно гипотетически.
Это я понимаю ) А если это опустить, и именно по вопросу что можешь сказать? Вот именно последнее. Или так не должно быть?
Я тут могу только предполагать. Лично я наверно попробовал бы решить эту проблему. Причем тем способом который описывал выше. т.е. по сути разбил бы его внутри на две части. и вторую часть сделал бы заменяемой (та которая отвественна за данные). т.е. по сути сделал бы рефакторинг. Но тут я бы честно на твоем месте сказал: я попробую но ты сам понимаешь что я могу не справиться и завалить сроки.
А ты в продуктовой работал компании? Когда делаешь продукт, получается есть смысл изучать такие компоненты например по выходным и вечерам? Что бы потом уметь их использовать в работе? Раз без этого никак
Ну я разработкой занимался, но это у меня не основная задача была. Но руководил отделом из 7 человек, поэтому знаю про то кто и за что отвечает. По ночам ничего не учил, хватало всегда рабочего времени. Но я сам себе всегда сроки ставил, по части разработки, а у начальства все сроки всегда были: ВЧЕРА)))
Обсуждают сегодня