Обновить
0
@Amigooooread⁠-⁠only

Пользователь

Отправить сообщение

Cтажировки в IT за процент от будущей зарплаты стоимостью более миллиона рублей

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели31K

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

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

Читать далее

Нужна ли программисту математика? Разбираем на примерах

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели19K

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

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

Читать далее

Нормализация отношений. Шесть нормальных форм

Время на прочтение8 мин
Охват и читатели1.9M
В данной теме я затрону 6 нормальных форм и методы приведения таблиц в эти формы.

Процесс проектирования БД с использование метода НФ является итерационным и заключается в последовательном переводе отношения из 1НФ в НФ более высокого порядка по определенным правилам. Каждая следующая НФ ограничивается определенным типом функциональных зависимостей и устранением соответствующих аномалий при выполнении операций над отношениями БД, а также сохранении свойств предшествующих НФ.
Читать дальше →

90% разработчиков не понимают принцип инверсии зависимостей из SOLID. DIP — это не про абстракции

Время на прочтение4 мин
Охват и читатели38K

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

Почему такая трактовка неверна и в чем же суть принципа — об этом и пойдет речь далее.

Читать далее

Книга: «Рецепты чистого кода»

Время на прочтение6 мин
Охват и читатели5.8K
image «Неуместная близость»? «Оргия объектов»? «Принцип KISS»? А мы точно о программировании?

Привет, Хаброжители! Если ваша первая и единственная реакция на эти словосочетания — смех, то вполне вероятно, что от вашего кода «пахнет». Запах кода (code smell) — термин, который был введен разработчиком Кентом Беком и популяризирован Мартином Фаулером. По сути, запах кода — это симптом, признак проблемы; он указывает на такой фрагмент кода, который можно (и нужно) улучшить.

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

Деплоймент нескольких ASP.Net Core-приложений на VPS сервере и настройка доступа к ним по доменному имени 3-го уровня

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели2.1K

Деплоймент нескольких ASP.Net Core-приложений на VPS сервере с Ubuntu и настройка доступа к ним по доменному имени 3-го уровня.

Читать далее

Будущее микросервисов: уйдем ли мы к монолитам 2.0?

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели30K

Микросервисы или монолит? Споры об архитектуре программного обеспечения не утихают, но с 2018-2020 годов наметился интересный тренд: компании начинают переоценивать сложность микросервисного подхода. Возвращение к монолитам, но уже с учетом современных инструментов, вызывает жаркие обсуждения в техническом сообществе.

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

Топ-10 ошибок, найденных в C# проектах за 2024 год

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели5.9K

В течение 2024 года команда PVS-Studio активно делилась статьями о проверке открытых C# проектов. Мы решили продолжить традицию и отобрали для вас 10 самых интересных ошибок, обнаруженных за этот период. Приятного чтения!

Читать далее

Пулы объектов в C#: примеры, устройство и производительность

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.2K

Пул объектов (Object Pool) — это паттерн, который позволяет повторно использовать объекты вместо создания новых. Это может быть полезно в ситуациях, когда инициализация объектов затратна. Паттерн широко применяется в разработке игр и приложениях, где важно минимизировать использование памяти. В этой статье мы рассмотрим, как этот шаблон реализован в C#, и как он может улучшить производительность.

Читать далее

Базовое программирование, или Почему джуны не могут пройти к нам собеседование

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели37K

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

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

Читать далее

Шаблоны проектирования с человеческим лицом

Время на прочтение32 мин
Охват и читатели573K

image


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


Как сказано в Википедии:


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

image Будьте осторожны


  • Шаблоны проектирования — не «серебряная пуля».
  • Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
  • Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.

В статье приведены примеры на PHP 7, но пусть вас это не смущает, ведь заложенные в шаблонах принципы неизменны. Кроме того, внедряется поддержка других языков.

Читать дальше →

Чего ждёт рынок от java-разработчика уровня middle

Время на прочтение5 мин
Охват и читатели6.2K

Привет! Меня зовут Игорь Честнов, я автор на курсе «Мидл java-разработчик» в Яндекс Практикуме. В статье расскажу, каких навыков и компетенций работодатели ждут от java-разработчиков среднего уровня. А ещё приведу список полезных ресурсов, которые помогут джунам продвинуться в карьере. 

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

Читать далее

REST vs gRPC. Межсервисная интеграция для начинающих

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели22K

Привет! Меня зовут Максим Соколов, я — аналитик в команде “Управление доступностью товаров и категорий”. В нашей команде была выделена отдельная подгруппа, которая создавалась специально под новый продукт-фичу для селлеров. Сразу стало понятно, что для реализации нового функционала требуется разработка нового микросервиса. Командой разработки было принято решение интегрироваться по gRPC, но мне до конца не было понятно, почему выбор именно такой. И тут я решил разобраться подробнее!

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

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

На свете много статей про проектирование API, в которых описаны архитектурные стили, протоколы, технологии. Информации — огромное количество, иногда она даже противоречивая, поэтому новичку тяжело подступиться к теме.

В этой статье я хочу дать точку входа для джун/мидл системных аналитиков, которые хотят разобраться в межсервисной интеграции. Мы пройдёмся по HTTP, REST, RPC и gRPC, разберёмся в их значениях. Выясним, почему эти аббревиатуры появляются, когда происходит проектирование API, и попробуем понять, когда и что следует применять.

Также по ходу статьи буду оставлять ссылки на хорошие (по моему мнению) статьи для более глубокого погружения в поднимаемые темы.

Читать далее

Blazor: Server и WebAssembly одновременно в одном приложении

Время на прочтение8 мин
Охват и читатели23K


ASP.NET Core Blazor — это разработанная Microsoft веб-платформа, предназначенная для запуска на стороне клиента в браузере на основе WebAssembly (Blazor WebAssembly) или на стороне сервера в ASP.NET Core (Blazor Server), но две эти модели нельзя использовать одновременно. Подробнее о моделях размещения написано в документации.


В статье я расскажу о том, как


  • запустить Server и WebAssembly одновременно в одном приложении,
  • переключаться с Server на WebAssembly без перезагрузки приложения,
  • реализовать универсальный механизм аутентификации,
  • синхронизировать состояние Server и WebAssembly с помощью gRPC.

TL;DR:


Gif с демонстрацией полученного результата


Пример доступен на github.

Читать дальше →

Уже не джун, но знаний нужно всё больше. Как самостоятельно учиться сложным вещам

Время на прочтение6 мин
Охват и читатели8.7K

Самостоятельное обучение для разработчика — процесс, который не кончается никогда. Это касается не только джунов, но и намного более опытных мидлов и сеньоров. Однако возникает вопрос: все ли мы умеем учиться правильно? Как преодолеть свою инертность и научиться понимать сложные вещи? 

Один из важных моментов — это мышление роста, который подразумевает замену убеждения «я плох в X» на «я еще не узнал о X». Конечно, позитивный настрой помогает, но, одного его явно недостаточно, особенно на длинной дистанции. Обучение — это навык, над которым нужно упорно работать. Под катом разработчик и автор Джулия Эванс рассмотрит конкретные приемы, которые помогут вам стать более эффективным учеником. В частности — как превращать свое незнание в конкретные вопросы, которые приведут к решению задач и получению новых знаний.

Читать далее

Почему годы опыта не всегда показатель профессионализма и наличия скиллов

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели12K

Годы опыта — как стаж в очереди: стоишь долго, а смысла мало.

Мы привыкли мерить компетентность количеством лет на должности, но как часто это обманчивая цифра скрывает настоящие навыки?

Талантливые и мотивированные люди остаются за бортом только потому, что у них нет ‘правильного’ числа лет.

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

Читать далее

От Junior до Team Lead меньше чем за 2 года

Время на прочтение14 мин
Охват и читатели19K


Всем привет! Меня зовут Дмитрий Лёвочкин, я Flutter Team Lead в компании Friflex, а также автор блога «Дневник Flutter-разработчика».

Разделим эту статью на четыре логические части:

1. Кратко расскажу о своём пути до Junior и опишу своё видение, как бы я входил в IT сейчас, без технического образования и опыта.

2. Расскажу о своём пути до Team Lead. Почему эту «лычку» получил я и как докатился до жизни такой)

3. Дам советы, как быстрее развиваться по софт и хард скиллам.

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

Читать далее

Продуктивность и почему «сделать много всего» — это не про неё

Время на прочтение7 мин
Охват и читатели4.9K

Мы на Хабр Карьере помогаем IT-специалистам зарабатывать больше, а компаниям — быть в курсе трендов на рынке найма. 

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

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

Читать далее

Цена за успех — одиночество: почему предприниматели остаются одни

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели21K

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

Читать далее

Kotlin для Самых маленьких

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели9.7K

В этой статье я научу вас основам Kotlin. Начиная с самого начала мы дойдем до уверернного уровня использования Kotlin. Чтоб когда у вас спросили "Как сделать лямбду функцию" вы на лбу спросившего написали:

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Фулстек разработчик
ООП
C#
ASP.NET
ASP.NET MVC
ASP.NET WEB API