Pull to refresh
23
0
Dmitry Khomutov @Corpsee

Web-разработчик

Send message

Ошибки в Go: Обработка, Обертки и Лучшие Практики

Level of difficultyMedium
Reading time8 min
Views4.9K

Go предлагает уникальный и прямолинейный подход к обработке ошибок, отличающийся от try-catch в других языках. Он основан на явной проверке возвращаемых значений, что требует больших проверок, но ведет к более надежному коду. Рассмотрим основы, современные инструменты пакета errors и лучшие практики.

Читать далее

IT-рынок труда в 2024 году: ситуация, тенденции и прогноз на 2025

Level of difficultyEasy
Reading time8 min
Views20K

Каждый год мы проводим исследования рынка труда, в том числе, конечно, сферы IT. Недавно закончили анализировать 2024 год и решили поделиться результатами с Хабром. 

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

Узнать про IT-рынок труда

Пишем стек TCP/IP с нуля: основы TCP и Handshake

Level of difficultyEasy
Reading time9 min
Views11K

Первая часть: Ethernet, ARP, IPv4 и ICMPv4

Пока наш стек TCP/IP пользовательского пространства содержит минимальные реализации Ethernet и IPv4. Настало время заняться пугающим Transmission Control Protocol (TCP).

TCP, работающий на четвёртом (транспортном) сетевом слое OSI1, отвечает за починку ошибочных подключений и сбоев в доставке пакетов. TCP — «рабочая лошадка» Интернета, обеспечивающая надёжную связь практически во всех компьютерных сетях.

TCP — не особо новый протокол, первая его спецификация вышла в 1974 году2. С тех пор многое поменялось, TCP дополнился множеством расширений и исправлений3.

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

Читать далее

Microsoft представила квантовый чип Majorana 1 с топологическими кубитами

Reading time3 min
Views27K

Компания Microsoft анонсировала первый в мире квантовый чип Majorana 1, основанный на новой архитектуре Topological Core. Этот чип использует топологические проводники — инновационные материалы, которые позволяют управлять частицами Майораны для создания стабильных и масштабируемых кубитов. Разработка открывает путь к созданию квантовых компьютеров, способных решать сложные задачи промышленного масштаба уже через несколько лет, а не десятилетия, как предполагалось ранее.

Читать далее

Чуть не устроил подростка тимлидом

Level of difficultyEasy
Reading time2 min
Views82K

Почитайте текст на прикреплённых скринах. Этим 17-тилетним подростком является Аким Саввин, руководитель команды бекенда в компании ВСК. И да, он дал своё согласие на упоминание его имени в этом посте.

Что мне хотелось бы сказать о мнении выше:

1)🌱 «Чуть не устроил подростка тимлидом». О боже, какой кошмар! Никто из нас ведь никогда не был подростками. Все родились, немного побухтели и сразу стали взрослыми людьми. К тому же, это не подросток с улицы, а человек с подтверждённым опытом и в первую очередь сотрудник. Поэтому подобную фразу я воспринимаю наравне с «Чуть не устроил на работу женщину в разводе с тремя детьми, Вы можете себе представить?!»

2)🌱 Претензии к «обману» сводят меня с ума. Если тебе нужен зрелый тимлид команды, об этом надо заявить на первой же встрече по обсуждению требований к вакансии. Хочешь ты человека от 30? Имеешь право, пусть и не совсем по закону. Дай указание эйчару спрашивать кандидатов о возрасте и не трать время тех, кто тебе не подходит. Не спросил заранее, виноват сам! У любого консалтинга или аустаффа задача продать — желательно побыстрее и подороже. Как я отмечала в интервью, помимо эйджизма в IT существует и обратный эйджизм. Поэтому глупо обвинять кандидата во лжи за то, что он решил не акцентировать внимание на невыгодной для него информации.

3) 🌱 «Во всей этой истории меня печалит то, что он прошёл этапы собеседования с 6 опытными разработчиками, и с 2-мя менеджерами»

Пишет автор публикации, Александр Ермаков. Александр, ну Вас не поймёшь:‑) Приходят на собес люди с фейковым резюме, которые ничего не знают и ничего не умеют — плохо. Приходит человек с подтверждённым опытом и необходимыми компетенциями — тоже не нравится. Ну если он прошёл все Ваши этапы, а Вам это пришлось не по душе, в чём проблема их усложнить или заменить? Вы же сами выстраивали процесс подбора, выбирали наиболее подходящие варианты оценки. Или кто‑то заставлял?..

Читать далее

Сборка проектов Си и Си++: от простого к сложному. Часть II. Сборщики

Level of difficultyMedium
Reading time22 min
Views12K

Продолжаю тему о сборке проектов на Си и Си++, первая часть которой размещена здесь.

Рецепты сборки по правилам хорошего тона должны поставляться с проектом и очень желательно, чтобы они не были привязаны к конкретной ОС или хотя бы к конкретному дистрибутиву Linux, используя специфические команды вроде apt-get, yum, emerge. Если это небольшой пет-проект выходного дня, то, конечно, в качестве рецепта сгодится и bash-скрипт. Пользователи адаптируют. Но если к проекту подключаются другие разработчики, то лучше потратить время на автоматизацию сборки, чтобы не терять его оптом в будущем. В этой части речь пойдёт об инструментах, которые используются для автоматизации процесса сборки программного обеспечения.
Читать дальше →

Сборка проектов Си и Си++: от простого к сложному. Часть I. Библиотеки

Level of difficultyMedium
Reading time12 min
Views22K

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

Вот сегодня и расскажу о том, какие бывают способы борьбы с зависимостями и сборки проекта из множества файлов на Си++. Заодно те, кто не любят Си++, смогут порадоваться «прелестям» этого процесса. И хоть тема очень важная для программистов, но я обратил внимание, что даже многолетний опыт не гарантирует понимания этих процессов. Но сразу предупреждаю — история длинная даже с учетом всех попыток не убегать на смежные темы.
Читать дальше →

Я взял кредит 700 тысяч на разработку своей визуальной новеллы, чтобы тебе не пришлось

Reading time12 min
Views33K

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

Читать далее

Agile умер: из-за своего сострадания к product- и project-менеджерам (с) Фридрих Ницше

Level of difficultyEasy
Reading time8 min
Views43K

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

Читать далее

Juniper и Cisco, как правильно собрать syslog и красиво оформить dashboard в grafana

Level of difficultyMedium
Reading time7 min
Views4.3K

В данное статье рассматривается порядок развертывания системы сбора и анализа логов с сетевых устройств производства Cisco и Juniper Networks, посредством применения «Syslog-ng», «Vector», «Loki» и «Grafana». Подробно описан процесс развертывания данных инструментов с помощью docker‑compose. Помимо этого, в статье затрагивается конфигурация сетевых устройств с использованием Ansible. Отдельное внимание отведено визуализации данных в Grafana, посредством создания dashboard.

Читать далее

Сто лет собеседований: почему наём в IT так переусложнён

Level of difficultyEasy
Reading time5 min
Views23K

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

Наём — это решение задачи с двумя неизвестными. Работодатель оценивает кандидата по его резюме, портфолио, тестовому заданию и общению на собеседованиях, но всё равно не может быть до конца уверен в том, что нашёл подходящего сотрудника. Кандидат выбирает работодателя по HR-бренду, описанию вакансии, может запросить в LinkedIn отзыв у сотрудника компании, но на 100% понимает, подходит ли ему рабочее место, только спустя пару месяцев после трудоустройства.

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

Рассмотрим, как выглядит наём глазами обеих сторон и попытаемся понять, может ли ситуация измениться в будущем. 

*Дисклеймер: ничью сторону не занимаем, просто рассуждаем и нащупываем точки взаимопонимания.

Читать далее

Скрам vs Канбан: Погружение в Agile, плюс памятка для проектных менеджеров

Level of difficultyEasy
Reading time7 min
Views16K

Приветствую вас, коллеги и соратники в мире управления проектами! При разработки программного обеспечения существует множество подходов, методологий к управлению IT проектами. Среди них топ места занимают Scrum и Kanban. Сегодня освежим наши знания об этих двух методах, и принципах их применении.

Читать далее

Асинхронный бег или драматическое ускорение с RoadRunner

Level of difficultyMedium
Reading time7 min
Views2.4K

Очень много в последнее время слышно замечаний в адрес PHP – мол, медленный, тяжелый, неповоротливый, все давно микросервисы на Go/Java/(нужное подставить) пишут. В этой статье я постараюсь расписать плюсы, минусы и результаты нашей попытки ускорить проект на PHP с использованием RoadRunner.

Читать далее

Операционная система в 1 000 строках кода (часть 1)

Level of difficultyMedium
Reading time11 min
Views35K

Всем привет! В этой небольшой книге (серии статей, — прим. пер.) мы с нуля, шаг за шагом, напишем скромную ОС.

▍ Навигация по частям



Вы можете насторожиться, услышав, что разработка ОС или ядра, в частности, их базовых функций на удивление проста. Даже система Linux, которая воспринимается как масштабный опенсорсный проект, на стадии версии 0.01 включала всего 8 413 строк кода. Сегодня ядро Linux действительно огромно, но начиналось оно, как и типичный хобби-проект, с крохотной базы кода.

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

Но сразу предупрежу — процесс окажется не так прост, как выглядит на первый взгляд. Самой сложной частью создания собственной ОС является отладка. И мы не сможем использовать для этого printf, пока её не реализуем. Здесь вам потребуется освоить различные техники и приёмы отладки, которые в разработке ПО вы никогда не использовали. В частности, начиная «с нуля», вы будете встречать сложные этапы вроде процесса загрузки и страничной организации памяти. Но не пугайтесь, «отлаживать ОС» мы тоже научимся!

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

Релиз MoonShine v3. История и нововведения

Level of difficultyEasy
Reading time13 min
Views2.6K

Я, Данил Щуцкий (CutCode), уже более 2-х лет работаю над open-source админ-панелью для Laravel — MoonShine. 10 декабря 2024 г. состоялся релиз MoonShine v3. В этой статье хотел рассказать о проделанной работе и про основные нововведения по проекту.

Читать далее

Типология Test Doubles

Level of difficultyMedium
Reading time10 min
Views2.2K

Тестовые дублёры (англ. Test Doubles) — это объекты или модули, используемые в автоматизированных тестах в качестве замены некоторых частей тестируемой системы (англ. SUT, System Under Test).

В этой статье мы обсудим пять типов тестовых дублёров: Dummy, Stub, Spy, Mock, Fake.

Читать далее

Часть 1: Как я создал идеальный REST API — микросервис инцидентов на Java и Spring

Level of difficultyMedium
Reading time16 min
Views17K

В этой статье вы узнаете, как спроектировать и реализовать REST API для микросервиса на Java с использованием Spring Framework.

Рассмотрим лучшие практики, принципы архитектуры, реализацию CRUD-операций и удобные инструменты, такие как Lombok, ControllerAdvice, MapStruct. Эта статья будет полезна как начинающим разработчикам, так и тем, кто хочет улучшить свои навыки в проектировании REST API.

Читать далее

Один год с GraphQL: как технология работает на длинной дистанции?

Reading time8 min
Views14K

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

В Сравни у нас много продуктов, включая сервисы подбора и покупки полиса ОСАГО, подбора кредита, образовательных курсов, онлайн-оформления ипотеки. Информация о пользователях хранится и обрабатывается в специальном центральном сервисе (Profile Service). На текущий момент сервис содержит миллионы объектов пользователей, а нагрузка в пиковые моменты там до 180 запросов в секунду.

Исходная реализация Profile Service была построена на микросервисах и, как казалось нам ранее, полностью покрывала наши потребности: в плане гибкости взаимодействия с продуктами и работы с существующей нагрузкой. Изменения назрели под конец прошлого года, когда продуктовые команды стали настойчиво обращаться в команду сервиса для решения срочных задач. Здесь им регулярно требовалась помощь разработчиков — и команда Profile Service около месяца занималась только обработкой продуктовых запросов.

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

Читать далее

Работа в состоянии потока: как Канбан-метод делает разработку быстрее, умнее и эффективнее

Level of difficultyEasy
Reading time6 min
Views9.9K

Привет Хабр! Меня зовут Алексей Цыбульник, я куратор по направлению  корпоративного бизнеса, аккредитованный тренер «Канбан стандарт», продюсер конференций FlowDays и «Agile среда» в ПСБ и спикер конференций Merge, Agile days.

Ищете альтернативный путь в Agility? Обратите внимание на методологию Канбан, которая менее известна, чем фреймворк Scrum. При этом ее уникальные преимущества хорошо работают как отдельно, так и в дополнение к Scrum. О том, как этот метод трансформирует команды разработчиков, рассказываю в статье. 

Читать далее
1
23 ...

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity