try to be professional
TRANSCRIPT
1. Каким должен быть разработчик
2. Инструменты для разработки
3. Инфраструктура для разработки
Ссылка на презентацию и все материалы
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
Что такое «хороший программист»
https://goo.gl/tkBPa0
Академические знания
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
Типы данных MySQL?
https://goo.gl/tkBPa0
Типы данных MySQLTINYINTINTBIGINTFLOATDOUBLE
DATETIMESTAMPYEARBLOBENUM
https://goo.gl/tkBPa0
Типы таблиц MySQL?
https://goo.gl/tkBPa0
Типы таблиц MySQLMyISAMInnoDB
https://goo.gl/tkBPa0
Типы таблиц MySQLMyISAMInnoDB
ISAMMERGEHEAPBDB
https://goo.gl/tkBPa0
ОтличияТип таблицы MyISAM InnoDBТранзакционный Нет ДаInsert Быстрее МедленнееSelect Быстрее МедленнееSelect/update/delete/insert
Медленнее Быстрее
Внешние ключи Нет ДаБлокировка Таблица Строка
https://goo.gl/tkBPa0
Регулярные выраженияВыбрать числа?Начало строки?Пробел?Граница слова?Конец строки?
https://goo.gl/tkBPa0
Регулярные выраженияВыбрать числа - [0-9]+ или [\d]+Начало строки - ^Пробел - \sГраница слова - \bКонец строки - $
https://goo.gl/tkBPa0
Командная строка linuxСоздать архив?
https://goo.gl/tkBPa0
Командная строка linuxСоздать архивtar –c files.tar.gz ~/files
https://goo.gl/tkBPa0
Командная строка linuxСоздать архивtar –c files.tar.gz ~/files-c – create
https://goo.gl/tkBPa0
Командная строка linuxСоздать архивtar –cv files.tar.gz ~/files-c – create
https://goo.gl/tkBPa0
Командная строка linuxСоздать архивtar –cv files.tar.gz ~/files-c – create-v – verbose
https://goo.gl/tkBPa0
Командная строка linuxСоздать архивtar –cvz files.tar.gz ~/files-c – create-v – verbose
https://goo.gl/tkBPa0
Командная строка linuxСоздать архивtar –cvz files.tar.gz ~/files-c – create-v – verbose-z – gzip
https://goo.gl/tkBPa0
Командная строка linuxСоздать архивtar –cvzf files.tar.gz ~/files-c – create-v – verbose-z – gzip
https://goo.gl/tkBPa0
Командная строка linuxСоздать архивtar –cvzf files.tar.gz ~/files-c – create-v – verbose-z – gzip-f – file-archive
https://goo.gl/tkBPa0
Командная строка linuxРаспаковатьtar –x files.tar.gz ~/files
https://goo.gl/tkBPa0
Командная строка linuxРаспаковатьtar –x files.tar.gz ~/files-x – extract
https://goo.gl/tkBPa0
Командная строка linuxРаспаковатьtar –xv files.tar.gz ~/files-x – extract -v - verbose
https://goo.gl/tkBPa0
Командная строка linuxРаспаковатьtar –xvf files.tar.gz ~/files-x – extract -v – verbose-f – file-archive
https://goo.gl/tkBPa0
Грейдирование –табель роста*
https://goo.gl/tkBPa0
ИПРИндивидуальный План
Развития
https://goo.gl/tkBPa0
Проектирование классов*BPuser
GetByID(in UserID, out arUser)GetByEmail(in Email, out arUser)Add(in arUser, out ProfileID)
https://goo.gl/tkBPa0
Проектирование БД*
https://goo.gl/tkBPa0
Проектирование БД
https://goo.gl/tkBPa0
MySQL Workbench
Проектирование БД*
https://goo.gl/tkBPa0
http://dbdesigner.net/
https://goo.gl/tkBPa0
Блок-схемы*
https://goo.gl/tkBPa0
UML-диаграммы
https://goo.gl/tkBPa0
https://cacoo.com/
https://goo.gl/tkBPa0
Сервис для онлайн-работы с:• UML• Блок-схемы• Flow-chart• Mindmap• DB-scheme• Server-schemes
Server-scheme*
https://goo.gl/tkBPa0
Описание кластера*
https://goo.gl/tkBPa0
1. Структура кластера1.1 Схема кластера2. Настройка программного обеспечения2.1 Общие настройки2.2 Настройка рабочих нод кластера rzn-web-11, msk-web-112.2.1 Установка пакетов2.2.2 Пользовательские скрипты2.2.3 Конфигурация демона nginx2.2.4 Конфигурация демона nodejs….
Я все это должен знать/уметь?!
https://goo.gl/tkBPa0
DevOps?
https://goo.gl/tkBPa0
development & operations
https://goo.gl/tkBPa0
Современный разработчик
https://goo.gl/tkBPa0
Быть центром компетенций
https://goo.gl/tkBPa0
Как стать действительно ценным специалистом?
https://goo.gl/tkBPa0
Решать проблемы, а не задачи
https://goo.gl/tkBPa0
Специалист• академические знания• умеет проектировать (читай: думать и
параллелить разработку)• постоянно развивается• решает проблемы, а не задачи
https://goo.gl/tkBPa0
Links0. Алексей Рыбак Badoo - Про то, что я бы хотел, чтобы мне рассказали, пока я учился - http://habrahabr.ru/company/mailru/blog/269687/ 1. Тупняк как чума 21 века и что с этим делать - http://2015.codefest.ru/lecture/1023 2. Эффективность неэффективности - http://www.youtube.com/watch?v=XDF02KmgJFE 3. Читаем про MYSQL: http://www.mysql.ru/docs/man/Introduction.html 4. Работа в командной строке Linux: http://younglinux.info/bash.php 5. Разбор команд командной строки Linux http://habrahabr.ru/post/262127/ 6. Как работать в MySQL через командную строку http://habrahabr.ru/post/163545/ 7. DNS - https://ru.wikipedia.org/wiki/DNS 8. Программа стажировки http://webpp.ru/traineeship/ 9. PHP https://www.codecademy.com/ru/learn/php10. PHP http://www.php-s.ru/self-teacher/
https://goo.gl/tkBPa0
Link: https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
GIT
https://goo.gl/tkBPa0
Links1. GIT обучение: http://git-scm.com/book/ru/v1 2. И еще одно: http://githowto.com/ru 3. Интерактивное обучение: https://try.github.io/levels/1/challenges/1 4. Шпаргалка http://eax.me/git-commands/ 5. Работа с битрикс и GIT: http://habrahabr.ru/post/219569/
https://goo.gl/tkBPa0
ХукиСкрипты, запускаемые при каком-либо событии.Бывают локальные и глобальные.
Примеры:pre-commit – перед коммитомprepare-commit-msg – перед появлением редакторас сообщением коммитаpost-merge – после merge
https://goo.gl/tkBPa0
Хуки
https://goo.gl/tkBPa0
gitolite
Утилита для управления репозиториями
https://goo.gl/tkBPa0
gitoliteСсылки:• http://gitolite.com/gitolite/index.html - официальная дока• http://habrahabr.ru/post/136815/ - о gitolite• http://habrahabr.ru/post/253413/ - установка для ламеров
https://goo.gl/tkBPa0
gitolite - конфиг
https://goo.gl/tkBPa0
gitolite – ключи
https://goo.gl/tkBPa0
Как работают ключи?
https://goo.gl/tkBPa0
Пара ключей
https://goo.gl/tkBPa0
ryzhkin.pub ryzhkinryzhkin.pp
k
puttygen
https://goo.gl/tkBPa0
Не забывайте закрывать .git по .htpasswd
https://goo.gl/tkBPa0
<Files .git> deny from all</Files>
Не забывайте удалять старые, неактуальные ключи из репозитория!
https://goo.gl/tkBPa0
.gitignore
https://goo.gl/tkBPa0
.dbconn.php (.sample)/*.log/*.sql
https://github.com/
https://goo.gl/tkBPa0
https://bitbucket.org/
https://goo.gl/tkBPa0
gitlab
https://goo.gl/tkBPa0
Управление repo?
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
Sourcetree – local GIT GUI
https://goo.gl/tkBPa0
• Free• Bitbucket.com
Sourcetree - codereview
https://goo.gl/tkBPa0
xhprof
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
xhprof
https://goo.gl/tkBPa0
Ссылки1. Установка http://ruhighload.com/post/%D0%A3%D
1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0+XHprof
2. Использование http://ruhighload.com/index.php/2009/08/21/xhprof-%D0%BF%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-php-%D0%BE%D1%82-facebook/
3. Статья на хабре http://habrahabr.ru/post/145895/
Unit тесты
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
Unit тесты
https://goo.gl/tkBPa0
Установка и использование https://phpunit.de/getting-started.html
IDE
https://goo.gl/tkBPa0
Что такое IDE?
IDE
https://goo.gl/tkBPa0
Integrated Development Environment
PHPStorm
https://goo.gl/tkBPa0
PHPStorm
https://goo.gl/tkBPa0
PHPStorm
PHPStormА еще:1. Уведомления об изменении файла на сервере2. Интеграция с CSV3. Подсказки по классам/методам4. Сниппеты5. И многое многое другое…
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
https://goo.gl/tkBPa0
Бонус
https://goo.gl/tkBPa0
• Continuous delivery в крупном интернет проекте https://tech.badoo.com/presentation/89/• Selenium тесты. От RC и одного пользователя к WebDriver, Page Object и пулу пользователей
https://tech.badoo.com/presentation/81/• Процесс разработки и выкатка релизов в Badoo. Автоматическое тестирование. Девелоперское окружение
https://tech.badoo.com/article/107/• Релиз-менеджмент в Badoo http://profyclub.ru/docs/220• Continuous integration для php http://habrahabr.ru/post/68571/• Непрерывная интеграция и TeamCity http://habrahabr.ru/post/105895/• Идеальный процесс разработки – утопия или Continuous Integration?
http://my-it-notes.com/2013/01/continuous_integration_as_ideal_software_development_process/• Олег Бунин - Мини мастер-класс по высоконагруженным системам - http://
www.youtube.com/watch?v=CNVOWgLTmr0• PSR стандарт кодирования - http://www.php-fig.org/psr/psr-1/ru/• Стандарты от Битрикс: http://
dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&CHAPTER_ID=03044&LESSON_PATH=3913.4776.4774.3044