WebCamp: Developer Day: Parse'им бэкенд - Аким ХалиловGeeksLab OdessaРarse'им бэкенд
Аким Халилов
Вы хотите выучить Backbone? Хотите просто писать клиентский код, не думая о сервере и о том, как все обрабатывать, хранить, бэкапить? Выход есть – храните с помощью Parse. Parse – платформа, которая предоставляет возможность хранения данных без забот о сервере. Хранилище данных, соц. сети, push-notification, cloud code. Что такое Parse и что он умеет, о библиотеке для использования:
- знакомство с JS API и примеры использования;
- начинаем кодить: stub-проект;
- кодим фичи: CRUD + плюшки;
- хостим.
RDSDataSource: Чистые тесты на SwiftRAMBLER&CoАлександр Сычев поделился своим опытом работы с тестами в Swift-проекте.
RDSDataSource - внутренние пятничные митапы iOS-команды RAMBLER&Co.
React со скоростью света: не совсем обычный серверный рендерингTimophy ChaptykovРасскажу о небольшом исследовании, в котором мы думали о том, можем ли мы себе позволить использовать React для отдельных элементов на сайте, как устроен серверный рендеринг в VK; и получилось ли связать одно с другим. Упомяну о строковых шаблонизаторах, виртуальной DOM и LR-парсерах.
#2 "Распространённые ошибки в JavaScript" Денис РечкуновJSibПервая встреча сообщества JavaScript-разработчиков Новосибирска. Доклад про ошибки, которые часто встречаются в JavaScript коде.
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полнойОмские ИТ-субботникиТестирование фронтенда - непростая задача. Mocha - один из подходов к ее решению.
10 - Web-технологии. MVC фреймворки (продолжение)Roman Brovko1. Контроллеры в Django
2. Объекты HttpRequest и HttpResponse
3. Получение GET и POST параметров
4. Работа с HTTP заголовками в Django
5. Декораторы
6. Шаблонизация в Django
7. Наследование шаблонов
8. Context processors
Component InspectorRoman DvornovЗанимаясь разработкой интерфейсов, мы постоянно разбираемся как и что устроено. Вы задумывались, сколько времени у вас уходит на то, чтобы найти нужный фрагмент кода, который отвечает за компонент на странице? В своем докладе я покажу как это можно сделать за один клик, а так же раскрою технические детали.
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Timur ShemsedinovПримеры кода приложений и конфигурации сервера с доступом к файлам, памяти, базам данных и параллельной асинхронной обработкой различных типов API запросов с состоянием и без состояния.
Инструментируй этоRoman DvornovЕсть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
React со скоростью света: не совсем обычный серверный рендерингTimophy ChaptykovРасскажу о небольшом исследовании, в котором мы думали о том, можем ли мы себе позволить использовать React для отдельных элементов на сайте, как устроен серверный рендеринг в VK; и получилось ли связать одно с другим. Упомяну о строковых шаблонизаторах, виртуальной DOM и LR-парсерах.
#2 "Распространённые ошибки в JavaScript" Денис РечкуновJSibПервая встреча сообщества JavaScript-разработчиков Новосибирска. Доклад про ошибки, которые часто встречаются в JavaScript коде.
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полнойОмские ИТ-субботникиТестирование фронтенда - непростая задача. Mocha - один из подходов к ее решению.
10 - Web-технологии. MVC фреймворки (продолжение)Roman Brovko1. Контроллеры в Django
2. Объекты HttpRequest и HttpResponse
3. Получение GET и POST параметров
4. Работа с HTTP заголовками в Django
5. Декораторы
6. Шаблонизация в Django
7. Наследование шаблонов
8. Context processors
Component InspectorRoman DvornovЗанимаясь разработкой интерфейсов, мы постоянно разбираемся как и что устроено. Вы задумывались, сколько времени у вас уходит на то, чтобы найти нужный фрагмент кода, который отвечает за компонент на странице? В своем докладе я покажу как это можно сделать за один клик, а так же раскрою технические детали.
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Timur ShemsedinovПримеры кода приложений и конфигурации сервера с доступом к файлам, памяти, базам данных и параллельной асинхронной обработкой различных типов API запросов с состоянием и без состояния.
Инструментируй этоRoman DvornovЕсть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)OnticoTypeScript – светлое будущее ES6 уже вчера.
Почему не "Кофе"? Чай полезней.
Что не так с Flow от Facebook?
Реальная практика использования: плюсы и минусы.
Не VisualStudio единым. Особенности работы в других IDE.
Интеграция с уже существующим JS кодом.
Использование совместно с RequireJS. Подводные камни.
Использование TypeScript совместно с React.
TypeScript и Angular.
Плюшки, которых нет в ES6/7 (пока нет): [static] enum, интерфейсы, private, protected, декораторы... Что дают и зачем?
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex2 июля 2011, Я.Субботник в Екатеринбурге
Михаил Давыдов "Масштабируемые JavaScript-приложения"
О докладе:
Проектирование масштабируемых JavaScript-приложений уровня Яндекс.Почты.
Чем отличается сайт от JavaScript приложения? Какие проблемы могут возникнуть при разработке многокомпонентных приложений? Какую архитектуру нужно заложить, чтобы приложение могло легко развиваться?
Ошибки, которые сложно заметить на code review, но которые находятся статичес...Andrey KarpovЕсть ошибки, которые легко прячутся от программистов на обзорах кода. Чаще всего они связаны с опечатками или недостаточным знанием тонких нюансах языка/библиотеки. Давайте посмотрим интересные примеры таких ошибок и как их можно выявить с помощью статического анализа. При этом анализаторы не конкурируют с обзорами кода или, например, юнит-тестами. Они отлично дополняют другие методологии борьбы с ошибками.
Статический анализ кода: Что? Как? Зачем?Andrey KarpovМетодология статического анализа год за годом зарекомендовывает себя в поисках дефектов в исходном коде программ.
Максим расскажет про:
- методологию статического анализа и какие плюсы и минусы у нее есть;
- технологии этой методологии, которые позволяют выявлять разнообразнейшие дефекты в коде;
- интересные примеры ошибок в реальных проектах, которые были найдены при помощи статического анализа;
- интеграцию инструментов статического анализа в проекты любой сложности, и почему так важно регулярное использование подобных инструментов.
Семь тысяч Rps, один goBadoo DevelopmentИз презентации вы узнаете:
— как мы пришли к Go, оставив идею использования Node.js, Scala или Rust;
— про первый сервис, который мы написали на Go и запустили в продакшен;
— про ошибки, с которыми сталкивались под нагрузкой;
— про оптимизации, которые мы сделали и еще планируем сделать;
— про тестирование и предотвращение тестирования на продакшене (в частности, websocket'ов).
Превышаем скоростные лимиты с Angular 2Oleksii Okhrymenko* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)Ontico* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
«Scrapy internals» Александр Сибиряков, Scrapinghubit-people- Scrapy is a framework for web scraping that allows for extraction of structured data from HTML/XML through selectors like CSS and XPath. It provides features like an interactive shell, feed exports, encoding support, and more.
- Scrapy is built on top of the Twisted asynchronous networking framework, which provides an event loop and deferreds. It handles protocols and transports like TCP, HTTP, and more across platforms.
- Scrapy architecture includes components like the downloader, scraper, and item pipelines that communicate internally. Flow control is needed between these to limit memory usage and scheduling through techniques like concurrent item limits, memory limits, and delays between calls.
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrainsit-peopleThe document discusses debugging in Python 3.6. It describes tracing and frame evaluation debuggers. Tracing debuggers slow code execution significantly by calling the tracing function on every line. Python 3.6 introduced a new frame evaluation API that allows evaluating frames directly, avoiding the performance issues of tracing. The document demonstrates how to build a debugger using this approach, including setting breakpoints and stepping through code by inserting temporary breakpoints on each line. Frame evaluation allows building a debugger that is faster than tracing debuggers without significant performance penalties.
«Gevent — быть или не быть?» Александр Мокров, Positive Technologiesit-peopleGevent is a concurrency library for Python that uses greenlets, or lightweight coroutines, to provide asynchronous operations and non-blocking I/O. It allows developing highly concurrent applications using a simple and familiar synchronous style. The document compares gevent to other concurrency options like asyncio and discusses how it provides features like asynchronous task execution, event loops, and inter-greenlet communication using queues and callbacks.
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...it-peopleThe document discusses what serverless computing is and how it can be used for building applications. Serverless applications rely on third party services to manage server infrastructure and are event-triggered. Popular serverless frameworks like AWS Lambda, Google Cloud Functions, Microsoft Azure Functions, and Zappa allow developers to write code that runs in a serverless environment and handle events and triggers without having to manage servers.
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologiesit-peopleThe document describes a talk on optimizing Python performance through just-in-time compilation. It discusses how the CPython interpreter works by evaluating bytecode through an evaluation loop. It then talks about how PyPy achieves faster performance through jit compilation of hot loops detected via tracing. The talk dives into the RPython language used to implement PyPy and shows an example of compiling a small Python program to C with RPython. It also discusses using partial evaluation to specialize an interpreter for constant inputs.
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn Systemit-peopleThe document appears to be a transcript of Python code being executed in an interactive Python shell. It contains examples testing the behavior of built-in functions and operators like sorted(), reversed(), isinstance(), sum(), float("nan"), is, min(), and comparisons like ==, <, on various data types including lists, tuples, and dictionaries.
«(Без)опасный Python», Иван Цыганов, Positive Technologiesit-peopleThe document discusses various security vulnerabilities in Python web applications. It begins with an overview of the OWASP Top 10 security risks, with sections focusing on risks related to using components with known vulnerabilities (A9) and insufficient attack protection (A7). For A9, it provides examples of vulnerabilities in popular Python packages and recommends checking changelogs and vulnerability databases. For A7, it recommends implementing attack protections like login attempts logging, rate limiting, and use of a web application firewall. The document also covers security misconfiguration (A5), giving examples like using default settings in production and exposing tracebacks.
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...it-peopleThe document discusses best practices for writing tests in Swift, including recommendations to:
- Write clean, readable tests that focus on asserting a single truth
- Use a domain-specific language in tests for clarity
- Structure tests with "given-when-then"
- Mock dependencies through protocols to enable test isolation
- Favor partial mocks over fully mocking to limit complexity
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...it-people
View как чистая функция от состояния базы данных - Илья Беда, bro.agency
1. View как чистая функция
от состояния базы
данных
Илья Беда / bro.agency
2. Кто я?
● Тимлид и один из основателей bro.agency
● Разрабатываю веб-формочки на python в течении 7
лет
● Специализируюсь на аутсорс-разработке
● Продвигаю функциональное программирование в
массы
● Провожу воркшопы и мастер-классы
● С недавнего времени выступаю на конференциях
2
3. There are only two hard things in Computer
Science: cache invalidation and naming things.
Phil Karlton
3
7. Инвалидация по умолчанию (по таймауту)
7
Слишком часто Слишком редко
Кэш становится не
актуальным, но сами
данные остались
неизменными
Пользователь увидит не
актуальную версию
страницы
8. Инвалидация по умолчанию (по таймауту)
8
Слишком часто Слишком редко
Кэш становится не
актуальным, но сами
данные остались
неизменными
Пользователь увидит не
актуальную версию
страницы
20. В чем преимущества чистых функций?
Для одного и того же набора аргументов она
возвращает одно и тоже значение.
Что упрощает проблему инвалидации
20
21. Давайте сделаем наш ВЕБ функционально
чистым и забудем про проблемы
инвалидации кэша.
21
22. Как это выглядит в реальности (Django)
22
1
2
3
4
5
def some_view(request, url_param):
items = SomeModel.objects.filter(some_field=url_param)
c = Context({'items': items})
response = Template("my_template.html").render(c)
return HttpResponse(response)
23. Как это выглядит в реальности (Django)
23
1
2
3
4
5
def some_view(request, url_param):
items = SomeModel.objects.filter(some_field=url_param)
c = Context({'items': items})
response = Template("my_template.html").render(c)
return HttpResponse(response)
24. Как это выглядит в реальности (Django)
24
1
2
3
4
5
def some_view(request, url_param):
items = SomeModel.objects.filter(some_field=url_param)
c = Context({'items': items})
response = Template("my_template.html").render(c)
return HttpResponse(response)
25. Как это выглядит в реальности (Django)
25
1
2
3
4
5
def some_view(request, url_param):
items = SomeModel.objects.filter(some_field=url_param)
c = Context({'items': items})
response = Template("my_template.html").render(c)
return HttpResponse(response)
26. Проанализируем с точки зрения чистоты
26
1
2
3
4
5
def some_view(request, url_param):
items = SomeModel.objects.filter(some_field=url_param)
c = Context({'items': items})
response = Template("my_template.html").render(c)
return HttpResponse(response)
27. Проанализируем с точки зрения чистоты
27
1
2
3
4
5
def some_view(request, url_param):
items = SomeModel.objects.filter(some_field=url_param)
c = Context({'items': items})
response = Template("my_template.html").render(c)
return HttpResponse(response)
37. def get_database_state_from_magic():
Если пренебречь тем, что база данных может
вернуться в предыдущее состояние, то можно
использовать индекс поколений.
И это практичное решение проблемы, которое можно
использовать.
37
55. 55
В реальности очень много таблиц, поэтому это будет
прекрасно работать.
News Comment Page Event User
56. Можно пойти дальше и инвалидировать кэш,
зависящий от определенной части состояния базы
данных.
Тогда нам нужен инструмент для описания этой
части.
56