Поговорим о микрооптимизациях .NET-приложенийAndrey Akinshin
Доклад для Middle и Senior .NET-программистов о микроптимизациях приложения, из которого Вы узнаете:
О том, как важно понимать IL и ASM код, соответствующий вашей C#-программе;
О различных уровнях микрооптимизаций начиная от C# и JIT компиляторов, заканчивая CPU;
Об особенностях оптимизаций под различные процессорные архитектуры;
Об отличиях разных версиях JIT-компиляторов, включая RyuJIT;
О том, как правильно замерять время выполнения приложений и оценивать эффективность оптимизаций.
Доклад будет полезен всем разработчикам, которые хотят хотят сделать свои и без того быстрые программы ещё на 5-10% быстрее.
В лекции рассказано о доступных средствах по отладке веб-сайтов, их возможностях, а также способах их использования. Также речь пойдет о том, как искать ошибки у пользователей в продакшене и контролировать качество продукта.
Moscow Python Conf 2016. Почему 100% покрытие это плохо?Ivan Tsyganov
Я работаю над продуктом Max Patrol компании Positive Technologies. Кодовая база нашего проекта насчитывает более 50 тысяч строк кода. Без хороших тестов работа с таким объемом кода превратилась бы в кошмар. Многие программисты стремятся к 100% покрытию кода тестами и считают, что это избавит их от множества проблем. Я расскажу о том, с какими трудностями мы столкнулись и почему заветные 100% ничего не говорят о покрытии тестируемого кода. Я приведу примеры кода и тестов, которые показывают 100% покрытие и покажу почему это не так. Я рассмотрю как работает библиотека coverage.py и объясню почему не стоит слепо верить результатам ее работы. Так же я поделюсь идеей получения честной метрики покрытия кода тестами и представлю прототип библиотеки, в которую воплотилась эта идея.
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019corehard_by
Мир изменился. То, что работало раньше, не то чтобы перестало работать, но стало недостаточным. Парное программирование, обзоры кода, юнит-тесты по-прежнему важны и необходимы, но они уже не могут обеспечить должного уровня качества и надёжности С++ проектов. Многие проекты выросли в сотни раз. Рост происходил постепенно, и еще не все поняли, что произошло. Любой большой старый проект состоит из разнородных слоёв (геологических отложений) и, самое главное, уже никто не знает, как это всё работает. Пришло время инструментов и методологий, помогающих сохранять качество и целостность кода: DevSecOps, статический анализ, динамический анализ, платформы измерения качества.
Поговорим о микрооптимизациях .NET-приложенийAndrey Akinshin
Доклад для Middle и Senior .NET-программистов о микроптимизациях приложения, из которого Вы узнаете:
О том, как важно понимать IL и ASM код, соответствующий вашей C#-программе;
О различных уровнях микрооптимизаций начиная от C# и JIT компиляторов, заканчивая CPU;
Об особенностях оптимизаций под различные процессорные архитектуры;
Об отличиях разных версиях JIT-компиляторов, включая RyuJIT;
О том, как правильно замерять время выполнения приложений и оценивать эффективность оптимизаций.
Доклад будет полезен всем разработчикам, которые хотят хотят сделать свои и без того быстрые программы ещё на 5-10% быстрее.
В лекции рассказано о доступных средствах по отладке веб-сайтов, их возможностях, а также способах их использования. Также речь пойдет о том, как искать ошибки у пользователей в продакшене и контролировать качество продукта.
Moscow Python Conf 2016. Почему 100% покрытие это плохо?Ivan Tsyganov
Я работаю над продуктом Max Patrol компании Positive Technologies. Кодовая база нашего проекта насчитывает более 50 тысяч строк кода. Без хороших тестов работа с таким объемом кода превратилась бы в кошмар. Многие программисты стремятся к 100% покрытию кода тестами и считают, что это избавит их от множества проблем. Я расскажу о том, с какими трудностями мы столкнулись и почему заветные 100% ничего не говорят о покрытии тестируемого кода. Я приведу примеры кода и тестов, которые показывают 100% покрытие и покажу почему это не так. Я рассмотрю как работает библиотека coverage.py и объясню почему не стоит слепо верить результатам ее работы. Так же я поделюсь идеей получения честной метрики покрытия кода тестами и представлю прототип библиотеки, в которую воплотилась эта идея.
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019corehard_by
Мир изменился. То, что работало раньше, не то чтобы перестало работать, но стало недостаточным. Парное программирование, обзоры кода, юнит-тесты по-прежнему важны и необходимы, но они уже не могут обеспечить должного уровня качества и надёжности С++ проектов. Многие проекты выросли в сотни раз. Рост происходил постепенно, и еще не все поняли, что произошло. Любой большой старый проект состоит из разнородных слоёв (геологических отложений) и, самое главное, уже никто не знает, как это всё работает. Пришло время инструментов и методологий, помогающих сохранять качество и целостность кода: DevSecOps, статический анализ, динамический анализ, платформы измерения качества.
Как не подавиться большим старым проектомAndrey Karpov
Мир изменился. То, что работало раньше, не то чтобы перестало работать, но стало недостаточным. Парное программирование, обзоры кода, юнит-тесты по-прежнему важны и необходимы, но они уже не могут обеспечить должного уровня качества и надёжности С++ проектов. Многие проекты выросли в сотни раз. Рост происходил постепенно, и еще не все поняли, что произошло. Любой большой старый проект состоит из разнородных слоёв (геологических отложений) и, самое главное, уже никто не знает, как это всё работает. Пришло время инструментов и методологий, помогающих сохранять качество и целостность кода: DevSecOps, статический анализ, динамический анализ, платформы измерения качества.
Positive Hack Days. Олексюк. Автоматический поиск уязвимостей в программах бе...Positive Hack Days
Теоретические основы и практические навыки выявления уязвимостей в реальных программах методом фаззинга (англ. Fuzzing). Внимание будет уделено как популярным фреймворкам, так и разработке собственных инструментов под конкретные задачи. В рамках мастер-класса также будет рассказано о передовых и перспективных технологиях анализа кода, которым только предстоит найти своё место в повседневной работе исследователя уязвимостей.
Автоматический поиск уязвимостей в программах без исходных текстовd_olex
Automatic Search for Vulnerabilities in Programs Without Source Code, slides for the masterclass from Positive Hack Days 2011
---------
Dmitry Oleksyuk, eSage Lab
Data Wars: The Bloody Enterprise strikes backVictor_Cr
Sometimes developers loss or corrupt their production data under different circumstances. Sometimes it happens because of badly chosen data types. Moreover, it is not always some complex types: we will talk about pain in the neck (and below) from strings, dates, and some numeric types in Java. If you have no clue how these simple and very well known guys can hurt you and your applications – welcome.
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)Ontico
- WatchDog. Что это такое? Схема реализации с таймером и схема реализации на RunLoop'e.
- Как собирать результат работы WatchDog. Примеры того, что можно таким образом найти, и что мы нашли на проекте ICQ.
- Как работать с полученными результатами. Анализ стеков потоков. Профилирование с учетом расходов на синхронизацию.
- Проблемы при работе с WatchDog. Системные механизмы и популярные библиотеки, вызывающие проблемы. Методы обхода этих проблем. Итоговые параметры, применяемые на проекте ICQ.
QA Fest 2018. Святослав Логин. Что такое Metasploit? Как его использовать для...QAFest
Ни для кого не секрет, что при разработке проекта мало кто уделяет достаточное внимание проверке безопасности приложения. Даже когда и задумываются об этом, то очень часто упускают из внимания уязвимости железа и ОС, которое коммуницирует с вашим приложением. В своем докладе я расскажу и покажу на что следует обращать внимание при тестировании безопасности вашего продукта. А так же насколько важно применять тестирование безопасности. Ну, и как обычно, свои доклады я сопровождаю не только теорией, но и практическими примерами. На этот раз специальными гостями будут:
- Nmap
- Metasploit
- Ettercap
Алексей рассказывает, почему Тим Кук верит в светлое будущее дополненной реальности. Объясняет, как работает ARKit, и показывает несколько вдохновляющих примеров.
Речь пойдет о фреймворке под названием Texture (a.k.a AsyncDisplayKit/ASDK). Создатели этого фреймворка пытаются изменить старый синхронный способ работы с UI на современный многопоточный. Спикер расскажет о том, как устроен этот фреймворк, о его преимуществах и недостатках, подводных камнях и реальном опыте использования. После этого доклада все, кто его слушали, смогут создавать приложения на основе Texture и быть уверенными в том, что экран будет обновляться со скоростью 60FPS независимо от сложности UI.
Илья Сиганов, разработчик 7bits, аспирант по Информатике и Выч. Технике ОмГУ ФКН
Вы наверное наслышаны об успехах так называемого машинного обучения. Его используют для перевода текстов, синтеза голоса, распознавания речи, показа рекламы. Да чему только уже не научили компьютер! Мне стало безумно интересно как в принципе происходит обучение компьютера, каким задачам его можно обучить, а каким нельзя, по крайней мере пока.
В своей лекции я расскажу на настоящих примерах то, как может проходить обучение, с какими трудностями сталкиваются дата-саентисты и к чему всё это машинное обучение приведёт
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальноеОмские ИТ-субботники
Максим Верзаков, разработчик Crystalnix
Мы не боимся использовать Docker, и неплохо в этом преуспеваем. Я расскажу, как еще можно использовать Docker и почему это удобный инструмент не только для разработки, но и для жизни.
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...Омские ИТ-субботники
Докладчик: Вадим Литвинов, Hola Networks Ltd., Новосибирск.
«Надоели Ангуляры и Аджайлы? Устал от Scrum и NoSQL? Тогда приходи и мы погрузимся в увлекательный мир математики и увидим как с её помощью можно просто и элегантно решать сложные задачи.
Конкретно на этом докладе мы поговорим о том, как воссоздать 3D модель поверхности по видеозаписи.
О себе: родился и живу в Новосибирске, но молодость свою провел во Франции, где я прожил суммарно 15 лет. Несмотря на то что я закончил институт по специальности
“Компьютерные сети и связь”, админ из меня не вышел. Занимался я в основном
научными вычислениями. Защитил диссер по машинному зрению. Работал над многими интересными вещами от расчетов сопромата до робототехники. Самый мой любимый проект это разработка прототипа машины без водителя в 2010/11 годах. В настоящий момент работаю над Video CDN нового поколения в Hola Networks Ltd.»
Докладчик: Алексей Городецкий, ОмГУ, Great Fruit, Омск.
«Закончил ОмГУ ФКН, на данный момент обучаюсь в аспирантуре там же. В ИТ за деньги лет 6 — с осени первого курса. Так вышло, что занимался абсолютно разными вещами — админил и патчил Asterisk в службе такси, участвовал в разработке складских систем для небезызвестных колбасных картелей (см. программировал в морозилках и тому подобные страдания), занимался веб разработкой. На данный момент работаю в ОмГУ — занимаюсь корпоративными системами и электронными сервисами студента. В качестве развлечений участвую порой в хакатонах (обычно в команде с небезызвестным человеком-хакатоном), а так же в game джемах.
Как и любой другой сегодняшний программист, программировал на довольно большом количестве языков — на функциональных, на скриптовых, на мейнстримовых. Честно говоря, результат меня совсем не удовлетворил, как, думаю, и многих многих других. Именно по этой причине сегодня так много молодых и по-своему интересных языков. По моему мнению, сегодняшние мейнстримовые языки имеют 4 очень серьезные проблемы:
— менеджмент памяти
— проблема простоты, минимальности покрытия возможностями при сохранении выразительности
— композиция, модульность, масштабируемость
— возможности unit тестирования
В аспирантуре занимаюсь изучением этих вопросов. В своем докладе расскажу про инфраструктуру для создания компиляторов LLVM, некогда созданную аспирантом из Иллиноиса, Крисом Латтнером, сейчас работающим в Apple Inc. Логическим продолжением его деятельности стало создание языка Swift. Мы рассмотрим сегодняшние методологии построения компиляторов, используя инфраструктуру LLVM. На примере создания фронтенда достаточно простого языка, мы получим представление о системе команд LLVM, об утилитах, входящих в стандартный пакет LLVM, о FFI с libc и прочих скользких ситуациях, о которых часто представление имеют только системные программисты.
Если вас интересуют языки программирования, а также, возможно, накопилось некоторое количество боли и стресса от использования тех языков, с которыми вы вынуждены работать, то добро пожаловать на баркемп, на котором мы и обсудим такие вещи как:
— более подробно о LLVM и компиляторах
— перегрузка операторов
— вывод типов
Если останутся силы, то мы сможем обсудить 4 проблемы, обозначенных мною выше, тщательно запротоколировать все мнения и, возможно, прийти к какому-то консенсусу.»
Докладчик: Евгений Тюменцев, HWdTech, Омск.
«Будет дано небольшое введение в теорию формальных языков программирования. Разобран пример построения транслятора для небольшого языка программирования и рассказано, как это можно применять на проектах или, например, при выполнении лабораторных работ в ВУЗе
Опыт работы в ИТ-отрасли 12 лет. Был программистом, системным архитектором, руководителем проектов. Специализируюсь на разработке серверных, многопоточных, высокопроизводительных приложений.
16 лет преподаю в ОмГУ (ИМИТ, ФКН). Читаемые дисциплины: Проектирование ПО, разработка серверов и серверных приложений. Руковожу курсовыми и дипломными работами.»
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборотОмские ИТ-субботники
Николай Линкер, Backend-developer, ISS Art
С детства любил математику, это и определило мою профессию. Закончил матфак ОмГУ, уже 16 лет разрабатываю ПО, постоянно ищу новые решения. Довелось поработать с широким диапазоном языков и предметных областей. Детально разбирался с графическими библиотеками, компиляторами и сетевыми протоколами. В докладе расскажу, что заслуживает распространения из Haskell в традиционные языки, вроде Java, и что в Java удалось лучше, чем в Haskell.
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...Омские ИТ-субботники
Максим Дроздов, Project Manager, ISS Art.
Работаю в ИТ более 8 лет. Руковожу большими и интересными проектами. Навожу порядок в процессах и снижаю энтропию :) Professional Scrum Master. Работал программистом и люблю это дело. Образование — прикладные математика и физика.
Источник радости для меня — настраивать процессы и видеть слаженную команду, где учитывают мнение каждого участника и всю энергию направляют на доставку качественного продукта в соответствии с целями проекта.
В своем докладе хочу показать, что навести порядок в сложном проекте могут простые и широко известные средства, которые нужно правильно применять.
Непомнящих Егор, Web-developer, ISS Art.
JS, Java, Iron Maiden. Практически вся моя жизнь связана так или иначе с IT — с 11 класса и до 5 курса я лидировал на олимпиадах, но погрузился в профессию уже на работе в ISS Art’е. Мною реализованы ряд интересных проектов — от мелких поделок на гитхабе, до крупных бизнес-порталов, системы мониторинга и прогнозирования состояния оборудования, векторного графического редактора для Flash-версии Google Maps, сложного плагина для SketchUp на Ruby и Unity-клиента для просмотра зданий под десктопными и мобильными платформами.
В общем, повидал всякие front-end’ы, не только Web. Буду рад поделиться опытом с коллегами по цеху. В докладе расскажу о том, как сократить объем кода вашего front-end'а на 7%.
Как не подавиться большим старым проектомAndrey Karpov
Мир изменился. То, что работало раньше, не то чтобы перестало работать, но стало недостаточным. Парное программирование, обзоры кода, юнит-тесты по-прежнему важны и необходимы, но они уже не могут обеспечить должного уровня качества и надёжности С++ проектов. Многие проекты выросли в сотни раз. Рост происходил постепенно, и еще не все поняли, что произошло. Любой большой старый проект состоит из разнородных слоёв (геологических отложений) и, самое главное, уже никто не знает, как это всё работает. Пришло время инструментов и методологий, помогающих сохранять качество и целостность кода: DevSecOps, статический анализ, динамический анализ, платформы измерения качества.
Positive Hack Days. Олексюк. Автоматический поиск уязвимостей в программах бе...Positive Hack Days
Теоретические основы и практические навыки выявления уязвимостей в реальных программах методом фаззинга (англ. Fuzzing). Внимание будет уделено как популярным фреймворкам, так и разработке собственных инструментов под конкретные задачи. В рамках мастер-класса также будет рассказано о передовых и перспективных технологиях анализа кода, которым только предстоит найти своё место в повседневной работе исследователя уязвимостей.
Автоматический поиск уязвимостей в программах без исходных текстовd_olex
Automatic Search for Vulnerabilities in Programs Without Source Code, slides for the masterclass from Positive Hack Days 2011
---------
Dmitry Oleksyuk, eSage Lab
Data Wars: The Bloody Enterprise strikes backVictor_Cr
Sometimes developers loss or corrupt their production data under different circumstances. Sometimes it happens because of badly chosen data types. Moreover, it is not always some complex types: we will talk about pain in the neck (and below) from strings, dates, and some numeric types in Java. If you have no clue how these simple and very well known guys can hurt you and your applications – welcome.
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)Ontico
- WatchDog. Что это такое? Схема реализации с таймером и схема реализации на RunLoop'e.
- Как собирать результат работы WatchDog. Примеры того, что можно таким образом найти, и что мы нашли на проекте ICQ.
- Как работать с полученными результатами. Анализ стеков потоков. Профилирование с учетом расходов на синхронизацию.
- Проблемы при работе с WatchDog. Системные механизмы и популярные библиотеки, вызывающие проблемы. Методы обхода этих проблем. Итоговые параметры, применяемые на проекте ICQ.
QA Fest 2018. Святослав Логин. Что такое Metasploit? Как его использовать для...QAFest
Ни для кого не секрет, что при разработке проекта мало кто уделяет достаточное внимание проверке безопасности приложения. Даже когда и задумываются об этом, то очень часто упускают из внимания уязвимости железа и ОС, которое коммуницирует с вашим приложением. В своем докладе я расскажу и покажу на что следует обращать внимание при тестировании безопасности вашего продукта. А так же насколько важно применять тестирование безопасности. Ну, и как обычно, свои доклады я сопровождаю не только теорией, но и практическими примерами. На этот раз специальными гостями будут:
- Nmap
- Metasploit
- Ettercap
Алексей рассказывает, почему Тим Кук верит в светлое будущее дополненной реальности. Объясняет, как работает ARKit, и показывает несколько вдохновляющих примеров.
Речь пойдет о фреймворке под названием Texture (a.k.a AsyncDisplayKit/ASDK). Создатели этого фреймворка пытаются изменить старый синхронный способ работы с UI на современный многопоточный. Спикер расскажет о том, как устроен этот фреймворк, о его преимуществах и недостатках, подводных камнях и реальном опыте использования. После этого доклада все, кто его слушали, смогут создавать приложения на основе Texture и быть уверенными в том, что экран будет обновляться со скоростью 60FPS независимо от сложности UI.
Илья Сиганов, разработчик 7bits, аспирант по Информатике и Выч. Технике ОмГУ ФКН
Вы наверное наслышаны об успехах так называемого машинного обучения. Его используют для перевода текстов, синтеза голоса, распознавания речи, показа рекламы. Да чему только уже не научили компьютер! Мне стало безумно интересно как в принципе происходит обучение компьютера, каким задачам его можно обучить, а каким нельзя, по крайней мере пока.
В своей лекции я расскажу на настоящих примерах то, как может проходить обучение, с какими трудностями сталкиваются дата-саентисты и к чему всё это машинное обучение приведёт
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальноеОмские ИТ-субботники
Максим Верзаков, разработчик Crystalnix
Мы не боимся использовать Docker, и неплохо в этом преуспеваем. Я расскажу, как еще можно использовать Docker и почему это удобный инструмент не только для разработки, но и для жизни.
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...Омские ИТ-субботники
Докладчик: Вадим Литвинов, Hola Networks Ltd., Новосибирск.
«Надоели Ангуляры и Аджайлы? Устал от Scrum и NoSQL? Тогда приходи и мы погрузимся в увлекательный мир математики и увидим как с её помощью можно просто и элегантно решать сложные задачи.
Конкретно на этом докладе мы поговорим о том, как воссоздать 3D модель поверхности по видеозаписи.
О себе: родился и живу в Новосибирске, но молодость свою провел во Франции, где я прожил суммарно 15 лет. Несмотря на то что я закончил институт по специальности
“Компьютерные сети и связь”, админ из меня не вышел. Занимался я в основном
научными вычислениями. Защитил диссер по машинному зрению. Работал над многими интересными вещами от расчетов сопромата до робототехники. Самый мой любимый проект это разработка прототипа машины без водителя в 2010/11 годах. В настоящий момент работаю над Video CDN нового поколения в Hola Networks Ltd.»
Докладчик: Алексей Городецкий, ОмГУ, Great Fruit, Омск.
«Закончил ОмГУ ФКН, на данный момент обучаюсь в аспирантуре там же. В ИТ за деньги лет 6 — с осени первого курса. Так вышло, что занимался абсолютно разными вещами — админил и патчил Asterisk в службе такси, участвовал в разработке складских систем для небезызвестных колбасных картелей (см. программировал в морозилках и тому подобные страдания), занимался веб разработкой. На данный момент работаю в ОмГУ — занимаюсь корпоративными системами и электронными сервисами студента. В качестве развлечений участвую порой в хакатонах (обычно в команде с небезызвестным человеком-хакатоном), а так же в game джемах.
Как и любой другой сегодняшний программист, программировал на довольно большом количестве языков — на функциональных, на скриптовых, на мейнстримовых. Честно говоря, результат меня совсем не удовлетворил, как, думаю, и многих многих других. Именно по этой причине сегодня так много молодых и по-своему интересных языков. По моему мнению, сегодняшние мейнстримовые языки имеют 4 очень серьезные проблемы:
— менеджмент памяти
— проблема простоты, минимальности покрытия возможностями при сохранении выразительности
— композиция, модульность, масштабируемость
— возможности unit тестирования
В аспирантуре занимаюсь изучением этих вопросов. В своем докладе расскажу про инфраструктуру для создания компиляторов LLVM, некогда созданную аспирантом из Иллиноиса, Крисом Латтнером, сейчас работающим в Apple Inc. Логическим продолжением его деятельности стало создание языка Swift. Мы рассмотрим сегодняшние методологии построения компиляторов, используя инфраструктуру LLVM. На примере создания фронтенда достаточно простого языка, мы получим представление о системе команд LLVM, об утилитах, входящих в стандартный пакет LLVM, о FFI с libc и прочих скользких ситуациях, о которых часто представление имеют только системные программисты.
Если вас интересуют языки программирования, а также, возможно, накопилось некоторое количество боли и стресса от использования тех языков, с которыми вы вынуждены работать, то добро пожаловать на баркемп, на котором мы и обсудим такие вещи как:
— более подробно о LLVM и компиляторах
— перегрузка операторов
— вывод типов
Если останутся силы, то мы сможем обсудить 4 проблемы, обозначенных мною выше, тщательно запротоколировать все мнения и, возможно, прийти к какому-то консенсусу.»
Докладчик: Евгений Тюменцев, HWdTech, Омск.
«Будет дано небольшое введение в теорию формальных языков программирования. Разобран пример построения транслятора для небольшого языка программирования и рассказано, как это можно применять на проектах или, например, при выполнении лабораторных работ в ВУЗе
Опыт работы в ИТ-отрасли 12 лет. Был программистом, системным архитектором, руководителем проектов. Специализируюсь на разработке серверных, многопоточных, высокопроизводительных приложений.
16 лет преподаю в ОмГУ (ИМИТ, ФКН). Читаемые дисциплины: Проектирование ПО, разработка серверов и серверных приложений. Руковожу курсовыми и дипломными работами.»
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборотОмские ИТ-субботники
Николай Линкер, Backend-developer, ISS Art
С детства любил математику, это и определило мою профессию. Закончил матфак ОмГУ, уже 16 лет разрабатываю ПО, постоянно ищу новые решения. Довелось поработать с широким диапазоном языков и предметных областей. Детально разбирался с графическими библиотеками, компиляторами и сетевыми протоколами. В докладе расскажу, что заслуживает распространения из Haskell в традиционные языки, вроде Java, и что в Java удалось лучше, чем в Haskell.
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...Омские ИТ-субботники
Максим Дроздов, Project Manager, ISS Art.
Работаю в ИТ более 8 лет. Руковожу большими и интересными проектами. Навожу порядок в процессах и снижаю энтропию :) Professional Scrum Master. Работал программистом и люблю это дело. Образование — прикладные математика и физика.
Источник радости для меня — настраивать процессы и видеть слаженную команду, где учитывают мнение каждого участника и всю энергию направляют на доставку качественного продукта в соответствии с целями проекта.
В своем докладе хочу показать, что навести порядок в сложном проекте могут простые и широко известные средства, которые нужно правильно применять.
Непомнящих Егор, Web-developer, ISS Art.
JS, Java, Iron Maiden. Практически вся моя жизнь связана так или иначе с IT — с 11 класса и до 5 курса я лидировал на олимпиадах, но погрузился в профессию уже на работе в ISS Art’е. Мною реализованы ряд интересных проектов — от мелких поделок на гитхабе, до крупных бизнес-порталов, системы мониторинга и прогнозирования состояния оборудования, векторного графического редактора для Flash-версии Google Maps, сложного плагина для SketchUp на Ruby и Unity-клиента для просмотра зданий под десктопными и мобильными платформами.
В общем, повидал всякие front-end’ы, не только Web. Буду рад поделиться опытом с коллегами по цеху. В докладе расскажу о том, как сократить объем кода вашего front-end'а на 7%.
8. Задача 2. У пользователя падает...
var time =
DateTime.Now.ToString("HH:mm");
ThirdParty.MagicMethod(time);
//Не проходит валидация в MagicMethod.
8
9. Ответ
: - символ форматирования.
Разделитель компонентов времени.
Например, в Италии будет 12.07
9
10. Задача 3. У пользователя падает...
var date =
DateTime.Now.ToString("yyyy.MM");
ThirdParty.MagicMethod(date);
//Не проходит валидация в MagicMethod.
10
11. Ответ
● В Тайланде по Буддийской вере сегодня 4е
февраля 2560 года.
● По исламскому календарю сейчас 1438 год
11
12. Задача 4. Что выведет код?
var actions = new List<Action>();
foreach (var num in new List<int>{ 1, 2, 3 })
actions.Add(() => Console.Write(num));
foreach (var action in actions)
action();
12
14. Ответ
private sealed class DisplayClass
{
public int num;
public void Action()
{
Console.WriteLine(num);
}
}
14
15. Ответ
В старых версиях:
DisplayClass c = new DisplayClass();
foreach (int num in new List<int>{ 1, 2, 3 })
{
с.num = num;
actions.Add(c.Action);
}
15
16. Ответ
В новых версиях:
foreach (int num in new List<int>{ 1, 2, 3 })
{
DisplayClass c = new DisplayClass();
с.num = num;
actions.Add(c.Action);
}
16
17. Задача 5. Что выведет код?
var i = 0;
var sequence = new int[3].Select(n => i++);
foreach (var number in sequence)
Console.Write(number);
foreach (var number in sequence)
Console.Write(number);
17
19. Задача 6. Что выведет код?
var x = new
{
Items = new List<int>{1, 2}.GetEnumerator()
};
while (x.Items.MoveNext())
Console.WriteLine(x.Items.Current);
19