1. Реляционная модель данных
2. Проектирование баз данных
3. Работа с СУБД в Python
4. Работа с СУБД в Django
5. Понятие ORM, модели Django
6. Описание таблиц и связей в модели Django
7. Типы полей в моделях
Web-программирование
Лекция #7. Django ORM
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
В своей работе мы постоянно используем инструменты, призванные облегчить нам жизнь. Но как хорошо мы ими на самом деле владеем? И почему мы пренебрегаем их суперсилами? Например, Chrome DevTools — это не только отладчик и инспектор HTML. Но когда у нас в руках молоток, кругом мерещатся гвозди. Десятки мегабайт и процентов загрузки процессора на вкладку браузера — верный признак того, что пора учиться пользоваться микроскопом.
Роман предложит освоить что-то посложнее молотка и расскажет о том, какую реальную пользу можно получить от профилирования, как найти в огромном отчёте проблему с кодом и что лучше — написать в коде десяток console.log или async debug.
Web-программирование
Лекция #4. Каскадные таблицы стилей
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
1. Реляционная модель данных
2. Проектирование баз данных
3. Работа с СУБД в Python
4. Работа с СУБД в Django
5. Понятие ORM, модели Django
6. Описание таблиц и связей в модели Django
7. Типы полей в моделях
Web-программирование
Лекция #7. Django ORM
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
В своей работе мы постоянно используем инструменты, призванные облегчить нам жизнь. Но как хорошо мы ими на самом деле владеем? И почему мы пренебрегаем их суперсилами? Например, Chrome DevTools — это не только отладчик и инспектор HTML. Но когда у нас в руках молоток, кругом мерещатся гвозди. Десятки мегабайт и процентов загрузки процессора на вкладку браузера — верный признак того, что пора учиться пользоваться микроскопом.
Роман предложит освоить что-то посложнее молотка и расскажет о том, какую реальную пользу можно получить от профилирования, как найти в огромном отчёте проблему с кодом и что лучше — написать в коде десяток console.log или async debug.
Web-программирование
Лекция #4. Каскадные таблицы стилей
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
1. Компоненты MVC
2. Django как пример MVC фреймворка
3. Структура Django проекта
4. Модульность в Djnago: приложения
5. Конфигурация проектов
6. Маршрутизация URL
7. Обратная маршрутизация URL
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов2ГИС Технологии
Как создать Front End-команду для высоконагруженного проекта? Спикер расскажет, как можно выстроить эффективный процесс фронтенд-разработки с упором на технические аспекты: — Команда фронтенд-разработчиков. Зоны ответственности между теми, кто программирует UI (верстальщики), и теми, кто отвечает за бизнес-логику (Javascript-программисты). Идеальный состав команды. — Настроенный технологический процесс. Модульная организация (подготовка дизайна → разработка формата данных → создание шаблона → навешивание событий → тесты). — Разработка вместе с тестированием Unit-/DOM-тесты и подход PixelPerfect. — Вёрстка независимыми блоками и встроенный в приложение режим для вёрстки блоков.
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)AvitoTech
Basis.js - это мощный фреймворк для создания полноценных SPA приложений. Он давно и активно используется в production, в том числе и в Avito. Цель доклада - рассказать об основных возможностях фреймворка и побудить слушателей попробовать данный фреймворк при создании SPA-приложений.
XSS is one of the main and common types of vulnerabilities in a web application. This vulnerability allows an attacker to inject his script into your application. According to statistics, 40% of companies that have passed through scanners have this vulnerability. In the OWASP Top 10 ranking, she is in 7th place. All this belongs to the class. Supporting tools will be EF.
1. Компоненты MVC
2. Django как пример MVC фреймворка
3. Структура Django проекта
4. Модульность в Djnago: приложения
5. Конфигурация проектов
6. Маршрутизация URL
7. Обратная маршрутизация URL
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов2ГИС Технологии
Как создать Front End-команду для высоконагруженного проекта? Спикер расскажет, как можно выстроить эффективный процесс фронтенд-разработки с упором на технические аспекты: — Команда фронтенд-разработчиков. Зоны ответственности между теми, кто программирует UI (верстальщики), и теми, кто отвечает за бизнес-логику (Javascript-программисты). Идеальный состав команды. — Настроенный технологический процесс. Модульная организация (подготовка дизайна → разработка формата данных → создание шаблона → навешивание событий → тесты). — Разработка вместе с тестированием Unit-/DOM-тесты и подход PixelPerfect. — Вёрстка независимыми блоками и встроенный в приложение режим для вёрстки блоков.
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)AvitoTech
Basis.js - это мощный фреймворк для создания полноценных SPA приложений. Он давно и активно используется в production, в том числе и в Avito. Цель доклада - рассказать об основных возможностях фреймворка и побудить слушателей попробовать данный фреймворк при создании SPA-приложений.
XSS is one of the main and common types of vulnerabilities in a web application. This vulnerability allows an attacker to inject his script into your application. According to statistics, 40% of companies that have passed through scanners have this vulnerability. In the OWASP Top 10 ranking, she is in 7th place. All this belongs to the class. Supporting tools will be EF.
Документация на тему архитектуры языка PHP скудна и разрозненна, несмотря на то что тема интересна многим. В моем докладе я постараюсь заполнить этот пробел и рассказать о модулях PHP: как они работают, зачем и как их пишут. В процессе мы рассмотрим опыт Badoo в этой сфере на примерах двух модулей. И еще напишем очень небольшой собственный модуль.
— Что такое модули PHP, как они работают
— Как начать писать свой модуль PHP
— Скелет модуля — Функции, классы, методы
— Разбор параметров функции
— Сборка модуля
— Подгрузка модуля
— Простой пример модуля из Badoo
— Сложный пример модуля из Badoo
Презентация мастер-класса "Создание динамических пользовательских интерфейсов и AJAX-приложений промышленного класса с помощью Dojo Toolkit и Zend Framework"
Web-программирование
Лекция #6. Введение в Django web-framework
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETGoSharp
Наша команда в DevExpress недавно выпустила Preview версию нового продукта, RTF web-редактора – ASPxRichEdit.
Продукт требует высокой отзывчивости на действия пользователя и максимальной производительности. Поэтому клиент получился «толстым» в отличие от «тонких клиентов» большинства бизнес-приложений.
В составе продукта два полнофункциональных компонента - клиентский и серверный текстовые процессоры. Оба компонента работают независимо друг от друга. Клиентская часть создавалась как оптимизированная версия серверного компонента, переписанного с .NET на TypeScript.
Клиентская часть не уступает в сложности серверной. Кроме того, возникают дополнительные проблемы синхронизации состояний моделей на клиенте и сервере и глубокого тестирования клиент-серверного взаимодействия.
В этом докладе вы узнаете, как мы разрабатывали этот продукт, какие проблемы встретили и какие методики тестирования использовали.
12. Модель
Уровень доступа к данным
ORM django:
# Создание таблицы
class Post(models.Model):
author = models.ForeignKey(Author)
title = models.CharField(max_length=200)
slug = models.SlugField(max_length=200)
body = models.TextField()
pub_date = models.DateTimeField(auto_now_add=True)
is_active = models.BooleanField(default=True)
10
13. Модель
Уровень доступа к данным
ORM django:
# Получение данных
posts = Post.objects.all()[:5]
posts = Post.objects.filter(post_type=‘rant’)
posts = Post.objects.filter(author__name=‘Rob’)
posts = Post.objects.filter(author__name=‘Rob’).order_by(‘type’)
post = Post.objects.get(id=24)
11
15. Представление
Уровень бизнес логики
def posts_by_type(request, type):
# Показать сообщения конкретного типа
posts = Post.objects.filter(type=type)
return render_to_response( ‘postsbytype.html’, {‘posts’: posts})
def new_post(request):
# Добавить новое сообщение
if request.method == ‘POST’:
form = PostForm(request.POST)
if form.is_valid():
form.save()
else:
form = PostForm()
return render_to_response( ‘mytemplate.html’, {‘form’: form})
21. Библиотека
создания форм
# Создание формы
class ContactForm(forms.Form):
subject = forms.CharField(max_length=100)
message = forms.CharField()
sender = forms.EmailField()
cc_myself = forms.BooleanField(required=False)
Django сделает за нас:
●
Нарисует форму целиком или отдельное поле
●
Произведет проверку введенных данных
19
22. Библиотека
создания форм
# Создание формы из модели
PostForm(forms.ModelForm):
class Meta:
model = Post
Django сделает за нас:
●
Нарисует форму на основе модели
●
Произведет проверку введенных данных
●
Сохранит полученные данные в таблицу
20
23. Система
кэширования
Что можно кэшировать?
●
весь сайт
●
конкретную страницу
●
участок шаблона
Типы хранилищ:
●
memcached
●
база данных
●
файловая система
●
локальная память
21