darerror not found
1K subscribers
27 photos
23 links
@darerror пишет о всяком и разном. в основном о java да backend прилегающем.
Download Telegram
Forwarded from darerror
этот день настал: дисциплина победила в очередной раз, а Егор Рогов был наконец дочитан.

«PostgreSQL изнутри». 650 страниц.🐘

написана сложным языком. приходилось порой перечитывать. где-то к середине удалось раскачаться и понять гения.

темы: снимки данных, страницы и версии строк, изоляции, MVCC, память, слои, схемы, очистки, заморозки, перестроения таблиц и индексов, кеширования, журнал предзаписи, блокировки, этапы выполнения запросов, 3 вида соединений (merge, hash, nested), типы индексов (hash, btree, gist, sp-gist, gin, brin)

в целом, той же книги «Оптимизация запросов в PostgreSQL» (ранее делала обзор) вполне достаточно для минимального понимания работы слона (краткая и более поверхностная выжимка для разработчика). Рогов идет сильно глубже и пишет сильно сложнее.

итог: самая непростая техническая литература на моем пути. во многом расширила познания - здорово.

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

теперь хоть знаю как слоны живут. пора дать дорогу кабанам.
Forwarded from darerror
итак, отзыв на кабанчика

«Высоконагруженные приложения. Программирование, масштабирование, поддержка» Клеппман Мартин

книга в оригинале была прочтена без надлежащей сложности: Мартин очень умело доносит свои мысли. шикарный труд. но этим я никого не удивлю. хочу пояснить, почему он оказался хорош для меня:

> в тех вещах, которые я знаю, я смогла получить еще больше широты (как в учебнике истории)
> в тех вещах, в которых я осведомлена должным образом, я смогла получить более качественное понимание (например, идеальнее описания проблем уровней изоляции не встречала: после Егора Рогова целая услада)
> в тех вещах, в которых у меня не было опыта, (например, data engeenering), я смогла получить понятное представление (забавно, что в этот же момент под эти главы у меня на работе сложилась практика)

книга не предлагает рецептов, а развивает умение анализировать и принимать обоснованные решения — ключевой навык опытного инженера.

очень рекомендую для мидлов и выше.
и очень рекомендую в оригинале (в противном случае будьте готовы к тому, что json - это подмножество java).

для кого:
1. основная аудитория - бэкендеры (особенно те, кто работает с распределёнными системами)
2. архитекторы (что выбрать и почему, что нужно учитывать)
3. devops/sre (важно понимать, почему консенсусные алгоритмы могут "зависнуть", что такое кворум, как поведение распределённой системы зависит от сети, времени и задержек)
4. техлиды/руководители проектов
5. системные аналитики (книга помогает понимать ограничения и компромиссы, с которыми сталкиваются разработчики, объясняет что можно ожидать от систем, а что — нет, помогает лучше формулировать технические требования и ограничения в системных документах)
6. дата-инженеры (особенно зайдут последние главы)

а чем вас покорил кабанчик и почему?
❤‍🔥32👍1
Forwarded from darerror
прочитала «Чистую архитектуру» меньше, чем за неделю — шла она очень легко.

наверное, потому что я запоздала с ней. книга — про погружение в архитектурное мышление, идеально на уровне junior/middle. сейчас — всё понятно, очевидно, немного изъезженно и старовато местами.

если коротко, «Чистая архитектура» — это набор принципов, правил и рекомендаций о том, как строить долгоживущие системы. как отделять бизнес-логику от фреймворков, как не слипаться с базой данных, как не превращать контроллеры в болото. много про зависимостями, границы, инверсию, SOLID и круги.

“Если вы думаете, что хорошая архитектура стоит дорого, попробуйте плохую архитектуру”

“Модуль должен иметь одну и только одну причину для изменения”

“В один компонент должны включаться классы, изменяющиеся по одним причинам и в одно время. В разные компоненты должны включаться классы, изменяющиеся в разное время и по разным причинам”

“Главная стратегия - как можно дольше иметь как можно больше вариантов”

“Хороший архитектор максимизирует количество непринятых решений”


вообще, «чистый код» Дядюшки Боба мне явно больше зашел в свое время. конечно, вокруг него сейчас много хейта ходит, но холивар на то и холивар. но «совершенный код» Макконнелла я бы прочитала в будущем все-таки для сравнения.

кто читал? как вам?☀️
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from darerror
смотрю сейчас большое свежее интервью одного из основных мейнтейнеров Postgres и сооснователя Postgres Pro 🐘

нравится слушать именно такие подкасты на стыке простых жизненных вопросов и технической составляющей

подобные истории вдохновляют. оставляю сноску из описания видео:

поговорили про то, кто стоял у истоков Postgres, проблемы мирового опенсорса, как изменились отношения среди Postgres сообщества после начала СВО. А также про то, какое место в этих процессах занимал Олег Бартунов, про компанию Postgres Pro, сколько зарабатывает компания и в частности Олег Бартунов в год, про изменения с приходом AI, а еще зачем он писал Сергею Брину в 1995 году и почему нужно вкладываться в обучение сегодня, чтобы иметь сильное IT в России завтра
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from darerror
🪨джун с опорой: как я строила себя в профессии. советы и мысли

когда только начинаешь карьеру в разработке, сложно понять, на что опираться. особенно если кажется, что все вокруг умнее, быстрее, опытнее.
с самого начала работы я получала очень тёплую и честную обратную связь от коллег. благодаря этому у меня выстраивалась опора — на себя, на процесс, на рост. ниже — пару выдержек из отзывов.


«коллеги очень высоко оценили твою активность, инициативность и желание качественно делать задачи»
«ты справляешься с уже достаточно сложными задачами, проявляешь инициативу и не боишься брать на себя ответственность»
«успешно решаешь сложные проблемы, задаешь правильные вопросы, стремишься к лучшему коду»
«отмечают твой вклад в разработку фич, внимание к деталям и постоянное стремление улучшать решение»
«серьёзно подходишь к проектированию, выстраиваешь коммуникации с командой и заказчиком, быстро адаптируешься и делаешь качественный код»


эти слова давали мне не только поддержку, но и пищу для анализа: а что именно я делаю правильно? а что работает?
сформировались принципы, которые я бы с радостью отдала себе-джуну в первый рабочий день. делюсь ими здесь.

1. всегда проверять реализацию
даже если всё супер и тесты зелёные — всё равно делать смоук-проверку руками. лучше я поймаю баг, чем QA будет разбираться, почему не работает. *в некоторых командах это является зафиксированным процессом, а в некоторых - нет
2. быть пессимистом — полезнее, чем оптимистом
научись сразу думать о худших сценариях. особенно в сроках и оценках. лучше успеть раньше, чем провалить дедлайн. без навыка оценивать дальше никуда.
3. самостоятельность — мышца, которую надо качать
если нет идей — это не повод молчать. я старалась озвучить хоть что-то, и старшие коллеги подхватывали. не страшно быть неуверенной — страшно не учиться на этом.
4. не обижаться на «тщательное» ревью
знаю, что некоторые воспринимают ревью как критику, но это в корне не так. это не про «ты плохо сделал», а про то, как сделать лучше. хорошее ревью - это подарок. я всегда просила меня жестче ревьюить.
5. нужно бороться с иллюзией «все всё знают, а я — нет»
вечно кто-то да обсуждает какую-нибудь сортировку креветками. да, большой пласт незнания на старте - это естественно, но существует категория людей, которая буквально вчера прочитала что-то заумное и редкое на хабре и теперь хочет, чтобы об этом знал весь мир. никто не знает всё. часто задачи специфичны. это просто иллюзия восприятия.
6. ошибаться — нормально
«человек, который ошибался много и часто – но никогда не совершал одну и ту же ошибку дважды, – более надежен, чем тот, кто не ошибался никогда»

напоследок, мои мини-привычки, которые помогают до сих пор:
— если доделываю задачу вечером, утром обязательно перепроверю на свежую голову
— если не знаю, с чего начать, - пытаюсь сформулировать вопрос: ответы самому себе часто приходят в процессе формирования вопроса другому
— сначала пишу код средне, чтобы просто работало. а потом улучшаю до состояния «нравится»

если пост понравился - оставляйте реакцию ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
221
https://freedium.cfd/ стал однажды моим большим открытием в бесконечном скроллинге медиум страниц
🔥3
🌺последние пару месяцев я детально изучала проекты Spring Cloud

зачем?

сейчас я работаю на проекте с микросервисной архитектурой, но так было не всегда. до этого у меня был опыт с SOA. понятно, что ни одна архитектура не является универсальной — у каждой свои плюсы и минусы. но дело не в сравнении подходов.

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

Spring Cloud — это не просто фреймворк. это набор обёрток над проверенными архитектурными решениями: Resilience pattern, API Gateway pattern, Distributed events, dynamic configuration и другие.

изучение этих проектов даёт не только новые инструменты для решения нетривиальных задач, но и понимание того, как выстраивать систему более осознанно:
— как автоматизировать CI/CD с помощью contract-тестирования
— почему используют Vault для безопасного хранения секретов
— какие trade-off’ы стоят за выбором: Bus vs manual refresh

это помогает делать более обоснованный выбор решений, понимать чужой код глубже и трезво оценивать уровень зрелости проектов.

в конечном счёте, цель — прокачка архитектурного мышления.
не просто использовать аннотации, а видеть за ними реальные паттерны, инженерные компромиссы и логику. в том числе — лучше понимать open source и, возможно, однажды внести вклад в него
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥2🗿1
девопсы, к вам вопрос: что делали разработчики, что вас прямо выбешивало??
2
моя жизнь в разработке сейчас очень насыщенная — и это настоящая отдушина🧋

особенно когда то, что ты делаешь «в рутине», прокачивает тебя и снаружи

если коротко — около 80% моего времени уходит на технические задачи. осенью, скорее всего, возьму паузу в сторону бизнеса, но пока держу курс на «харды». чуть подробнее:

а) продолжаю заниматься миграцией с oracle на postgres без простоя. у нас есть четкий поэтапный план по всем микросервисам, проработанный лично мной. где-то я просто отслеживаю прогресс как фича-лид, где-то пишу руками. стараемся давать всем поучаствовать — чтобы знания не застаивались. для миграции данных используем debezium, и недавно я занималась оптимизацией kafka: настраивала сжатие и schema registry.

б) изначально не очень понравилась система отчетности в проекте: видно было, что там много узких мест, но времени обычно не хватает. сейчас наконец дошли руки до анализа и поиска реальных точек улучшения. про техдолг не забыли — и это радует.

в) в следующем спринте беру миграцию одного из микросервисов с java 11 на 17. часть уже перевели, я решила не упускать возможность и тоже выцепила задачку — хочу набить руку в этом процессе. он идет параллельно с переходом на postgres, но там другой фича-лид, мой коллега.

г) по мелочи — баги, продовые вопросы, локальные задачки.

вообщем, очень кайфую от работы❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
30❤‍🔥8👍6
оп, выловила златое число!🐡
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥417💯2
потихоньку появляются темы докладов предстоящего Joker🍇

уже для себя отметила парочку интересных.

но встал вопрос: ребята-разработчики (бэк), а как у вас отношения с девопс-обязанностями?

сейчас прикреплю опрос
Please open Telegram to view this post
VIEW IN TELEGRAM
8
касаемо меня: прожала 3 вариант.

почти каждый день общаюсь с devops-инженерами на работе. базовое понимание их процессов сильно помогает говорить на «одном языке».

не считаю, что разработчику нужно уметь это все, но в некоторых проектах роли всё-таки смешивают — и это сразу можно считать по вакансиям.

у самой есть интерес чуть глубже разобраться в практической части. возможно, ближе к четвёртому кварталу что-то поделаю руками — просто чтобы расширить картину мира.

но цели идти в devops-команду нет.
всё-таки проды, падающие в три ночи, — это не та романтика, которая меня пленит😒
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍7🤝1
всё чаще сталкиваюсь с тем, что рефакторинг — это задача, которую всегда можно отложить. она вроде бы важна, но на фоне продуктовых фич или багфиксов теряет приоритет.

и это ловушка. потому что когда накопившийся долг взрывается, правки начинают вноситься в несколько мест, флоу становится непрозрачным, а тестировщики получают задачу “мы поправили тут и тут, но проверьте на всякий случай всё”.

в итоге трудозатраты растут, а доверие падает.

мне близко правило “сделай чуть лучше, чем было до тебя”. не перегружая, просто оставить после себя место чище.

и я уже не раз видела, как это “чуть-чуть” срабатывает. и спустя месяц — оказывается, что именно оно помогло не утонуть.

а как у вас с рефакторингом?
32
близка мне концепция «жим-жим» — «отдых» в работе.

смысл простой: стабильно беру себе такую задачу, что и страшно, и интересно. когда не до конца понимаешь, что делать, и от этого внутри чуть ёкает. когда нужно выжать из себя больше, чем обычно, за те же часы. но зато — растёшь.

а между такими «жим-жимами» — отдых. лёгкие задачи, поток быстрый, почти не устаёшь, но всё равно делаешь полезное.

сейчас у меня снова прокачка мышц: перевожу микросервис на более свежую Java.
хоть перечитай все статьи на эту тему, но всё равно опыт будет у всех разным.

приложение просто не стартует. «не могу найти бин» — какой-то системный. без конкретики. вот и сиди, верти этот кубик рубика.

нравится!

а какой у вас подход к рабочим задачам? просите сами или берете что дают?
31💋4
поделиться ли с вами чуть позже своим опытом переезда с java 11 -> java 17 (sb 2.* -> 3.*)?

посмотрю на количество реакций❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥92😭8👍6🔥41😢1
и также своим опытом перевоза всего проекта на postgresql??
77🔥16👍8😭4😢2
давайте соберем под этим постом все конференции/митапы/суету, которые посещали/хотите посетить?
8