Вёрстка WordPress тем - WP Kharkiv Meetup #1dima_kuzovlev
Из чего состоит тема? Зачем нужна дочерняя тема? Что такое иерархия шаблонов? Какие есть тонкости подключения CSS & JS? Для чего не стоит использовать functions.php?
Вёрстка WordPress тем - WP Kharkiv Meetup #1dima_kuzovlev
Из чего состоит тема? Зачем нужна дочерняя тема? Что такое иерархия шаблонов? Какие есть тонкости подключения CSS & JS? Для чего не стоит использовать functions.php?
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов2ГИС Технологии
Как создать Front End-команду для высоконагруженного проекта? Спикер расскажет, как можно выстроить эффективный процесс фронтенд-разработки с упором на технические аспекты: — Команда фронтенд-разработчиков. Зоны ответственности между теми, кто программирует UI (верстальщики), и теми, кто отвечает за бизнес-логику (Javascript-программисты). Идеальный состав команды. — Настроенный технологический процесс. Модульная организация (подготовка дизайна → разработка формата данных → создание шаблона → навешивание событий → тесты). — Разработка вместе с тестированием Unit-/DOM-тесты и подход PixelPerfect. — Вёрстка независимыми блоками и встроенный в приложение режим для вёрстки блоков.
В своей работе мы постоянно используем инструменты, призванные облегчить нам жизнь. Но как хорошо мы ими на самом деле владеем? И почему мы пренебрегаем их суперсилами? Например, Chrome DevTools — это не только отладчик и инспектор HTML. Но когда у нас в руках молоток, кругом мерещатся гвозди. Десятки мегабайт и процентов загрузки процессора на вкладку браузера — верный признак того, что пора учиться пользоваться микроскопом.
Роман предложит освоить что-то посложнее молотка и расскажет о том, какую реальную пользу можно получить от профилирования, как найти в огромном отчёте проблему с кодом и что лучше — написать в коде десяток console.log или async debug.
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)Ontico
Если вы захотите сделать веб-приложение с использованием технологии WebGL, скорее всего, вы захотите также, чтобы это приложение было отзывчивым и быстро работало даже на медленных компьютерах.
Но если вы простой фронтендер, занимаетесь js, html и css, то 3D-графика для вас покажется совершенно иным миром со своими законами. Так это случилось с нами во время разработки нашего продукта.
Поэтому в докладе я хочу рассказать:
1. О новых проблемах, с которыми мы столкнулись по вине WebGL;
2. О различных методах оптимизации, которые мы успешно и не очень опробовали на проекте, а также наглядно показать их действие на рабочих примерах;
3. Приведу другие способы ускорения, до которых у нас пока ещё просто не добрались руки.
1. Компоненты MVC
2. Django как пример MVC фреймворка
3. Структура Django проекта
4. Модульность в Djnago: приложения
5. Конфигурация проектов
6. Маршрутизация URL
7. Обратная маршрутизация URL
Архитектура кода нового 2ГИС Web API или куда мы дели MVCDevDay
Сергей Коржнев
Архитектор версии 1.4 2ГИС Web API
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Тезисы:
● Как организован код в старой версии.
● Вдумчиво смотрим, как мы используем Yii, хватаемся за голову и клавиатуру. Там отрезаем, тут пришиваем, и вуаля!
● Ну и делаем выводы, как мы забороли две классические проблемы программирования: борьба с дублированием кода и сложностью системы.
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
Недавно запустили новый сайт Тинькофф.
У нас есть желание поделиться с аудиторией подходом и опытом разработки большого изоморфного приложения на React.js и Flux. Меньше чем за год мы разработали новый сайт и интернет-банк, заложив платформу на ближайшие несколько лет для быстрой разработки фронтенда новых продуктов.
Сейчас tinkoff.ru насчитывает более 3000 компонентов и сотни страниц.
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Ontico
Современный Веб всё больше стремится к динамичным, похожим на приложения, сайтам.
Оперативно строить быстрый и динамичный интерфейс на проекте N1.RU нам помогает Vue.js.
Однако, как и многие современные библиотеки и фреймворки, Vue.js не умеет рендериться на сервере.
При этом иметь такую возможность бывает полезно по нескольким причинам: начиная от вопросов SEO и заканчивая красотой загрузки страницы.
Чтобы реализовать такую возможность для Vue.js мы создали его дополнение — Vue-server.js.
Я расскажу о том, что умеет Vue.js, что у нашего дополнения "под капотом", почему мы выбрали такой путь и как, вообще, всё это работает. А ещё попробую дать критическую оценку проделанной работе.
В последнее время тема пиринговых технологий становится очень популярной. Уже не первый день работают такие проекты как криптовалюта Bitcoin, микроблоги Twister и мессенджер Tox. Теперь дошло дело и до децентрализованного веба.
Доклад посвящен новому open-source проекту — base.network — распределенному независимому пиринговому вебу. Расскажу про общую схему работы сети, немного о работе с криптографией на JavaScript, о создании приложений на JavaScript без использования центральных серверов.
Слайды для презентации "Онлайн-кинотеатр для слабовидящих на WordPress: практическая доступность" на WordCamp Russia 2015, 15 августа 2015
Практические советы по повышению доступности сайта для слабовидящей аудитории.
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов2ГИС Технологии
Как создать Front End-команду для высоконагруженного проекта? Спикер расскажет, как можно выстроить эффективный процесс фронтенд-разработки с упором на технические аспекты: — Команда фронтенд-разработчиков. Зоны ответственности между теми, кто программирует UI (верстальщики), и теми, кто отвечает за бизнес-логику (Javascript-программисты). Идеальный состав команды. — Настроенный технологический процесс. Модульная организация (подготовка дизайна → разработка формата данных → создание шаблона → навешивание событий → тесты). — Разработка вместе с тестированием Unit-/DOM-тесты и подход PixelPerfect. — Вёрстка независимыми блоками и встроенный в приложение режим для вёрстки блоков.
В своей работе мы постоянно используем инструменты, призванные облегчить нам жизнь. Но как хорошо мы ими на самом деле владеем? И почему мы пренебрегаем их суперсилами? Например, Chrome DevTools — это не только отладчик и инспектор HTML. Но когда у нас в руках молоток, кругом мерещатся гвозди. Десятки мегабайт и процентов загрузки процессора на вкладку браузера — верный признак того, что пора учиться пользоваться микроскопом.
Роман предложит освоить что-то посложнее молотка и расскажет о том, какую реальную пользу можно получить от профилирования, как найти в огромном отчёте проблему с кодом и что лучше — написать в коде десяток console.log или async debug.
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)Ontico
Если вы захотите сделать веб-приложение с использованием технологии WebGL, скорее всего, вы захотите также, чтобы это приложение было отзывчивым и быстро работало даже на медленных компьютерах.
Но если вы простой фронтендер, занимаетесь js, html и css, то 3D-графика для вас покажется совершенно иным миром со своими законами. Так это случилось с нами во время разработки нашего продукта.
Поэтому в докладе я хочу рассказать:
1. О новых проблемах, с которыми мы столкнулись по вине WebGL;
2. О различных методах оптимизации, которые мы успешно и не очень опробовали на проекте, а также наглядно показать их действие на рабочих примерах;
3. Приведу другие способы ускорения, до которых у нас пока ещё просто не добрались руки.
1. Компоненты MVC
2. Django как пример MVC фреймворка
3. Структура Django проекта
4. Модульность в Djnago: приложения
5. Конфигурация проектов
6. Маршрутизация URL
7. Обратная маршрутизация URL
Архитектура кода нового 2ГИС Web API или куда мы дели MVCDevDay
Сергей Коржнев
Архитектор версии 1.4 2ГИС Web API
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Тезисы:
● Как организован код в старой версии.
● Вдумчиво смотрим, как мы используем Yii, хватаемся за голову и клавиатуру. Там отрезаем, тут пришиваем, и вуаля!
● Ну и делаем выводы, как мы забороли две классические проблемы программирования: борьба с дублированием кода и сложностью системы.
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
Недавно запустили новый сайт Тинькофф.
У нас есть желание поделиться с аудиторией подходом и опытом разработки большого изоморфного приложения на React.js и Flux. Меньше чем за год мы разработали новый сайт и интернет-банк, заложив платформу на ближайшие несколько лет для быстрой разработки фронтенда новых продуктов.
Сейчас tinkoff.ru насчитывает более 3000 компонентов и сотни страниц.
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Ontico
Современный Веб всё больше стремится к динамичным, похожим на приложения, сайтам.
Оперативно строить быстрый и динамичный интерфейс на проекте N1.RU нам помогает Vue.js.
Однако, как и многие современные библиотеки и фреймворки, Vue.js не умеет рендериться на сервере.
При этом иметь такую возможность бывает полезно по нескольким причинам: начиная от вопросов SEO и заканчивая красотой загрузки страницы.
Чтобы реализовать такую возможность для Vue.js мы создали его дополнение — Vue-server.js.
Я расскажу о том, что умеет Vue.js, что у нашего дополнения "под капотом", почему мы выбрали такой путь и как, вообще, всё это работает. А ещё попробую дать критическую оценку проделанной работе.
В последнее время тема пиринговых технологий становится очень популярной. Уже не первый день работают такие проекты как криптовалюта Bitcoin, микроблоги Twister и мессенджер Tox. Теперь дошло дело и до децентрализованного веба.
Доклад посвящен новому open-source проекту — base.network — распределенному независимому пиринговому вебу. Расскажу про общую схему работы сети, немного о работе с криптографией на JavaScript, о создании приложений на JavaScript без использования центральных серверов.
Слайды для презентации "Онлайн-кинотеатр для слабовидящих на WordPress: практическая доступность" на WordCamp Russia 2015, 15 августа 2015
Практические советы по повышению доступности сайта для слабовидящей аудитории.
Как использовать мендеджер зависимостей Composer при разработке сайтов на WordPress. Несколько практических хаков. Презентация на WordPress Meetup Санкт-Петербург, 10 августа 2015 года.
В данной презентации были рассмотрены следующие варианты автоматизации установки WordPress: wp-quick-install.com, установка через Shell script, установка через WP-CLI + Shell script и дополнительные возможности автоустановки через Composer и Rpm-пакеты.
Доклад с WordCamp Moscow 2017 посвящен распространенным ошибкам у разработчиков плагинов и тем в WordPress. Советы и рекомендации, как можно сделать свой продукт лучше и удобнее для пользователей и разработчиков.
Илья Шаляпин, Евгений Генералов: Разработка через тестирование в Python и Djn...it-people
Большинство примеров тестов в книгах, семинарах и презентациях упрощены настолько, что их невозможно применить в реальных проектах. Из-за такого упрощения, сначала получаешь заряд мотивации, но столкнувшись с суровой действительностью быстро бросаешь написание тестов. Мы решили исправить этот пробел, показав тестирование на реальных примерах из нашей практики. Мы расскажем о тестировании баз данных, сетевых взаимодействий и веб-форм. Также расскажем об инструментах, которые мы используем для тестирования.
Безопасность в WordPress является очень важной темой при создании вашего интернет проекта, и в этом докладе мы рассмотрим основы безопасности при использовании WordPress, самые частые методы и причины взлома, меры и средства защиты вашего сайта от злоумышленников.
http://wpmag.ru/2013/osnovyi-bezopasnosti-wordpress/
Everything You Need to Know About WP_Query, WordCamp Russia 2014
1. Всё, что нужно знать о WP_Query
Сергей Бирюков
WordCamp Russia 2014
2. Обо мне
Сергей Бирюков
● Разработчик ядра WordPress
http://core.trac.wordpress.org
● Локализатор WP в России
http://ru.wordpress.org
http://sergeybiryukov.ru
@flash_usb
13. Обычный цикл
while ( have_posts() ) :
the_post();
if ( is_author() )
echo 'Страница автора';
endwhile;
14. Обычный цикл
while ( have_posts() ) :
the_post();
if ( $wp_query->is_author() )
echo 'Страница автора';
endwhile;
15. Вторичный цикл
$query = new WP_Query( … );
while ( $query->have_posts() ) :
$query->the_post();
if ( $query->is_author() )
echo 'Страница автора.';
endwhile;
16. Вторичный цикл
$query = new WP_Query( … );
while ( $query->have_posts() ) :
$query->the_post();
if ( $query->is_author() )
echo 'Страница автора.';
endwhile;
17. Вторичный цикл
$query = new WP_Query( … );
while ( $query->have_posts() ) :
$query->the_post();
if ( $query->is_author() )
echo 'Страница автора.';
endwhile;
18. Если мы создаём новый объект:
$my_query = new WP_Query( $query );
то можем вызывать его методы:
while ( $my_query->have_posts() ) :
$my_query->the_post();
endwhile;
wp_reset_postdata();
19. ● Зачем нужны wp_reset_postdata() и wp_reset_query()?
● Что насчёт query_posts()?
● Как изменить запрос?
● Как изменить основной запрос?
36. Тогда зачем делать так?
query_posts( 'author=-5' );
get_header();
while ( have_posts() ) :
the_post();
endwhile;
get_footer();
37. Получается в два раза больше запросов!
● Первый, который WordPress сделал по умолчанию.
● Второй, который мы будем использовать.
38. * В общем случае WP_Query выполняет
не один запрос, а четыре.
39. 1. Получаем записи:
SELECT
SQL_CALC_FOUND_ROWS …
FROM wp_posts LIMIT 0, 10
2. Сколько найдено записей?
SELECT FOUND_ROWS()
3. Получаем метаданные для этих записей.
4. Получаем элементы таксономий для этих записей.
54. Только главный запрос!
function alter_my_home_query( $query ) {
if ( $query->is_home() && $query->is_main_query() )
$query->set( 'author', '-5' );
}
add_action( 'pre_get_posts', 'alter_my_home_query' );
55. function alter_my_home_query( $query ) {
if ( is_admin() || ! $query->is_main_query() )
return;
if ( $query->is_home() )
$query->set( 'author', '-5' );
}
add_action( 'pre_get_posts', 'alter_my_home_query' );
56. Как работает WP_Query::is_main_query()?
● $wp_the_query никогда не меняется и всегда содержит
основной запрос.
● В $wp_query хранится ссылка на $wp_the_query, если
только не используется query_posts().
● Не путать с функцией is_main_query().
66. Выводы
● У каждого объекта WP_Query есть методы,
соответствующие глобальным условным тегам.
● Глобальные условные теги используют $wp_query —
основной или текущий запрос.
● $wp_query — это основной запрос, если не используется
query_posts(). Восстанавливайте его с помощью
wp_reset_query().
67. В заключение
● 'pre_get_posts' — мощный и гибкий инструмент (при
правильном использовании).
● Всегда проверяйте с помощью $query->is_main_query(), что
меняете именно основной запрос.