Стать программистом:
- начать обучение с языков c\c++, c#, java, pascal- научиться писать консольные приложения
- научиться составлять блок-схемы, UML-диаграммы
- научиться использовать построчный отладчик
- понять алгоритмы сортировки
- понять структуру данных
- понять основы реляционной алгебры
- изучить ООП и функциональное программирование
Рабочий стек веб-программиста (минимальный)
frontend
-- html-- css
-- javascript
backend
-- php
-- mysql
-- bitrix
кеширование
-- memcache
-- redis
веб-сервер
-- apache
-- nginx
сервер
-- ssh
-- bash, cron
-- php-f, mysql
-- htop, mytop
PHP - полезные материалы
- php.net
- w3schools.com/php- стандарты PSR
- laracasts.com/topics/php
- PHP. Правильный путь
MySQL - полезные материалы
- Справочное руководство по MySQL
- w3school.com/mysql- Индексы - скорость фильтрации и сортировки
- План исполнения (explain) - когда тормозит
- Книга "MySQL по максимуму"
Bitrix Framework - полезные материалы
- Академия 1С-Битрикс
- Центр поддержки разработчиков- Сертификация разработчиков
- Документация: старое ядро
- Документация: новое ядро
- Сообщество, живая лента
- Форумы
- Telegram чат для разработчиков @bitrixfordevelopers
- VK группа для разработчиков /bitrix_for_developers
Bitrix Framework - уверенный уровень
- Жизненный цикл страницы
- Авторизация / права доступа- Шаблон сайта
- ЧПУ
- Комплексный компонент / Эрмитаж
- Модули / События
- Агенты
- Интеграция с 1С
- ORM / Кеш
- Инфоблоки / HL-инфоблоки
- Каталог / умный фильтр / корзина / заказы
- Старое и новое API
- Знать ядро наизусть
- Не писать в ТП, а разобраться самому
Продуктивный кодинг
- Локальная копия проекта, рабочая (Open Server, mamp etc)- IDE - лучше PhpStorm
- xDebug вместо print_r(), var_dump()
Как повысить качество
- Архитектура приложения- Разделить на слои
- Отделить ядро от клиентского кода
- Описать предметную область, классы - контракт
- ООП
- Паттерны проектирования - GRASP, SOLID, GoF
- Автозагрузка классов PSR-4
- Никакой магии
- Статический анализ кода - IDE должна понимать ваш код
- TDD - сначала тесты и клиентский код
- Отделить backend и frontend
- KISS, DRY, YAGNI
Миграции
- Всегда есть несколько площадок с проектом- Изменение структуры БД без админки
- Изменение контента - синхронизация
- Логика в коде привязана к структуре БД
- Проблема: новый код, старая БД - не работает
- Миграция - это php-скрипт
- Создать инфоблок / группу и т.д. через Bitrix API
- Управляет миграциями отдельный модуль
- Скрипты хранятся в системе контроля версий
- Всем понятно, какие были изменения
- Легко обновить БД и автоматизировать
Как повысиль качество
- Предупреждение и отлов багов
- Строгий режим интерпретатора - error_reporting (E_ALL)- Логи
- Использовать готовый код - composer
- Система контроля версий - git
- Автотесты, регулярный запуск - phpunit, selenium
- Ревью кода - pull request в master
- Парное программирование
Отправьте заявку нашим специалистам