1. Реляционная модель данных
2. Проектирование баз данных
3. Работа с СУБД в Python
4. Работа с СУБД в Django
5. Понятие ORM, модели Django
6. Описание таблиц и связей в модели Django
7. Типы полей в моделях
Prerared by: Igor Wizma, mongoDB Certified Engineer.
Summary:
What is Aggregation Framework?
Aggregation operators
Sets of aggregation operators
Samples
Analogy with SQL-grouping functions (GROUP BY)
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Yandex
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Я.Субботник в Челябинске в рамках конференции UWDC
О докладе:
Все, что вы хотели узнать про одностраничное ajax-приложение Яндекс.Почта, но боялись спросить. Изнанка фронтенда, загрузка данных, обновление страниц и взаимодействие с пользователями без регистрации, без смс. Бонус-трек: как работают сторонние приложения в рамках одной платформы.
1. Реляционная модель данных
2. Проектирование баз данных
3. Работа с СУБД в Python
4. Работа с СУБД в Django
5. Понятие ORM, модели Django
6. Описание таблиц и связей в модели Django
7. Типы полей в моделях
Prerared by: Igor Wizma, mongoDB Certified Engineer.
Summary:
What is Aggregation Framework?
Aggregation operators
Sets of aggregation operators
Samples
Analogy with SQL-grouping functions (GROUP BY)
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Yandex
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Я.Субботник в Челябинске в рамках конференции UWDC
О докладе:
Все, что вы хотели узнать про одностраничное ajax-приложение Яндекс.Почта, но боялись спросить. Изнанка фронтенда, загрузка данных, обновление страниц и взаимодействие с пользователями без регистрации, без смс. Бонус-трек: как работают сторонние приложения в рамках одной платформы.
Доклад рассматривает тонкости nodejs, а так же преимущества Evented I/O для серверных приложений. Будет предоставлен ряд рекоммендаций по правильному построению архитектуры, модульности, масштабированию, дизайну кода. Краткое введение в технологию программирования "волокнами" (fibers) и ряд других эффективных практик.
FrontTalks: Михаил Давыдов (Яндекс), «Promise – это не больно»Yandex
Асинхронность в JavaScript-приложениях – обычное дело. Любой обмен данными – асинхронный, что HTTP, что чтение файла, что БД. Все просто, если запрос один – callback, и все дела. Если логика сложнее, то приложение в худшем случае превращается в «Callback Pyramid of Doom» или обрастает разной магией. Promise – это подход, который выпрямляет вложенные запросы, превращает «асинхронную лапшу» в структурированный код и делает ваше приложение лучше. Вы всё еще боитесь использовать Promise? Тогда приходите на мой доклад.
Неважно какой фреймворк вы используете, внутри всё равно будет ваш уникальный код под проект, со своей структурой и логикой. Его нужно поддерживать, а коллегам нужно в него вникать. Как минимизировать порог вхождений и в целом облегчить поддержку проекта? Какие инструменты и подходы можно использовать, или сделать самому, для анализа, даже не кода, а проекта в целом? Константин поделится своим взглядом на этим вопросы и какие могут быть решения.
Презентация со встречи сообщества SPb Python Interest Group рассказывающая об устройстве словарей в Python.
В презентации рассмотрена работа словаря в CPython 2.x, словаря в CPython 3.x, а также рассмотрены изменения в CPython 3.6.
Помимо CPython рассмотрены версии словаря в альтернативных реализациях Python, таких как PyPy, IronPython и Jython.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Олег Годовых «Страх и ненависть в Event Bus»DevDay
У нас было 500 страниц спецификаций, 40000 строк кода, 2 офиса, полдюжины разработчиков, а также целое множество андроидов всех сортов и расцветок. Не то, чтобы это был необходимый запас для приложения крупной торговой сети. Но если начал собирать софт, становится трудно остановиться. Единственное, что вызвало у меня опасение — это сетевая библиотека. Нет ничего более беспомощного, безответственного и испорченного, чем писать AsyncTask на каждый вызов. Я знал, что рано или поздно мы перейдём на Event Bus.
У нас было 500 страниц спецификаций, 40000 строк кода, 2 офиса, полдюжины разработчиков, а также целое множество андроидов всех сортов и расцветок. Не то, чтобы это был необходимый запас для приложения крупной торговой сети. Но если начал собирать софт, становится трудно остановиться. Единственное, что вызвало у меня опасение — это сетевая библиотека. Нет ничего более беспомощного, безответственного и испорченного, чем писать AsyncTask на каждый вызов. Я знал, что рано или поздно мы перейдём на Event Bus.
Август 2014, DevDay, Новосибирск
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Python Meetup
В своем докладе Олег расскажет о замене стандартных функций на более быстрые и об ускорении работы python. Также продемонстрирует несколько примеров быстрых конструкций python.
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)Ontico
В MySQL 5.7 появился целый ряд новых возможностей, позволяющих использовать MySQL в приложениях и как хранилище JSON-документов, и как реляционную базу данных.
В этом докладе мы расскажем о поддержке JSON в MySQL 5.7, а также поговорим о том, когда имеет смысл её использовать, и насколько хорошо она работает. Кроме того, мы остановимся на новом протоколе доступа к MySQL, поддерживающем SQL. Помимо этого, мы рассмотрим CRUD-операции и такие дополнительные функции, как асинхронная коммуникация и пайплайнинг (pipelining).
В заключительной части доклада мы расскажем о возможностях MySQL 5.7 в качестве хранилища документов.
Доклад рассматривает тонкости nodejs, а так же преимущества Evented I/O для серверных приложений. Будет предоставлен ряд рекоммендаций по правильному построению архитектуры, модульности, масштабированию, дизайну кода. Краткое введение в технологию программирования "волокнами" (fibers) и ряд других эффективных практик.
FrontTalks: Михаил Давыдов (Яндекс), «Promise – это не больно»Yandex
Асинхронность в JavaScript-приложениях – обычное дело. Любой обмен данными – асинхронный, что HTTP, что чтение файла, что БД. Все просто, если запрос один – callback, и все дела. Если логика сложнее, то приложение в худшем случае превращается в «Callback Pyramid of Doom» или обрастает разной магией. Promise – это подход, который выпрямляет вложенные запросы, превращает «асинхронную лапшу» в структурированный код и делает ваше приложение лучше. Вы всё еще боитесь использовать Promise? Тогда приходите на мой доклад.
Неважно какой фреймворк вы используете, внутри всё равно будет ваш уникальный код под проект, со своей структурой и логикой. Его нужно поддерживать, а коллегам нужно в него вникать. Как минимизировать порог вхождений и в целом облегчить поддержку проекта? Какие инструменты и подходы можно использовать, или сделать самому, для анализа, даже не кода, а проекта в целом? Константин поделится своим взглядом на этим вопросы и какие могут быть решения.
Презентация со встречи сообщества SPb Python Interest Group рассказывающая об устройстве словарей в Python.
В презентации рассмотрена работа словаря в CPython 2.x, словаря в CPython 3.x, а также рассмотрены изменения в CPython 3.6.
Помимо CPython рассмотрены версии словаря в альтернативных реализациях Python, таких как PyPy, IronPython и Jython.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Олег Годовых «Страх и ненависть в Event Bus»DevDay
У нас было 500 страниц спецификаций, 40000 строк кода, 2 офиса, полдюжины разработчиков, а также целое множество андроидов всех сортов и расцветок. Не то, чтобы это был необходимый запас для приложения крупной торговой сети. Но если начал собирать софт, становится трудно остановиться. Единственное, что вызвало у меня опасение — это сетевая библиотека. Нет ничего более беспомощного, безответственного и испорченного, чем писать AsyncTask на каждый вызов. Я знал, что рано или поздно мы перейдём на Event Bus.
У нас было 500 страниц спецификаций, 40000 строк кода, 2 офиса, полдюжины разработчиков, а также целое множество андроидов всех сортов и расцветок. Не то, чтобы это был необходимый запас для приложения крупной торговой сети. Но если начал собирать софт, становится трудно остановиться. Единственное, что вызвало у меня опасение — это сетевая библиотека. Нет ничего более беспомощного, безответственного и испорченного, чем писать AsyncTask на каждый вызов. Я знал, что рано или поздно мы перейдём на Event Bus.
Август 2014, DevDay, Новосибирск
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Python Meetup
В своем докладе Олег расскажет о замене стандартных функций на более быстрые и об ускорении работы python. Также продемонстрирует несколько примеров быстрых конструкций python.
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)Ontico
В MySQL 5.7 появился целый ряд новых возможностей, позволяющих использовать MySQL в приложениях и как хранилище JSON-документов, и как реляционную базу данных.
В этом докладе мы расскажем о поддержке JSON в MySQL 5.7, а также поговорим о том, когда имеет смысл её использовать, и насколько хорошо она работает. Кроме того, мы остановимся на новом протоколе доступа к MySQL, поддерживающем SQL. Помимо этого, мы рассмотрим CRUD-операции и такие дополнительные функции, как асинхронная коммуникация и пайплайнинг (pipelining).
В заключительной части доклада мы расскажем о возможностях MySQL 5.7 в качестве хранилища документов.
Курс "Промышленное программирование на Java". Набор лекций 3. "Реляционные базы данных".
Модель предметной области. Подключение к РСУБД из Java.
Spring JDBC.
МФТИ, 2014 год. Лектор - Лаврентьев Федор Сергеевич
Гуманитарные специальности в IT-индустрии
Анна Астахова, старший аккаунт-менеджер в компании Nоveо.
Noveo — международная IT‑компания. Наши главные офисы разработки ПО находятся в Новосибирске и Санкт-Петербурге, представительства — в Москве, Париже, Лондоне и Сиэтле.
2. MySql, MySQLi, PDO
MySql - устаревшее расширение, его не используем
Выбираем в основном между MySQLi и PDO.
3. MySQLi vs PDO
Основные отличия:
поддержка процедурного интерфейса и поддержка асинхронных не блокирующих
запросов в MySQli, и поддержка client-side prepared statements.
4. MySqli объектно-ориентированный и процедурный
$mysqli = new mysqli(‘localhost’, ‘user’, ‘god’,
‘db_name’);
$mysqli->close();
$mysqli = mysqli_connect(‘localhost’, ‘user’, ‘god’,
‘db_name’);
$res = mysqli_query($mysqli, “SELECT * FROM table”);
5. PDO
Расширение Объекты данных PHP (PDO) определяет
простой и согласованный интерфейс для доступа к
базам данных в PHP. Каждый драйвер базы данных,
в котором реализован этот интерфейс, может
представить специфичный для базы данных
функционал в виде стандартных функций
расширения
6. PDO продолжение
PDO обеспечивает абстракцию (доступа к данным). Это
значит, что вне зависимости от того, какая конкретная
база данных используется, вы можете пользоваться
одними и теми функциями для выполнения запросов и
выборки данных. PDO не абстрагирует саму базу данных,
это расширение не переписывает SQL запросы и не
эмулирует отсутствующий в СУБД функционал. Если
нужно именно это, необходимо воспользоваться
полноценной абстракцией базы данных.
10. Получение данных mysqli
● mysqli_result::fetch_all — Выбирает все строки из результирующего набора и помещает их в
ассоциативный массив, обычный массив или в оба
● mysqli_result::fetch_array — Выбирает одну строку из результирующего набора и помещает
ее в ассоциативный массив, обычный массив или в оба
● mysqli_result::fetch_assoc — Извлекает результирующий ряд в виде ассоциативного массива
● mysqli_result::fetch_field_direct — Получение метаданных конкретного поля
● mysqli_result::fetch_field — Возвращает следующее поле результирующего набора
● mysqli_result::fetch_fields — Возвращает массив объектов, представляющих поля
результирующего набора
● mysqli_result::fetch_object — Возвращает текущую строку результирующего набора в виде
объекта
● mysqli_result::fetch_row — Получение строки результирующей таблицы в виде массива
● mysqli_result::$field_count — Получение количества полей в результирующем наборе
11. Получение данных PDO
● PDOStatement::fetch — Извлечение следующей строки из результирующего набора
● PDOStatement::fetchAll — Возвращает массив, содержащий все строки результирующего
набора
● PDOStatement::fetchColumn — Возвращает данные одного столбца следующей строки
результирующего набора
● PDOStatement::fetchObject — Извлекает следующую строку и возвращает ее в виде объекта
● PDOStatement::getAttribute — Получение значения атрибута запроса PDOStatement
● PDOStatement::getColumnMeta — Возвращает метаданные столбца в результирующей
таблице
● PDOStatement::nextRowset — Переход к следующему набору строк в результате запроса
● PDOStatement::rowCount — Возвращает количество строк, модифицированных последним
13. Множественные запросы
MySQL поддерживает наличие нескольких SQL предложений в тексте одного запроса. Пересылка
на сервер нескольких выражений в одном запроса уменьшает количество клиент-серверных
взаимодействий, но требует специальной обработки.
Множественные запросы, или мультизапросы, должны запускаться функцией
mysqli_multi_query(). Отдельные SQL предложения в мультизапросе отделяются точкой с
запятой.
15. Active Records
Пусть существует таблица в базе данных. Для данной таблицы создаётся
специальный класс AR, являющийся отражением (представлением) таблицы,
таким образом, что:
● каждый экземпляр данного класса соответствует одной записи таблицы;
● при создании нового экземпляра класса (и заполнении соответствующих
полей) в таблицу добавляется новая запись;
● при чтении полей объекта считываются соответствующие значения
записи таблицы баз данных;
● при изменении (удалении) какого-либо объекта изменяется (удаляется)
соответствующая ему запись.