SlideShare a Scribd company logo
1 of 46
Download to read offline
Как устроен Web
изнутри
Анна Тарасенко, 7bits,
генеральный директор
Что за паутина?
Web (World Wide Web, WWW) —
всемирная “паутина”, состоящая
из сотен миллионов серверов,
хранящих и обрабатывающих
документы
А что еще?
Пользовательские устройства
1. Персональные компьютеры и
ноутбуки
2. Планшеты и смартфоны
3. GSM-телефоны и навигаторы
4. Шлемы виртуальной реальности
Пользовательские устройства
5. Бытовая техника, автомобили,
медицинская техника
6. Банкоматы, кассы, POS-терминалы
7. Носимая электроника: умные часы,
фитнес-браслеты
8. …
Интернет вещей (Internet of Things)
Устройства могут:
1. Запускать программное
обеспечение (ПО)
○ с интерфейсом пользователя
■ графическим
■ консольным
■ сенсорным, кнопочным и т.д.
○ без интерфейса пользователя
Устройства могут:
2. Принимать и передавать данные по
сети
○ проводной
○ беспроводной (например, WiFi,
Bluetooth)
Устройства могут:
3. Обмениваться данными со спутниками
для позиционирования в пространстве
○ GPS
○ ГЛОНАСС
4. Обмениваться данными с сотовыми
вышками
○ GSM, CDMA (2G)
○ 3G, 4G
Устройства могут:
5. Собирать и хранить данные с датчиков
○ движения и углов наклона
○ температуры
○ света
○ прикосновения
○ давления
○ …
Устройства могут:
6. Взаимодействовать с контроллерами
аналоговых устройств:
○ моторов
○ светодиодов и лампочек
○ аудио и видео устройств
○ …
Клиент и сервер
Это деление очень условно
Роли могут меняться для каждого
взаимодействия
Мы рассмотрим таких клиентов
Они взаимодействуют с Интернет
1. Через браузер
2. Через мобильное приложение
3. Через десктопное приложение (иногда
это тоже браузер)
Адреса в сети
IP-address (Internet Protocol Address):
● Внешний: 93.158.134.3 (IPv4),
уникален в Интернет
● Внутренний: 192.168.0.1, уникален в
локальной сети
Определяется провайдером Интернет
Адреса в сети
Адреса в сети
Domain name:
● yandex.ru
● google.com
● wikipedia.org
Сайтом обычно называют то, что
скрывается за доменным именем
Адреса в сети
DNS — Domain Name System,
позволяет сопоставить доменному
имени IP-адрес и наоборот
Адреса в сети
Протоколы и уровни
Протокол — набор правил,
действий и их очередности,
позволяющий осуществлять
соединение и обмен данными
между устройствами в сети
Протоколы и уровни
Сетевая модель OSI (не вся):
● Прикладной уровень (7) — HTTP, FTP
(семантические данные)
● Транспортный уровень (4) — TCP, UDP
(сегменты, дейтаграммы)
● Сетевой уровень (3) — IPv4, IPv6 (пакеты)
● Физический (1) — USB, витая пара (биты)
Модель запрос-ответ
Модель запрос-ответ в HTTP
● HTTP-request посылается
клиентом, он ждет ответа в
рамках соединения с сервером
● HTTP-Response отправляется
сервером, либо соединение
рвется
Пример HTTP-request
Метод запроса Запрашиваемый ресурс Протокол
GET /wiki/Tim_Berners-Lee HTTP/1.1
Host: ru.wikipedia.org
……
еще заголовки
Пример HTTP-response
Протокол Код ответа
HTTP/1.1 200 OK
(далее следует запрошенная
страница в HTML)
Пример HTTP-request
Метод запроса Запрашиваемый ресурс Протокол
POST /addcomment HTTP/1.1
Host: youtube.com
comment=Hello
У этих запросов есть тело (body),
содержащее данные
Пример HTTP-response
Протокол Код ответа
HTTP/1.1 500 Internal Server Error
Сервер может прислать код ошибки
вместо страницы
Задачи сервера
1. Принимать запросы клиентов
2. Отправлять ответы клиентам
3. Хранить и обрабатывать данные
4. Искать и систематизировать данные по
запросу (иногда с других серверов)
Все это делает запущенное на сервере ПО
Типовая архитектура
Что умеет web-приложение
1. Чтение HTTP-запроса,
формирование HTTP-ответа
2. Взаимодействие с базой данных
3. Запуск процессов по расписанию
4. Обработка и генерация данных
5. …
Языки программирования в web
C++, C#, Clojure, Erlang, Java,
JavaScript, Haskell, Perl, PHP,
Python, Ruby, Scala, …
На самом деле любые — нужно
просто уметь читать и писать символы
:-)
Самые важные языки
Самые важные языки
● English
Самые важные языки
● English
● Русский
Libraries and Frameworks
Многие типовые задачи уже
решены и на большинстве языков
написаны библиотеки и/или
фреймворки
Фреймворк кроме инструментов
задает каркас приложения
Фреймворки в web
● C#: .NET framework
● Java: Spring и много непопулярных
● JavaScript: Node.js как платформа,
на ее основе Express, Sails
● PHP: Zend framework, symfony,
Cake, Cohana, Yii и много других
Фреймворки в web
● Python: Django, Pyramid, Flask
● Ruby: Ruby on Rails (RoR), Sinatra
● Scala: Play framework, Akka, Spark
Выбор языка не так важен, как выбор
фреймворка!
А еще важнее глубокое понимание
принципов работы сети и архитектуры
приложений, безотносительно языков
и фреймворков!
Базы данных (без подробностей)
● Реляционные: Oracle, Postgres,
MySQL, MS SQL, MariaDB
● Документо-ориентированные:
MongoDB, CouchDB
● Колоночные: Cassandra, HBase
● Графовые: Neo4j, OrientDB
Выбор базы данных едва ли не более
холиварная тема в ИТ, чем выбор
языка или фреймворка :-)
А что еще изучать?
1. Безопасность: шифрование данных,
атаки и защиты
2. Оптимизация поиска в базе данных
3. Масштабирование: подстройка системы
под увеличивающееся число запросов
4. Синхронизация данных между
несколькими серверами
А что еще изучать?
5. Многопоточность, параллельные и
распределенные вычисления
6. Модель акторов
7. Шаблоны (patterns) проектирования и
SOLID-принципы
8. Математическая логика, теория
алгоритмов, логика Хоара
Как лучше начать?
1. Курсы и стажировки для начинающих
2. Coursera, Khan academy, Hexlet
3. Книги от столпов индустрии: Роберт
Мартин, Стив МакКоннел, Кент Бек и
другие
Что почитать?
1. Р. Мартин “Идеальный программист”
2. Р. Мартин “Чистый код”
3. К. Бек “Разработка через тестирование”
4. С. МакКоннел “Совершенный код”
5. Д. Томас, Э. Хант “Программист-
прагматик. Путь от подмастерья к
мастеру”
Что почитать?
6. (*) Г. Эндрюс “Основы многопоточного,
параллельного и распределенного
программирования”
7. (*) Э. Таненбаум, М. Ван Стеен
“Распределенные системы. Принципы и
парадигмы”
Спасибо! Вопросы?
Email: at@7bits.it
Site: http://7bits.ru

More Related Content

What's hot

все об интернет модуль 1
все об интернет модуль 1все об интернет модуль 1
все об интернет модуль 1Olena Bashun
 
Введение в информационный поиск
Введение в информационный поискВведение в информационный поиск
Введение в информационный поискArtem Lukanin
 
Бекдоры в пхп. Остаться незамеченным или проникновение без боли
Бекдоры в пхп. Остаться незамеченным или проникновение без болиБекдоры в пхп. Остаться незамеченным или проникновение без боли
Бекдоры в пхп. Остаться незамеченным или проникновение без болиdefcon_kz
 
Компьютерные курсы для пожилых людей. Занятия 1 4
Компьютерные курсы для пожилых людей. Занятия 1 4Компьютерные курсы для пожилых людей. Занятия 1 4
Компьютерные курсы для пожилых людей. Занятия 1 4Ilya Novikov
 
Основы информационной безопасности (Владимир Кузьмин)
Основы информационной безопасности (Владимир Кузьмин)Основы информационной безопасности (Владимир Кузьмин)
Основы информационной безопасности (Владимир Кузьмин)CivilLeadersRu
 
Индексируй неиндексирумое
Индексируй неиндексирумоеИндексируй неиндексирумое
Индексируй неиндексирумоеAlexander Byndyu
 
Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"Yandex
 
калугин денис
калугин денискалугин денис
калугин денисtnik222
 
Антицензура в сети
Антицензура в сети Антицензура в сети
Антицензура в сети Samson Bezmyatezhny
 
Меры личной информационной безопасности
Меры личной информационной безопасностиМеры личной информационной безопасности
Меры личной информационной безопасностиudmlug
 
67
6767
67JIuc
 
Глобальная компьютерная сеть
Глобальная компьютерная сетьГлобальная компьютерная сеть
Глобальная компьютерная сетьГимназия
 
Фёдор Строк - Базы данных - SQL, ORM, NoSQL
Фёдор Строк - Базы данных - SQL, ORM, NoSQLФёдор Строк - Базы данных - SQL, ORM, NoSQL
Фёдор Строк - Базы данных - SQL, ORM, NoSQLYandex
 
Антон Пушков. Презентация Центра Интеллектуальной Собственности Сколково
Антон Пушков. Презентация Центра Интеллектуальной Собственности СколковоАнтон Пушков. Презентация Центра Интеллектуальной Собственности Сколково
Антон Пушков. Презентация Центра Интеллектуальной Собственности СколковоAlbert Yefimov
 
История интернета
История интернетаИстория интернета
История интернетаAlyona555
 
История интернет
История интернетИстория интернет
История интернетset3t
 
FireEye IDC IT Security Roadshow Moscow 2016
FireEye IDC IT Security Roadshow Moscow 2016FireEye IDC IT Security Roadshow Moscow 2016
FireEye IDC IT Security Roadshow Moscow 2016Dmitry Ragushin
 
лекция 2
лекция 2 лекция 2
лекция 2 annuta123
 

What's hot (19)

все об интернет модуль 1
все об интернет модуль 1все об интернет модуль 1
все об интернет модуль 1
 
Введение в информационный поиск
Введение в информационный поискВведение в информационный поиск
Введение в информационный поиск
 
Бекдоры в пхп. Остаться незамеченным или проникновение без боли
Бекдоры в пхп. Остаться незамеченным или проникновение без болиБекдоры в пхп. Остаться незамеченным или проникновение без боли
Бекдоры в пхп. Остаться незамеченным или проникновение без боли
 
Компьютерные курсы для пожилых людей. Занятия 1 4
Компьютерные курсы для пожилых людей. Занятия 1 4Компьютерные курсы для пожилых людей. Занятия 1 4
Компьютерные курсы для пожилых людей. Занятия 1 4
 
fayli
faylifayli
fayli
 
Основы информационной безопасности (Владимир Кузьмин)
Основы информационной безопасности (Владимир Кузьмин)Основы информационной безопасности (Владимир Кузьмин)
Основы информационной безопасности (Владимир Кузьмин)
 
Индексируй неиндексирумое
Индексируй неиндексирумоеИндексируй неиндексирумое
Индексируй неиндексирумое
 
Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"
 
калугин денис
калугин денискалугин денис
калугин денис
 
Антицензура в сети
Антицензура в сети Антицензура в сети
Антицензура в сети
 
Меры личной информационной безопасности
Меры личной информационной безопасностиМеры личной информационной безопасности
Меры личной информационной безопасности
 
67
6767
67
 
Глобальная компьютерная сеть
Глобальная компьютерная сетьГлобальная компьютерная сеть
Глобальная компьютерная сеть
 
Фёдор Строк - Базы данных - SQL, ORM, NoSQL
Фёдор Строк - Базы данных - SQL, ORM, NoSQLФёдор Строк - Базы данных - SQL, ORM, NoSQL
Фёдор Строк - Базы данных - SQL, ORM, NoSQL
 
Антон Пушков. Презентация Центра Интеллектуальной Собственности Сколково
Антон Пушков. Презентация Центра Интеллектуальной Собственности СколковоАнтон Пушков. Презентация Центра Интеллектуальной Собственности Сколково
Антон Пушков. Презентация Центра Интеллектуальной Собственности Сколково
 
История интернета
История интернетаИстория интернета
История интернета
 
История интернет
История интернетИстория интернет
История интернет
 
FireEye IDC IT Security Roadshow Moscow 2016
FireEye IDC IT Security Roadshow Moscow 2016FireEye IDC IT Security Roadshow Moscow 2016
FireEye IDC IT Security Roadshow Moscow 2016
 
лекция 2
лекция 2 лекция 2
лекция 2
 

Viewers also liked

2017-03-26 05 Алексей Еременко. Проектный менеджер моей мечты
2017-03-26 05 Алексей Еременко. Проектный менеджер моей мечты2017-03-26 05 Алексей Еременко. Проектный менеджер моей мечты
2017-03-26 05 Алексей Еременко. Проектный менеджер моей мечтыHappyDev-lite
 
2017-03-26 04 Екатерина Скорых. Профессия — тестировщик ПО
2017-03-26 04 Екатерина Скорых. Профессия — тестировщик ПО2017-03-26 04 Екатерина Скорых. Профессия — тестировщик ПО
2017-03-26 04 Екатерина Скорых. Профессия — тестировщик ПОHappyDev-lite
 
2017-03-26 06 Алексей Губарев. Разработка встраиваемого программного обеспеч...
2017-03-26 06 Алексей Губарев. Разработка встраиваемого программного обеспеч...2017-03-26 06 Алексей Губарев. Разработка встраиваемого программного обеспеч...
2017-03-26 06 Алексей Губарев. Разработка встраиваемого программного обеспеч...HappyDev-lite
 
2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едят
2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едят2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едят
2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едятHappyDev-lite
 
2017-03-26 03 Кирилл Лейфер. Прелести и ужасы мобильной разработки
2017-03-26 03 Кирилл Лейфер. Прелести и ужасы мобильной разработки2017-03-26 03 Кирилл Лейфер. Прелести и ужасы мобильной разработки
2017-03-26 03 Кирилл Лейфер. Прелести и ужасы мобильной разработкиHappyDev-lite
 
2017-03-26 04 вячеслав виноградов. есть ли жизнь после релиза
2017-03-26 04 вячеслав виноградов. есть ли жизнь после релиза2017-03-26 04 вячеслав виноградов. есть ли жизнь после релиза
2017-03-26 04 вячеслав виноградов. есть ли жизнь после релизаHappyDev-lite
 
2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код
2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код
2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про кодHappyDev-lite
 
2017-03-26 05 Дмитрий Козиенко. Оптимизируй это!
2017-03-26 05 Дмитрий Козиенко. Оптимизируй это!2017-03-26 05 Дмитрий Козиенко. Оптимизируй это!
2017-03-26 05 Дмитрий Козиенко. Оптимизируй это!HappyDev-lite
 
2017-03-26 02 Кирилл Лейфер. Мобильные платформы с точки зрения безопасности
2017-03-26 02 Кирилл Лейфер. Мобильные платформы с точки зрения безопасности2017-03-26 02 Кирилл Лейфер. Мобильные платформы с точки зрения безопасности
2017-03-26 02 Кирилл Лейфер. Мобильные платформы с точки зрения безопасностиHappyDev-lite
 
2017-03-26 06 Виталий Онянов. Разработка ERP-систем
2017-03-26 06 Виталий Онянов. Разработка ERP-систем2017-03-26 06 Виталий Онянов. Разработка ERP-систем
2017-03-26 06 Виталий Онянов. Разработка ERP-системHappyDev-lite
 
2017-03-26 03 Илья Сиганов. Что такое машинное обучение
2017-03-26 03 Илья Сиганов. Что такое машинное обучение2017-03-26 03 Илья Сиганов. Что такое машинное обучение
2017-03-26 03 Илья Сиганов. Что такое машинное обучениеHappyDev-lite
 
HappyDev-lite-2016-осень, день 2 06 Серик Бейсенов. Время собирать требования
HappyDev-lite-2016-осень, день 2 06 Серик Бейсенов. Время собирать требованияHappyDev-lite-2016-осень, день 2 06 Серик Бейсенов. Время собирать требования
HappyDev-lite-2016-осень, день 2 06 Серик Бейсенов. Время собирать требованияHappyDev-lite
 
HappyDev-lite-2016-осень, день 2 12 Сергей Мячин. Как переделывать игру-2
HappyDev-lite-2016-осень, день 2 12 Сергей Мячин. Как переделывать игру-2HappyDev-lite-2016-осень, день 2 12 Сергей Мячин. Как переделывать игру-2
HappyDev-lite-2016-осень, день 2 12 Сергей Мячин. Как переделывать игру-2HappyDev-lite
 
HappyDev-lite-2016-осень, день 2 09 Сергей Савченко. Школа программиста, учи...
HappyDev-lite-2016-осень, день 2 09 Сергей Савченко. Школа программиста, учи...HappyDev-lite-2016-осень, день 2 09 Сергей Савченко. Школа программиста, учи...
HappyDev-lite-2016-осень, день 2 09 Сергей Савченко. Школа программиста, учи...HappyDev-lite
 
HappyDev-lite-2016-осень, день 2 05 Роман Прохоров. Эволюция систем обработки...
HappyDev-lite-2016-осень, день 2 05 Роман Прохоров. Эволюция систем обработки...HappyDev-lite-2016-осень, день 2 05 Роман Прохоров. Эволюция систем обработки...
HappyDev-lite-2016-осень, день 2 05 Роман Прохоров. Эволюция систем обработки...HappyDev-lite
 
HappyDev-lite-2016-осень, день 2 11 Анна Тарасенко. Почему нельзя просто так ...
HappyDev-lite-2016-осень, день 2 11 Анна Тарасенко. Почему нельзя просто так ...HappyDev-lite-2016-осень, день 2 11 Анна Тарасенко. Почему нельзя просто так ...
HappyDev-lite-2016-осень, день 2 11 Анна Тарасенко. Почему нельзя просто так ...HappyDev-lite
 
HappyDev-lite-2016-осень, день 2 10 Алексей Коровянский. Будущее мобильной...
HappyDev-lite-2016-осень, день 2 10 Алексей Коровянский. Будущее мобильной...HappyDev-lite-2016-осень, день 2 10 Алексей Коровянский. Будущее мобильной...
HappyDev-lite-2016-осень, день 2 10 Алексей Коровянский. Будущее мобильной...HappyDev-lite
 
HappyDev-lite-2016-осень, день 2 08 Александр Мишурин. Развитие CTF-движения ...
HappyDev-lite-2016-осень, день 2 08 Александр Мишурин. Развитие CTF-движения ...HappyDev-lite-2016-осень, день 2 08 Александр Мишурин. Развитие CTF-движения ...
HappyDev-lite-2016-осень, день 2 08 Александр Мишурин. Развитие CTF-движения ...HappyDev-lite
 
Capturing the Unicorn: Find, Nurture, and Retain Creative Intrapreneurs in Yo...
Capturing the Unicorn: Find, Nurture, and Retain Creative Intrapreneurs in Yo...Capturing the Unicorn: Find, Nurture, and Retain Creative Intrapreneurs in Yo...
Capturing the Unicorn: Find, Nurture, and Retain Creative Intrapreneurs in Yo...Mallory Whitfield
 

Viewers also liked (19)

2017-03-26 05 Алексей Еременко. Проектный менеджер моей мечты
2017-03-26 05 Алексей Еременко. Проектный менеджер моей мечты2017-03-26 05 Алексей Еременко. Проектный менеджер моей мечты
2017-03-26 05 Алексей Еременко. Проектный менеджер моей мечты
 
2017-03-26 04 Екатерина Скорых. Профессия — тестировщик ПО
2017-03-26 04 Екатерина Скорых. Профессия — тестировщик ПО2017-03-26 04 Екатерина Скорых. Профессия — тестировщик ПО
2017-03-26 04 Екатерина Скорых. Профессия — тестировщик ПО
 
2017-03-26 06 Алексей Губарев. Разработка встраиваемого программного обеспеч...
2017-03-26 06 Алексей Губарев. Разработка встраиваемого программного обеспеч...2017-03-26 06 Алексей Губарев. Разработка встраиваемого программного обеспеч...
2017-03-26 06 Алексей Губарев. Разработка встраиваемого программного обеспеч...
 
2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едят
2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едят2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едят
2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едят
 
2017-03-26 03 Кирилл Лейфер. Прелести и ужасы мобильной разработки
2017-03-26 03 Кирилл Лейфер. Прелести и ужасы мобильной разработки2017-03-26 03 Кирилл Лейфер. Прелести и ужасы мобильной разработки
2017-03-26 03 Кирилл Лейфер. Прелести и ужасы мобильной разработки
 
2017-03-26 04 вячеслав виноградов. есть ли жизнь после релиза
2017-03-26 04 вячеслав виноградов. есть ли жизнь после релиза2017-03-26 04 вячеслав виноградов. есть ли жизнь после релиза
2017-03-26 04 вячеслав виноградов. есть ли жизнь после релиза
 
2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код
2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код
2017-03-26 01 Григорий Косьяненко. Разработка ПО — это про людей, а не про код
 
2017-03-26 05 Дмитрий Козиенко. Оптимизируй это!
2017-03-26 05 Дмитрий Козиенко. Оптимизируй это!2017-03-26 05 Дмитрий Козиенко. Оптимизируй это!
2017-03-26 05 Дмитрий Козиенко. Оптимизируй это!
 
2017-03-26 02 Кирилл Лейфер. Мобильные платформы с точки зрения безопасности
2017-03-26 02 Кирилл Лейфер. Мобильные платформы с точки зрения безопасности2017-03-26 02 Кирилл Лейфер. Мобильные платформы с точки зрения безопасности
2017-03-26 02 Кирилл Лейфер. Мобильные платформы с точки зрения безопасности
 
2017-03-26 06 Виталий Онянов. Разработка ERP-систем
2017-03-26 06 Виталий Онянов. Разработка ERP-систем2017-03-26 06 Виталий Онянов. Разработка ERP-систем
2017-03-26 06 Виталий Онянов. Разработка ERP-систем
 
2017-03-26 03 Илья Сиганов. Что такое машинное обучение
2017-03-26 03 Илья Сиганов. Что такое машинное обучение2017-03-26 03 Илья Сиганов. Что такое машинное обучение
2017-03-26 03 Илья Сиганов. Что такое машинное обучение
 
HappyDev-lite-2016-осень, день 2 06 Серик Бейсенов. Время собирать требования
HappyDev-lite-2016-осень, день 2 06 Серик Бейсенов. Время собирать требованияHappyDev-lite-2016-осень, день 2 06 Серик Бейсенов. Время собирать требования
HappyDev-lite-2016-осень, день 2 06 Серик Бейсенов. Время собирать требования
 
HappyDev-lite-2016-осень, день 2 12 Сергей Мячин. Как переделывать игру-2
HappyDev-lite-2016-осень, день 2 12 Сергей Мячин. Как переделывать игру-2HappyDev-lite-2016-осень, день 2 12 Сергей Мячин. Как переделывать игру-2
HappyDev-lite-2016-осень, день 2 12 Сергей Мячин. Как переделывать игру-2
 
HappyDev-lite-2016-осень, день 2 09 Сергей Савченко. Школа программиста, учи...
HappyDev-lite-2016-осень, день 2 09 Сергей Савченко. Школа программиста, учи...HappyDev-lite-2016-осень, день 2 09 Сергей Савченко. Школа программиста, учи...
HappyDev-lite-2016-осень, день 2 09 Сергей Савченко. Школа программиста, учи...
 
HappyDev-lite-2016-осень, день 2 05 Роман Прохоров. Эволюция систем обработки...
HappyDev-lite-2016-осень, день 2 05 Роман Прохоров. Эволюция систем обработки...HappyDev-lite-2016-осень, день 2 05 Роман Прохоров. Эволюция систем обработки...
HappyDev-lite-2016-осень, день 2 05 Роман Прохоров. Эволюция систем обработки...
 
HappyDev-lite-2016-осень, день 2 11 Анна Тарасенко. Почему нельзя просто так ...
HappyDev-lite-2016-осень, день 2 11 Анна Тарасенко. Почему нельзя просто так ...HappyDev-lite-2016-осень, день 2 11 Анна Тарасенко. Почему нельзя просто так ...
HappyDev-lite-2016-осень, день 2 11 Анна Тарасенко. Почему нельзя просто так ...
 
HappyDev-lite-2016-осень, день 2 10 Алексей Коровянский. Будущее мобильной...
HappyDev-lite-2016-осень, день 2 10 Алексей Коровянский. Будущее мобильной...HappyDev-lite-2016-осень, день 2 10 Алексей Коровянский. Будущее мобильной...
HappyDev-lite-2016-осень, день 2 10 Алексей Коровянский. Будущее мобильной...
 
HappyDev-lite-2016-осень, день 2 08 Александр Мишурин. Развитие CTF-движения ...
HappyDev-lite-2016-осень, день 2 08 Александр Мишурин. Развитие CTF-движения ...HappyDev-lite-2016-осень, день 2 08 Александр Мишурин. Развитие CTF-движения ...
HappyDev-lite-2016-осень, день 2 08 Александр Мишурин. Развитие CTF-движения ...
 
Capturing the Unicorn: Find, Nurture, and Retain Creative Intrapreneurs in Yo...
Capturing the Unicorn: Find, Nurture, and Retain Creative Intrapreneurs in Yo...Capturing the Unicorn: Find, Nurture, and Retain Creative Intrapreneurs in Yo...
Capturing the Unicorn: Find, Nurture, and Retain Creative Intrapreneurs in Yo...
 

Similar to 2017-03-26 01 Анна Тарасенко. Как устроен Web изнутри

Лекция 1. Модель OSI.
Лекция 1. Модель OSI.Лекция 1. Модель OSI.
Лекция 1. Модель OSI.Alexey Furmanov
 
введение в интернет
введение в интернетвведение в интернет
введение в интернетUlyana1973
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Fwdays
 
Антон Шумихин - Архитектура сетей
Антон Шумихин - Архитектура сетейАнтон Шумихин - Архитектура сетей
Антон Шумихин - Архитектура сетейGAiN@ESD
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Media Gorod
 
Архитектура компьютерных сетей
Архитектура компьютерных сетейАрхитектура компьютерных сетей
Архитектура компьютерных сетейMaksym Balaklytskyi
 
Инфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от QlogikИнфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от QlogikExpolink
 
New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)Sergey Skvortsov
 
лекция 2
лекция 2лекция 2
лекция 2annuta123
 
тпцми лекция 2 интернет
тпцми лекция 2 интернеттпцми лекция 2 интернет
тпцми лекция 2 интернетannuta123
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1Technopark
 
Введение в сетевые технологии
Введение в сетевые технологииВведение в сетевые технологии
Введение в сетевые технологииUnguryan Vitaliy
 
About history as well as now Internet___
About history as well as now Internet___About history as well as now Internet___
About history as well as now Internet___rajabovfarhod254
 
презентации
презентациипрезентации
презентацииPolly Nadueva
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.jsАрхитектура программных систем на Node.js
Архитектура программных систем на Node.jsTimur Shemsedinov
 
основы интернет
основы интернетосновы интернет
основы интернетAlexander Babich
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"GeeksLab Odessa
 
компьютерные сети
компьютерные сетикомпьютерные сети
компьютерные сетиstudent_SSGA
 

Similar to 2017-03-26 01 Анна Тарасенко. Как устроен Web изнутри (20)

Лекция 1. Модель OSI.
Лекция 1. Модель OSI.Лекция 1. Модель OSI.
Лекция 1. Модель OSI.
 
введение в интернет
введение в интернетвведение в интернет
введение в интернет
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
 
Антон Шумихин - Архитектура сетей
Антон Шумихин - Архитектура сетейАнтон Шумихин - Архитектура сетей
Антон Шумихин - Архитектура сетей
 
Present.pps
Present.ppsPresent.pps
Present.pps
 
Present.pps
Present.ppsPresent.pps
Present.pps
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169
 
Архитектура компьютерных сетей
Архитектура компьютерных сетейАрхитектура компьютерных сетей
Архитектура компьютерных сетей
 
Инфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от QlogikИнфрраструктура ЦОД - интерконнект от Qlogik
Инфрраструктура ЦОД - интерконнект от Qlogik
 
New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)
 
лекция 2
лекция 2лекция 2
лекция 2
 
тпцми лекция 2 интернет
тпцми лекция 2 интернеттпцми лекция 2 интернет
тпцми лекция 2 интернет
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1
 
Введение в сетевые технологии
Введение в сетевые технологииВведение в сетевые технологии
Введение в сетевые технологии
 
About history as well as now Internet___
About history as well as now Internet___About history as well as now Internet___
About history as well as now Internet___
 
презентации
презентациипрезентации
презентации
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.jsАрхитектура программных систем на Node.js
Архитектура программных систем на Node.js
 
основы интернет
основы интернетосновы интернет
основы интернет
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
 
компьютерные сети
компьютерные сетикомпьютерные сети
компьютерные сети
 

More from HappyDev-lite

HappyDev-lite-2016-осень, день 2 04 Михаил Колганов. Интерфейс пользователя ...
HappyDev-lite-2016-осень, день 2 04 Михаил Колганов. Интерфейс пользователя ...HappyDev-lite-2016-осень, день 2 04 Михаил Колганов. Интерфейс пользователя ...
HappyDev-lite-2016-осень, день 2 04 Михаил Колганов. Интерфейс пользователя ...HappyDev-lite
 
HappyDev-lite-2016-осень, день 2 02 Анастасия Пиньгина. Тестировщик - больше,...
HappyDev-lite-2016-осень, день 2 02 Анастасия Пиньгина. Тестировщик - больше,...HappyDev-lite-2016-осень, день 2 02 Анастасия Пиньгина. Тестировщик - больше,...
HappyDev-lite-2016-осень, день 2 02 Анастасия Пиньгина. Тестировщик - больше,...HappyDev-lite
 
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релиза
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релизаHappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релиза
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релизаHappyDev-lite
 
HappyDev-lite-2016 (осень), день 1, 07 Александр Лопатюк. Дизайнерский перс...
HappyDev-lite-2016 (осень), день 1, 07 Александр Лопатюк. Дизайнерский перс...HappyDev-lite-2016 (осень), день 1, 07 Александр Лопатюк. Дизайнерский перс...
HappyDev-lite-2016 (осень), день 1, 07 Александр Лопатюк. Дизайнерский перс...HappyDev-lite
 
HappyDev-lite-2016 (осень), день 1, 06 Роман Беляев. Инструменты дизайнера
HappyDev-lite-2016 (осень), день 1, 06 Роман Беляев. Инструменты дизайнераHappyDev-lite-2016 (осень), день 1, 06 Роман Беляев. Инструменты дизайнера
HappyDev-lite-2016 (осень), день 1, 06 Роман Беляев. Инструменты дизайнераHappyDev-lite
 
HappyDev-lite-2016 (осень), день 1, 05 Сергей Мячин. Как постоянно переделыв...
HappyDev-lite-2016 (осень), день 1, 05 Сергей Мячин. Как постоянно переделыв...HappyDev-lite-2016 (осень), день 1, 05 Сергей Мячин. Как постоянно переделыв...
HappyDev-lite-2016 (осень), день 1, 05 Сергей Мячин. Как постоянно переделыв...HappyDev-lite
 
HappyDev-lite-2016 (осень), день 1, 04 Марина Савенко. Сделаем понятным понят...
HappyDev-lite-2016 (осень), день 1, 04 Марина Савенко. Сделаем понятным понят...HappyDev-lite-2016 (осень), день 1, 04 Марина Савенко. Сделаем понятным понят...
HappyDev-lite-2016 (осень), день 1, 04 Марина Савенко. Сделаем понятным понят...HappyDev-lite
 
HappyDev-lite-2016 (осень), день 1, 03 Анастасия Дворная. Что делает дизайне...
HappyDev-lite-2016 (осень), день 1, 03 Анастасия Дворная. Что делает дизайне...HappyDev-lite-2016 (осень), день 1, 03 Анастасия Дворная. Что делает дизайне...
HappyDev-lite-2016 (осень), день 1, 03 Анастасия Дворная. Что делает дизайне...HappyDev-lite
 
HappyDev-lite-2016 (осень), день 1, 02 Татьяна Шульгина. Процесс разработки в...
HappyDev-lite-2016 (осень), день 1, 02 Татьяна Шульгина. Процесс разработки в...HappyDev-lite-2016 (осень), день 1, 02 Татьяна Шульгина. Процесс разработки в...
HappyDev-lite-2016 (осень), день 1, 02 Татьяна Шульгина. Процесс разработки в...HappyDev-lite
 
HappyDev-lite-2016 (осень), день 1, 01 Елена Гальцина. От чего стоит отказать...
HappyDev-lite-2016 (осень), день 1, 01 Елена Гальцина. От чего стоит отказать...HappyDev-lite-2016 (осень), день 1, 01 Елена Гальцина. От чего стоит отказать...
HappyDev-lite-2016 (осень), день 1, 01 Елена Гальцина. От чего стоит отказать...HappyDev-lite
 
HappyDev-lite-2016-весна 13 Константин Борисов. Как разговаривать с американц...
HappyDev-lite-2016-весна 13 Константин Борисов. Как разговаривать с американц...HappyDev-lite-2016-весна 13 Константин Борисов. Как разговаривать с американц...
HappyDev-lite-2016-весна 13 Константин Борисов. Как разговаривать с американц...HappyDev-lite
 
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...HappyDev-lite
 

More from HappyDev-lite (12)

HappyDev-lite-2016-осень, день 2 04 Михаил Колганов. Интерфейс пользователя ...
HappyDev-lite-2016-осень, день 2 04 Михаил Колганов. Интерфейс пользователя ...HappyDev-lite-2016-осень, день 2 04 Михаил Колганов. Интерфейс пользователя ...
HappyDev-lite-2016-осень, день 2 04 Михаил Колганов. Интерфейс пользователя ...
 
HappyDev-lite-2016-осень, день 2 02 Анастасия Пиньгина. Тестировщик - больше,...
HappyDev-lite-2016-осень, день 2 02 Анастасия Пиньгина. Тестировщик - больше,...HappyDev-lite-2016-осень, день 2 02 Анастасия Пиньгина. Тестировщик - больше,...
HappyDev-lite-2016-осень, день 2 02 Анастасия Пиньгина. Тестировщик - больше,...
 
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релиза
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релизаHappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релиза
HappyDev-lite-2016-осень, день 2 01 Денис Нелюбин. Жизнь после релиза
 
HappyDev-lite-2016 (осень), день 1, 07 Александр Лопатюк. Дизайнерский перс...
HappyDev-lite-2016 (осень), день 1, 07 Александр Лопатюк. Дизайнерский перс...HappyDev-lite-2016 (осень), день 1, 07 Александр Лопатюк. Дизайнерский перс...
HappyDev-lite-2016 (осень), день 1, 07 Александр Лопатюк. Дизайнерский перс...
 
HappyDev-lite-2016 (осень), день 1, 06 Роман Беляев. Инструменты дизайнера
HappyDev-lite-2016 (осень), день 1, 06 Роман Беляев. Инструменты дизайнераHappyDev-lite-2016 (осень), день 1, 06 Роман Беляев. Инструменты дизайнера
HappyDev-lite-2016 (осень), день 1, 06 Роман Беляев. Инструменты дизайнера
 
HappyDev-lite-2016 (осень), день 1, 05 Сергей Мячин. Как постоянно переделыв...
HappyDev-lite-2016 (осень), день 1, 05 Сергей Мячин. Как постоянно переделыв...HappyDev-lite-2016 (осень), день 1, 05 Сергей Мячин. Как постоянно переделыв...
HappyDev-lite-2016 (осень), день 1, 05 Сергей Мячин. Как постоянно переделыв...
 
HappyDev-lite-2016 (осень), день 1, 04 Марина Савенко. Сделаем понятным понят...
HappyDev-lite-2016 (осень), день 1, 04 Марина Савенко. Сделаем понятным понят...HappyDev-lite-2016 (осень), день 1, 04 Марина Савенко. Сделаем понятным понят...
HappyDev-lite-2016 (осень), день 1, 04 Марина Савенко. Сделаем понятным понят...
 
HappyDev-lite-2016 (осень), день 1, 03 Анастасия Дворная. Что делает дизайне...
HappyDev-lite-2016 (осень), день 1, 03 Анастасия Дворная. Что делает дизайне...HappyDev-lite-2016 (осень), день 1, 03 Анастасия Дворная. Что делает дизайне...
HappyDev-lite-2016 (осень), день 1, 03 Анастасия Дворная. Что делает дизайне...
 
HappyDev-lite-2016 (осень), день 1, 02 Татьяна Шульгина. Процесс разработки в...
HappyDev-lite-2016 (осень), день 1, 02 Татьяна Шульгина. Процесс разработки в...HappyDev-lite-2016 (осень), день 1, 02 Татьяна Шульгина. Процесс разработки в...
HappyDev-lite-2016 (осень), день 1, 02 Татьяна Шульгина. Процесс разработки в...
 
HappyDev-lite-2016 (осень), день 1, 01 Елена Гальцина. От чего стоит отказать...
HappyDev-lite-2016 (осень), день 1, 01 Елена Гальцина. От чего стоит отказать...HappyDev-lite-2016 (осень), день 1, 01 Елена Гальцина. От чего стоит отказать...
HappyDev-lite-2016 (осень), день 1, 01 Елена Гальцина. От чего стоит отказать...
 
HappyDev-lite-2016-весна 13 Константин Борисов. Как разговаривать с американц...
HappyDev-lite-2016-весна 13 Константин Борисов. Как разговаривать с американц...HappyDev-lite-2016-весна 13 Константин Борисов. Как разговаривать с американц...
HappyDev-lite-2016-весна 13 Константин Борисов. Как разговаривать с американц...
 
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...
 

2017-03-26 01 Анна Тарасенко. Как устроен Web изнутри

  • 1. Как устроен Web изнутри Анна Тарасенко, 7bits, генеральный директор
  • 2. Что за паутина? Web (World Wide Web, WWW) — всемирная “паутина”, состоящая из сотен миллионов серверов, хранящих и обрабатывающих документы
  • 4. Пользовательские устройства 1. Персональные компьютеры и ноутбуки 2. Планшеты и смартфоны 3. GSM-телефоны и навигаторы 4. Шлемы виртуальной реальности
  • 5. Пользовательские устройства 5. Бытовая техника, автомобили, медицинская техника 6. Банкоматы, кассы, POS-терминалы 7. Носимая электроника: умные часы, фитнес-браслеты 8. …
  • 7. Устройства могут: 1. Запускать программное обеспечение (ПО) ○ с интерфейсом пользователя ■ графическим ■ консольным ■ сенсорным, кнопочным и т.д. ○ без интерфейса пользователя
  • 8. Устройства могут: 2. Принимать и передавать данные по сети ○ проводной ○ беспроводной (например, WiFi, Bluetooth)
  • 9. Устройства могут: 3. Обмениваться данными со спутниками для позиционирования в пространстве ○ GPS ○ ГЛОНАСС 4. Обмениваться данными с сотовыми вышками ○ GSM, CDMA (2G) ○ 3G, 4G
  • 10. Устройства могут: 5. Собирать и хранить данные с датчиков ○ движения и углов наклона ○ температуры ○ света ○ прикосновения ○ давления ○ …
  • 11. Устройства могут: 6. Взаимодействовать с контроллерами аналоговых устройств: ○ моторов ○ светодиодов и лампочек ○ аудио и видео устройств ○ …
  • 12. Клиент и сервер Это деление очень условно Роли могут меняться для каждого взаимодействия
  • 14. Они взаимодействуют с Интернет 1. Через браузер 2. Через мобильное приложение 3. Через десктопное приложение (иногда это тоже браузер)
  • 15. Адреса в сети IP-address (Internet Protocol Address): ● Внешний: 93.158.134.3 (IPv4), уникален в Интернет ● Внутренний: 192.168.0.1, уникален в локальной сети Определяется провайдером Интернет
  • 17. Адреса в сети Domain name: ● yandex.ru ● google.com ● wikipedia.org Сайтом обычно называют то, что скрывается за доменным именем
  • 18. Адреса в сети DNS — Domain Name System, позволяет сопоставить доменному имени IP-адрес и наоборот
  • 20. Протоколы и уровни Протокол — набор правил, действий и их очередности, позволяющий осуществлять соединение и обмен данными между устройствами в сети
  • 21. Протоколы и уровни Сетевая модель OSI (не вся): ● Прикладной уровень (7) — HTTP, FTP (семантические данные) ● Транспортный уровень (4) — TCP, UDP (сегменты, дейтаграммы) ● Сетевой уровень (3) — IPv4, IPv6 (пакеты) ● Физический (1) — USB, витая пара (биты)
  • 23. Модель запрос-ответ в HTTP ● HTTP-request посылается клиентом, он ждет ответа в рамках соединения с сервером ● HTTP-Response отправляется сервером, либо соединение рвется
  • 24. Пример HTTP-request Метод запроса Запрашиваемый ресурс Протокол GET /wiki/Tim_Berners-Lee HTTP/1.1 Host: ru.wikipedia.org …… еще заголовки
  • 25. Пример HTTP-response Протокол Код ответа HTTP/1.1 200 OK (далее следует запрошенная страница в HTML)
  • 26. Пример HTTP-request Метод запроса Запрашиваемый ресурс Протокол POST /addcomment HTTP/1.1 Host: youtube.com comment=Hello У этих запросов есть тело (body), содержащее данные
  • 27. Пример HTTP-response Протокол Код ответа HTTP/1.1 500 Internal Server Error Сервер может прислать код ошибки вместо страницы
  • 28. Задачи сервера 1. Принимать запросы клиентов 2. Отправлять ответы клиентам 3. Хранить и обрабатывать данные 4. Искать и систематизировать данные по запросу (иногда с других серверов) Все это делает запущенное на сервере ПО
  • 30. Что умеет web-приложение 1. Чтение HTTP-запроса, формирование HTTP-ответа 2. Взаимодействие с базой данных 3. Запуск процессов по расписанию 4. Обработка и генерация данных 5. …
  • 31. Языки программирования в web C++, C#, Clojure, Erlang, Java, JavaScript, Haskell, Perl, PHP, Python, Ruby, Scala, … На самом деле любые — нужно просто уметь читать и писать символы :-)
  • 34. Самые важные языки ● English ● Русский
  • 35. Libraries and Frameworks Многие типовые задачи уже решены и на большинстве языков написаны библиотеки и/или фреймворки Фреймворк кроме инструментов задает каркас приложения
  • 36. Фреймворки в web ● C#: .NET framework ● Java: Spring и много непопулярных ● JavaScript: Node.js как платформа, на ее основе Express, Sails ● PHP: Zend framework, symfony, Cake, Cohana, Yii и много других
  • 37. Фреймворки в web ● Python: Django, Pyramid, Flask ● Ruby: Ruby on Rails (RoR), Sinatra ● Scala: Play framework, Akka, Spark Выбор языка не так важен, как выбор фреймворка!
  • 38. А еще важнее глубокое понимание принципов работы сети и архитектуры приложений, безотносительно языков и фреймворков!
  • 39. Базы данных (без подробностей) ● Реляционные: Oracle, Postgres, MySQL, MS SQL, MariaDB ● Документо-ориентированные: MongoDB, CouchDB ● Колоночные: Cassandra, HBase ● Графовые: Neo4j, OrientDB
  • 40. Выбор базы данных едва ли не более холиварная тема в ИТ, чем выбор языка или фреймворка :-)
  • 41. А что еще изучать? 1. Безопасность: шифрование данных, атаки и защиты 2. Оптимизация поиска в базе данных 3. Масштабирование: подстройка системы под увеличивающееся число запросов 4. Синхронизация данных между несколькими серверами
  • 42. А что еще изучать? 5. Многопоточность, параллельные и распределенные вычисления 6. Модель акторов 7. Шаблоны (patterns) проектирования и SOLID-принципы 8. Математическая логика, теория алгоритмов, логика Хоара
  • 43. Как лучше начать? 1. Курсы и стажировки для начинающих 2. Coursera, Khan academy, Hexlet 3. Книги от столпов индустрии: Роберт Мартин, Стив МакКоннел, Кент Бек и другие
  • 44. Что почитать? 1. Р. Мартин “Идеальный программист” 2. Р. Мартин “Чистый код” 3. К. Бек “Разработка через тестирование” 4. С. МакКоннел “Совершенный код” 5. Д. Томас, Э. Хант “Программист- прагматик. Путь от подмастерья к мастеру”
  • 45. Что почитать? 6. (*) Г. Эндрюс “Основы многопоточного, параллельного и распределенного программирования” 7. (*) Э. Таненбаум, М. Ван Стеен “Распределенные системы. Принципы и парадигмы”