Вы не вошли.
Каталог полезных советов и ссылок, принесенных разными it-анонами, c 1-й по 332-ю страницы:
Зная за собой этот баг, организую всё на асимметричной коммуникации
Это было первое, что я пробовал. Чувак пишет "ок" - а там не ок, там вопросы, на которые мне нужны либо ответы, либо уточнения.
Обычно я в таких ситуациях, когда ответа не дождаться, просто отправлял план, есои не получал ответа - делал, как в плане. Но тут какие-то политические игрища, я только пришел, боюсь наломать дров. А у меня альтернативы: наломать дров или нихуя не делать.
И я даже не могу понять: если я буду нихуя не делать - всем будет окнорм? У нкуловимого джо так-то там контрольные точки стоят, которые он мне показывал (и про которые я ему же пишу).
Агрррррррррррх, спасибо, что выслушали.
Обычно я в таких ситуациях, когда ответа не дождаться, просто отправлял план, есои не получал ответа - делал, как в плане. Но тут какие-то политические игрища, я только пришел, боюсь наломать дров.
И что тогда будет? На тебя будут орать? Тебя уволят? Лишат премии? Пострадает процесс разработки? Оцени возможные последствия, прикрой по максимуму задницу (например, пиши в сопроводиловке к плану, что, если возражений нет, то такого-то числа начинаем первый этап).
А у меня альтернативы: наломать дров или нихуя не делать.
И я даже не могу понять: если я буду нихуя не делать - всем будет окнорм?
А это первый такой проект в этой компании? Как делалось раньше?
Прежний начальник прямо в реанимации или у него можно разово спросить хотя бы вот это "как лучше, делать нихуя или наломать дров"? Он, может быть, и сам не хочет выйти из больницы к руинам проекта или обнаружить, что в его отсутствие делалось нихуя.
Ну или для начала спросить его, норм ли ему вообще об этом поговорить, т.к. ты застрял, а Джо неуловим, хорошо бы получить его мнение. Не настаивать, конечно, если нет - значит, нет (но тогда ты решаешь, а не так, что он выйдет из больницы и даст пиздюлей за то, что ты не пронзил телепатически, что нужно было делать).
Я ебусь в глаза, аноны, хэлп
17 джава. Звучит слишком просто, а я навертела на 10 строк. Тем более я спекулирую на том, что знаю что все страны получат код "1".
Имеется лист с объектами, пусть будет List<Country> countries. Внутри объекта два String поля "наименование" и "код".
Нужно получить новый List<Country> finalCountries, откуда будут отфильтрованы повторяющиеся "наименования".
Что я навертела:
Кто из анонов более-менее знает streams в джава? У меня только две идеи:
1) Можно после map вернуться в стрим с изначальными объектами? Или вместо map использовать лямбду с функцие. Вопрос как?
2) Можно использовать Set. Но как?
Или я ебусь в глаза и не вижу очевидного решения?
Аноны, а был у кого успешный опыт прохождения Fast Track в Яндекс?
Анон думает кинуть резюме ещё и туда, но подозревает, что процесс не настолько прозрачен, насколько рекламируют.
Я ебусь в глаза, аноны, хэлп
Что я навертела:
▼Скрытый текст⬍Или я ебусь в глаза и не вижу очевидного решения?
Я бы сделала так:
Вообще вот тут 100500 подходов: https://stackoverflow.com/questions/236 … y-property
Мне еще нравится подходы со stateful фильтром и враппером.
Отредактировано (2023-07-04 16:42:47)
Спасибо анон. Ссылку гляну. Твой вариант выглядит аккуратнее гораздо. Мне тем не менее очень не нравится что я "1" добавляю. Если изменится бизнес логика и нужно будет не только 1 везде, а брать то что изначально стояло, то моя и твоя имплементации вылетают в трубу :(
Если бы это была реальная задача, то это была бы проверка способности требовать уточнения её постановки, потому что первая мысль тут «А нам правда не нужны идентификаторы записей дублей, чтобы их можно было так взять и потерять?» И всяко не следует их все из головы переписывать. И уж точно не одинаковым значением.
А тут, судя по всему, требуется понять, что нужен просто distinct() с переопределённой функцией сравнения, как nubBy в Haskell, который сразу выдаст тебе те же самые объекты, что и на входе. Потом надо поискать "java distinct by property" и узнать, что distinct() не сравнивает каждый объект с каждым, так что свою функцию вставлять некуда, и изучить варианты реализации нужного поведения вручную, выбрать какой-то для себя. Вдобавок можно посмотреть, в каких внешних библиотеках оно уже есть.
Спасибо анон. Ссылку гляну. Твой вариант выглядит аккуратнее гораздо. Мне тем не менее очень не нравится что я "1" добавляю. Если изменится бизнес логика и нужно будет не только 1 везде, а брать то что изначально стояло, то моя и твоя имплементации вылетают в трубу :(
Тогда зависит от того, насколько важна память и производительность. Если память не важна, то анон бы сделал с враппером — он аккуратнее выглядит и не надо заморачиваться с "а вдруг параллельный стрим". Если важна - то stateful фильтр.
Если бы это была реальная задача, то это была бы проверка способности требовать уточнения её постановки, потому что первая мысль тут «А нам правда не нужны идентификаторы записей дублей, чтобы их можно было так взять и потерять?» И всяко не следует их все из головы переписывать. И уж точно не одинаковым значением.
Реальная, часть большого сервиса, я упростила по максимуму, чтобы задать вопрос тут.
Если я правильно поняла твой вопрос, ты не уверен хотим ли мы терять дубли? Хотим, тут все окей.
Спасибо за пост и рассуждение.
Тогда зависит от того, насколько важна память и производительность. Есл
Производительность важна увы.
Я немного не понимаю с врэппером. Предлагаешь обернуть каждый объект и сделать например Map где ключ это "name", а внутри Country ? И тогда отсортировать чтобы не было повторяющихся ключей (хотя оно и так получится при создании)?
Вообще огромное спасибо, котаны. Так хорошо с кем то обсудить было.
ПС
так что свою функцию вставлять некуда
Я надеялась что есть какая нибудь фишка стримов, которую я ещё не знаю.
Я немного не понимаю с врэппером. Предлагаешь обернуть каждый объект и сделать например Map где ключ это "name", а внутри Country ? И тогда отсортировать чтобы не было повторяющихся ключей (хотя оно и так получится при создании)?
Это из той же ссылки:
Плюсы: просто, прозрачно, красиво, легко генерализируется если c.getName() вынести в конструктор как функцию.
Минусы: оверхед по производительности на создание объекта, оверхед по памяти на эти объекты (в норме должны быть короткоживущими, но зависит от размера списка и настроек GC)
Кстати, а в initCountries() нельзя сразу проверку на уникальность воткнуть (с флагом)?
причем даже на назначенные встречи человек может не придти или придти с опозданием на четверть встречи
вот когда ты его выловил (ака начальник всё-таки пришёл на встречу) - вот прямо на месте держи его и накидывай ему вопросы. Можно даже вперёд обсуждения других вопросов с командой, если именно начальник тормозит процесс.
А можешь какие-то регулярные встречи 1 на 1 лично с ним запросить (например, 15-30 минут ежедневно)? Это вообще шик вариант. Ну и вооружись терпением и тыкай начальника, если он забыл про встречу. Можно за 5 мин до встречи лично ему писать напоминалку. Что он больше всего читает - почту, мессенджеры? Вот туда и писать. Ну и в календаре своём тот начальник видит, что у него встреча в условные 10:00, надеюсь? Если нет - организуй обязательно.
задача даже собрать людей на созвон, где джо должен быть, превращается в квест на несколько дней.
почему несколько дней? Думаю, в таком случае 1 на 1 действительно было бы выходом: тогда все основные инструкции ты сможешь у него собрать, и уже на встрече с командой, на которой начальник в состоянии кота Шрёдингера, обрисовываешь дальнейший курс работы с командой. Придёт начальник - хорошо, не придёт - не страшно, инструкции у тебя лично есть и ты их доносишь команде.
Успехов, анон! Надеюсь, в твоём случае ловля начальника пройдет удачно и работа организуется как надо в итоге
Отредактировано (2023-07-05 01:58:39)
Оцени возможные последствия, прикрой по максимуму задницу (например, пиши в сопроводиловке к плану, что, если возражений нет, то такого-то числа начинаем первый этап).
+1
Но, опять же, это надо донести начальнику словами. Если у него стотыщ планов, стотыщ тасков и он сам себе план работы строит, то на дежурной встрече шаришь экран, показываешь ему финальную версию плана и спрашиваешь, есть ли замечания. Нет замечаний (нач занят/ему лень/ему пофиг в момент вопроса) - кмк, можно спокойно принять план в работу и описать какой-нибудь саммари встречи: говорили о том-то, план был такой-то, дополнений/замечаний к плану не было, план принят в работу. Чтобы если вдруг что не так, твой непосредственный начальник пришёл и увидел, что ты поработал над планом, вынес его на обсуждение, высший начальник видел и замечаний не внёс, план был принят в работу. Ты не обязан быть твоим начальником, тем более если ты новый человек на проекте.
Оцени возможные последствия, прикрой по максимуму задницу (например, пиши в сопроводиловке к плану, что, если возражений нет, то такого-то числа начинаем первый этап).
Да я могу прикрыть задницу. Я уже даже смирился с тем, что меня уволят с испытательного. Но проекту-то это не поможет.
Но спасибо, было хорошо порефлексировать вслух: я хотя бы для себя понял, к чему иду.
А это первый такой проект в этой компании? Как делалось раньше?
Прошлые проекты делались через жопу, если честно, ими руководили технические ребята (вчера мне один из них на оччччень аккуратный вопрос, не описывали ли они уже бенефиты от своего прекрасного решения для клиента, сказал, что это common sense. Пепяка там, если что, не очередной веб-портал, а сложная хуйня, втыкающаяся в инфру).
Прежний начальник прямо в реанимации или у него можно разово спросить хотя бы вот это "как лучше, делать нихуя или наломать дров"?
Спасибо. Я про это вообще не подумал. Попробую. Спасибо, анон!
А можешь какие-то регулярные встречи 1 на 1 лично с ним запросить (например, 15-30 минут ежедневно)?
Не могу. Говорю же, у него есть время на меня раз в неделю, когда/если он до офиса доедет, но не факт, потому что на прошлое оговоренное время он не пришел. Так и живем (с)
Если нет - организуй обязательно.
Ну вот это для меня один из философских вопросов. Я понимаю, что ради того, чтобы оно катилось, делать надо. Но сссука, я не шел его личным секретарем или ассистентом, я не пеппер (да и он не тонистарк, прямо скажем). Но опять - вот это я снежинка или он немного охуевшая тварь? Почему вообще мужики-начальники возраста 45+ и даже не С-левела настолько забивают на любую бизнес-этику? Который раз такое вижу. Но раньше я был моложе, неопытнее и терпеть было проще.
Пока я подстраховывался тем, что у меня на все встречи было два плана: если придет и если не придет. Но ты прав, придется, конечно.
Нет замечаний (нач занят/ему лень/ему пофиг в момент вопроса) - кмк, можно спокойно принять план в работу и описать какой-нибудь саммари встречи: говорили о том-то, план был такой-то, дополнений/замечаний к плану не было, план принят в работу.
Ну вот та же беда, что выше: мою жопу прикроет, проекту не поможет. Но я посмотрю еще на это всё. Либо мы с джо научимся работать (ахахахаха, кто-нибудь видел, чтобы такие персонажи перевоспитывались?), либо... ну, меня уволят, либо сам работу буду искать, чо.
Спасибо, аноны, что поговорили со мной, как-то здорово успокоило.
Я надеялась что есть какая нибудь фишка стримов, которую я ещё не знаю.
Дело не в волшебной фишке, а в понимании, почему так. Посмотри, как устроены варианты реализации из найденных на Stack Overflow тем, подумай, какие у них отличия в использовании памяти на создание временных структур, в вычислительной сложности, в возможности автоматического распараллеливания и так далее. Само собой, почитай документацию java.util.stream, посмотри на исходник в DistinctOps.java. Если делать по уму, со сложными объектами, то надо добавить прокси-класс, в котором equals() и hashCode() будут учитывать только значимое для узкой задачи содержимое, обернуть в него обращения к оригинальному, и тогда distinct() по коллекции таких объектов автоматически выдаст уникальные. Поскольку в твоей частной задаче, решаемой в лоб, неявно нужны только строки, ты и обходишься созданием коллекции строк, полагаясь на их встроенные операции сравнения. При более сложном внутреннем устройстве данных так не получится.
Если порыться в похожем, можно найти такое решение на базовых операторах —
https://stackoverflow.com/questions/593 … 4#59373014
— и попробовать его повторить, задав функцию сортировки и функцию группировки.
Из теоретического интереса можно представить ситуацию, когда операции отношения не транзитивны, и подумать, что и как может глючить в этом случае.
https://ru.wikipedia.org/wiki/%D0%9F%D0 … 0%B8%D0%B5
Если у тебя такие списки берутся из базы данных, самое время начать её нормализовывать, чтобы не заниматься подобной ерундой на клиенте.
Ну вот та же беда, что выше: мою жопу прикроет, проекту не поможет.
Анон, там, судя по всему, на судьбу проекта поебать всем, кроме тебя. Ты что-то пытаешься организовать, а все остальные это игнорируют или саботируют. Непохоже, чтобы у них душа горела за судьбу проекта.
Нет ли такого, чтобы тебя туда взяли как козла отпущения, чтобы они могли нихуя не менять, но если проект не взлетит, обвинить в этом тебя, мол, плохо старался?
Из теоретического интереса можно представить ситуацию, когда операции отношения не транзитивны
...и тем самым нарушают контракт equals().
Непохоже, чтобы у них душа горела за судьбу проекта.
Нет ли такого, чтобы тебя туда взяли как козла отпущения, чтобы они могли нихуя не менять, но если проект не взлетит, обвинить в этом тебя, мол, плохо старался?
Да ты 100% прав в том смысле, что там все сгорело и моя задача - отряхнуть это что-то из пепла к сентябрю.
Версия с козлом меня не очень трогает, потому что это их внутренние политразборки, скажут, что это мой фейл - скажу, что окей, дальше что делать будем. Как правильно сказал анон выше, в худшем для меня случае меня уволят, а с этим, кажется, я уже смирился как с риском.
Ну, хотя бы дождусь сентября, там может хоть рыночек для всяких не-инженеров типа меня перестанет быть таким кладбищем
(Я пошел к этим ребятам не по большой любви, они просто давали больше денег, чем второй вариант, а поскольку оба сетапа выглядели мутным пепелищем, я выбирал по деньгам).
Как бы еще по ночам спать и нервы поберечь, потому что я-то не могу спокойно проебывать то, что должен сделать.
Отредактировано (2023-07-05 13:15:23)
Анон пишет:Из теоретического интереса можно представить ситуацию, когда операции отношения не транзитивны
...и тем самым нарушают контракт equals().
Ну так начать надо с этой строчки в документации. Потом подумать, что будет, если функции определяют не симметричные отношения равенства или неравенства. Прикинуть, что сломается и какие глюки будут в разных реализациях коллекций при разном порядке элементов, разном числе потоков и так далее. Потом подумать, как можно сделать свой аналог с фиксированными правилами обработки для случаев, когда всё-таки надо иметь такие сравнения, использовать вероятностные результаты и так далее. Придумать примеры таких задач (ну, первый-то почти всем одинаково на ум приходит).
Как бы еще по ночам спать и нервы поберечь, потому что я-то не могу спокойно проебывать то, что должен сделать.
Бедный анон, сочувствую тебе. Сам там был (не РМ, но в ситуации "всё тонет, а меня назначили виноватым"), очень хорошо понимаю твои чувства.
Если сбежать из этого сгоревшего сейчас никак, то выбор только один - найти хорошего психолога и работать по двум направлениям:
- "я остался один начальник проекта с фиговым начальником сверху, всё тонет и всем пох, а меня почему-то совесть мучает"
- "помогите отрастить кристаллический похуй на то, что объективно вне моего контроля"
Причём, к психологу я бы советовал бежать прямо сейчас. Если ты уже работаешь на нервяке и не можешь спать, то пребывание в такой обстановке без посторонней помощи может потом очень дорого обойтись твоим мозгам. А мозги - твой основной рабочий инструмент, их надо беречь. Послушай анона, который себя проебал по такой же схеме и сейчас пытается выплыть на уже энцатых антидепрессантах
Так-то все взрослые люди, у каждого ответственность в меру его должности, и если вокруг тебя долбоклюи, а ты пытаешься сделать за них их работу по части ответственности - тебе стоит научиться этого не делать. Это тяжело, но в твоей ситуации просто необходимо
Ну так начать надо с этой строчки в документации. Потом подумать, что будет, если функции определяют не симметричные отношения равенства или неравенства. Прикинуть, что сломается и какие глюки будут в разных реализациях коллекций при разном порядке элементов, разном числе потоков и так далее. Потом подумать, как можно сделать свой аналог с фиксированными правилами обработки для случаев, когда всё-таки надо иметь такие сравнения, использовать вероятностные результаты и так далее. Придумать примеры таких задач (ну, первый-то почти всем одинаково на ум приходит).
И зачем вот это все для проходной в сущности задачи?
Как бы еще по ночам спать и нервы поберечь, потому что я-то не могу спокойно проебывать то, что должен сделать.
Попробуй, если это возможно, выделить какой-то небольшой пятачок, на котором ты можешь отстроить процессы и показать внятный план и результат. Пусть вокруг всё горит, но будет кусочек проекта, который делается (вот прогресс) и работает (вот результаты).
Это и для кукухи хорошо, и чтобы вести разговор на тему, а что ты вообще делал, что ты умеешь, что ты можешь показать. В крайнем случае, если придётся увольняться, "организовал вот это с такими результатами" хорошо смотрится в резюме, а "бегал тушил пожары за долбоёбами, вот кучка пепла" - несколько хуже. Хотя, если благодаря тебе сгорело меньше, чем могло бы, это тоже можно красиво написать.
Аноны-аналитики, посоветуйте, пожалуйста, толковые гитхабы с аналитическими проектами - отечественных или зарубежных аналитиков, без разницы. Очень хочется посмотреть, как настоящие профессионалы оформляют свои проекты, как вообще подходят к анализу, а не вот то, чему учат повсеместно на курсах.
Отредактировано (2023-07-06 22:59:56)
Аноны-аналитики
Дата? Бизнес? Системные? UX?