Web лекция 2

34
Инструменты разработчика Сергей Лихобабин, Александр Горный

description

Базовый инструментарий и окружение (Лекция №2)

Transcript of Web лекция 2

Page 1: Web   лекция 2

Инструменты

разработчика

Сергей Лихобабин, Александр

Горный

Page 2: Web   лекция 2

2

• Unix: командная строка,

отладка, демоны, пакеты

• Веб-сервера: разница между

ними и их устройство

• ЯП для веба и их экосистемы

Обзор лекции

Page 3: Web   лекция 2

3

• Почему именно Unix?

• Что надо о нем знать?

• Что надо в нем уметь?

Unix

Page 4: Web   лекция 2

4

• Процессы

• fork()

• exec()

Unix: процессы

Page 5: Web   лекция 2

5

• Сигналы

• Shared memory

• Семафоры

• Pipes

• Message queue

Взаимодействие между процессами

Page 6: Web   лекция 2

6

• Unix-сокет

• Сеть

• Файлы

• Файлы в памяти

Взаимодействие между процессами

Page 7: Web   лекция 2

7

• Отличия от процессов

• Реентерабельность

• Взаимодействие между потоками

Потоки

Page 8: Web   лекция 2

8

• cp, mv, …

• “|”

• grep

• cut, sort, uniq

• awk, perl –ne

• xargs

• переменные окружения

Unix: командная строка

Page 9: Web   лекция 2

9

grep –r “Error found” logdir | awk ‘{print $4}’

| sort | uniq –c | sort –rn | head -10

Командная строка

awk –F ‘;’ ‘{print $1” “$6}’ log | sort –u | awk

‘{print $1}’ | sort | uniq –c | sort –rn

tail -10000 log | grep “attack” | awk ‘{print

$1}’ | xargs block.sh

Page 10: Web   лекция 2

10

• trace, truss, gdb

Unix: средства отладки

Page 11: Web   лекция 2

11

ps

Page 12: Web   лекция 2

12

top

Page 13: Web   лекция 2

13

iostat

Page 14: Web   лекция 2

14

lsof

Page 15: Web   лекция 2

15

strace

Page 16: Web   лекция 2

16

gdb

Page 17: Web   лекция 2

17

Отладка сети

Page 18: Web   лекция 2

18

• Сборка из исходников

• Конфигурационный софт

• Пакеты

Unix: установка нового софта

Page 19: Web   лекция 2

19

• Предназначение

• Init-скрипты, pid-файлы

• Конфигурация

• Логи

• Примеры

Демоны

Page 20: Web   лекция 2

20

Вопросы

Page 21: Web   лекция 2

21

• Предназначение

• Основные метрики

• История

Веб-сервера

Page 22: Web   лекция 2

22

• На процессах

• На тредах

• Машина состояний

Архитектура

Page 23: Web   лекция 2

23

• История

• Основные характеристики

• Варианты использования

• Альтернативы

apache

Page 24: Web   лекция 2

24

• История

• Основные характеристики

• Варианты использования

• Альтернативы

nginx

Page 25: Web   лекция 2

25

• Что это такое?

• Зачем это нужно?

• Примеры использования

SSI

Page 26: Web   лекция 2

26

<!--#include virtual=“/footer.html” -->

<!--#if expr="\"$DOCUMENT_URI\" = \"/foo/file.html\"" -->

in foo

<!--#elif expr="\"$DOCUMENT_URI\" = \"/bar/file.html\"" -->

in bar

<!--#else -->

in neither

<!--#endif -->

SSI

Page 27: Web   лекция 2

27

• Возможные мотивы

• Технологии написания

Собственные веб-сервера

Page 28: Web   лекция 2

28

Вопросы

Page 29: Web   лекция 2

29

• От ассемблера до web-языков

• Perl

• PHP

• Ruby

• Python

Языки программирования

Page 30: Web   лекция 2

30

• Интерпретируемость

• Регулярные выражения

• Хеши как элементы языка

Преимущества web-языков

Page 31: Web   лекция 2

31

Преимущества web-языков

Page 32: Web   лекция 2

32

• xs

• CPAN

• perldoc

• mod_perl

Экосистема

Page 33: Web   лекция 2

33

Вопросы

Page 34: Web   лекция 2

Спасибо за внимание!

Александр Горный,

[email protected]

Сергей Лихобабин,

[email protected]