Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...Moscow.pm
Видео: http://video.mail.ru/corp/p.scherbinin/6/7.html
Tаблица символов — это только небольшой шаг в мир внутреннего устройства Perl, но и он открывает программисту огромные возможности:
— Runtime-кодогенерация.
— Генерация по запросу.
— Изменение кода сторонних модулей на лету и многое другое.
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...Moscow.pm
Видео: http://video.mail.ru/corp/p.scherbinin/6/7.html
Tаблица символов — это только небольшой шаг в мир внутреннего устройства Perl, но и он открывает программисту огромные возможности:
— Runtime-кодогенерация.
— Генерация по запросу.
— Изменение кода сторонних модулей на лету и многое другое.
Не верь никому или разработка эффективных приложений (Как писать по настоящем...Moscow.pm
Видео: http://video.mail.ru/corp/p.scherbinin/6/11.html
— Знай свою среду. Почему нужно изучать язык, на котором пишешь.
— Магии нет. Есть непонимание процессов.
— Не верь предрассудкам. Они сложились при других обстоятельствах.
— Доверяй, но проверяй. Прежде, чем использовать решение, проверь.
— Не используй не изучив. Не используй не понимая.
— Код можно менять. Как делать это с умом.
— Можно ли доверять синтетике? Синтетические тесты и реальная нагрузка.
— Немного примеров. Плохих и хороших.
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)
D8 - Serialize, Normalize - Михаил Крайнюк, DrupalJediDrupalSib
DrupalCafe проводится при поддержке DrupalJedi (http://drupaljedi.com/) и i20Group (http://i20.biz/)
Подписывайтесь на нас!
VK: https://vk.com/drupalsib
FB: https://facebook.com/groups/drupalsib
Twitter:
https://twitter.com/SibDrupalCamp
https://twitter.com/DrupalSib
Instagram: https://instagram.com/drupalsib
Caching on highload Drupal site - Alexander ShumenkoDrupalCampDN
Рассмотрим создание тегированной системы кеширования сущностей для high load сайта на Drupal. В ходе доклада будут рассмотрены наиболее интересные моменты реализации (построение цепочки тегов) так же рассмотрены проблемы и способы их решения.
Не верь никому или разработка эффективных приложений (Как писать по настоящем...Moscow.pm
Видео: http://video.mail.ru/corp/p.scherbinin/6/11.html
— Знай свою среду. Почему нужно изучать язык, на котором пишешь.
— Магии нет. Есть непонимание процессов.
— Не верь предрассудкам. Они сложились при других обстоятельствах.
— Доверяй, но проверяй. Прежде, чем использовать решение, проверь.
— Не используй не изучив. Не используй не понимая.
— Код можно менять. Как делать это с умом.
— Можно ли доверять синтетике? Синтетические тесты и реальная нагрузка.
— Немного примеров. Плохих и хороших.
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)
D8 - Serialize, Normalize - Михаил Крайнюк, DrupalJediDrupalSib
DrupalCafe проводится при поддержке DrupalJedi (http://drupaljedi.com/) и i20Group (http://i20.biz/)
Подписывайтесь на нас!
VK: https://vk.com/drupalsib
FB: https://facebook.com/groups/drupalsib
Twitter:
https://twitter.com/SibDrupalCamp
https://twitter.com/DrupalSib
Instagram: https://instagram.com/drupalsib
Caching on highload Drupal site - Alexander ShumenkoDrupalCampDN
Рассмотрим создание тегированной системы кеширования сущностей для high load сайта на Drupal. В ходе доклада будут рассмотрены наиболее интересные моменты реализации (построение цепочки тегов) так же рассмотрены проблемы и способы их решения.
La teoría clásica de la administración se basa en la estructura organizacional para lograr eficiencia. Sus principales representantes son Henry Fayol, Lyndall Urwick y Luther Gulick. Fayol es el fundador de esta teoría y describió las funciones básicas de una empresa, el concepto de administración y sus principios generales como la división del trabajo, autoridad y responsabilidad, y unidad de mando.
The document discusses how personalization and dynamic content are becoming increasingly important on websites. It notes that 52% of marketers see content personalization as critical and 75% of consumers like it when brands personalize their content. However, personalization can create issues for search engine optimization as dynamic URLs and content are more difficult for search engines to index than static pages. The document provides tips for SEOs to help address these personalization and SEO challenges, such as using static URLs when possible and submitting accurate sitemaps.
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...Ontico
Довольно часто как адинистраторы, так и разработчики жалуются на низкую производительность приложений, работающих с базой данных, и нередко при этом ищут решения возникших проблем с помощью различных настроек как СУБД, так и операционной системы, пренебрегая при этом самым действенным способом - оптимизацией запросов к собственно БД.
Тому, как понимать, где же узкие места, и как их можно попробовать избежать на примере PostgreSQL и посвящен этот доклад.
QA Fest 2017. Иван Цыганов. Не смешите мой coverageQAFest
Я расскажу о тестировании с точки зрения разработчика. Каждый разработчик рано или поздно приходит к выводу, что тесты необходимы. Следующий вопрос который он себе задает - а насколько хороши мои тесты. Я расскажу об инструментах и библиотеках, которые помогают оценить качество тестов в мире Python. Мы посмотрим как работает библиотека coverage.py, в каких ситуациях она бессильна и самое главное - почему. Узнаем что такое мутационное тестирование, как его можно применять в реальных проектах и как оно помогает оценить качество тестов. Увидим как работает библиотека Hypothesis и поймем в каких ситуациях она может оказаться нам полезной. В докладе будут внутренности Python-библиотек и объектов, много примеров и конечно же котики!
Вводная лекция в язык C#, для тех кто знает программирование и в особенности C++. В статье будет уделено внимание наиболее важным отличиям языков, будут обсуждаться вопросы производительности и эффективного кода.
Другие интересные статьи по C# ищите тут: http://itw66.ru/blog/c_sharp/
Написание компактного и эффективного кода в C#: http://itw66.ru/blog/c_sharp/520.html
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
Server optimization
1. Почему сайт тормозит?
● Лишний код
✔ Избыточное включение кода
✔ Избыточная функциональность
✔ Неоптимальный код
● Лишняя нагрузка на БД
✔ Плохая структура данных
✔ Много запросов
✔ Неоптимальные запросы
2. Избыточное включение кода
Оказывается INCLUDE тоже занимает какое-то время!
Проблема: Избыточность кода в файлах *.module
Решение: Выносить максимум кода из *.module в *.inc
Путь Bootstrap FULL Render
<front> 300-400 2500-3500
<front> cache 250-350 -
User form page 200-400 500-1500
Ajax callback 200-400 30-1500
3. Избыточная функциональность
Лишний код всегда делает что-то ненужное
1.
Проблема: Зоопарк модулей
Решение: Custom Development vs. Модули
2.
Проблема: В друпале есть Alter!
Решение: Конструктор vs. Alter
3.
Проблема: Непонимание целей и задач
Решение: Делать то, что нужно, а не искать похожее
4. Структура данных. Индексы
Индексы нужны для: ● EXPLAIN SELECT - для
● JOIN ON анализа запроса
● WHERE
✔ Type = ALL !!!
● ORDER BY
● GROUP BY ● ANALYZE TABLE – для
● HAVING обновления статистики
5. Много запросов. Конфиги
● Не делать много таблиц для хранения конфигов
● Хранить конфиги в более простых структурах
● Стараться вычитывать все конфиги сразу, а не по одному
✔ Использовать VARIABLES для конфигов
✔ _drupal_bootstrap_variables – 0.130 c. (1000), 1.5 c. (6000)
✔ Новостной портал ~800, соц. Сеть ~1200
✔ JSON, Serialize
6. Много запросов. Кеш
Плохо:
● foreach () { SELECT }
● Часто вызываемая функция с одинаковым запросом
● Несколько повторяющихся запросов
Хорошо:
$cache = &drupal_static(__FUNCTION__); // ИЛИ cache_get()
if (count($cache) = 0) {
$cache = db_query("SELECT ...")->fetchAllKeyed(); // cache_set()
}
return !empty($cache[$var]) ? $cache[$var]) : '';
7. Много запросов. entity_load()
Плохо: Хорошо:
foreach ($entities as $e) { foreach ($entities as $e) {
entity_load(array($e->nid)); $ids[] = $e->id;
} }
entity_load($ids);
foreach ($rows as $row) {
foreach ($rows as $row) {
node_load($row->nid);
$nids[] = $row->nid;
}
}
node_load_multiple($nids);
8. Неоптимальные запросы
Плохо: Хорошо:
SELECT id, (SELECT …) SELECT...
WHERE id = (SELECT …) FROM table1 t1 JOIN
(SELECT …) t2
SORT BY (SELECT ...)
ON t1.id = t2.id ...
Плохо: Хорошо:
(oe_1, ..., oe_N) IN (SELECT EXISTS (SELECT 1 FROM ...
ie_1, ..., ie_N FROM ... WHERE subquery_where AND
WHERE subquery_where) oe_1 = ie_1 AND ...
AND oe_N = ie_N)
9. СПАСИБО
Simplicity is the key to happiness
что в переводе означает
Пишите мало качественного кода :)
Много плохого кода не пишите