Pull to refresh
1
0
Sergey Kaleev @skaleev

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

Send message

Клетка 22. Кровь — уникальная система организма

Level of difficultyMedium
Reading time15 min
Views1.6K

Среди систем и органов организмов кровь занимает уникальное место и ее роль незаменима никакими другими органами. Кровь состоит из лейкоцитов и эритроцитов (белые и красные кровяные тельца) и жидкой неклеточной части — плазмы. Состав крови определяет ее назначение и функции, которые она выполняет. Эритроциты позвоночных животных содержат гемоглобин — пигмент, способный легко присоединять и отдавать кислород. Соединяясь с кислородом, гемоглобин образует комплекс оксигемоглобин, который может легко освобождать кислород, доставляя его таким образом всем клеткам тела.

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

Читать далее

Как в 19 лет я начал путь разработчика встраиваемого ПО

Reading time4 min
Views19K

Привет, Хабр! Меня зовут Данила, мне 21 год, и за последние 2,5 года я успел поработать в роли разработчика программного обеспечения для встраиваемых систем — в основном на базе STM32. В этой статье я хочу поделиться тем, как я вообще пришёл в эту сферу, с чего начинал, какие грабли собрал и какие выводы сделал по пути.

Читать далее

Галопом по архитектуре. Часть 3. Когда руки чешутся все переделать

Level of difficultyHard
Reading time24 min
Views5.8K

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

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

2. Что не менее важно, когда лучше оставить, как есть.

3. Ключевые признаки проблем в архитектуре.

4. Основные способы исправления таких проблем.

Но для начала мы вспомним, что было в предыдущих сериях. В первой части мы прошлись по теории и выяснили:

1. Что техническая реализация заметно влияет на успехи бизнеса, хоть и не очень критично;

2. Что из всех аспектов технической реализации наибольший вклад в успех вносит именно архитектура;

3. Что самое важное свойство архитектуры — максимальная независимость команд друг от друга;

4. Что это свойство вытекает напрямую из двух фундаментальных характеристик программного обеспечения: coupling и cohesion, где coupling — характеристика связи двух точек системы/кодовой базы; а cohesion — характеристика того, насколько плотно упакованы такие связи в компоненты.

Во второй части мы уже перешли к практике построения архитектуры с нуля. Мы узнали:

1. Что попытки угадать с архитектурой до старта проекта обычно проваливаются.

2. Что маленькие команды работают буквально в разы эффективнее, чем большие.

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

Теперь перейдем к вопросу, что же делать, если «все уже украдено до нас».

Читать далее

События vs сообщения. Понимаете ли вы разницу и почему это важно?

Level of difficultyEasy
Reading time10 min
Views6K

«Будем отправлять события в Rabbit!» Фраза, которая выдает мышление, рождающее код, полный боли. К сожалению, я ее часто слышу. Поэтому, уже много лет размышлял о написании этой статьи и безумно рад, что у меня, наконец, дошли до нее руки.

В статье я расскажу, как смешение понятий события, сообщения и транспорта рождает возгласы типа «Я ненавижу использовать Symfony Messenger, потому что был у меня проект на нем, и он не взлетел!»

Будут косвенно затронуты компоненты Symfony Messenger и Event Dispatcher. Несмотря на это, данный материал может оказаться полезным и для разработчиков, использующих другие фреймворки и даже другие языки.

Читать далее

Domain-Driven Design: ошибки, которые не описаны в книгах

Level of difficultyMedium
Reading time13 min
Views10K

Всем привет! Меня зовут Андрей, уже несколько лет я работаю тимлидом/техлидом в разных компаниях и различных проектах. В последнее время подход Domain Driven Design у всех на слуху. Хотя этот подход развивается уже много лет (с 2003), только сейчас на него обращают активное внимание и многие команды пробуют внедрять его у себя.

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

Читать далее

Прочитал «Чистый код», чтобы вам не пришлось

Level of difficultyEasy
Reading time12 min
Views45K

Пересказываю культовую книгу Роберта Мартина "Чистый код" с примерами на C#. Узнайте, как создавать код, который читается как проза: от магии имен переменных и идеальных функций до безупречных тестов и архитектуры, которая не рухнет при первом требовании заказчика. Полный гид, ваш код станет предметом гордости, а не источником кошмаров.

Читать далее

Проектирование Информационных систем. Часть 10. Разработка требований 10.2. Формирование спецификаций требований

Level of difficultyMedium
Reading time15 min
Views751

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

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

Для чего это необходимо делать?

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

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

Читать далее

Где работать в IT в 2025: YADRO

Reading time10 min
Views3.2K

Наша рубрика «Где работать в IT» — это интервью с интересными IT-компаниями, в которых они делятся подробностями о процессах своей работы. Представители индустрии отвечают на вопросы о найме, условиях, командах и технологиях.

В этом выпуске мы расскажем о компании YADRO, которая c 2014 года создаёт, производит и поддерживает фундаментальные для российского рынка продукты, начиная от серверов и заканчивая собственной базовой станцией. В компании работает более 7 тыс. человек, а её R&D-центры расположены в Москве, Санкт-Петербурге, Нижнем Новгороде, Екатеринбурге и Минске. Есть собственное производство в Московской области и инновационное производство полного цикла в городе Дубна.

Читать далее

Обзор ноутбуков для незрячих пользователей

Reading time11 min
Views2.2K

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

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

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

Читать далее

Как я делал LoRa + GPS-трекер для соревнований по спортивному ориентированию

Level of difficultyMedium
Reading time13 min
Views6K

Привет, меня зовут Павел, я программист-эксперт в отделе разработки серверных решений ЮMoney. Это не первая моя статья для блога компании на Хабре — уже выходило два текста о том, как и во что эволюционировали наши конечные автоматы (Часть 1 и Часть 2), вы их очень тепло приняли. В этот раз речь пойдёт про неожиданные проявления моего увлечения программированием. Когда-то у меня получилось сделать GPS-трекер для соревнований по спортивному ориентированию. Хочу поделиться этой историей и рассказать, во что этот GPS-трекер превратился за 17 лет.

Читать далее

Настройка межсетевого SSH-доступа в многосегментной сети Cisco и MikroTik в среде GNS3

Reading time12 min
Views2.8K

Всех приветствую! В этой статье разберем базовую настройку защищенного удаленного доступа к сетевым устройствам через SSH в учебной лабораторной работе на эмуляторе GNS3. В сети будут задействованы два маршрутизатора - Cisco и MikroTik, а также виртуальные машины с Windows 10 и Kali Linux, что позволит максимально приблизить работу к реальным условиям. В ходе работы настроим IP-адресацию, обеспечим маршрутизацию между подсетями и организуем безопасное управление оборудованием через SSH.

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

Читать далее

Мой набор для Django

Level of difficultyEasy
Reading time3 min
Views2.8K

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

Читать далее

Темная магия JavaScript: Укрощаем неявное приведение типов

Level of difficultyEasy
Reading time12 min
Views4.3K

Привет, Хабр! У каждого JS-разработчика есть своя история. История о том, как он впервые встретился с этим. Сидишь, пишешь код, всё логично, всё под контролем. И тут, чтобы проверить одну мелочь, открываешь консоль и из чистого любопытства пишешь:

[] + {} // Получаешь: "[object Object]"
// Хм, ладно, массив привел себя к строке, а объект стал... объектом. Логично.

{} + [] // Получаешь... 0 ???
// ЧТО?!

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

Разобраться с этим!

Архитектура PERA для построения промышленной сети

Reading time7 min
Views1.7K

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

В этой статье мы рассмотрим архитектуру Purdue Enterprise (PERA), в рамках которой была разработана эталонная модель для потоков данных в промышленных сетях, где производственные процессы полностью автоматизированы. Будучи разработанной еще в начале 90х, эта модель стала стандартом для построения сетевой архитектуры с учетом требований безопасности, разделяя уровни сети для поддержания иерархического потока данных между ними.

Читать далее

Большой разбор Слайсов Go -> «Типы и структуры данных Go»

Level of difficultyMedium
Reading time11 min
Views4.3K

Представляю вам первую статью из цикла «Типы и структуры данных Go»! Здесь мы познакомимся со cлайсами, разберем внутреннюю реализацию этого типа и его вспомогательных функций. Говорить будем только о том, что есть в базе языка, то есть без дополнительных функций из стандартной, экспериментальной или какой-либо другой библиотеки.

Приятного аппетита!

Слайсить далее

Измерение покрытия UI тестами. Следующий уровень

Reading time18 min
Views5.3K

Покрытие UI-тестами — вещь, о которой все говорят, но почти никто не измеряет. А если и измеряет, то по старинке, через Excel, TMS или на глаз. Это как считать шаги, не надевая шагомер.

ui-coverage-scenario-tool — это как шагомер, но для UI-тестов. Он показывает, с чем именно взаимодействуют ваши тесты, что осталось в тени, и главное — делает это автоматически. Без ручного труда, без вымышленных цифр, без «по ощущениям».

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

Читать далее

Развертывание микросервисов: проблемы, решения, стратегии, антипаттерны, практические рекомендации

Level of difficultyMedium
Reading time25 min
Views6K

Микросервисы перевернули игру в разработке приложений. Они сулят гибкость, отличную масштабируемость, командам — больше независимости. Но вот переход на них принес с собой и новые головные боли. Особенно когда дело доходит до развертывания. Управлять кучей мелких, отдельно выкатываемых кусочков — задачка та еще. Старые приемы тут часто пасуют. Нужны свежие идеи, другие инструменты, а главное — по‑другому смотреть на вещи.

Читать далее

Как написать свою ОС: руководства на Rust и C

Level of difficultyEasy
Reading time4 min
Views8.1K

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

К слову, Rust набирает обороты: первое место в категории любимых языков программирования по версии Stack Overflow.

Читать далее

Настраиваем CI/CD Android-проекта, часть 1. Начало

Level of difficultyMedium
Reading time11 min
Views3.1K

Всем привет, меня зовут Кирилл и я Android-разработчик в Scanny.

Это первая часть из серии статей про CI/CD для Android-проекта. В рамках данной серии статей я расскажу как настраивать GitLab CI/CD, который покроет базовые потребности в Unit и Android-тестировании, сборке приложения, публикации в Play Market и многом другом.

Дополнительно я разберу работу с разными инструментами для Android-тестирования в лице Marathon Labs и Firebase Test Lab. Аналогично разберу работу с Gradle Play Publisher и Fastlane для публикации приложения в Play Market.

Читать далее

Основные команды GIT

Level of difficultyEasy
Reading time23 min
Views11K

Научись использовать Git как профессионал. Эта статья поможет тебе освоить самые популярные команды Git на реальных примерах. Узнай, как добавлять изменения, создавать коммиты, переключаться между ветками, объединять изменения и синхронизировать проект с удалённым репозиторием.

ОГОГО, что там далее!? ...

Information

Rating
Does not participate
Location
Сургут, Тюменская обл. и Ханты-Мансийский АО, Россия
Date of birth
Registered
Activity