Генерация кода во время работы приложения: реальные примеры и техники

Автор: admin от 13-04-2018, 14:20, посмотрело: 147

Генерация кода в рантайме — очень мощная и хорошо изученная техника, но многие разработчики все еще неохотно её используют. Обычно изучение Expression Trees начинают с какого-нибудь простого примера типа создания предиката (фильтра) или математического выражения. Но не Expression Trees единым жив .NET-разработчик. Совсем недавно появилась возможность генерировать код, используя сам компилятор — это делается с помощью API библиотек Roslyn/CodeAnalisys, предоставляющих, кроме всего прочего, еще и парсинг, обход и генерацию исходников.



Эта статья основана на докладе Raffaele Rialdi (Twitter: @raffaeler) на конференции DotNext 2017 Moscow. Вместе с Рафаэлем мы проанализируем реальные способы использования кодогенерации. В отдельных случаях они позволяют очень сильно улучшить производительность приложения, что в свою очередь приводит нас к дилемме — если сгенерированный код так полезен и мы собираемся его часто использовать, то как же отлаживать этот код? Это один из фундаментальных вопросов, возникающих в реальных проектах.



Рафаэль — практикующий архитектор, консультант и спикер, имеющий MVP в категории Developer Security начиная с 2003 года, который прямо сейчас занимается бэкендами enterprise-проектов, специализируясь на генерации кода и кроссплатформенной разработки для C# и C++.



Категория: Программирование

 

Как загрузить нестандартный лог в Splunk + логи Fortinet

Автор: admin от 13-04-2018, 13:55, посмотрело: 390

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



Как загрузить нестандартный лог в Splunk + логи Fortinet

Категория: Программирование

 

Отлично, мы собрались DevOps-нуться. Получается, 15 лет процессов планирования — коту под хвост?

Автор: admin от 13-04-2018, 12:50, посмотрело: 206

Отлично, мы собрались DevOps-нуться. Получается, 15 лет процессов планирования — коту под хвост?


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



DevOps существует почти 10 лет, и в последние два-три года большие нормальные организации уже освоились с премудростями DevOps. («Но что такое этот ваш DevOps?!» — вероятно, подумали вы. Договоримся, что это «улучшение качества вашего ПО за счёт ускорения цикла релизов с помощью облачных методик и автоматизации, а также с помощью дополнительных преимуществ ПО, которое остаётся в production».)



Когда Мэтта Карри, менеджера по Agile-трансформации в компании Allstate, спросили о применении DevOps, он ответил: «Думаю, когда айтишники его опробуют, то уже никогда не будут работать по-другому». Вероятно, вы слышите подобное вновь и вновь, когда речь заходит про внедрение DevOps.



Хотя внесение улучшений и изменений часто кажется чем-то, что не может произойти в вашей организации, результаты слишком заманчивы, чтобы их игнорировать, да и бизнес ожидает от ИТ последовательного наращивания возможностей и эффективности. Как сказал Джон Митчелл, директор по цифровой стратегии и поставке компании Duke Energy: «Согласно нашим бизнес-результатам, стало в 10 раз лучше».

Категория: Программирование

 

Книга Безопасность в PHP (часть 4). Недостаток безопасности на транспортном уровне (HTTPS, TLS и SSL)

Автор: admin от 13-04-2018, 12:50, посмотрело: 206

Книга Безопасность в PHP (часть 4). Недостаток безопасности на транспортном уровне (HTTPS, TLS и SSL)

Книга «Безопасность в PHP» (часть 1)

Книга «Безопасность в PHP» (часть 2)

Книга «Безопасность в PHP» (часть 3)



Связь через интернет между участниками процесса сопряжена с рисками. Когда вы отправляете платёжное поручение в магазин, используя онлайн-сервис, то совершенно точно не хотите, чтобы злоумышленник мог его перехватить, считать, изменить или заново повторить HTTP-запрос к онлайн-приложению. Только представьте себе последствия того, что атакующий считает куку вашей сессии или изменит получателя платежа, товар, платёжный адрес. Или внедрит в разметку, отправляемую магазином в ответ на запрос пользователя, свой HTML или javascript.

Категория: Программирование

 

Как я учусь практикам и ценностям Agile

Автор: admin от 13-04-2018, 11:05, посмотрело: 166

Как я учусь практикам и ценностям Agile

Под катом обзор и выводы с ретроспективы MeetUp-а про командную работу и рефлексию, который 3 апреля провела Елена Литвинова.



Для меня он стал демонстрацией как обычная команда (далее команда 1.0), отличается от подготовленной (команда 2.0).



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

Категория: Программирование » Веб-разработка

 

Блокировка Telegram — готовимся к худшему?

Автор: admin от 13-04-2018, 11:05, посмотрело: 203

Блокировка Telegram — готовимся к худшему?


Как известно, вчера Роскомнадзор попросил суд заблокировать Telegram. Надо понимать, что игры закончились и мессенджер будет заблокирован с очень большой степенью вероятности. Само дело было заведено по иску Роскомнадзора, и судья Смолина Ю.М. уже успела провести подготовительное заседание в Таганском суде г. Москвы. Юристов от Telegram на заседании не было. Кто-то говорит, что сам Дуров дал распоряжение не являться на суд, но вполне может быть, что специалисты просто не успели подготовиться. На все про все у них было всего несколько часов и понятно, что все сразу оформить никто бы не успел.



Сегодня, 13 апреля, в 10 часов будет проходить рассмотрение иска по существу. Кабинет 301, Таганский районный суд — приходить могут все. Зная Роскомнадзор, можно быть уверенным, что ведомство будет настаивать на блокировке мессенджера и это рано или поздно случиться (или нет?). Но подготовиться стоит заранее.

Категория: Программирование » Веб-разработка

 

Операторы ?., ?? и |>: будущие возможности JavaScript, которые вам понравятся

Автор: admin от 13-04-2018, 11:05, посмотрело: 170

Джастин Фуллер, автор материала, перевод которого мы сегодня публикуем, предлагает рассмотреть три новых возможности, появление которых ожидается в javascript в обозримом будущем. Сначала он расскажет о процессе развития JS, а после этого представит обзор этих возможностей и покажет примеры их использования. Речь пойдёт об операторах ?., ?? и |>.



О стандарте ECMAScript и развитии javascript



Операторы ?., ?? и |>: будущие возможности JavaScript, которые вам понравятся
Если вы уже знакомы с особенностями деятельности рабочей группы ECMA TC39, с тем, как она осуществляет отбор и обработку предложений о совершенствовании javascript, вы вполне можете пропустить этот раздел. Если же вы из тех, кому интересно об этом узнать — вот краткий обзор того, чем занимается TC39.



javascript — это реализация стандарта, называемого ECMAScript, который был создан для стандартизации реализаций языка, которые появились в ранние годы существования веб-браузеров.



Существует восемь редакций стандарта ECMAScript и семь релизов (четвёртая редакция стандарта не выходила, после третьей сразу идёт пятая). Разработчики javascript-движков приступают к реализации новшеств языка после выхода стандарта. Здесь можно увидеть, что не каждый движок реализует все возможности, при этом некоторым движкам для введения новшеств требуется больше времени, чем другим. Хотя такое положение дел и не идеально, это, всё же, лучше, чем полное отсутствие стандартов.

Категория: Программирование » Веб-разработка

 

Как с помощью анализа геоданных предсказать количество вызовов экстренных служб в разных частях города?

Автор: admin от 12-04-2018, 22:05, посмотрело: 185

Попробуйте решить задачу из онлайн-хакатона Geohack.112. Дано: территория Москвы и Московской области была разделена на квадраты размеров от 500 на 500 метров. В качестве исходных данных представлено среднее количество вызовов экстренных служб в день (номера 112, 101, 102, 103, 104, 010, 020, 030, 040). Рассматриваемый регион был поделен на западную и восточную часть. Участникам предлагается, обучившись по западной части, предсказать количество вызовов экстренных служб для всех квадратов восточной.



Как с помощью анализа геоданных предсказать количество вызовов экстренных служб в разных частях города?

Категория: Программирование

 

Разбор основных концепций параллелизма

Автор: admin от 12-04-2018, 22:05, посмотрело: 169

Всем кофе!



Завтра у нас плавненько стартует практически юбилейный поток курс «Разработчик Java» — уже шестой по счёту начиная с апреля прошлого года. А это значит, что мы снова подобрали, перевели интереснейший материал, которым делимся с вами.



Поехали!



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



РАЗДЕЛ 1



Вступление



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



РАЗДЕЛ 2



Концепции
















КонцепцияОписание
Atomicity (атомарность)Атомарная операция — это операция, которая выполняется полностью или не выполняется совсем, частичное выполнение невозможно.
Visibility (видимость)Условия, при которых один поток видит изменения, сделанные другим потоком


Таблица 1: Концепции параллелизма



Разбор основных концепций параллелизма

Категория: Программирование

 

Riot Games: анатомия технического долга

Автор: admin от 12-04-2018, 22:05, посмотрело: 251

Привет, меня зовут Билл «LtRandolph» Кларк. Я работаю техническим руководителем команды создания чемпионов LoL. За последние несколько лет я успел поработать в разных отделах разработки League, но единственное, чем я был постоянно одержим — это технический долг. Мне нужно найти его, понять его и, при возможности, устранить его.



Когда разработчики обсуждают любую существующую технологию, например патч 8.4 League of Legends, то часто упоминают технический долг. Я называю техническим долгом код или данные, за которые придётся расплачиваться будущим разработчикам. Этой печальной стороне разработки ПО посвящено бесчисленное количество постов, статей и определений. В своём посте я хочу обсудить виды технического долга, с которыми мне пришлось встретиться при работе в Riot, и рассказать о модели, которую мы начали использовать в компании. Если бы меня попросили выделить самый важный урок, который можно извлечь из этой статьи, то я сказал бы, что это описанная ниже метрика «инфицирования».



Riot Games: анатомия технического долга

Метрики



Чтобы принимать правильные решения о том, какие проблемы необходимо устранить сейчас, а какие можно ставить на потом (или, будем реалистичными, совершенно забыть о них), нам нужен какой-то способ измерения каждого конкретного элемента технического кода. Я выбрал для оценки три основные оси измерения: влияние, затраты на устранение и инфицирование.

Категория: Программирование