Доклад рассматривает тонкости nodejs, а так же преимущества Evented I/O для серверных приложений. Будет предоставлен ряд рекоммендаций по правильному построению архитектуры, модульности, масштабированию, дизайну кода. Краткое введение в технологию программирования "волокнами" (fibers) и ряд других эффективных практик.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Web-программирование
Лекция #7. Django ORM
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Доклад рассматривает тонкости nodejs, а так же преимущества Evented I/O для серверных приложений. Будет предоставлен ряд рекоммендаций по правильному построению архитектуры, модульности, масштабированию, дизайну кода. Краткое введение в технологию программирования "волокнами" (fibers) и ряд других эффективных практик.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Web-программирование
Лекция #7. Django ORM
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Yandex
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Я.Субботник в Челябинске в рамках конференции UWDC
О докладе:
Все, что вы хотели узнать про одностраничное ajax-приложение Яндекс.Почта, но боялись спросить. Изнанка фронтенда, загрузка данных, обновление страниц и взаимодействие с пользователями без регистрации, без смс. Бонус-трек: как работают сторонние приложения в рамках одной платформы.
Видео: https://www.youtube.com/watch?v=IUtbbN9aevU
Веб-приложения становятся все больше и сложнее, так что многое остается вне нашего поля зрения. Поэтому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи решать, что необходимо для их создания.
SPA Meetup, 28 февраля 2015, Москва, Авито
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Ontico
Общие принципы оптимизации производительности мобильных приложений:
- работа с длинными списками — таблицы, коллекции;
- графика — загрузка из сети, кэширование;
- ленивая загрузка частей приложения.
Работа с периодически обновляемыми структурированными данными.
- как передавать данные с сервера на клиент: запросы, объем, формат, десериализация;
- как хранить полученные данные на клиенте — виды хранилищ: от плоских файлов до NoSQL.
Практический кейс. "Едадил": как мы ускоряли работу приложения для Android.
QA Fest 2015. Иван Пашко. XPath yourself. Tips & TricksQAFest
Все мы знаем, что такое XPath и широко используем его в автоматизации. Но неправильное построение XPath выражений приводит тестровщиков в ужас, делает наши тесты хрупкими, и как результат - получаем долгие вечера отладки кода. В докладе я расскажу о том, что такое XPath, о распространенных ошибках при работе с ним, и как их избегать. Будет интересно и начинающим тестировщикам, и экспертам в области автоматизации.
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Yandex
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Я.Субботник в Челябинске в рамках конференции UWDC
О докладе:
Все, что вы хотели узнать про одностраничное ajax-приложение Яндекс.Почта, но боялись спросить. Изнанка фронтенда, загрузка данных, обновление страниц и взаимодействие с пользователями без регистрации, без смс. Бонус-трек: как работают сторонние приложения в рамках одной платформы.
Видео: https://www.youtube.com/watch?v=IUtbbN9aevU
Веб-приложения становятся все больше и сложнее, так что многое остается вне нашего поля зрения. Поэтому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи решать, что необходимо для их создания.
SPA Meetup, 28 февраля 2015, Москва, Авито
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Ontico
Общие принципы оптимизации производительности мобильных приложений:
- работа с длинными списками — таблицы, коллекции;
- графика — загрузка из сети, кэширование;
- ленивая загрузка частей приложения.
Работа с периодически обновляемыми структурированными данными.
- как передавать данные с сервера на клиент: запросы, объем, формат, десериализация;
- как хранить полученные данные на клиенте — виды хранилищ: от плоских файлов до NoSQL.
Практический кейс. "Едадил": как мы ускоряли работу приложения для Android.
QA Fest 2015. Иван Пашко. XPath yourself. Tips & TricksQAFest
Все мы знаем, что такое XPath и широко используем его в автоматизации. Но неправильное построение XPath выражений приводит тестровщиков в ужас, делает наши тесты хрупкими, и как результат - получаем долгие вечера отладки кода. В докладе я расскажу о том, что такое XPath, о распространенных ошибках при работе с ним, и как их избегать. Будет интересно и начинающим тестировщикам, и экспертам в области автоматизации.
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"Yandex
15 октября 2011, Я.Субботник в Алматы
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
О докладе:
Яндекс.Почта сейчас – это большое ajax-приложение. Из доклада вы узнаете, как работает фронтенд почты изнутри, как загружаются данные, обновляется страница и происходит взаимодействие с пользователем, какой мы используем шаблонизатор и почему, как живут самые разные приложения (Яндекс.Подписки, История общения) в рамках одной почтовой платформы.
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"Yandex
Ужасы локализации и как с ними бороться на пошаговом примере: от «Эврика, нам нужно перевести проект на язык Х!» до «Как не прострелить себе ногу, когда у вас есть Xcode, разработчики, переводчики и дедлайн». Рассматриваются все базовые инструменты локализации (genstrings, ibtool) в целях понимания, как их использовать с наименьшими телодвижениями. Отдельно рассказывается про то, как мы подружили весь этот «зоопарк» в Яндексе и чем готовы поделиться.
1. squeek school
Разработка приложений для iOS
суббота, 21 мая 2011 г.
2. Хранение данных
• Xml (plist)
• SQLite
суббота, 21 мая 2011 г.
3. Хранение данных
Property Lists
• Property Lists - для небольшого объема
• Writing an Array to Disk
хранит обычные форматы данных iOS
NSArray *array = [NSArray arrayWithObjects:@“Foo”,
[NSNumber numberWithBool:YES],
[NSDate dateWithTimeIntervalSinceNow:60],
nil];
[array writeToFile:@“MyArray.plist” atomically:YES];
NSArray * a = [NSArray arrayWithContentsOfFile:xmlFile];
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<string>Foo</string>
<true/>
<date>2010-02-02T09:26:18Z</date>
</array>
</plist>
суббота, 21 мая 2011 г.
4. Хранение данных
в настройках
[[NSUserDefaults standardUserDefaults] setObject: ForKey:];
[[NSUserDefaults standardUserDefaults] objectForKey:];
[[NSUserDefaults standardUserDefaults] synchonize];
суббота, 21 мая 2011 г.
6. а что внутри?
Home Directory Layout
• Each app has its own set of directories
я!
• <Application Home> ельз
MyApp.app ьн
ят
■
ен
■ MyApp -м
■ MainWindow.nib
■ SomeImage.png
■ Documents - добавления здесь!
■ Library
■ Caches
■ Preferences
• Applications only read and write within their home directory
• Backed up by iTunes during sync (mostly)
суббота, 21 мая 2011 г.
7. File Paths in Your Application
File Paths in Your Application
// Basic directories
путь к документам
NSString *homePath = NSHomeDirectory();
// Basic directories NSTemporaryDirectory();
NSString *tmpPath =
NSString *homePath = NSHomeDirectory();
// Documents directory
NSString *tmpPath = NSTemporaryDirectory();
NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
// Documents directory
NSArray *paths = NSSearchPathForDirectoriesInDomains
NSString *documentsPath = [paths objectAtIndex:0];
(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
// <Application Home>/Documents/foo.plist
NSString *fooPath =
// <Application stringByAppendingPathComponent:@“foo.plist”];
[documentsPath Home>/Documents/foo.plist
NSString *fooPath =
[documentsPath stringByAppendingPathComponent:@“foo.plist”];
Tuesday, February 2, 2010 1
Tuesday, February 2, 2010 16
суббота, 21 мая 2011 г.
8. SQLite!
• база в файле
• нет сервера
• простая реализация
• включена в iPhone
суббота, 21 мая 2011 г.
10. шаг 0 - создать БД
$ sqlite3 ex1
SQLite version 3.6.11
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table tbl1(one varchar(10), two smallint);
sqlite> insert into tbl1 values('hello!',10);
sqlite> insert into tbl1 values('goodbye', 20);
sqlite> select * from tbl1;
hello!|10
goodbye|20
sqlite>
CREATE TABLE Person (
id integer unique not null,
first_name char(20),
last_name char(20),
address char(100),
email char(30),
telephone char(15),
birth_date int
);
суббота, 21 мая 2011 г.
13. запись
• просто sqlite3_step(compiledStatement),
при удаче - SQLITE_DONE
суббота, 21 мая 2011 г.
14. Сетевая активность приложения
• GET/POST запросы
• NSURLRequest и NSURLConnection
• Защищенное соединение
• Парсинг xml
• Работа с публичными API
суббота, 21 мая 2011 г.
15. Google
Maps API Facebook API
Яндекс Карты
API
Twitter API общение с
вашим сервером
суббота, 21 мая 2011 г.
16. xml
<?xml version="1.0" encoding="UTF-8" ?>
<painting>
<img src="madonna.jpg" alt='Foligno Madonna, by
Raphael'/>
<caption>This is Raphael's "Foligno" Madonna, painted in
<date>1511</date>–<date>1512</date>.
</caption>
</painting>
суббота, 21 мая 2011 г.