Try to be professional

Preview:

Citation preview

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