Рубрика «Программирование» - 350

У разных исключений в .NET есть свои особенности, и знать их бывает очень полезно. Как обмануть CLR? Как остаться в живых в рантайме, поймав StackOverflowException? Какие исключения перехватить вроде бы нельзя, но если очень хочется, то можно?

Особые исключения в .NET и как их готовить - 1

Под катом расшифровка доклада Евгения (epeshk) Пешкова с нашей конференции DotNext 2018 Piter, где он рассказал про эти и другие особенности исключений.
Читать полностью »

Улучшаем навыки отладки ПО — несколько советов - 1

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

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

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

Как написать на ассемблере программу с перекрываемыми инструкциями (ещё одна техника обфускации байт-кода) - 1

Читать полностью »

Сегодня у нас в виртуальной студии самый известный в мире докладчик по Spring — Джош Лонг.

Именно его докладами открываются Java-конференции по всему миру. Именно он отвечает на вопросы сообщества, делает Spring Tips на YouTube, именно его «This week in Spring» мы читаем каждую неделю и многое другое.

Кстати, Джош разрешил использовать все материалы в нашем собственном «This week in Java», но он делает их в таком объеме и глубине, что эти данные ни разу не получилось сжать до формата «дайджеста на 15 минут».

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

«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 1

Участники

«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 2«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 3Josh Long, Spring Developer Advocate at Pivotal

«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 4«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 5Евгений Трифонов, Олег Чирухин — редакция JUG.ru Group

Читать полностью »

Встреча .NET сообщества на CLRium #4 + онлайн - 1Вы любите продуктовые доклады? Я — нет. А вы любите доклады, не относящиеся к теме конференции? Я — категорически нет. Складывается ощущение что я плачу за чужие амбиции и отсутствие контента. Потому мы делаем CLRium 4: где собираем все самое последнее, полезное… И самое главное — кишочки!

Теперь, помимо докладов будет жаркая дискуссия между спикерами по возможностям C# 8.0, которые полны неоднозначных моментов. И поверьте, будет жара: я многие моменты не приемлю, а вот второй спикер, Александр Кугушев уверяет что они так полезны, что хоть завтра — в прод. Наталия Цвилих придерживается смешанной точки зрения… Интереснейшая получится беседа, я вам обещаю.

Почитать и зарегистрироваться

Встреча .NET сообщества на CLRium #4 + онлайн - 2

cool Примеры статей и полный список тем выступлений — под катомЧитать полностью »

Теория игр — математическая дисциплина, рассматривающая моделирование действий игроков, которые имеют цель, заключающуюся в выбор оптимальных стратегий поведения в условиях конфликта. На Хабре эта тема уже освещалась, но сегодня мы поговорим о некоторых ее аспектах подробнее и рассмотрим примеры на Kotlin.
Читать полностью »

Оглавление

  Введение
  1. Основные стратегии копирования-владения
    1.1. Стратегия запрета копирования
    1.2. Стратегия исключительного владения
    1.3. Стратегия глубокого копирования
    1.4. Стратегия совместного владения
  2. Стратегия глубокого копирования — проблемы и решения
    2.1. Копирование при записи
    2.2. Определение функции обмена состояниями для класса
    2.3. Удаление промежуточных копий компилятором
    2.4. Реализация семантики перемещения
    2.5. Размещение vs. вставки
    2.6. Итоги
  3. Возможные варианты реализации стратегии совместного владения
  4. Стратегия исключительного владения и семантика перемещения
  5. Стратегия запрета копирования — быстрое начало
  6. Жизненный цикл ресурса и объекта-владельца ресурса
    6.1. Захват ресурса при инициализации
    6.2. Расширенные варианты управления жизненным циклом ресурса
      6.2.1. Расширенный жизненный цикл ресурса
      6.2.2. Однократный захват ресурса
      6.2.3. Повышение уровня косвенности
    6.3. Совместное владение
  7. Итоги
  Приложения
    Приложение A. Rvalue-ссылки
    Приложение Б. Семантика перемещения
  Список литературы

Введение

Управление ресурсами — это то, чем программисту на C++ приходится заниматься постоянно. Читать полностью »

DevOops 2018: бесплатная онлайн-трансляция, вечеринка и многое другое - 1

Всего несколько дней осталось до конференции DevOops 2018: она пройдет в конгресс-центре гостиницы «Park Inn by Radisson Пулковская» 14 октября. Вы уже знаете про 17 докладов и сотни участников, но мы подготовили кое-что ещё.

По традиции, прямо на YouTube будет открыта бесплатная онлайн-трансляция первого зала. Между докладами будут вестись интервью с ключевыми спикерами конференции.

Ссылка на трансляцию

В трансляцию попадут только первые четыре доклада из семи (до Баруха включительно, и интервью после него). Видео по ссылке заработает утром в воскресенье, когда начнётся DevOops. Cейчас там можно посмотреть программу первого зала.

Для тех же, кто пойдёт вживую, хочется напомнить несколько дополнительных фишек.

Читать полностью »

Учим языки программирования в процессе: разработчик ПО о сложных проектах - 1

От переводчика: этот пост — перевод оригинальной статьи Дэвида Хэррона, опытного разработчика программного обеспечения. Он часто пишет статьи на тему своей работы, включая Node.js, к которому у Дэвида особенное отношение.

Как разработчики программного обеспечения, все мы знаем, насколько быстро изменяются технологии. Мы пытаемся угнаться за ними, постоянно изучая новые методы работы, инструменты, языки и фреймворки. Нам постоянно приходится сравнивать их достоинства и недостатки, решая, что нужно освоить, а что — оставить за бортом. Это непростая задача, можно легко потеряться в море вариантов.
Читать полностью »

Многие считают, что метапрограммирование в Python излишне усложняет код, но если использовать его правильно, то можно быстро и элегантно реализовать сложные паттерны проектирования. Помимо этого, такие известные Python-фреймворки, как Django, DRF и SQLAlchemy, используют метаклассы, чтобы обеспечить легкую расширяемость и простое переиспользование кода.

Python: метапрограммирование в продакшене. Часть первая - 1

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

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js