— О чём я сегодня расскажу? Первое — введение в асинхронность. Далее мы рассмотрим примитивы, которые можно использовать в новом стандарте, и интеграцию с планировщиками. Также немаловажным аспектом будет являться работа со старым кодом, если мы пишем новый код с использованием нового подхода. Затем я покажу бонус, достаточно интересный и необычный. И подведём итоги того, что у нас получилось.
Читать полностью »
Рубрика «Совершенный код» - 5
Асинхронность в С++20. Доклад в Яндексе
2021-09-21 в 9:54, admin, рубрики: async/await, c++, асинхронное программирование, Блог компании Яндекс, Компиляторы, планировщики, примитивы, Программирование, Совершенный кодМногопоточность и Kotlin в Яндекс.Картах: как не допустить падения новых фич на iOS
2021-09-06 в 9:02, admin, рубрики: kotlin, kotlin multiplatform, Kotlin Native, Блог компании Яндекс, многопоточность, разработка мобильных приложений, разработка под iOS, Совершенный код
Привет! Меня зовут Женя Васильев, я делаю Яндекс.Карты под Android. А с появлением у нас Kotlin Multiplatform — так уж получилось, ещё и под iOS.
Kotlin Multiplatform позволяет писать код, который будет одинаково работать на iOS и Android. По крайней мере, должен одинаково работать. И в случае с простыми фичами правда работает. Но если вы, как и я, впервые реализовываете в мультиплатформе сложную фичу с многопоточностью, на iOS вас будут ждать креши в рантайме и утечки.
В статье я расскажу и покажу на примерах, с какими проблемами я столкнулся при написании многопоточного кода на Kotlin Multiplatform, как эти проблемы решать, как лучше организовывать потоки данных в многопоточной среде и что ещё нужно делать, чтобы написанное на Kotlin не падало на iOS. Увы, писать код «как обычно» не получится.
Читать полностью »
Изоляция модели предметной области
2021-08-15 в 6:30, admin, рубрики: DDD, Анализ и проектирование систем, иммутабельность, ооп, Программирование, проектирование, Проектирование и рефакторинг, рефакторинг, Совершенный кодЭта статья является переводом материала «Domain model isolation».
Термин «изоляция модели предметной области» уже давно используется, но его значение может быть не таким очевидным, как многие думают. В этом посте автор оригинала попытается описать, что значит правильно изолировать модель предметной области и почему это важно.
Изоляция модели предметной области
Понятие изоляции модели предметной области очень похоже на то, что предлагает функциональная архитектураЧитать полностью »
Почему не все тестовые задания одинаково полезны: разбор одного фееричного провала
2021-08-10 в 7:11, admin, рубрики: .net, C#, typelevel, Карьера в IT-индустрии, никто не читает теги, Программирование, Совершенный код, тестовое задание
Всем привет, это PsyHaSTe и сегодня я хотел бы рассказать о том, куда меня занесла нелегкая в процессе оптимизации и рефакторинга кода решения тестового задания из статьи товарища novar (кто пропустил — рекомендую ознакомиться). Какие проблемы были у этого решения? Почему все-таки человеку отказали в работе? Что можно с этим сделать? Ответы на эти и многие другие вопросы оказались слишком длинными для комментария и вылились в статью с подробным разбором, примерами и альтернативной реализацией задания.
Если вам интересно кто в здравом уме мог для выполнения поставленной задачи написать код сочетающий монады с goto, а также одновременно сократил объем кода и увеличил его производительность, то добро пожаловать под кат. И, конечно же, самое вкусное, связанное с оптимизациями на базе работы JIT — в конце. Итоговую версию решения тестового можно посмотреть на гитхабе по ссылке.
Иммутабельная архитектура
2021-08-08 в 6:43, admin, рубрики: Анализ и проектирование систем, иммутабельность, Программирование, проектирование, Проектирование и рефакторинг, рефакторинг, Совершенный код, функциональное программированиеЭта статья является переводом материала «Immutable architecture».
В этом посте автор оригинала хотел бы показать общий подход к внедрению иммутабельности в кодовую базу на архитектурном уровне.
Иммутабельность, состояние и побочные эффекты
Прежде чем мы начнем, давайте определим термины. Скорее всего, вы уже сталкивались с ними.
Что такое функциональное программирование?
2021-08-01 в 6:43, admin, рубрики: Анализ и проектирование систем, Программирование, проектирование, Совершенный код, функциональное программированиеЭта статья является переводом материала «What is functional programming?».
В этой статье Владимир Хориков попытается ответить на вопрос: что такое функциональное программирование?
Функциональное программирование
Итак, что такое функциональное программирование? Этот термин возникает довольно часто, и каждый автор, пишущий о нем, дает собственное объяснение. На взгляд автора оригинала, самым простым и в то же время точным определением является следующее: функциональное программирование - это программирование с математическими функциями.
OCP против YAGNI
2021-07-11 в 7:20, admin, рубрики: ocp, YAGNI, Анализ и проектирование систем, ооп, Программирование, проектирование, Проектирование и рефакторинг, рефакторинг, Совершенный кодЭта статья является переводом материала OCP vs YAGNI.
В этом посте хочется осветить тему OCP и YAGNI – противоречия между принципом открытости/закрытости и принципом «вам это не понадобится».
OCP
Давайте начнем с того, что вспомним, что такое OCP. Принцип открытости/закрытости гласит, что: Объекты программного обеспечения (классы, модули, функции и т.д.) должны быть открыты для расширения, но закрыты для модификации.
Впервые он был представлен Бертраном Мейером в его канонической книге «Читать полностью »
Плюсуем к скидке. Покупатели Яндекс.Маркет заметили, что товары для подписчиков Плюса стоят дороже, чем без подписки
2021-06-08 в 12:33, admin, рубрики: e-commerce, маркетплейсы, плюс, подписка, Разработка под e-commerce, сайты, Совершенный код, Тестирование веб-сервисов, товары, торговля, Управление e-commerce, цены, яндекс, яндекс маркетАктуальность принципов SOLID
2021-06-05 в 19:00, admin, рубрики: solid, архитектура, архитектурные паттерны, принципы проектирования, Программирование, проектирование, Проектирование и рефакторинг, рефакторинг, Роберт Мартин, Совершенный кодВпервые принципы SOLID были представлены в 2000 году в статье Design Principles and Design Patterns Роберта Мартина, также известного как Дядюшка Боб.
С тех пор прошло два десятилетия. Возникает вопрос - релевантны ли эти принципы до сих пор?
Перед вами перевод статьи Дядюшки Боба, опубликованной в октябре 2020 года, в которой он рассуждает об актуальности принципов SOLID для современной разработки.
Недавно я получил письмо с примерно следующими соображениями:
Разукрашиваем вывод в консоли: теория и практика
2021-05-23 в 10:00, admin, рубрики: color, encoding, library, python, terminal, vds, vps, Блог компании Маклауд, Научно-популярное, Программирование, Совершенный код
Консоль привлекает многих своей минималистичностью и эстетикой, но даже в ней иногда хочется выделить определённый фрагмент, чтобы показать его роль или значимость. Например, отметить зелёным текстом сообщение об успешном выполнении операции или обозначить длинный текст ошибки курсивом. О том, как это делать, а также о реализации на питоне — читайте далее.

