Pull to refresh
0
@RinaKarpread⁠-⁠only

User

Send message

Data-Oriented Design (или почему, используя ООП, вы, возможно, стреляете себе в ногу)

Reading time10 min
Views35K
image

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

Такое развитие событий довольно точно описывает почти каждую игру, в разработке которой я участвовал на протяжении последних десяти лет. Причины заключаются не в языках программирования и не в инструментах разработки, и даже не в отсутствии дисциплины. По моему опыту, в большой степени в этом стоит винить объектно-ориентированное программирование (ООП) и окружающую его культуру. ООП может не помогать, а мешать вашим проектам!
Читать дальше →
Total votes 34: ↑30 and ↓4+26
Comments18

Яндекс запустил Нейро. Рассказываем, как он работает

Level of difficultyMedium
Reading time14 min
Views43K

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

Меня зовут Андрей Сюткин, и я отвечаю за ML-трек в Нейро. В этой статье покажу, как выглядит архитектура Нейро и как формируются ответы на технологическом уровне. Ну и, конечно же, поговорим о нейросетях, в том числе о YandexGPT 3, без обучения которых новый сервис просто не увидел бы свет.

Читать далее
Total votes 89: ↑88.5 and ↓0.5+88
Comments142

Ивент шторминг (Event Storming) при работе над игровыми проектами

Reading time4 min
Views1.6K

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

На моей практике Event Storming успешно использовался в проектировании игр, именно об этом я расскажу в данной статье.

Читать далее
Total votes 7: ↑8 and ↓-1+9
Comments1

Как извлечь пользу из повседневных рабочих конфликтов

Reading time12 min
Views2.4K


Однажды президент одной крупной организации привлёк внешнего консультанта для урегулирования конфликта между двумя вице-президентами. Отношения между ними испортились настолько, что они общались только через сообщения, почту и посредников. В начале сессии оба вице-президента отказывались даже смотреть друг на друга. Со временем они начали понимать, как их действия влияют друг на друга, и стали искать новые способы взаимодействия — и тогда их внешняя враждебность уступила место более тесному сотрудничеству. К концу сессии вице-президенты разговаривали и даже смеялись вместе. Однако, хотя поначалу все были довольны результатом, результаты вмешательства оказались недолговечными: уже через месяц вице-президенты возобновили свою борьбу за влияние — в ущерб компании в целом.
Читать далее
Total votes 13: ↑11 and ↓2+9
Comments9

С новым годом: GPT в 500 строках на SQL

Reading time42 min
Views37K

В минувшем году все только и говорили об ИИ и о том, как он может всё за вас сделать.

Мне нравится, когда кто-то или что-то работает за меня. Поэтому решил: попрошу-ка ChatGPT написать за меня новогодний пост:

«Эй, ChatGPT. А ты можешь реализовать большую языковую модель на SQL?»
«Нет, SQL не подходит для реализации больших языковых моделей. Язык SQL предназначен для выполнения запросов к данным, хранящимся в РСУБД и для управления этими запросами. Для реализации большой языковой модели требуются сложные алгоритмы, обширные датасеты, а зачастую — и фреймворки для глубокого обучения. SQL всеми этими возможностями не обладает.»

Что ж, лишний раз убеждаешься, что, если хочешь что‑то сделать хорошо – сделай это сам.

Давайте же воодушевимся этим оптимистическим планом и реализуем большую языковую модель на языке SQL.

Читать далее
Total votes 215: ↑211 and ↓4+207
Comments21

Парадоксы в данных, и почему визуализация бывает необходима

Level of difficultyEasy
Reading time6 min
Views7.4K

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

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

Погнали!
Total votes 38: ↑39 and ↓-1+40
Comments3

Prosci на практике — системное управление изменениями

Reading time8 min
Views1.3K

Всем привет! Меня зовут Максим, я тимлид деливери-менеджеров в Тинькофф Кассе. Расскажу, из чего состоят изменения, а также про одну методологию работы с ними. Будет кейс, как мы применяли ее на практике. Будет немного про провалы изменений, про структурный подход и факторы успеха любого изменения.

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

Читать далее
Total votes 16: ↑15.5 and ↓0.5+15
Comments1

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

Reading time12 min
Views14K

Привет, я работаю в сфере уже около 10 лет, преимущественно по специальности чистой продуктовой аналитики. Иногда я оглядываюсь назад и думаю — с текущим пониманием что и как устроено в работе, как бы я выстраивал свой процесс обучения с нуля?

Эта статья — мои мысли на эту тему. В каком порядке и какие материалы впитывать, чтобы потом комфортно себя чувствовать в любой продуктовой компании.

Из челленджей — все материалы должны быть бесплатными, или достаточно дешёвыми, чтобы была возможность бросить учёбу на пол пути (ну не зашло, бывает) и не жалеть о потраченных деньгах на мега-курс от %big_tech_name%.

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

По итогам всех усвоенных материалов, это будет уровень знаний примерно middle+, но фактически, грейды зависят больше от опыта (особенно в программировании), чем от объёма знаний.

И последнее — я тут не пытаюсь продать курсы, поэтому обещать что будет весело, интересно и быстро, а потом вас наймут на 300к/наносек я не буду. Будет долго, местами сложно, иногда душно, пару раз вы захотите слиться и бросить эту идею. Но… нет, тут не будет но 🙂

Ладно, пожалуй хватит предисловия, поехали.

Читать далее
Total votes 23: ↑22 and ↓1+21
Comments7

Кластеризация в ML: от теоретических основ популярных алгоритмов к их реализации с нуля на Python

Level of difficultyHard
Reading time34 min
Views13K

Кластеризация — это набор методов без учителя для группировки данных по определённым критериям в так называемые кластеры, что позволяет выявлять сходства и различия между объектами, а также упрощать их анализ и визуализацию. Из-за частичного сходства в постановке задач с классификацией кластеризацию ещё называют unsupervised classification.

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

Читать далее
Total votes 36: ↑36 and ↓0+36
Comments3

Разбираем хорошие корпоративные стратегии. Часть 2

Level of difficultyEasy
Reading time23 min
Views2.8K

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

Очень много букв.

Погрузиться в детали стратегий
Total votes 3: ↑3 and ↓0+3
Comments8

Разбираем примеры хороших стратегий. Часть 1

Level of difficultyEasy
Reading time17 min
Views15K

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

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

Много букв.

Погрузиться в дебри хороших стратегий
Total votes 16: ↑14 and ↓2+12
Comments7

Как я ad-hoc задачи аналитиков автоматизировал

Level of difficultyEasy
Reading time6 min
Views5.1K

Лид продуктовой аналитики о том, как спасал свою команду от ad-hoc-задач, что получилось, а что нет и как нужно было действовать. История внедрения изменений в команде аналитики.

Читать далее
Total votes 17: ↑15 and ↓2+13
Comments7

Распространенные примеры использования продвинутых JQL-запросов

Reading time2 min
Views41K
В данной статье приведены наиболее часто используемые JQL-запросы с использованием различных функций. Данный материал удобно иметь под рукой при необходимости создания сложных JQL-запросов для проектов в JIRA. В первую очередь информация будет полезна менеджерам и тим-лидам. В данной статье собраны примеры запросов, которые наиболее часто используются мною в ежедневной проектной деятельности.
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments2

Поиск задач в JIRA (простым языком). Часть 2: Продвинутый поиск

Reading time16 min
Views188K
Структуру JQL-запросов без примеров сложно понять специалистам, не знакомым ранее с JIRA.

Мы уже успели рассказать про быстрый и базовый поиск. Теперь же прейдем к самому мощному из трех методов — к продвинутому поиску.

В этом режиме вы можете указывать критерии, которые нельзя задавать в остальных предыдущих двух режимах (например, сортировку ORDER BY). Но придётся освоить создание структурированных запросов с помощью JIRA Query Language (JQL).


Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments32

Самый шерстяной волчара: тимлид с технической ролью и без

Level of difficultyMedium
Reading time16 min
Views11K

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

Сегодня поговорим о техническом лидерстве, где оно может лежать в команде разработки, обязательно ли это тимлид или всё-таки не обязательно. А поможет нам в этом Анастасия Абрашитова, руководитель службы инструментов репозитория в Yandex Infrastructure.

Читать далее
Total votes 41: ↑38 and ↓3+35
Comments6

Почему не все ошибки надо исправлять, чтобы сделать ИТ-продукт лучше

Reading time6 min
Views7.9K
Данный материал подготовлен нашим партнером — компанией «Эквио».



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

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

Мы хотим вам рассказать о том, как разработчики выявляют и исправляют баги, подходят к тестированию. В основе одного из подходов лежит политика Zero Bug Policy. Спойлер! Мы расскажем, на что на самом деле тратят время разработчики и почему они не исправляют все баги.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments12

3 Амиго — способ коммуникации, для создания качественного продукта

Reading time11 min
Views70K

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


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


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



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


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

Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments1

От A/B-тестирования к Causal Inference в оффлайн ритейле

Level of difficultyMedium
Reading time31 min
Views10K

Приветствуем всех читателей! Сегодня команда Ad-Hoc аналитики X5 Tech приоткроет дверь в увлекательный мир A/B-тестирования Causal Inference. С момента написания предыдущей статьи прошло уже 4 года. За это время наш подход к оценке инициатив значительно эволюционировал. Мы собирали бизнес-кейсы, изучали научную литературу, экспериментировали с реальными данными и в итоге пришли не только к другой модели для оценки эффекта, но и изменили методологию в целом. 

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments28

Как выжать максимум из Confluence. Глава вторая

Level of difficultyEasy
Reading time6 min
Views10K

Привет, Хабр! На связи ведущий аналитик Ульяна. В первой главе я рассказала, что такое Confluence, зачем его используют и как работать с макросами. 

Во второй главе поговорим про шаблоны и метки, которые помогут организовать процессные и проектные рутины, например ведение MN, RFC и другое интересное.

Читать далее
Total votes 13: ↑12 and ↓1+11
Comments7

Четыре метрики, изменившие мой проект

Reading time9 min
Views17K

Привет, Хабр! Я Федор Щудло, team lead и fullstack-разработчик. Всего я в разработке 15 лет, из них 11 в роли team lead.

Три года назад я сменил работу и занялся проектом, состояние которого можно описать кратко: ему 25 лет.

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

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

Как результат, разработка шла с большими накладными расходами (все делали долго), и с высокими рисками (выкатили и разломали прод). А команда при этом работала на износ.

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

Читать далее
Total votes 46: ↑43 and ↓3+40
Comments14
1
23 ...

Information

Rating
Does not participate
Works in
Registered
Activity