Стать программистом:

- начать обучение с языков 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
- Парное программирование
(0)
Отправьте заявку нашим специалистам

Начните проект сейчас

Оставить заявку