Презентация со встречи сообщества SPb Python Interest Group рассказывающая об устройстве словарей в Python.
В презентации рассмотрена работа словаря в CPython 2.x, словаря в CPython 3.x, а также рассмотрены изменения в CPython 3.6.
Помимо CPython рассмотрены версии словаря в альтернативных реализациях Python, таких как PyPy, IronPython и Jython.
При написании программы, разработчик примерно представляет себе, как должна работать его программа. Но не всегда его ожидания соответствуют действительности — приложения тормозят, потребляют много ресурсов и вообще ведут себя не так, как задумывалось, особенно под большой нагрузкой. В своём докладе я покажу, как заглянуть "под капот" ваших приложений на Python (и Django в частности): какие способы профилирования бывают и когда их можно использовать, расскажу об отладке приложений и различных инструментах, которые помогают разработчику при разработке.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Презентация со встречи сообщества SPb Python Interest Group рассказывающая об устройстве словарей в Python.
В презентации рассмотрена работа словаря в CPython 2.x, словаря в CPython 3.x, а также рассмотрены изменения в CPython 3.6.
Помимо CPython рассмотрены версии словаря в альтернативных реализациях Python, таких как PyPy, IronPython и Jython.
При написании программы, разработчик примерно представляет себе, как должна работать его программа. Но не всегда его ожидания соответствуют действительности — приложения тормозят, потребляют много ресурсов и вообще ведут себя не так, как задумывалось, особенно под большой нагрузкой. В своём докладе я покажу, как заглянуть "под капот" ваших приложений на Python (и Django в частности): какие способы профилирования бывают и когда их можно использовать, расскажу об отладке приложений и различных инструментах, которые помогают разработчику при разработке.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Примеры решения типичных задач за рамками ядра Yii2Paul Klimov
Рассмотрим сравнительно сложные, и в то же время, часто возникающие, задачи, для которых ядро Yii не дает готового решения. Посмотрим как из отдельных моделей ActiveRecord собирать единые сущности, и как разбивать большие модели на составляющие. Разберем как правильно сохранять файлы и как сэкономить на обработчиках событий и поведениях
- Интернационализация сущностей в базе данных;
- Обработка “ролей” в реляционных базах данных;
- Работа с файлами;
- Вложенные модели;
- Trait вместо Behavior.
Рarse'им бэкенд
Аким Халилов
Вы хотите выучить Backbone? Хотите просто писать клиентский код, не думая о сервере и о том, как все обрабатывать, хранить, бэкапить? Выход есть – храните с помощью Parse. Parse – платформа, которая предоставляет возможность хранения данных без забот о сервере. Хранилище данных, соц. сети, push-notification, cloud code. Что такое Parse и что он умеет, о библиотеке для использования:
- знакомство с JS API и примеры использования;
- начинаем кодить: stub-проект;
- кодим фичи: CRUD + плюшки;
- хостим.
Доклад о разработке (а главное - оптимизации) программы на Perl под Raspberry PI.
Наглядно показывает, что в Perl есть немало возможностей, а также инструментов, которые позволяют делать программы быстрее и эффективнее - используя как преимущества самого языка, так и оптимизацию алгоритма программы.
Talk was given at WebConf Riga 2012. There was some trolling about Symfony 2 and ZF2 just for fun. I actually think these are great projects so sorry if it hury your feelings.
13. Что же произошло?
• 5 стабильных версий • Окончательно вылезли
Yii 1.1 из «подполья»:
• Yii 1.1 Application – Yii beer party
Development Cookbook – YiiTalk
• Yii for Eclipse PDT, – YiiConf
CodeLobster
• Yii → GitHub
21. —PHP 5.3.8+ —Улучшаем структуру
—Все классы в —Убиваем лишние
namespace (yii) и без сущности
префикса —Сохраняем плюсы
—PSR-0
v2
22. Документация
—Larry Ullman, автор 22-х отличных IT-книг и
серии статей про Yii: книга + участие в
официальной документации.
—API не хуже 1.1.
—Code style.
—Есть план сделать тулзу для генерации API
применимой к пользовательским
приложениям… или вообще убить
перегенерацию.
23. Yii2: base
— Алиасы вида class MyComponent extends
@yii/base/Component yiibaseObject
{
— CComponent → public $x;
Object + Component public function __construct($a, $b)
— SPL вместо {
большинства //…
коллекций }
}
— Убит CFormModel в
пользу Model $component = MyComponent::newInstance(
array('x'=>10),
'a', 'b'
);
24. Yii2: View Object
— render(), widget(),
beginCache() →
viewObject
— В View: $owner = тот, кто
запустил метод
— $this = View.
— Не нужны renderer.
— Можно использовать в
консоли.
— CHtml никуда не делся.
27. Yii2: AR
$customer = Customer::find(2) – Finder / Model
->active() – Можно сделать свой
->one(); finder
$customer->name = 'Qiang';
– ::model()
$customer->save();
– Автокавычки.
$customers = Customer::find() – Method chains.
->order('id')
->asArray(true)
->all();
28. Yii2: AR
$postFinder = Post::find() – Criteria
->where(array( – Можно мёржить finder
'active' => true
– Можно дополнять
));
условия на ходу
if($isPrivate) {
$postFinder->addWhere(array(
'createdBy' => $userId,
));
}
$posts = $postFinder
->mergeWith($anotherFinder)
->all();
29. Yii2: AR
– tableName(),
class Customer extends ActiveRecord {
const STATUS_ACTIVE = 1;
relations(), scopes() =
public static function tableName() {
static. return 'tbl_customer';
– Связи HAS_ONE, }
HAS_MANY. public static function relations() {
return array(
– link = FKs 'orders:Order[]' => array(
– via = through
'link' => array('customer_id'
=> 'id'),
– Анонимки для
),
);
scopes. }
– Токены "@." и "?. public static function scopes() {
return array(
Автоалиас. Своя 'active' => function($q) {
таблица. Внешняя return $q-
>andWhere('@.`status` = ' . self::STATUS_ACTIVE);
таблица. },
);
}
}
30. Yii2: AR
$customers = $customers =
Customer::find()-> Customer::find()->active()
asArray()->all(); ->all();
foreach (Customer::find() $customers =
as $customer) Customer::find()
->where('name like :name',
$count = Customer::count() array(
->value(); ':name' => '%customer%‘
))->order('id')->all();
31. TODO (если успеем)
• HTTP (CURL) wrapper • Виджеты на базе
• Package manager jQueryUI
• Mailer • Коммерческая
• Twitter Bootstrap поддержка
• Debug toolbar
• Console requirements
• More helpers
33. Когда?
До альфы на github • Базу для кеша
нужно доделать, как • Базу для i18n
минимум, вот эти штуки • Controller + webapp
→
• Базу для виджетов
• URL manager