Pull to refresh
0
0
Send message

Поднимайте If вверх, опускайте For вниз

Level of difficultyEasy
Reading time3 min
Reach and readers25K

Эта статья — краткая заметка о двух связанных друг с другом эмпирических правилах.

Поднимайте If вверх

Если внутри функции есть условие if, то подумайте, нельзя ли его переместить в вызывающую сторону:

// ХОРОШО

fn frobnicate(walrus: Walrus) {

... }

// ПЛОХО

fn frobnicate(walrus: Option<Walrus>) {

let walrus = match walrus {

Some(it) => it,

None => return,

};

...

}

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

Читать далее

Use-case 3.0: краткое руководство

Level of difficultyMedium
Reading time13 min
Reach and readers8.9K

Теперь у нас есть имена для различных практик Use-case, с учётом уровня их детализации.  

В рамках текущей статьи, приведено основное, краткое содержание руководства Use-case 3.0 — без отступлений, и дополнительных пояснений по тому или иному пункту.

Читать далее

Soft skills которые изменили мою жизнь и могут изменить вашу

Level of difficultyEasy
Reading time8 min
Reach and readers11K

Четыре года назад я упёрся в стену. Я работал QA инженером, изучал инструменты, автоматизацию, базы данных — но карьерного роста не было. Мне хотелось развиваться, двигаться в сторону тест-менеджмента, но одних технических навыков оказалось недостаточно. Тогда я впервые осознал, что не только харды определяют успех.

Soft skills стали тем, что помогло мне выйти на новый уровень. Я научился планировать, делегировать, вести переговоры, работать с командой. Всем привет! Меня зовут Сергей Лебедев, я QA Lead в Яндекс Лавке и в этой статье я расскажу, какие soft skills действительно важны, как их развивать и почему без них сложно расти в IT.

Читать далее

Проектирование Информационных систем. Часть 1. Введение

Level of difficultyMedium
Reading time12 min
Reach and readers10K

При подготовке специалиста в области проектирования Информационных систем, важно учитывать конъектуру применения навыков в дальнейшем. Это может быть либо роль «Проектировщик» в каком‑то из проектов, либо постоянная профессия «Проектировщик ИТ‑продуктов».

Читать далее

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

Level of difficultyEasy
Reading time6 min
Reach and readers9.7K

8 лет назад я исправил опечатку в чужом репозитории, а сейчас регулярно делаю коммиты в проекты, которые использую, и даже вошел в core team библиотеки с 27000 звёзд на GitHub

В этой статье покажу, что участие в Open Source проще, чем кажется. Расскажу, как регулярная работа с чужим кодом помогает быстрее разбираться в незнакомых кодовых базах, писать тесты и лучше документировать решения. А также объясню, почему публичная активность на GitHub выгодно отличает вас от других разработчиков, особенно в эпоху повсеместного использования ИИ.

Читать далее

Проблема мягкого удаления (deleted_at) и как её решить

Level of difficultyEasy
Reading time4 min
Reach and readers7.9K

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

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

Почти в каждой системе встречается требование «не удалять данные окончательно».

Читать далее

Domain-Driven Design: зачем он нужен аналитику и как его применять на практике

Level of difficultyEasy
Reading time8 min
Reach and readers7.7K

Всем привет! Меня зовут Бодров Иннокентий. Я — продакт, аналитик и архитектор с более чем 17-летним опытом в разработке информационных систем, построении успешных продуктов в телеком-индустрии, финтехе, электронном документообороте и корпоративных порталах.

Последние несколько лет я активно продвигаю идеи работы на основе здравого смысла, бережливости и современного, гибкого (в хорошем смысле слова) продуктового подхода. И один из инструментов, который мне помогает в этом — это Domain-Driven Design (DDD).

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

О том, как это сделать — и будет эта статья.

Узнать про ДДД

Как устроен arXiv — самая преобразующая платформа во всей науке

Level of difficultyEasy
Reading time16 min
Reach and readers8.4K

«Я только решил, что выбрался, а меня продолжают затягивать обратно!» С лукавой ухмылкой, к которой я скоро привыкну, Пол Гинспарг цитирует Майкла Корлеоне из «Крёстного отца». У Гинспарга, профессора физики Корнельского университета и стипендиата Макартура, может быть, и мало общего с мафиози в исполнении Аль Пачино, но обоих объединяет чувство, что им отказали в изящном уходе из созданной каждым из них организации.

Почти 35 лет назад Гинзпарг создал arXiv, цифровое хранилище, где исследователи могли делиться своими новыми результатами — до того, как эти результаты уходили на систематические обзоры или проверки. Зайдите сегодня на сайт arXiv.org (он произносится как «архив»), и вы всё ещё увидите его старый дизайн в стиле Web 1.0 с красным баннером и печатью Корнельского университета, который является институциональным домом платформы. Но за непритязательным фасадом arXiv скрывается тектоническая перестройка, которую он вызвал в научном сообществе. Если бы arXiv перестал функционировать, учёные со всех уголков планеты испытали бы немедленное и глубокое потрясение. «Все математики и физики пользуются им, — сказал мне Скотт Ааронсон, компьютерный учёный из Техасского университета в Остине. — Я этот сайт сканирую каждый вечер».

Читать далее

Резервное копирование PostgreSQL по-взрослому

Level of difficultyMedium
Reading time7 min
Reach and readers20K
image

Базы данных — замечательный инструмент, без которого сложно представить современное приложение. И как бы сильно я ни любил использовать БД, я просто ненавижу писать SQL-запросы. Поэтому однажды задался вопросом, кто мог бы делать это за меня, при этом несильно теряя в качестве. И, конечно же, на ум пришёл мой AI-друг. Тогда остаётся одна проблема, как скормить ему мою БД. Тут на помощь приходит резервное копирование! Выполнив все необходимые задачи, я решил углубиться в тему и поделиться с Хабром, какие вообще есть виды и, конечно, сравнить их между собой.
Читать дальше →

Легкий путь к BPMN: просто, быстро и без заморочек

Level of difficultyEasy
Reading time13 min
Reach and readers13K

Знакомо ли вам чувство, когда смотришь на BPMN-схему и видите лишь хаос из непонятных значков? Прямоугольники с плюсиками, пунктиры, ведущие в никуда, кружки с молниями… Моё первое впечатление было таким же: «Этот язык создали, чтобы запутать аналитиков!».

Но сейчас я использую их, чтобы:

→ Сокращать совещания — когда процесс визуализирован, спор «как мы это делаем» исчезает.
→ Находить дыры в логике до внедрения — те самые «а что, если…».
→ Объяснять сложное за 5 минут даже тем, кто терпеть не может диаграммы.

Если вам надоело тратить время на бесконечные уточнения — давайте разбираться. BPMN может быть простым!

Поехали!

Для архитекторов и аналитиков: шаблон описания архитектуры приложения (34 страницы пользы)

Level of difficultyEasy
Reading time3 min
Reach and readers22K

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

Читать далее

Как математик Джим Саймонс создал самый черный ящик индустрии по управлению деньгами

Reading time12 min
Reach and readers9.6K

Математик Джим Саймонс - создал один из самых успешных хедж-фондов в истории. Financial Times назвала Джима Саймонса «самым умным из миллиардеров». По версии The Economist, он считается «самым успешным инвестором всех времён». Попробуем собрать информацию из разных источников и разобраться, в чем секрет его успеха.

Саймонс и команда

Предки Джима Саймонса переселились в США из Российской империи в конце 19 века. Сам он родился в 1938 году и с детства увлекался математикой. Учился в Массачусетском технологическом (MIT), защитил докторскую в Беркли, преподавал в Гарварде. C середины 1960-х Саймонс занимался дешифровкой секретных кодов в Институте оборонного анализа США (IDA), откуда был уволен за критику вьетнамской военной кампании. После чего в 1968 году на 10 лет возглавил математический факультет Stony Brook University.

Читать далее

Погружение в ClickHouse: делаем первые и успешные шаги

Level of difficultyEasy
Reading time6 min
Reach and readers11K

Привет! Меня зовут Андрей Дорожкин, и я руковожу командой администрации баз данных в Hybrid. В этом материале я поделюсь опытом работы с ClickHouse — колоночной БД, разработанной специально для аналитических запросов, которая позволяет получать результаты в разы быстрее традиционных решений. Также я подсвечу, как устроен этот продукт, чем он отличается от реляционных баз данных, и в каких сценариях его использование может дать бизнесу реальное преимущество.

Пара слов о компании Hybrid. Мы — независимая AdTech-экосистема с собственным стеком технологий и решений для любых рекламных целей. Развиваем собственные технологии благодаря in-house отделу разработки, который каждый день работает над их улучшением. ClickHouse — инструмент, который мы выбираем для хранения данных за высокую скорость обработки запросов, эффективное сжатие данных и масштабируемость.

Читать далее

Почему сложно разработать OLAP-базу данных, если у тебя уже есть OLTP

Reading time14 min
Reach and readers3.9K

Это адаптированная для Хабра расшифровка доклада Алексея Дмитриева, директора аналитической платформы YDB DWH, которую создаёт команда Yandex Cloud, — компонента нашей гибридной базы данных YDB для обработки аналитических нагрузок. Когда проект только начинался, у нас было много наработок, которые мы успешно переиспользовали в других проектах. Но оказалось, что OLAP‑нагрузка так сильно отличается от OLTP, что за три года пришлось практически написать по ещё одной реализации многих частей системы. Под катом история о том, почему на рынке так мало гибридных баз данных класса Hybrid Transactional and Analytical Processing (HTAP) и какие сложности стоят на пути их разработки.

Читать далее

Выбор индексов в базах данных для highload-систем

Level of difficultyHard
Reading time27 min
Reach and readers10K

Индексы – это «ускорители» доступа к данным в базах данных. Правильно выбранные индексы могут многократно ускорить запросы, что особенно критично в highload-системах с большими объёмами данных и большим числом запросов. Однако за ускорение чтения приходится платить усложнением записи и дополнительным расходом памяти. В этой статье мы подробно рассмотрим, как работают разные типы индексов в реляционных СУБД, как выбирать индекс под конкретный запрос, обсудим подводные камни (например, блоат, переиндексация, избыточные индексы) и затронем индексацию в NoSQL (MongoDB, Cassandra). Завершим чеклистом, который поможет выбрать оптимальный индекс под вашу задачу.

Читать далее

Как проектировать системы [часть 1]

Level of difficultyEasy
Reading time4 min
Reach and readers3.5K

Продолжение цикла статей о проектировании информационных систем.

Предыдущие статьи:

Введение

В этой части рассмотрим проработку видения системы со стороны бизнес-заказчика.

Читать далее

Как мы унифицировали техническое интервью системного аналитика

Level of difficultyEasy
Reading time9 min
Reach and readers2.2K

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

О том, как проводить техническое интервью системного аналитика, сказано много. В интернете можно найти записи публичных интервью. Действующие системные аналитики запускают свои «школы» и консультируют «начинашек», рассказывают, как успешно пройти техническое интервью, причём иногда сразу на уровень middle/ middle+.

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

Читать далее

История Adobe. Как математик и IT специалист решили одну из самых раздражающих проблем в компьютерном мире

Reading time28 min
Reach and readers29K

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

Читать далее

Методы шифрования в TLS: как обеспечивается безопасность данных в интернете

Level of difficultyMedium
Reading time5 min
Reach and readers6.3K

Привет, меня зовут Максим Рыбалко, я директор по управлению проектами в Т1 Иннотех. В современном мире интернет-безопасности TLS (Transport Layer Security) играет ключевую роль в защите данных, передаваемых между клиентами и серверами. Банковские транзакции, личные сообщения, электронная почта — всё это защищено благодаря TLS. Но как именно работает этот протокол? Какие методы шифрования используются для обеспечения конфиденциальности и целостности данных? В этой статье мы разберём основные методы шифрования в TLS, рассмотрим их преимущества и недостатки, а также дадим практические рекомендации по настройке безопасного соединения.

Читать далее

Памятка по XSD и XML

Level of difficultyEasy
Reading time11 min
Reach and readers21K

Самое главное стоит понимать, что XSD (XML Schema Definition) – это схема, то есть описание данных взаимодействия. Схемы бывают разные, например, наша XSD, которую обычно используют для описания структур в формате XML, или JSON-schema - для описания структур в формате JSON. Использование схем в контрактах API сейчас уже является стандартом де-факто, так как это удобно.

Основные объекты, из которых состоит XSD-схема:
- Элементы;
- Типы;
- Индикаторы порядка.

Читать далее

Information

Rating
Does not participate
Registered
Activity