fa
Feedback
Девчонка из IT

Девчонка из IT

رفتن به کانال در Telegram

Будни backend разработчика 🧡

نمایش بیشتر
2 061
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-107 روز
-4130 روز
آرشیو پست ها
🎞 JAVA-DEVELOPER: Кто такой Senior и что спрашивают на собесах Гость: Анастасия Андреева, Senior Java Developer Анастасия поделится: • Кто такой senior разработчик и как им стать • Честно о том, как проходила собесы и что не получилось • Какие вопросы и задания даёт, когда сама проводит собеседования, поделится лайфхаками • Расскажет зачем нужны алгоритмы и как использует искусственный интеллект ✅ Подписывайтесь на наши каналы: • Ия, Team Lead DA: https://t.me/Lady_Analyst • Евгений, DE: https://t.me/halltape_data • Анастасия, Java Developer: https://t.me/itdevgrl Если было полезно, весело, то поддержите наш канал донатами: 💲 https://pay.mysbertips.ru/92484472

Ой ребятаааа, что покажу сейчас!) Когда мне прислали этот пост, у меня вспотели ладошки, волнуюсь очень 😅😅😅 Вышло интервью со мной, зацените 😍 Опыт конечно просто сумасшедший, очень расширяющий и выводящий из зоны комфорта 🔥 P.S.: коллежки, простите, если я не так рассказала хронологию событий, волновалась)

Но кое-что мы с девопсиками всё же поделали 🤩 Оставлю здесь заметку 🤓 У нас появилась задача, чтобы при сборке в гитлабе зависимости подтягивались из другого репозитория, не тех, которые указаны в build.gradle проекта. При этом чтобы локально проект собирался по-прежнему Мы решили добавить в пайплайн гитлаба init.gradle и в нём указать необходимые репозитории, но это не помогло))

repositories {
    maven {
        url "..."
    }
    mavenCentral()
    mavenLocal()
}

Не помогло это потому, что по умолчанию настройки в build.gradle переопределяют init.gradle. Чтобы этого не происходило в init.gradle можно указать стратегию, по которой будут определяться репозитории:

allprojects {
  settingsEvaluated {
    it.dependencyResolutionManagement {
      repositoriesMode = RepositoriesMode.PREFER_SETTINGS
    }
  }
}
Есть 2 опции: 1️⃣ PREFER_PROJECT - это когда репозитории в проекте переопределяют репозитории в настройках инстанса градла 2️⃣ PREFER_SETTINGS - это когда настройки инстанса градла приоритетнее настроек проекта Также есть опция FAIL_ON_PROJECT_REPOS - это когда билд падает, если в проекте вообще указан хоть какой-то репозиторий. Это может быть полезно для стандартизации разработки и контроля сборок

Всем привет! Как прошёл ваш первый рабочий денёк? У меня примерно как на картинке 🤣
Всем привет! Как прошёл ваш первый рабочий денёк? У меня примерно как на картинке 🤣

Ну что дорогие мои подпищеки 🤪 Всех поздравляю с Новым Годом 🎄 Подводить итоги прошлого года я конечно же не буду)) Себе пожелаю больше писать и предъявлять меньше требований к своим постам 😅 Всем вам желаю любви, спасибо что вы со мной 🥹🥹🥹🧡🧡🧡

Здарова бандиты 👋 Сходила на интервью к ребятам из Сбера, поболтали за синьорство, собесы и немножко gpt) Coming soon... Ищи
Здарова бандиты 👋 Сходила на интервью к ребятам из Сбера, поболтали за синьорство, собесы и немножко gpt) Coming soon... Ищите меня в прошма... на просторах ютуба 😬🤪

Зацените мою обнову 🤩 На такой клавиатуре только слепой печатью и печатать 😌😌
Зацените мою обнову 🤩 На такой клавиатуре только слепой печатью и печатать 😌😌

photo content
+9

Вот вам слайдики из доклада про страхи карьерных изменений тимлида и как с ними справляться 👇👇👇

YaTalks 2023 ❣️ Ну всё, конфа закончилась, рассказовою 🤪 Я ходила только на второй день «Про жизнь». Сама конференция прикол
+1
YaTalks 2023 ❣️ Ну всё, конфа закончилась, рассказовою 🤪 Я ходила только на второй день «Про жизнь». Сама конференция прикольная, живая, не пафосная, интересная. Людей и правда гораздо меньше, чем на jug конфах, но тут и позиционирование было другое + бесплатно. С позиционированием кстати есть непонятки, конфа заявляется как для тимлидов, но по ощущениям пришло много миддлов и сеньоров. Часть докладов тем не менее была для тимлидов+ и СТО, например про написание технической стратегии, формирование команд под нужды бизнеса, как можно общаться с бизнесом с позиции менеджера (спойлер: использовать дата дривен подход). Также говорили про карьерный трек разработчика/лида, собеседования, развитие, попали в мои боли 😅 Слава богу обошлось без обсуждений «микросервисы или монолит» от которых меня уже трисёт 😡 Я конечно ждала, что люди подойдут ко мне знакомиться, спросят что я делаю и все такое, потому что я тот ещё хикканище 😅 Но мой друг сказал, что в таком случае мне надо делать лицо попроще)) Блин, я старалась 🥹 В конце был экспериментальный комедийный стендап от C-level руководителей, такие штуки я просто обожаю 🥰🥰🥰, хихи хаха лол кек, ну вы понели)) В целом мне понравилось, сходила бы ещё, хотя каждый раз зарекаюсь не ездить больше на бесплатные конференции) Были косяки по организации и почему то на нескольких докладах название и описание практически не совпадало с содержанием, но об этом я напишу в обратной связи 😏 Короче, сидеть дома хикканить плохо, ездить в IT общество - хорошо 🤣

кто здесь? ❣️

Repost from IT Юмор
Или хотя бы сисадмином
+2
Или хотя бы сисадмином

💔💔💔

Всем привет! У моего друга Жени, junior дата инженера в Сбере, вышло интервью. В нём он рассказывает как вкатился в IT 🤓 🟣как выбрал профессию дата инженера 🟡как искал свою первую работку, проходил собесы и всё такое 😉 🟢с какими инструментами работает сейчас и зачем язык С дата инженеру Будет интересно тем, кто хочет войти в айтишку, не знает как подготовиться к первому собесу и как реально устроиться на работку, если ты джун 🐥 Ещё у Жени есть канал, где он пишет про будни дата инженера, постит чаще меня 🤪

@Cacheable. Part 1 Недавно на работе решила попробовать использовать спринговый @Cacheable с Redis'ом, оказалось настроить очень легко и всё сразу работает) Оставлю здесь заметку 📎 1️⃣ Сначала подключаем две зависимости

implementation("org.springframework.boot:spring-boot-starter-cache")
implementation("org.springframework.boot:spring-boot-starter-data-redis")
2️⃣ Потом))) на метод, результаты которого нужно закешировать вешаем собственно анноташку @Cacheable(value = ["название кеша"]) 3️⃣ Создаём класс конфигурации (@Configuration), вешаем на него аннотацию @EnableCaching 4️⃣ В конфигурации создаём бин RedisCacheManager (код лучше смотреть с компа)

@Bean
fun redisCacheManager(
    connectionFactory: RedisConnectionFactory,
    redisConfigurationProperties: RedisConfigurationProperties
): RedisCacheManager {

    val cacheConfig = defaultCacheConfig()
        .disableCachingNullValues()
        .entryTtl(redisConfigurationProperties.expireTime)
        .prefixCacheNameWith(redisConfigurationProperties.keyPrefix)

    return RedisCacheManager.builder(connectionFactory)
        .cacheDefaults(cacheConfig)
        // если не указать здесь кеш, то не будут собираться метрики
        .withCacheConfiguration("название кеша", cacheConfig)
        .enableStatistics()
        .build()
}
🌟 И вуаля! Результат метода кешируется в Redis. Ключом служит входной параметр функции, на которую повесили анноташку ❓ Почему я не использовала in-memory кеши, которые были бы внутри приложения? 🟢 кеш планируется достаточно объёмный, не хочется тратить ресурсы кластера куба, когда есть выделенный redis 🔵 в случае рестарта приложения, я не потеряю накопленный кеш 🟡 мне нравится как легко в редисе настраивается retention 🟡 при локальном in-memory кеше, если будет несколько реплик сервиса, локальный кеш будет на каждой реплике, возможно будут дубликаты, а это лишняя трата памяти 🟣 уменьшится hit rate, потому что второй запрос может прийти не на ту реплику Во второй части напишу как я использовала @Cacheable с локальным кешом, cheers 🌟

Кто на оффлайне? На какие доклады пойдёте?) 🤓🤓🤓
Кто на оффлайне? На какие доклады пойдёте?) 🤓🤓🤓

Всем привет! Вы часто меня спрашиваете, куда я пропала (нет) 🤣 В прошлый раз вернуться я не смогла, потом оказалось, что у меня выгорание и пришлось из него выходить)) Про стадии выгорания, и что помогло мне из него выйти я обязательно напишу пост, а сейчас о другом) Коллега посоветовал классную книгу, «Фундаментальный подход к программной архитектуре» (обложку покажу в каментах), в ней описаны различные подходы к проектированию архитектуры, паттерны, антипаттерны и приёмы, виды архитектуры и др. Одна из глав книги посвящена такому понятию как записи архитектурных решений (Architecture Decision Record, ADR). Это созвучно с тем, что мы сейчас реализуем у себя в команде разработки, поэтому очень хочу рассказать) Architecture Decision Record - это текстовый файл, который создаётся для описания конкретного архитектурного решения. Мы у себя используем .md файлы и храним их в Git. Есть и другие инструменты и форматы, например, страница в вики вашей компании. Файл должен быть лаконичным, и содержать разделы, о которых я расскажу ниже. 1️⃣ Название - короткое описание архитектурного решения, должно быть информативным и понятным, чтобы быстро ориентироваться, о чём эта запись 2️⃣ Статуc ADR - на какой стадии находится данное арх. решение: принято, или ещё обсуждается (Request For Comments, RFC), а может заменено новым ADR 3️⃣ Контекст - ситуация, которая привела к созданию ADR и принятию решения 4️⃣ Решение - сама суть архитектурного решения и его полное обоснование. Важно уделить особое внимание именно обоснованию решения, ответить на вопрос «почему». Этот момент является ключевым и самым полезным (имхо) в документировании архитектуры 5️⃣ Последствия - описание того, что влечёт за собой принятое архитектурное решение. Какие плюсы и минусы у него есть, их анализ 6️⃣⭐️ Альтернативы - опциональный раздел, в котором сосредоточены альтернативные решения указанной проблемы, и причины, по которым эти решения не были приняты командой 7️⃣ ⭐️ Комплаенс - в книге рекомендуется включать этот раздел в свои ADR. Это описание, каким образом контролировать соблюдение требований данного арх. решения, должно ли это контролироваться вручную или можно автоматизировать. У нас пока такого раздела нет 8️⃣⭐️ Примечания - также опциональный раздел для указания автора, дат утверждения и замены, лиц, участвующих в принятии и утверждении данного решнеия и т. д. 9️⃣ ❓❓❓ 🔟 Вы великолепны 🤪😂 Вы спросите меня, зачем всё это нужно? И я вам отвечу))) 🌟 Это эффективный способ документировать архитектуру - всё в одном месте, можно наблюдать инкремент, описаны альтарнативы, + и - 🌟 Не приходится проводить повторные R&D, потому что результаты предыдущих архитектурных дилемм записаны, оформлены, подведены итоги 🌟 Чуть полегче онбордить новых разработчиков/внедрять иннерсорс, когда приходят с «а почему», можно прислать ссылку на «а потому» и вопрос исчерпан (но естественно пересмотр архитектуры и принятых решений должен быть) 🌟 Можно унифицировать подход к архитектуре микросервисов и тем самым снизить эксплуатационные издержки на поддержку Приземлю на конкретику. Если вы приходите в сервисы и не понимаете 🟢 почему условный Вася воткнул тут кафку, а не обошёлся рестом 🟣 почему решили использовать gRPC, а не десериализовать json’ы до талого)) 🔵 почему используется именно эта библиотека для генерации PDF 🟡 зачем тут Camunda прости господи))) 🟢 почему эту интеграцию реализовали из г… теми ресурсами, которые были доступны на тот момент 🥲 🟣 почему все сервисы развёрнуты в k8s, а один стоит на виндовой тачке в другом контуре Как я уже упомянула, мы у себя потихоньку начали внедрять практику написания ADR. Пока описано не всё, но уже сейчас удобно вспомнить какие решения мы приняли и почему решили именно так. Расскажите, знаете про такой инструмент? Практикуете?

Всем привет! Возвращаюсь в канал и начну с топовой истории) Вчера к нам на собеседование пришёл кандидат, который решил воспользоваться Chat GPT 🤣 Пруфов нет, но все признаки на лицо Вводная: по резюме 5 лет опыта, работал в известных больших компаниях на высоконагруженных проектах с блекджеком и корутинами))) После всех вопросов чел зависал секунд на 5-10, у него подёргивалось плечо, делал уточнения "правильно ли я понял, что вы спрашиваете ...." И начинал отвечать в стиле "... обладает характеристиками и используется для предоставления ...." Потом я чуть не упала, когда мы попросили перечислить сущности k8s, и он сказал - под, репликационные наборы (это типа ReplicaSet) 🤪 Затем мы решили перейти к секции с кодом, кандидат перепутал = и ==, не знал что такое юникод, запутался в ООП. Я читала о том, что на некоторых курсах начинающих разработчиков учат врать в резюме, но сама столкнулась впервые. Шок-контент 😨

Что ещё было на конфе: • Доклад Единое рабочее пространство администратора, или Когда закончилось место на панели вкладок - р
+5
Что ещё было на конфе: • Доклад Единое рабочее пространство администратора, или Когда закончилось место на панели вкладок - ребята из Сбера рассказали каким инструментом пользуются администраторы для контроля АС, работы с инцидентами и так далее. Для меня эта тема пока-что мимо. • Разделение на dev/master-ветки при деплое на стенды: паттерн или антипаттерн? - Семён Киреков из МТС рассказал про ситуации, которые могут возникнуть если использовать dev/master ветки. Вместо них он предлагает использовать trunk-based development с feature flags. Доклад получился холиварный, имхо примеры были надуманные, как-будто разработчик с закрытыми глазами пользуется гитом)) • Как мы в Сбере предоставляем техническую поддержку сотрудникам. Дмитрий из Сбера рассказал, как построили сервис, оказывающий тех. поддержку для 250к сотрудников. Тема тоже мимо меня)