Pull to refresh
17
0.3
Максим @SabMakc

User

Send message

Микросервисы в представлении среднего разработчика, и как всё на самом деле

Level of difficultyMedium
Reading time11 min
Views70K

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

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

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

погрузиться в микросервисы

Что я думаю о Lua после релиза проекта на 60,000 строчек кода?

Level of difficultyEasy
Reading time15 min
Views21K

Интервью-ретроспектива с ведущим программистом видео-игры Craftomation 101 о использовании Lua как основного языка в проекте на 60,000 строчек кода.

Читать далее

Может уже сами с нейросетями сделаем дизайн для нашего продукта? От идеи до запуска на маркетплейс, пошаговая инструкция

Reading time14 min
Views19K

— Добрый день, хотим дизайн вот заказать для упаковки нашей продукции на маркетплейсах.
— Ой, ну это короче бюджет нужен.
— А по срокам как?
— Давайте сначала ТЗ составим, а там уже и сроки почувствуем.

Примерно так происходит начало общения с большинством дизайн-студий при поиске без знакомств, просто в интернете.

В чём проблема?

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

Анти-паттерны в Go Web Applications

Level of difficultyMedium
Reading time18 min
Views7.8K

В какой-то момент моей карьеры меня перестало радовать ПО которое я разрабатывал.

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

Читать далее

Никотин — объективный обзор

Level of difficultyEasy
Reading time7 min
Views7.3K

При слове “никотин” у многих возникают негативные ассоциации, но что если рассмотреть никотин с другой точки зрения, отдельно как вещество, без стереотипов и предвзятости?

На связи RISE: Сообщество про ноотропы и биохакинг. Сегодня разберем никотин, как рабочий инструмент для биохакера и посмотрим на него с другой стороны.

Читать далее

Блокировка Docker Hub для России. Без паники разбираемся как работать дальше

Level of difficultyMedium
Reading time9 min
Views84K

Главной новостью этой недели стала блокировка пользователей из России ресурсом Docker Hub. Она осуществляется по Geo IP.

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

В статье три проверенных мною способа, как получить доступ к ресурсу.

Читать далее

Гуманизм против «эффективного менеджмента». Почему заботиться о людях выгодно

Level of difficultyEasy
Reading time22 min
Views36K

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

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

В общей сложности я разбираю 10 самых распространённых ошибок "эффективных менеджеров" и показываю гуманные и более действенные подходы.

Принять выгоды гуманизма в управлении людь

Туториал по Tokio. 1/2

Level of difficultyMedium
Reading time35 min
Views14K



Hello world!


Представляю вашему вниманию первую часть туториала по Tokio.



Tokio — это асинхронная среда выполнения (runtime) кода Rust. Она предоставляет строительные блоки, необходимые для разработки сетевых приложений любого размера.

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

Популярные ошибки в Golang и как их избежать

Level of difficultyEasy
Reading time15 min
Views14K

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

Читать далее

Выбираем дешёвый VPS-сервер. Что почём в 2024 году?

Reading time12 min
Views95K

Всем привет! В начале года я писал публикацию «Можно ли заработать на партнёрских программах хостеров в 2024 году? Пробуем посчитать» — просмотров и комментариев было немного, но в личке было немало вопросов, а я с тех пор смог заметно поправить своё финансовое положение на этих самых партнёрках. Но сегодня речь пойдёт чуть по другой, пусть и смежной теме — не так давно у меня появилась необходимость в виртуалке для тестирования разрабатываемого мной ПО, и как часто бывает, встал вопрос, у какого провайдера заказывать. В своём выборе хостеров для обзора я в первую очередь решил отталкиваться от стоимости их услуг. И в этой статье я хотел бы сравнить несколько хостингов, которые были первыми в гугле по запросу «Дешёвый VPS-сервер» — спешу поделиться с вами полученным опытом и выводами.

Читать далее

Как правильно готовить водородную энергетику

Level of difficultyEasy
Reading time9 min
Views7.7K

Приветствую всех айтишников и технарей. Я не забыл про ЯМР, я помню! Но за последнее время на глаза попалось сразу несколько статей про водородную энергетику, и каждая из них грубо задевала тонкие профессиональные струны моей души. В связи с этим я решил, что молчать дальше нету мочи, и решил немного порассуждать в слух на тему, что не так с водородной энергетикой, и что не так с её критиками. Для понимания контекста поясню: я работаю в R&D и разрабатываю электрохимические источники энергии, в том числе и водородные топливные ячейки в моем анамнезе когда-то были. Поэтому я позволю себе изложить именно свое мнение, сформировавшееся у меня за время работы в это области, с минимумом пруфов.

Добро пожаловать под кат.

Как запустить WebRTC на сервере, или как я пилю вебкам

Level of difficultyMedium
Reading time12 min
Views11K

Значит решил я создать сервис для одиноких мужчин, где они могут пообщаться с прекрасными дамами, aka вебкам. Соответственно встал вопрос, как организовать видеосвязь в браузере. Обычно для этого используется WebRTC, эта технология позволяет установить p2p соединение между браузерами для передачи видео, звука и прочих данных в реальном времени с минимальной задержкой. Однако была одна проблема: что делать, если приходит жалоба от пользователя, что ему показали не то (или не показали), что он хотел. Поскольку это p2p соединение напрямую между пользователями, у меня как у владельца сервиса нет возможности провалидировать жалобу. Первое, что пришло в голову это вместо WebRTC использовать MediaRecorder API для записи видео небольшими кусочками и отправки их по вебсокету через сервер, попутно сохраняя. Я набросал прототип и столкнулся с тем, что если получатель пропустил первый пакет (там где есть метаданные), то видео у него не воспроизводится. Пришлось поиском определенного набора байт в первом пакете вычленять эти самые метаданные и сохранять их отдельно для отправки первым сообщением только что подключившемуся получателю, и это даже сработало. Вторая проблема этого решения - это задержка в пару секунд, и это только в локальной сети, что приемлемо для односторонней связи, но для двусторонней уже сомнительно. И третья проблема это то что видео у получателя со временем все больше и больше отстает, и нужно регулярно проматывать видео ближе к концу. Костыльность такого решения меня не устраивала, и я решил использовать WebRTC для связи собеседников и параллельно использовать MediaRecorder для отправки записи от модели к серверу. Некоторое время оно так работало, пока я пилил другие фичи, но неэлегантность этого решения все еще не давала мне покоя, т. к. оно повышает требования к интернет соединению модели.

Читать далее

Принципы SOLID, только понятно

Level of difficultyEasy
Reading time6 min
Views109K

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

Изучить принципы

Применение чистой архитектуры в Go

Level of difficultyHard
Reading time13 min
Views23K


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

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

Большинство этих инструментов – это частности, и выбор большинства из них (кроме языка программирования) можно на некоторое время отложить, пока проект не окрепнет. Поэтому на ранних этапах разработки проекта стоит уделить внимание не тому, при помощи каких инструментов пойдёт реализация. Лучше смоделировать предметную область проекта, а к вышеупомянутым инструментам подходить так, как следует — то есть, как к частностям. Разумеется, чтобы проект был реализован, с такими деталями тоже нужно определиться, но они могут оставаться в некоторой отдельной части кода, не относящейся к предметной области — там, где их будет легко менять, удалять или заменять по нашему усмотрению.

Для решения именно таких проблем с сильной связностью кода многоопытные инженеры создали ряд архитектурных паттернов. Таковы, в частности, чистая архитектура Роберта Мартина («дядюшки Боба»), гексагональная архитектура Алистера Кокбёрна и явная архитектура Герберто Грацы.
Читать дальше →

Как собрать LTE-модем на базе SDR

Level of difficultyHard
Reading time17 min
Views22K
Приветствую всех!
Пожалуй, самой закрытой технологией в пользовательском сегменте является сотовая связь. Очень немногие знают о том, как на самом деле работают телефоны и модемы, отчего им часто приписывают всякие мифические свойства. Как насчёт попробовать запустить полностью открытую реализацию модема стандарта 4G? Именно этим я и предлагаю заняться.



Итак, в сегодняшней статье поговорим о том, как взаимодействовать с мобильной сетью при помощи SDR. Попутно узнаем, какой софт для этого существует, и соберём самый дорогой 4G-модем в истории.

Традиционно будет много интересного.
Читать дальше →

Искусство README

Level of difficultyEasy
Reading time13 min
Views10K

Привет, Хабр!

На связи Андрей из сообщества ITMO.OpenSource. Мы считаем, что важно делать открытую науку, поэтому пишем об открытом коде, проводим митапы «Scientific Open Source» и разрабатываем научные решения с открытым кодом.

Мы убеждены, что открытая наука – это не просто код на github, но и совокупность факторов, которые позволяют этим кодом эффективно воспользоваться: запустить, модифицировать, внедрить в другие проекты. Поэтому я решил перевести популярную статью JS-разработчицы Киры Окли «Art of README». Несмотря на разницу в экосистемах (я пишу преимущественно на Python), мне кажется, многие идеи этой статьи актуальны для любого проекта на любом языке.

Читать далее

Как я пишу HTTP-сервисы спустя 13 лет работы с Go

Level of difficultyMedium
Reading time18 min
Views36K

Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.

Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И спустя годы ведения подкаста Go Time, обсуждения Go в X/Twitter и поддержки подобного кода я решил, что настало время обновить информацию.

(Если вы педант и скажете, что Go не совсем 13 лет, то я отвечу, что начал писать HTTP-сервисы на Go версии .r59.)

В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go

Читать далее

Современные команды и фичи Git, которыми стоит пользоваться

Level of difficultyEasy
Reading time5 min
Views43K

Мы, разработчики ПО, пользуемся git каждый день, однако большинство из нас применяет только самые основные команды, например, addcommitpush и pull, как будто на дворе по-прежнему 2005 год.

С тех пор в Git появилось множество фич, пользование которыми может сильно упросить вашу жизнь. Так давайте исследуем некоторые из недавно добавленных современных команд git, о которых вам стоит знать.

Читать далее

Вы за это заплатите! Цена Чистой Архитектуры. Часть 1

Level of difficultyMedium
Reading time11 min
Views29K

Всем привет, меня зовут Артемий, я работаю старшим Android-разработчиком в команде пользовательского профиля в RuStore. Мой опыт в индустрии уже 8 лет. За это время я успел поработать в разных проектах и компаниях. У меня был опыт работы в проекте, в котором было свыше 300 модулей и больше 60 Android-разработчиков. Такие условия заставляют задуматься о масштабируемости на принципиально ином уровне.

Сегодня я расскажу о способах обеспечения масштабируемости проекта и как этому может навредить неправильное восприятие Чистой Архитектуры (далее — ЧА). Предупреждаю сразу, это лонгрид в двух частях!

Читать далее

Маркер всевластья, практика визуальных встреч

Level of difficultyEasy
Reading time6 min
Views3.6K

Как-то я был на встрече, где участники громко спорили и не соглашались друг с другом. Причем все говорили об одном и том же, только с разных сторон. И тут один из участников взял маркер и начал рисовать на флипчарте квадратики, стрелочки, человечков. В какой-то момент спорившие обратили внимание на рисунки и начали подсказывать, что добавить, а где стрелочка не так идет. Всего через десять минут оживленный спор превратился в конструктивный диалог, который разворачивался вокруг изображения на флипчарте. Так я впервые столкнулся с визуальной фасилитацией.

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

Читать далее

Information

Rating
3,651-st
Location
Россия
Registered
Activity