CSS Modules в React | Odessa Frontend Meetup #4OdessaFrontend
Что такое CSS Modules, для чего они нужны и чем могут помочь при разработке приложений на React. Сергей Котерняк объясняет, почему выбор подхода по написанию стилей — это важно и какие существуют альтернативные подходы — BEM, Inline Styles, CSS in JS.
Лекция 5. Встроенные коллекции и модуль collections.Roman Brovko
И снова встроенные коллекции: кортеж, список, множество, словарь - обход в глубину, обзор методов, примеры. Почти всё про модуль collections: именованные кортежи, счётчики, defaultdict, OrderedDict.
Лекция 2. Всё, что вы хотели знать о функциях в Python.Roman Brovko
Синтаксис объявления функций. Упаковка и распаковка аргументов. Ключевые аргументы и аргументы по умолчанию. Распаковка и оператор присваивания. Области видимости, правило LEGB, операторы global и nonlocal. Функциональное программирование, анонимные функции. Функции map, filter и zip. Генераторы списков, множеств и словарей. Немного о PEP 8.
Лекция 4. Строки, байты, файлы и ввод/вывод.Roman Brovko
Строковые литералы и сырые строки. Строки и Юникод. Основные методы работы со строками. Модуль string. Байты. Кодировки. Файлы и файловые объекты. Методы работы с файлами. Модуль io
Синтаксис объявления классов. Атрибуты, связанные и несвязанные методы, __dict__, __slots__. Статические методы и методы класса. Свойства, декоратор @property. Наследование, перегрузка методов и функция super. Декораторы классов. Магические методы.
Лекция 12. Быстрее, Python, ещё быстрее.Roman Brovko
Измерение времени работы кода на Python с помощью модулей timeit, cProfile и line_profiler. Немного о NumPy. JIT и AOT компиляция кода на Python на примере Numba и Cython.
Зачем тестировать? Тестирование в интерпретаторе и доктесты. Модуль unittest. Пакет py.test - на порядок лучше. Тестирование свойств и пакет hypothesis.
Лекция 7. Исключения и менеджеры контекста.Roman Brovko
Исключения, зачем они нужны и как их обрабатывать. Встроенные исключения и базовые классы BaseException и Exception. Операторы try...except..else..finally. Менеджеры контекста и модуль contextlib.
Модули threading, queue и concurrent.futures. Использование потоков для параллельных вычислений на Python. GIL. Параллельность и конкурентность. Модуль asyncio. Модуль multiprocessing.
CSS Modules в React | Odessa Frontend Meetup #4OdessaFrontend
Что такое CSS Modules, для чего они нужны и чем могут помочь при разработке приложений на React. Сергей Котерняк объясняет, почему выбор подхода по написанию стилей — это важно и какие существуют альтернативные подходы — BEM, Inline Styles, CSS in JS.
Лекция 5. Встроенные коллекции и модуль collections.Roman Brovko
И снова встроенные коллекции: кортеж, список, множество, словарь - обход в глубину, обзор методов, примеры. Почти всё про модуль collections: именованные кортежи, счётчики, defaultdict, OrderedDict.
Лекция 2. Всё, что вы хотели знать о функциях в Python.Roman Brovko
Синтаксис объявления функций. Упаковка и распаковка аргументов. Ключевые аргументы и аргументы по умолчанию. Распаковка и оператор присваивания. Области видимости, правило LEGB, операторы global и nonlocal. Функциональное программирование, анонимные функции. Функции map, filter и zip. Генераторы списков, множеств и словарей. Немного о PEP 8.
Лекция 4. Строки, байты, файлы и ввод/вывод.Roman Brovko
Строковые литералы и сырые строки. Строки и Юникод. Основные методы работы со строками. Модуль string. Байты. Кодировки. Файлы и файловые объекты. Методы работы с файлами. Модуль io
Синтаксис объявления классов. Атрибуты, связанные и несвязанные методы, __dict__, __slots__. Статические методы и методы класса. Свойства, декоратор @property. Наследование, перегрузка методов и функция super. Декораторы классов. Магические методы.
Лекция 12. Быстрее, Python, ещё быстрее.Roman Brovko
Измерение времени работы кода на Python с помощью модулей timeit, cProfile и line_profiler. Немного о NumPy. JIT и AOT компиляция кода на Python на примере Numba и Cython.
Зачем тестировать? Тестирование в интерпретаторе и доктесты. Модуль unittest. Пакет py.test - на порядок лучше. Тестирование свойств и пакет hypothesis.
Лекция 7. Исключения и менеджеры контекста.Roman Brovko
Исключения, зачем они нужны и как их обрабатывать. Встроенные исключения и базовые классы BaseException и Exception. Операторы try...except..else..finally. Менеджеры контекста и модуль contextlib.
Модули threading, queue и concurrent.futures. Использование потоков для параллельных вычислений на Python. GIL. Параллельность и конкурентность. Модуль asyncio. Модуль multiprocessing.
Лекция 8. Итераторы, генераторы и модуль itertools.Roman Brovko
Два протокола итераторов: __next__ + __iter__ и __getitem__. Итераторы и цикл for, а также операторы in и not in. Генераторы, оператор-выражение yield. Генераторы как: итераторы, сопрограммы, менеджеры контекста. Модуль itertools.
Использование компонентного подхода это тяжеловесно, медленно, не гибко. Так ли это?
Доклад с фестиваля 404, Самара, 13 октября 2013
Видео: https://www.youtube.com/watch?v=QpZy0WW0Ig4
Нас с детства окружают правила, которые не хочется нарушать. Мы не суем пальцы в розетку, переходим улицу на зеленый свет и не сушим кота в микроволновке. В детстве нам просто говорят, что так делать нельзя, и мы этому верим.
Повзрослев, мы понимаем, почему этого делать не следует, и радуемся, что мы получили такие знания не на своем опыте.
А бывают другие правила. Такие, как не свистеть дома, опасаться черных кошек или не рассыпать соль. Они оказываются на проверку мифами, что, впрочем, не мешает миллионам людей слепо им следовать.
Как раз о подобных мифах из мира программирования мы и поговорим на этом докладе. Некоторые из них применимы не только к .NET, но и к другим платформам.
Внимание! На докладе у ряда слушателей возможен батхёрт.
SECON'2016. Сергей Аверин. Javascript-фреймворки: должен остаться только одинSECON
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет. В докладе пойдет речь о том, что хорошо работающий фронтенд — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но и циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
SECON'2016. Аверин Сергей, Javascript-фреймворки: должен остаться только одинSECON
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В данном докладе мы рассмотрим пять основных принципов дизайна классов в объектно-ориентированном проектировании, которые известны, как принципы SOLID. А также как обеспечить достаточный уровень гибкости, связанности, управляемости, стабильности и понятности кода.
Javascript-фреймворки: должен остаться только одинSergey Xek
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Ontico
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
Мы живём во время, когда стала актуальной поддержка целого зоопарка платформ и устройств, а .NET Core и .NET Standard существенно упрощают переносимость C#-кода между ними. Однако каждая из платформ предлагает какие-то собственные средства для разработки, причём большая часть из них мысленно застряла где-то во временах MFC и Windows Forms, и не имеет нормальной интеграции с C#. Есть ряд решений, пытающихся привести эти платформы к общему знаменателю и хоть как-то добавить адекватную поддержку MVVM и XAML-вёрстки, но всё это как-то... не то.
.NET-разработчики привыкли к возможности стилизовать контролы где угодно и как угодно, к нормальным привязкам списков к коллекциям, богатой системе биндингов. Именно этого и пытается достичь проект AvaloniaUI, продолжающий идеи WPF в open source. Путь проекта нелёгок и тернист — помимо системы для работы привязок, необходимо самостоятельно обрабатывать весь пользовательский ввод, думать о том, как эффективно отрисовать интерфейс, бороться с разного рода несуразностями со стороны целевых платформ, разбираться с отличиями систем отрисовки (так, из-за неадекватной поддержки ArcTo пришлось адаптировать код, изначально предназначенный для правильной отрисовки орбит комет).
О том, чего уже удалось достичь, что из этого вы уже сейчас можете использовать, а также о трудностях и интересностях при разработке такого проекта — доклад от одного из его участников.
MyBatis и Hibernate на одном проекте. Как подружить?Alexey Zinoviev
Zinoviev Alexey presented this paper on CodeFest 2013, Novosibirsk.
Paper covers next topics: Hibernate, MyBatis, ORM, databases, SQL, JDBC, patterns, XML
Зиновьев Алексей Zinoviev Alexey выступил на Codefest 2013 с данным докладом.
Видео приглашение: http://youtu.be/8KObW8pZ9e0
Видео доклада: http://youtu.be/Tm5rl4ObWBA
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyDmytro Zharii
Мой доклад про создание читабельных отчетов для автоматизации тестирования на .NET/C# + Webdriver + Gallio Icarus/MbUnit + BDDfy
Доклад был сделан специально для онлайн конференции Auto ConfeT&QA, прошедшей в октябре 2012 года.
http://confetqa.ru/
======================================
См. также:
Gallio Icarus:
http://gallio.org
BDDfy – фреймворк для БыДиДификации кода :)
Страница проекта на Github:
http://teststack.github.com/TestStack.BDDfy/
Описание на английском:
http://www.mehdi-khalili.com/bddify-in-action/introduction
Similar to 04 - Практика UML. Описание прецедентов (20)
2. WWW.JAVABEGIN.RU
Заметки
• Ответы на вопросы «что», а не «как»
• Не нужно изображать, как работает система внутри – только внешние бизнес-процессы со стороны пользователя
• Заранее выбрать формат описания и придерживаться его для всего проекта
• Простота и понятность – главные требования
• Многие сразу бросаются рисовать диаграммы, но лучше сначала описать в виде текста
• Часто прецеденты в виде текста более понятны, чем диаграммы прецедентов
• На популярные задачи уже существуют готовые «use case», которые можно взять за основу (например: онлайн оплата,
авторизация, работа банкомата и пр.)
3. WWW.JAVABEGIN.RU
Описание прецедентов
• Понятное имя
• Краткость – главное понять смысл без технических деталей («что», а не «как»)
• Заполнять только существующие пункты (пропускать те, которые не требуют заполнения)
• Правильное разделения действующих лиц (actor) на главные (инициатор) и второстепенные
роли
5. WWW.JAVABEGIN.RU
Последовательность
1. Описать основные возможности программы (мозговой штурм) – все, что приходит в голову
выносить на листочек/доску/файл – не выбирая выражения (корректировка будет позже)
– Как вариант – записывать все на диктофон, т.к. бывает, что не все успевают записывать по ходу штурма
– Потом спокойно переносить в текст
– В конечный use case могут попасть не все пункты
2. Составить из этого единый список без нумерации
3. Разделить по смыслу на группы
4. Выделить сценарии
5. Описать use case
6. WWW.JAVABEGIN.RU
Мозговой штурм (это пока не use case)
• Не слишком сложное, попроще, чтобы познакомиться с
технологиями
• Хранение пользователей
• Редактирование
• Поиск
• Удаление
• Добавление
• Сортировка
• Удобное отображение
• Горячие клавиши
• Удобный интерфейс
• Основная информация чтобы сразу была видна
• Резиновый дизайн
• Это будет локальное приложение или распределенное?
• Юзабилити, всплывающие подсказки
• Десктоп приложение, не веб
• Красивый интерфейс
• Можно добавить анимацию, переключения
• Индикаторы загрузки
• Проверка введенных данных
• Маски для ввода
• Локализация
• Переключение языков «на лету»
• …
Не нужно бояться что-то пропустить. В итеративной разработке это не страшно, постоянно будем возвращаться.
Главное – описать стержень.
7. WWW.JAVABEGIN.RU
Разбиваем по смыслу на группы
• GUI:
– Удобное отображение
– Удобный интерфейс
– Основная информация чтобы сразу была видна
– Резиновый дизайн
– Юзабилити, всплывающие подсказки
– Красивый интерфейс
– Можно добавить анимацию, переключения
– Индикаторы загрузки
– Горячие клавиши
– Проверка введенных данных
– Маски для ввода
• Процессы:
– Хранение пользователей
– Редактирование
– Поиск
– Удаление
– Добавление
– Сортировка
• Дополнительно:
– Десктоп приложение, не веб
– Это будет локальное приложение или распределенное?
– Не слишком сложное, попроще, чтобы познакомиться с
технологиями
– Переключение языков
Отсюда можно брать сценарии