Develop like a BOSS
О чем эта лекция?• О том как быть хорошим девелопером
• О том как узнавать что-то новое
• О кругозоре
• О мотивации
• О энтузиазме
• О современных аспектах разработки
• О лидерстве
• О популярных фреймворках
• О питоне и его месте в мире программирования
• О яваскрипте и о том как он хорош
• О яваскрипте и о том как он плох
• О том как сделать сайт с нуля
• И под ключ
• Обо всех мыслях которые будут приходить мне в голову
О чем эта лекция
•О том как надо проходить интервью
•По крайней мере у меня
О чем эта лекция
•Чтобы примерно сориентировать начинающих разработчиков
О чем эта лекция?
•Мои абстрактные рассуждения ни о чем
Цикл разработки на пальцах
•Утверждение требований
•Выбор технологий
•Разработка
•Тестирование
Утверждение требований
•Перед стартом проекта
•И все
•Waterfall
•И все время
•Agile
Выбор технологии
•Чтобы легко
•Чтобы популярно
•Чтобы перспективно
•Чтобы надежно
Выбираем
•Python
•JS
Выбираем App сервер
Выбираем App сервер
•Blocking
•Non-blocking
•Async
•Sync
Blocking
•Прост в понимании
•Лаконичный код
•Нужны ресурсы
•Нужен быстрый ответ
Blocking
•Full Stack: Django
•Микро Фреймворки: Flask
Non Blocking•Множество одновременных соединений
•Ответ сервера может быть долгим
•Функции должны быть быстрыми
•Контроль времени выполнения
•Понимание когда нужно делать асинхронно
Non Blocking
•Tornado
Так что же лучше?
•Ответ очевиден
•Для каждой задачи нужно выбирать подходящий инструмент
Выбираем static server, proxy, balancer
•nginx
БД. Что нужно знать
•SQL Запросы
•Concurrency
•Транзакции
•Репликация
Транзакции
•Один или несколько запросов к базе
•Атомарны
•Надежны
•+Консистенты и Изолированы
Репликация
•Не всегда мы пишем
•Чаще мы читаем
•Не всегда нужны свежие данные
•Повышаем надежность системы
Кеш
•Не всегда нужны свежие данные
•Не всем нужны свежие данные
•Сначала залогинься
Кеш
•Аппаратный кеш (CPU Cache)
•Программный
•Application level
•Server level
Front-endЗдравствуй JavaScript
Эволюция JS
Статичные странички
• HTML
• CSS
DHTML
• Plain JS
• onclick=“alert(1)”
DHTML
• jQuery
Первые Фреймворки
• Backbone.js
• Mustache
• Bootstrap
Modern
Современный JS
•Отдельная технология
•Отдельный девелопер
•Но знать нужно JS все равно
Современный JS
•И да jQuery уже не достаточно
Как автоматизировать
Зачем автоматизировать
• Компиляция• JS
• SASS, LESS
• Темплейтов
• Сборка JS (LMD, AMD)
•Минификация
•Юнит тесты
Выбираем Фреймворк
•
Начинаем разрабатывать
IDE
•PyCharm
•Sublime
Тестируем
•Unit Test’ы писать надо.