Pull to refresh
17
0.1
Олег @dopusteam

Разработчик

Send message

Пять книг о космосе для детей: как рассказать, что солнце нельзя потушить из шланга, а заодно отучить от девайсов

Reading time7 min
Views2.4K

Привет, Хабр! Меня зовут Даша Фролова, я редактор команды спецпроектов в МТС Диджитал. А по совместительству — мама шестилетки и трехлетки, которые внезапно моими стараниями влюбились в космос, знают, в каком порядке расположены планеты Солнечной системы и где находится Море Кракена. Еще они знают, что солнце нельзя потушить из пожарного шланга — этот вопрос почему-то волновал сына больше всего.

Возможно, кто-то сейчас фыркнул: мол, да в 6 лет я уже и побольше о космосе знал. Но в нашем детстве не было Твайлайт Спаркл, Гвен Стейси, Синего трактора и еще 100 500 персонажей из виртуальной вселенной, с которыми сейчас конкурирует Вселенная вполне себе реальная.

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

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

Читать далее
Total votes 19: ↑16 and ↓3+18
Comments31

Terra Invicta: «Самый реалистичный симулятор вторжения пришельцев»

Level of difficultyEasy
Reading time13 min
Views9K

Если вы вращались в англоязычном информационном пространстве, типа Реддита, в 2020–2021 годах, то наверняка видели посты, рекламирующие игру с достаточно интересным содержанием. «Самый реалистичный симулятор вторжения пришельцев», «Геополитика в вашей песочнице», «Проложите новый путь человечества» и всякие другие громкие слоганы. Так рекламировали Терра Инвикта — амбициозный проект Pavonis Interactive (ранее известные как Long War Team), где они попытались смешать несколько очень разных игр — 4Х стратегию, геополитический симулятор и игру о колонизации Солнечной системы. Какой получилась первая полновесная игра команды, которая ранее занималась только разработкой модов? Давайте посмотрим.

Будет совсем чуть-чуть спойлеров!

Хорошая планета. Мы захватим её!
Total votes 41: ↑39 and ↓2+51
Comments17

Математическая продлёнка. Вокруг ленты Мёбиуса

Level of difficultyEasy
Reading time13 min
Views8.1K

Лента или лист Мëбиуса — верный друг всех адептов занимательной математики. Это неориентируемое гладкое двумерное многообразие можно без труда вложить в трёхмерное пространство, склеив из бумажной полоски, а потом эффектно разрезать на потеху публике. Но кого можно удивить лентой Мёбиуса на Хабре? Знаем, клеили, резали! Но всё же, я надеюсь подарить вам ещё несколько незаезженных топологических инсайтов на эту тему. Более того, в ней есть ещё что изучать, и я поделюсь с вами двумя относительно недавними исследованиями ленты Мёбиуса, опубликованными в 2010-м и 2014-х годах.

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

Читать далее
Total votes 46: ↑46 and ↓0+65
Comments6

Размышления о структурном программировании

Level of difficultyMedium
Reading time3 min
Views22K


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


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


Все наверно помнят, что любой алгоритм можно представить в виде трех видов алгоритмических конструкций, следование, ветвление и повторения? А иногда еще добавляют, что эту теорему выдвинул и доказал Э. Дейкстра в 70-х гг. прошлого века, в том числе, включая широко распиаренный якобы запрет на использование операторов goto.

Читать дальше →
Total votes 45: ↑38 and ↓7+35
Comments80

Заметки для начинающего тимлида

Level of difficultyEasy
Reading time12 min
Views12K

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

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

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

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

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

Читать далее
Total votes 14: ↑12 and ↓2+11
Comments13

Как прогнозировать время выполнения задач

Level of difficultyHard
Reading time20 min
Views39K

Привет! Меня зовут Павел Ахметчанов, я руководитель направления улучшения процессов разработки. В статье расскажу про часто используемые методики оценок задач и есть ли в них ошибки. Посмотрим, как правильно ставить вопросы при оценке. Узнаем, что собой представляет время решения задач, а это далеко не очевидная вещь. Попробуем изменить свое мышление и получим рецепт для определения времени решения задач. 

Если спросить любого начинающего исследователя этой темы «А зачем нам оценка?», он скажет, что постоянно задают вопрос «Когда вы выполните эту задачу?», на который и надо ответить с помощью этой оценки. А что, если сам вопрос задан неверно?

Читать далее
Total votes 63: ↑61 and ↓2+66
Comments57

Как прошел IT’s Tinkoff Solution Cup

Reading time15 min
Views4.1K

Привет! Провели финал IT’s Tinkoff Solution Cup 22 апреля. Шесть треков, нестандартные задачи и призы. У нас получилось собрать офлайн много крутых разработчиков и близких по духу людей, порешать задачи и пообщаться с коллегами.

Рассказываем, как все прошло, и разбираем задачи разных треков.

Читать далее
Total votes 24: ↑23 and ↓1+25
Comments15

Иммутабельная архитектура

Reading time6 min
Views10K

Эта статья является переводом материала «Immutable architecture».

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

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

Читать далее
Total votes 14: ↑11 and ↓3+10
Comments13

TypeScript: Раскладываем tsconfig по полочкам. Часть 1

Reading time10 min
Views91K

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

Читать далее
Total votes 26: ↑25 and ↓1+28
Comments4

Помогаем Queryable Provider разобраться с интерполированными строками

Reading time5 min
Views7.2K

Тонкости Queryable Provider


Queryable Provider не справляется вот с этим:


 var result = _context.Humans
                      .Select(x => $"Name: {x.Name}  Age: {x.Age}")
                      .Where(x => x != "")
                      .ToList();

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


 var result = _context.Humans
                      .Select(x => "Name " +  x.Name + " Age " + x.Age)
                      .Where(x => x != "")
                      .ToList();

Особенно болезненно править баги после включение ClientEvaluation(исключениe при вычислении на клиенте), все профайлы автомаппера должны быть подвергнуты жесткому анализу, на поиск этой самой интерполяции. Давайте разберемся в чем дело и предложим свое решение проблемы

Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments18

Размыкаем замыкания и внедряем Dependency Injection в JavaScript

Reading time5 min
Views20K

image


В этой статье мы рассмотрим, как писать чистый, легко тестируемый код в функциональном стиле, используя паттерн программирования Dependency Injection. Бонусом идет 100% юнит-тест coverage.

Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments19

Как запустить свой подкаст, руководство для начинающих

Reading time6 min
Views49K
Месяц назад мы обсуждали тренды на рынке аудиоподкастов. Сегодня мы решили рассказать, как начать записывать собственный подкаст и не потратить на это много денег.

Total votes 25: ↑20 and ↓5+15
Comments2

Что происходит за кулисами С#: основы работы со стеком

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

Дисклеймер


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

Весь код, кроющийся за высокоуровневым, представлен для режима отладки, именно он показывают концептуальную основу. Также все изложенное рассмотрено для 32 битной платформы. JIT оптимизации — это отдельная и большая тема, которая здесь рассматриваться не будет.

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

Начинаем с теории


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

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments11

DDD, Hexagonal, Onion, Clean, CQRS… как я собрал всё это вместе

Reading time14 min
Views105K


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

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

С тех пор я всегда чувствовал, что мне нужно восстановить «потерянное» время и узнать как можно больше, как можно быстрее. Поэтому я стал немного увлекаться экспериментами, много читать и писать, уделяя особое внимание дизайну и архитектуре программного обеспечения. Вот почему я пишу эти статьи, чтобы помочь себе в обучении.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments14

Несколько советов по Angular

Reading time16 min
Views35K

Прошло уже достаточно времени с выхода обновленного Angular. В настоящее время множество проектов завершено. От "getting started" множество разработчиков уже перешло к осмысленному использованию этого фреймворка, его возможностей, научились обходить подводные камни. Каждый разработчик и/или команда либо уже сформировали свои style guides и best practice либо используют чужие. Но в тоже время часто приходится сталкиваться с большим количеством кода на Angular, в котором не используются многие возможности этого фреймворка и/или написанного в стиле AngularJS.


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

Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments12

22 совета Angular-разработчику. Часть 2

Reading time7 min
Views16K
Сегодня мы публикуем вторую часть перевода статьи, которая содержит набор рекомендаций для Angular-разработчиков. В предыдущей части были представлены 11 советов, в этой мы рассмотрим ещё столько же.


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

22 совета Angular-разработчику. Часть 1

Reading time10 min
Views29K
Автор статьи, первую часть перевода которой мы публикуем, говорит, что он уже около двух лет работает над крупномасштабным Angular-приложением в Trade Me. В течение последних нескольких лет команда разработчиков приложения постоянно занимается совершенствованием проекта — как в плане качества кода, так и в том, что касается производительности.


В этой серии материалов речь пойдёт о подходах к разработке, используемые командой Trade Me, которые выражены в виде более чем двух десятков рекомендаций, касающихся таких технологий, как Angular, TypeScript, RxJS и @ngrx/store. Кроме того, определённое внимание здесь будет уделено универсальным техникам программирования, которые направлены на то, чтобы сделать код приложений чище и аккуратнее.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments23

Переопределение Equals и GetHashCode. А оно надо?

Reading time8 min
Views26K
Если вы знакомы с C#, то, скорее всего, знаете, что необходимо всегда переопределять Equals, а также GetHashCode, чтобы избежать снижения производительности. Но что будет, если этого не сделать? Сегодня сравним производительность при двух вариантах настройки и рассмотрим инструменты, помогающие избегать ошибок.

Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments10

Information

Rating
3,939-th
Location
Россия
Works in
Registered
Activity