惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
MyScale Blog
MyScale Blog
Cyberwarzone
Cyberwarzone
Schneier on Security
Schneier on Security
I
Intezer
Cisco Talos Blog
Cisco Talos Blog
Cloudbric
Cloudbric
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
NISL@THU
NISL@THU
博客园 - Franky
F
Fortinet All Blogs
Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
N
News and Events Feed by Topic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
F
Full Disclosure
T
Troy Hunt's Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Project Zero
Project Zero
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
美团技术团队
D
Docker
PCI Perspectives
PCI Perspectives
Microsoft Azure Blog
Microsoft Azure Blog
MongoDB | Blog
MongoDB | Blog
L
LINUX DO - 最新话题
Recent Announcements
Recent Announcements
Hacker News: Ask HN
Hacker News: Ask HN
人人都是产品经理
人人都是产品经理
月光博客
月光博客
D
DataBreaches.Net
The Hacker News
The Hacker News
爱范儿
爱范儿
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
SecWiki News
SecWiki News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
A
About on SuperTechFans
Latest news
Latest news
GbyAI
GbyAI
T
Tor Project blog
L
LINUX DO - 热门话题
Security Latest
Security Latest
博客园 - 聂微东
Y
Y Combinator Blog
AI
AI
M
MIT News - Artificial intelligence

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
10 вещей, которые бы я хотел услышать в первый год работы. Опыт Java разработчика. Часть 1: не только лишь код
Alex_software_dev · 2026-06-07 · via Все публикации подряд на Хабре

6 мин

12K

Читатели хабра, категорически вас приветствую! Я прошел путь от стажера до разработчика Java с опытом в 5+ лет. За это время было принято не мало хороших решений, но плохие тоже не отставали, о последних и возможном способе их решения я хочу рассказать, и возможно кому то это поможет не наступить на те же грабли что и я, или же менее болезненно “отодрать” их от своих ног, если вы уже попали на них.

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

1. Онбординг: не бояться спрашивать и просить помощи

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

Задача онбординга – с наибольшим комфортом и за наименьшее время помочь вам влиться в процессы компании и команды. Поэтому смело задавайте вопросы и просите помощи при необходимости у ответственных лиц. При этом не забывая о балансе, есть вещи которые предполагается что вы знаете, например установить среду разработки, склонить проект, установить и настроить СУБД по конфигу и тому подобное. А есть вещи специфические для конкретной компании или команды, который вы не можете знать изначально, например где лежат конфигурации для различных стендов, какие политики именования веток в системе контроля версий, где взять доступы к внутренним API и так далее. И помните, вашем быстром и комфортном онбординге заинтересован бизнес, вы имеете полное право на него.

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

2. Не стесняться спрашивать того, кто дал задачу, но подходить к этому с умом

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

Например, в одной из компании у меня была ситуация, когда на очередном распределении задач, я получил свою, в ней как мне, казалось, было все очень подробно расписано, с широко развернутым текстовым описанием, примерами, изображениями с уточняющей информацией и выглядело это как нечто внушающее доверие. Но у меня никак не получалось интегрировать функциональность в то место куда требовалось, я прилично времени сидел вчитывался в ТЗ, изучал целевой участок проекта, документацию по нему (в этом проекте она была хорошей в отличие от примера из первого пункта), но никак не мог ее интегрировать. Я думал: «Не пойму, такая красивая задача, все так хорошо описано, столько дополнительной информации, хорошая документация, а я не могу с ней справится». Оказалось, все довольно прозаично. Оказалось, что аналитик просто указал не тот участок приложения, а схожий, извинился и внес изменения в ТЗ.

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

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

3. Код-ревью. Защищаться и получать выгоду

Сомнительное ревью — вам могут сказать что-то вроде «Так пишут студенты», «Решение так себе» и не объясняют почему. Это не про вас. Это про неумение ревьюера в коммуникации.

Как-то раз мне сказали: «Мне не нравится, надо переписывать». Я спросил: «А что не так?» - «Так писать нельзя». И только после третьего вопроса «Почему именно не устроило решение?» я наконец получил внятный ответ. Хороший способ провести "эффективное" ревью. С тех пор я не стесняюсь переспрашивать. Уточните: «Расскажи, что именно не так». Если не помогает - фраза «Не понимаю, что вы говорите» часто отрезвляет. Она не обвиняет явно, но подчёркивает, что человек говорит невразумительно, и лучше бы ему изъясняться по-человечески.

Но оно бывает и таким: разговор начинается с того, что хорошо, но вот тут можно сделать более качественно - есть несколько подходов, вот первый, вот второй, вот примеры, где посмотреть. Если возникнут вопросы — сразу спрашивай, я помогу. Это бесплатный урок. Даже если ревьюер не сделал никаких замечаний, у таких коллег лучше лишний раз спросить: «А как бы вы сделали? Насколько вам нравится моё решение? Может, что-то можно улучшить?». Так можно быстрее улучшить свою экспертизу.

4. Сразу уделять большое внимание чистоте кода и архитектуры(уровень классов, сервисов и тп)

Лучше всего как можно раньше начать уделять большое вниманием этим аспектам, даже если вы видите, что в вашей команде кто-то на это забивал. Так как чем раньше начнете, тем меньше будет размер технического долга (скорость реализации в обмен на возможность поддержки и развития решения). Фраза «Потом отрефакторим», часто в действительности означает «Никогда»). А в результате мучительные и долгие правки которые делать либо вам, либо вашим коллегам, выслушивая много “лестных” слов в свой адрес, а вероятно и оба варианта сразу.

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

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

5. Не откладывать написание тестов

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

Если у вас в команде плохо с культурой тестирования, можно сказать, что прежде, чем приступить к новой задаче, вы покроете тестами функционал предыдущей задачи.

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

 Резюмируя

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

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

Будущий канал для дополнительного контента в MAX и Telegram