SlideShare uma empresa Scribd logo
1 de 67
1 -С Битрикс
Я подумал, как мне привязать
своё выступление к
технологиям?
А потом понял: я же в этом что-
то оказывается понимаю
Но я джуниор!
Я пять лет занимаюсь веб-
разработкой, но джуниор!
Я руквожу тремя с половиной
людьми.
Они молодцы.
А я джуниор.
Новый тренд – full stack web-developer
Или веб-многознайка
Но причем тут битрикс?
Специализация удел насекомых © Хайнлайн
Мой путь в веб
Первый заказ
Успех
Проект
Зачем нужен Битрикс?
ЗП не как у php-макаки
Зачем нужен Битрикс?
ЗП не как у php-макаки
Много проектов, всем нужна поддержка (как минимум)
Зачем нужен Битрикс?
ЗП не как у php-макаки
Много проектов, всем нужна поддержка (как минимум)
Безбедная старость (абсолютный лидер любого топа)
Сравнение топа коробочных
http://habrahabr.ru/post/231097/
Зачем нужен Битрикс?
ЗП не как у php-макаки
Много проектов, всем нужна поддержка (как минимум)
Безбедная старость (абсолютный лидер любого топа)
40% скидка для кого-хочешь
Зачем нужен Битрикс?
ЗП не как у php-макаки
Много проектов, всем нужна поддержка (как минимум)
Безбедная старость (абсолютный лидер любого топа)
40% скидка для кого-хочешь
Необходимый и достаточный набор компонентов из коробки
Зачем нужен Битрикс?
ЗП не как у php-макаки
Много проектов, всем нужна поддержка (как минимум)
Безбедная старость (абсолютный лидер любого топа)
40% скидка для кого-хочешь
Необходимый и достаточный набор компонентов из коробки
CRM 24
• Проект делался год
• Когда я пришел не было никакой документации
• Это была вандер-вафля из информационных систем
• Основная система с которой шла интеграция
написана инвалидами на Perl (лихие 90е, мы
выживали как могли)
• Не использовалась система контроля версий
• Базовый класс на 32кб, который наследовался
такими же дочерними классами
• В качестве CMS использован 1С-Битрикс
• И масса других приятностей
Но самое неприятное в том что…
Я не знал битрикса
Хотя нет. Самое страшное было в том, что…
Никто в команде не знал битрикса.
Как нам достался этот чудесный проект?
Как известно из бизнес книг нужно ставить в себя в зону дискомфорта
Мой путь в битрикс
Битрикс – это тот максимум дискомфорта,
что вы сможете вытерпеть
Я думал что битрикс похож на остальные CMS
Потом я понял: его же написали в России!
Учебный проект
Проблемы с которыми я столкнулся на тестовом проекте
1.Зависимость SKU (Stock Keeping Unit (идентификатор товарной позиции))
от картинки
Проблемы с которыми я столкнулся на тестовом проекте
1.Зависимость SKU от картинки
2.Зависимоть SKU в каталоге от верстки
Проблемы с которыми я столкнулся на тестовом проекте
1.Зависимость SKU от картинки
2.Зависимоть SKU в каталоге от верстки
3.Они написали свой JS фреймверк BX:JS
Проблемы с которыми я столкнулся на тестовом проекте
1.Зависимость SKU от картинки
2.Зависимоть SKU в каталоге от верстки
3.Они написали свой JS фреймверк BX:JS
4.tfoot в таблицу убивает функционал корзины
Проблемы с которыми я столкнулся на тестовом проекте
1.Зависимость SKU от картинки
2.Зависимоть SKU в каталоге от верстки
3.Они написали свой JS фреймверк BX:JS
4.tfoot в таблицу убивает функционал корзины
5.button в корзину требует переписывания 100500 строчек кода. Проще
сделать <a>.
Проблемы с которыми я столкнулся на тестовом проекте
1.Зависимость SKU от картинки
2.Зависимоть SKU в каталоге от верстки
3.Они написали свой JS фреймверк BX:JS
4.tfoot в таблицу убивает функционал корзины
5.button в корзину требует переписывания 100500 строчек кода. Проще
сделать <a>.
6.Подписка на товары не реализована, хотя заявлена
Проблемы с которыми я столкнулся на тестовом проекте
•Зависимость SKU от картинки
•Зависимоть SKU в каталоге от верстки
•Они написали свой JS фреймверк BX:JS
•tfoot в таблицу убивает функционал корзины
•button в корзину требует переписывания 100500 строчек кода. Проще
сделать <a>.
•Подписка на товары не реализована, хотя заявлена
•Все что связано с JS крайне трудно читаемо. Простыни кода, нет единой
метрики кода: видно что каждый писал так как любит. Сначал используют +=,
потом отбивают "", потом опять +=
Проблемы с которыми я столкнулся на тестовом проекте
1.Зависимость SKU от картинки
2.Зависимоть SKU в каталоге от верстки
3.Они написали свой JS фреймверк BX:JS
4.tfoot в таблицу убивает функционал корзины
5.button в корзину требует переписывания 100500 строчек кода. Проще
сделать <a>.
6.Подписка на товары не реализована, хотя заявлена
7.Все что связано с JS крайне трудно читаемо. Простыни кода, нет единой
метрики кода: видно что каждый писал так как любит. Сначал используют +=,
потом отбивают "", потом опять +=
8.Порой, чтобы не рушить супер-связанную логику, проще сделать
невидимым какую-то штуку, чем искать зависимости.
Проблемы с которыми я столкнулся на тестовом проекте
1.Зависимость SKU от картинки
2.Зависимоть SKU в каталоге от верстки
3.Они написали свой JS фреймверк BX:JS
4.tfoot в таблицу убивает функционал корзины
5.button в корзину требует переписывания 100500 строчек кода. Проще
сделать <a>.
6.Подписка на товары не реализована, хотя заявлена
7.Все что связано с JS крайне трудно читаемо. Простыни кода, нет единой
метрики кода: видно что каждый писал так как любит. Сначал используют +=,
потом отбивают "", потом опять +=
8.Порой, чтобы не рушить супер-связанную логику, проще сделать
невидимым какую-то штуку, чем искать зависимости
9.SVG в качестве картинки для пункта меню — нельзя. Только png
Проблемы с которыми я столкнулся на тестовом проекте
1.Зависимость SKU от картинки
2.Зависимоть SKU в каталоге от верстки
3.Они написали свой JS фреймверк BX:JS
4.tfoot в таблицу убивает функционал корзины
5.button в корзину требует переписывания 100500 строчек кода. Проще
сделать <a>.
6.Подписка на товары не реализована, хотя заявлена
7.Все что связано с JS крайне трудно читаемо. Простыни кода, нет единой
метрики кода: видно что каждый писал так как любит. Сначал используют +=,
потом отбивают "", потом опять +=
8.Порой, чтобы не рушить супер-связанную логику, проще сделать
невидимым какую-то штуку, чем искать зависимости
9.SVG в качестве картинки для пункта меню — нельзя. Только png
10.??????
11.PROFIT: Я понял что уже достаточно познал, и можно руководить.
Как начать?
Программист говорит: “ща все будет” и начинает делать что привык. А к чужим
системам привык он применять лом, гвоздодер и кувалду.
• Взять проект и начать пилить его.
• Просмотреть видео на ютубе. За пару часов придет понимание
этой CMS
• http://www.youtube.com/watch?v=JioES6mkKQU
• http://camouf.ru/blog-note/bx_site_created/
• Потом сесть за проект. Сделать плохо. Понять вопросы. Перейти
к документации.
• Разработчик Bitrix Framework
• Крайне не однородная. То легко то капец.
• Администратор. Модули.
• Администратор. Бизнес.
• Сесть за проект. Понять в чем вопрос. Загуглить его. Почитать 20
страниц форума. Реализовать задачу.
• Написать в техподдержку. Ответ в течении 5 часов.
• Повторить.
API — модель (M)
Шаблон — представление (V)
Компонент – Контроллер (C)
Модуль - это модель данных и API для доступа к этим данным. Статические
методы классов модуля могут вызываться в компонентах, шаблонах, других
модулях.
Компонент - это контроллер и представление. Компонент с помощью API
одного или нескольких модулей манипулирует данными. Шаблон компонента
(представление) выводит данные на страницу.
Комплексный и обычный компонент
Контроллер обычных компонентов. Содержит в себе массив
компонентов. Комплексный – для разделов сайта. Обычный – для
страницы.
Процесс работы на пальцах
Вы создаете копию шаблона компонента. Называете её как вам нравится.
Дальше вся работа идет с этой копией. Это обеспечивает безболезненное
обновление.
Все шаблоны храните в /local/templates/.default/components. По умолчанию
Они пойдут в /bitrix/templates/<имя шаблона сайта>/components.
Каждый шаблон имеет структуру
•Template.php – представление. То что отвечает за оформление страницы.
•Style.css – стили шаблона.
•Прочая ерунда, которую вы редко используете.
Опционально:
•Script.js – битриксовский js код. Придется с ним изрядно попотеть.
$arParams – то что задали
компоненту перед
вызовом.
$arResult – то что получили,
отработав код.
Result_modifier.php –
вызывается перед
подключением шаблона.
Component_epilog.php –
подключается после
исполнения шаблона.
В реальности никто никого не ограничивает и не регламентирует.
Следствие: в шаблонах много бизнес-логики.
В БД создает 4 таблицы:
•типы объектов;
•экземпляры объектов;
•свойства объектов;
•значения свойств объектов.
Каталог
Каталог парфюмерии
Аромат
Лаванда
Плюсы
•общая структура данных для любого
проекта
•возможность многократно менять
типы данных для полей без
уничтожения самих данных
Минусы
•Производительность
•Непрозрачный доступ к данным
Могут наследовать свойства, связываться с другими инфоблоками по свойств
или иметь торговые предложения (у одного товара много разных вариаций с
объемом или цветом).
Инфоблок
Модуль, позволяющий каталогизировать и управлять различными
типами (блоками) однородной информации.
Процесс работы на пальцах
Вы создаете инфоблок. Заполняете требуемые свойства (вес, цена, что
угодно). Делаете наследование или связи. Указываете какие поля с чем
связаны.
Через админку добавляете нужный компонент для работы с этим
инфоблоком (как понять какой нужны? Читаете, или выставляете «список
новостей». В 90% это нужный компонент.
Копируете шаблон компонента. Затем копируете код который создался.
Добавляете его в шаблон.
Правите компонент.
http://habrahabr.ru/post/189630/
http://habrahabr.ru/post/219569/
Опыт колег
Удачная модель ветвления
http://habrahabr.ru/post/106912/
Всё изменяемое можно
положить в папку /local/ и
спокойно работать с ней.
bitBucket
gitLab
gitHub
Столкнулись с тестированием. После недели ручного тестирования
Пришли к автоматизации функционального тестирования.
http://codeception.com/
phpCi
Что с
проектом?
Что я узнал?
Вопросы?
• vk.com/dr_dremon
• dmitry@polisadov.ru

Mais conteúdo relacionado

Mais procurados

Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Ontico
 
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
Омские ИТ-субботники
 
Сборка проектов с помощью ENB
Сборка проектов с помощью ENBСборка проектов с помощью ENB
Сборка проектов с помощью ENB
Aleksandr Boichenko
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Yandex
 
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Dmytro Zharii
 

Mais procurados (20)

Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.
 
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
 
Chef @DevWeb
Chef @DevWebChef @DevWeb
Chef @DevWeb
 
Петренко Дмитрий - Автоматизация создания сеток Web 2.0
Петренко Дмитрий - Автоматизация создания сеток Web 2.0Петренко Дмитрий - Автоматизация создания сеток Web 2.0
Петренко Дмитрий - Автоматизация создания сеток Web 2.0
 
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
 
Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)
 
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
SWD Page Recorder: Записывает PageObject'ы со скоростью ниндзя SeleniumCamp 2014
 
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
Игры с виртуализацией в JavaScript, или как я переписал эмулятор, Евгений Пот...
 
Project
ProjectProject
Project
 
Joker2014
Joker2014Joker2014
Joker2014
 
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компаний
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компанийАлександр Баумгертнер — Преимущества БЭМ для небольших проектов и компаний
Александр Баумгертнер — Преимущества БЭМ для небольших проектов и компаний
 
Сборка проектов с помощью ENB
Сборка проектов с помощью ENBСборка проектов с помощью ENB
Сборка проектов с помощью ENB
 
Обучение фронтенд разработке
Обучение фронтенд разработкеОбучение фронтенд разработке
Обучение фронтенд разработке
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Java под нагр...
 
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живыхКурс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
 
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
Мастер-класс: Разрабатываем сайт с нуля на полном стеке БЭМ-технологий — Жека...
 
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
 
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
 
Защита
ЗащитаЗащита
Защита
 

Destaque

Default-Forecasting Project
Default-Forecasting ProjectDefault-Forecasting Project
Default-Forecasting Project
Joey Nichols
 
ネットワーク運用自動化お悩み相談会
ネットワーク運用自動化お悩み相談会ネットワーク運用自動化お悩み相談会
ネットワーク運用自動化お悩み相談会
Yuya Rin
 
AngularJS Security: defend your Single Page Application
AngularJS Security: defend your Single Page Application AngularJS Security: defend your Single Page Application
AngularJS Security: defend your Single Page Application
Carlo Bonamico
 

Destaque (20)

Arquitetura Pedagógica
Arquitetura PedagógicaArquitetura Pedagógica
Arquitetura Pedagógica
 
Default-Forecasting Project
Default-Forecasting ProjectDefault-Forecasting Project
Default-Forecasting Project
 
Государственная поддержка НКО в городе Москве
Государственная поддержка НКО в городе МосквеГосударственная поддержка НКО в городе Москве
Государственная поддержка НКО в городе Москве
 
G3 Summit 2016 - Dockerize your Grails!
G3 Summit 2016 - Dockerize your Grails!G3 Summit 2016 - Dockerize your Grails!
G3 Summit 2016 - Dockerize your Grails!
 
Configuration for Java EE and the Cloud
Configuration for Java EE and the CloudConfiguration for Java EE and the Cloud
Configuration for Java EE and the Cloud
 
Imperialismo (1870-1914)
Imperialismo (1870-1914)Imperialismo (1870-1914)
Imperialismo (1870-1914)
 
ネットワーク運用自動化お悩み相談会
ネットワーク運用自動化お悩み相談会ネットワーク運用自動化お悩み相談会
ネットワーク運用自動化お悩み相談会
 
2nd VRU RAC Meeting: Strategic Directions and Governance
2nd VRU RAC Meeting: Strategic Directions and Governance2nd VRU RAC Meeting: Strategic Directions and Governance
2nd VRU RAC Meeting: Strategic Directions and Governance
 
Innovation, Autonomy and Accountability
Innovation, Autonomy and AccountabilityInnovation, Autonomy and Accountability
Innovation, Autonomy and Accountability
 
Cloud Based Rights Management with Azure RMS
Cloud Based Rights Management with Azure RMSCloud Based Rights Management with Azure RMS
Cloud Based Rights Management with Azure RMS
 
JOSUG Meetup 28th Heat 101
JOSUG Meetup 28th Heat 101JOSUG Meetup 28th Heat 101
JOSUG Meetup 28th Heat 101
 
Organization and Architecture
Organization and ArchitectureOrganization and Architecture
Organization and Architecture
 
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...
Massive Lift & Shift Migrations to Microsoft Azure with the Microsoft Migrati...
 
OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)
 
финансовый рынок 01.10.2015
финансовый рынок 01.10.2015финансовый рынок 01.10.2015
финансовый рынок 01.10.2015
 
финансовый рынок 01_04_2016
финансовый рынок 01_04_2016финансовый рынок 01_04_2016
финансовый рынок 01_04_2016
 
новый порядок расчета налога на имущество 21 11-2016г
новый порядок расчета налога на имущество 21 11-2016гновый порядок расчета налога на имущество 21 11-2016г
новый порядок расчета налога на имущество 21 11-2016г
 
AngularJS Security: defend your Single Page Application
AngularJS Security: defend your Single Page Application AngularJS Security: defend your Single Page Application
AngularJS Security: defend your Single Page Application
 
Libro de Seguridad en Redes
Libro de Seguridad en RedesLibro de Seguridad en Redes
Libro de Seguridad en Redes
 
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry PiServicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
 

Semelhante a Презентация: 1С-Bitrix — как начать

SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
HappyDev
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Ontico
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей Шетухин
Ontico
 
Cравнение средств разработки RIA приложений используя Flash платформу
Cравнение средств разработки RIA приложений используя Flash платформуCравнение средств разработки RIA приложений используя Flash платформу
Cравнение средств разработки RIA приложений используя Flash платформу
ilja.panin
 

Semelhante a Презентация: 1С-Bitrix — как начать (20)

SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектов
 
презентация.1
презентация.1презентация.1
презентация.1
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
 
От энтузиаста к веб разработчику
От энтузиаста к веб разработчикуОт энтузиаста к веб разработчику
От энтузиаста к веб разработчику
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
 
Setup1
Setup1Setup1
Setup1
 
"Портирование Web SDK с JS на TS" Петров Григорий, Voximplant
"Портирование Web SDK с JS на TS" Петров Григорий, Voximplant"Портирование Web SDK с JS на TS" Петров Григорий, Voximplant
"Портирование Web SDK с JS на TS" Петров Григорий, Voximplant
 
D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"
 
Viacheslav Eremin about DOT NET (rus lang)
Viacheslav Eremin about DOT NET (rus lang)Viacheslav Eremin about DOT NET (rus lang)
Viacheslav Eremin about DOT NET (rus lang)
 
Invisible
InvisibleInvisible
Invisible
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей Шетухин
 
Tech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест Джоэла
 
Проходим тест Джоэла
Проходим тест ДжоэлаПроходим тест Джоэла
Проходим тест Джоэла
 
Trening modul2-webinar14
Trening modul2-webinar14Trening modul2-webinar14
Trening modul2-webinar14
 
Опыт разработки SEO софта на примере FastTrust и ComparseR
Опыт разработки SEO софта на примере FastTrust и ComparseRОпыт разработки SEO софта на примере FastTrust и ComparseR
Опыт разработки SEO софта на примере FastTrust и ComparseR
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструменты
 
Cравнение средств разработки RIA приложений используя Flash платформу
Cравнение средств разработки RIA приложений используя Flash платформуCравнение средств разработки RIA приложений используя Flash платформу
Cравнение средств разработки RIA приложений используя Flash платформу
 

Презентация: 1С-Bitrix — как начать

  • 2.
  • 3. Я подумал, как мне привязать своё выступление к технологиям? А потом понял: я же в этом что- то оказывается понимаю Но я джуниор! Я пять лет занимаюсь веб- разработкой, но джуниор! Я руквожу тремя с половиной людьми. Они молодцы. А я джуниор.
  • 4. Новый тренд – full stack web-developer Или веб-многознайка Но причем тут битрикс? Специализация удел насекомых © Хайнлайн
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 22. Зачем нужен Битрикс? ЗП не как у php-макаки
  • 23. Зачем нужен Битрикс? ЗП не как у php-макаки Много проектов, всем нужна поддержка (как минимум)
  • 24. Зачем нужен Битрикс? ЗП не как у php-макаки Много проектов, всем нужна поддержка (как минимум) Безбедная старость (абсолютный лидер любого топа)
  • 26. Зачем нужен Битрикс? ЗП не как у php-макаки Много проектов, всем нужна поддержка (как минимум) Безбедная старость (абсолютный лидер любого топа) 40% скидка для кого-хочешь
  • 27. Зачем нужен Битрикс? ЗП не как у php-макаки Много проектов, всем нужна поддержка (как минимум) Безбедная старость (абсолютный лидер любого топа) 40% скидка для кого-хочешь Необходимый и достаточный набор компонентов из коробки
  • 28. Зачем нужен Битрикс? ЗП не как у php-макаки Много проектов, всем нужна поддержка (как минимум) Безбедная старость (абсолютный лидер любого топа) 40% скидка для кого-хочешь Необходимый и достаточный набор компонентов из коробки CRM 24
  • 29. • Проект делался год • Когда я пришел не было никакой документации • Это была вандер-вафля из информационных систем • Основная система с которой шла интеграция написана инвалидами на Perl (лихие 90е, мы выживали как могли) • Не использовалась система контроля версий • Базовый класс на 32кб, который наследовался такими же дочерними классами • В качестве CMS использован 1С-Битрикс • И масса других приятностей
  • 30. Но самое неприятное в том что… Я не знал битрикса
  • 31. Хотя нет. Самое страшное было в том, что… Никто в команде не знал битрикса.
  • 32. Как нам достался этот чудесный проект?
  • 33.
  • 34. Как известно из бизнес книг нужно ставить в себя в зону дискомфорта Мой путь в битрикс
  • 35. Битрикс – это тот максимум дискомфорта, что вы сможете вытерпеть
  • 36. Я думал что битрикс похож на остальные CMS
  • 37. Потом я понял: его же написали в России!
  • 39. Проблемы с которыми я столкнулся на тестовом проекте 1.Зависимость SKU (Stock Keeping Unit (идентификатор товарной позиции)) от картинки
  • 40. Проблемы с которыми я столкнулся на тестовом проекте 1.Зависимость SKU от картинки 2.Зависимоть SKU в каталоге от верстки
  • 41. Проблемы с которыми я столкнулся на тестовом проекте 1.Зависимость SKU от картинки 2.Зависимоть SKU в каталоге от верстки 3.Они написали свой JS фреймверк BX:JS
  • 42. Проблемы с которыми я столкнулся на тестовом проекте 1.Зависимость SKU от картинки 2.Зависимоть SKU в каталоге от верстки 3.Они написали свой JS фреймверк BX:JS 4.tfoot в таблицу убивает функционал корзины
  • 43. Проблемы с которыми я столкнулся на тестовом проекте 1.Зависимость SKU от картинки 2.Зависимоть SKU в каталоге от верстки 3.Они написали свой JS фреймверк BX:JS 4.tfoot в таблицу убивает функционал корзины 5.button в корзину требует переписывания 100500 строчек кода. Проще сделать <a>.
  • 44. Проблемы с которыми я столкнулся на тестовом проекте 1.Зависимость SKU от картинки 2.Зависимоть SKU в каталоге от верстки 3.Они написали свой JS фреймверк BX:JS 4.tfoot в таблицу убивает функционал корзины 5.button в корзину требует переписывания 100500 строчек кода. Проще сделать <a>. 6.Подписка на товары не реализована, хотя заявлена
  • 45. Проблемы с которыми я столкнулся на тестовом проекте •Зависимость SKU от картинки •Зависимоть SKU в каталоге от верстки •Они написали свой JS фреймверк BX:JS •tfoot в таблицу убивает функционал корзины •button в корзину требует переписывания 100500 строчек кода. Проще сделать <a>. •Подписка на товары не реализована, хотя заявлена •Все что связано с JS крайне трудно читаемо. Простыни кода, нет единой метрики кода: видно что каждый писал так как любит. Сначал используют +=, потом отбивают "", потом опять +=
  • 46. Проблемы с которыми я столкнулся на тестовом проекте 1.Зависимость SKU от картинки 2.Зависимоть SKU в каталоге от верстки 3.Они написали свой JS фреймверк BX:JS 4.tfoot в таблицу убивает функционал корзины 5.button в корзину требует переписывания 100500 строчек кода. Проще сделать <a>. 6.Подписка на товары не реализована, хотя заявлена 7.Все что связано с JS крайне трудно читаемо. Простыни кода, нет единой метрики кода: видно что каждый писал так как любит. Сначал используют +=, потом отбивают "", потом опять += 8.Порой, чтобы не рушить супер-связанную логику, проще сделать невидимым какую-то штуку, чем искать зависимости.
  • 47. Проблемы с которыми я столкнулся на тестовом проекте 1.Зависимость SKU от картинки 2.Зависимоть SKU в каталоге от верстки 3.Они написали свой JS фреймверк BX:JS 4.tfoot в таблицу убивает функционал корзины 5.button в корзину требует переписывания 100500 строчек кода. Проще сделать <a>. 6.Подписка на товары не реализована, хотя заявлена 7.Все что связано с JS крайне трудно читаемо. Простыни кода, нет единой метрики кода: видно что каждый писал так как любит. Сначал используют +=, потом отбивают "", потом опять += 8.Порой, чтобы не рушить супер-связанную логику, проще сделать невидимым какую-то штуку, чем искать зависимости 9.SVG в качестве картинки для пункта меню — нельзя. Только png
  • 48. Проблемы с которыми я столкнулся на тестовом проекте 1.Зависимость SKU от картинки 2.Зависимоть SKU в каталоге от верстки 3.Они написали свой JS фреймверк BX:JS 4.tfoot в таблицу убивает функционал корзины 5.button в корзину требует переписывания 100500 строчек кода. Проще сделать <a>. 6.Подписка на товары не реализована, хотя заявлена 7.Все что связано с JS крайне трудно читаемо. Простыни кода, нет единой метрики кода: видно что каждый писал так как любит. Сначал используют +=, потом отбивают "", потом опять += 8.Порой, чтобы не рушить супер-связанную логику, проще сделать невидимым какую-то штуку, чем искать зависимости 9.SVG в качестве картинки для пункта меню — нельзя. Только png 10.?????? 11.PROFIT: Я понял что уже достаточно познал, и можно руководить.
  • 49.
  • 51. Программист говорит: “ща все будет” и начинает делать что привык. А к чужим системам привык он применять лом, гвоздодер и кувалду.
  • 52. • Взять проект и начать пилить его. • Просмотреть видео на ютубе. За пару часов придет понимание этой CMS • http://www.youtube.com/watch?v=JioES6mkKQU • http://camouf.ru/blog-note/bx_site_created/ • Потом сесть за проект. Сделать плохо. Понять вопросы. Перейти к документации. • Разработчик Bitrix Framework • Крайне не однородная. То легко то капец. • Администратор. Модули. • Администратор. Бизнес. • Сесть за проект. Понять в чем вопрос. Загуглить его. Почитать 20 страниц форума. Реализовать задачу. • Написать в техподдержку. Ответ в течении 5 часов. • Повторить.
  • 53. API — модель (M) Шаблон — представление (V) Компонент – Контроллер (C) Модуль - это модель данных и API для доступа к этим данным. Статические методы классов модуля могут вызываться в компонентах, шаблонах, других модулях. Компонент - это контроллер и представление. Компонент с помощью API одного или нескольких модулей манипулирует данными. Шаблон компонента (представление) выводит данные на страницу.
  • 54. Комплексный и обычный компонент Контроллер обычных компонентов. Содержит в себе массив компонентов. Комплексный – для разделов сайта. Обычный – для страницы.
  • 55. Процесс работы на пальцах Вы создаете копию шаблона компонента. Называете её как вам нравится. Дальше вся работа идет с этой копией. Это обеспечивает безболезненное обновление. Все шаблоны храните в /local/templates/.default/components. По умолчанию Они пойдут в /bitrix/templates/<имя шаблона сайта>/components. Каждый шаблон имеет структуру •Template.php – представление. То что отвечает за оформление страницы. •Style.css – стили шаблона. •Прочая ерунда, которую вы редко используете. Опционально: •Script.js – битриксовский js код. Придется с ним изрядно попотеть.
  • 56. $arParams – то что задали компоненту перед вызовом. $arResult – то что получили, отработав код. Result_modifier.php – вызывается перед подключением шаблона. Component_epilog.php – подключается после исполнения шаблона.
  • 57. В реальности никто никого не ограничивает и не регламентирует. Следствие: в шаблонах много бизнес-логики.
  • 58. В БД создает 4 таблицы: •типы объектов; •экземпляры объектов; •свойства объектов; •значения свойств объектов. Каталог Каталог парфюмерии Аромат Лаванда Плюсы •общая структура данных для любого проекта •возможность многократно менять типы данных для полей без уничтожения самих данных Минусы •Производительность •Непрозрачный доступ к данным Могут наследовать свойства, связываться с другими инфоблоками по свойств или иметь торговые предложения (у одного товара много разных вариаций с объемом или цветом). Инфоблок Модуль, позволяющий каталогизировать и управлять различными типами (блоками) однородной информации.
  • 59. Процесс работы на пальцах Вы создаете инфоблок. Заполняете требуемые свойства (вес, цена, что угодно). Делаете наследование или связи. Указываете какие поля с чем связаны. Через админку добавляете нужный компонент для работы с этим инфоблоком (как понять какой нужны? Читаете, или выставляете «список новостей». В 90% это нужный компонент. Копируете шаблон компонента. Затем копируете код который создался. Добавляете его в шаблон. Правите компонент.
  • 60. http://habrahabr.ru/post/189630/ http://habrahabr.ru/post/219569/ Опыт колег Удачная модель ветвления http://habrahabr.ru/post/106912/ Всё изменяемое можно положить в папку /local/ и спокойно работать с ней.
  • 62. Столкнулись с тестированием. После недели ручного тестирования Пришли к автоматизации функционального тестирования.
  • 64. phpCi