Артур Чеканов - develop like a boss

45
Develop like a BOSS

Upload: dataart

Post on 12-Aug-2015

56 views

Category:

Technology


0 download

TRANSCRIPT

Develop like a BOSS

О чем эта лекция?• О том как быть хорошим девелопером

• О том как узнавать что-то новое

• О кругозоре

• О мотивации

• О энтузиазме

• О современных аспектах разработки

• О лидерстве

• О популярных фреймворках

• О питоне и его месте в мире программирования

• О яваскрипте и о том как он хорош

• О яваскрипте и о том как он плох

• О том как сделать сайт с нуля

• И под ключ

• Обо всех мыслях которые будут приходить мне в голову

О чем эта лекция

•О том как надо проходить интервью

•По крайней мере у меня

О чем эта лекция

•Чтобы примерно сориентировать начинающих разработчиков

О чем эта лекция?

•Мои абстрактные рассуждения ни о чем

Начало

Цикл разработки на пальцах

•Утверждение требований

•Выбор технологий

•Разработка

•Тестирование

Утверждение требований

•Перед стартом проекта

•И все

•Waterfall

•И все время

•Agile

Выбор технологии

•Чтобы легко

•Чтобы популярно

•Чтобы перспективно

•Чтобы надежно

Что же выбрать?

Выбираем

•Python

•JS

Выбираем OS

Выбираем App сервер

Выбираем App сервер

•Blocking

•Non-blocking

•Async

•Sync

Blocking

Blocking

Blocking

•Прост в понимании

•Лаконичный код

•Нужны ресурсы

•Нужен быстрый ответ

Blocking

•Full Stack: Django

•Микро Фреймворки: Flask

Non Blocking

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

Как автоматизировать

Зачем автоматизировать

• Компиляция• JS

• SASS, LESS

• Темплейтов

• Сборка JS (LMD, AMD)

•Минификация

•Юнит тесты

Выбираем Фреймворк

Начинаем разрабатывать

OS

IDE

•PyCharm

•Sublime

Тестируем

•Unit Test’ы писать надо.

Вопросы?

Спасибо!