Презентация: 1С-Bitrix — как начать
-
Upload
dmitriy-polisadov -
Category
Business
-
view
995 -
download
2
Transcript of Презентация: 1С-Bitrix — как начать
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:JS4.tfoot в таблицу убивает функционал корзины
Проблемы с которыми я столкнулся на тестовом проекте1.Зависимость SKU от картинки2.Зависимоть SKU в каталоге от верстки3.Они написали свой JS фреймверк BX:JS4.tfoot в таблицу убивает функционал корзины5.button в корзину требует переписывания 100500 строчек кода. Проще сделать <a>.
Проблемы с которыми я столкнулся на тестовом проекте1.Зависимость SKU от картинки2.Зависимоть SKU в каталоге от верстки3.Они написали свой JS фреймверк BX:JS4.tfoot в таблицу убивает функционал корзины5.button в корзину требует переписывания 100500 строчек кода. Проще сделать <a>.6.Подписка на товары не реализована, хотя заявлена
Проблемы с которыми я столкнулся на тестовом проекте•Зависимость SKU от картинки•Зависимоть SKU в каталоге от верстки•Они написали свой JS фреймверк BX:JS•tfoot в таблицу убивает функционал корзины•button в корзину требует переписывания 100500 строчек кода. Проще сделать <a>.•Подписка на товары не реализована, хотя заявлена•Все что связано с JS крайне трудно читаемо. Простыни кода, нет единой метрики кода: видно что каждый писал так как любит. Сначал используют +=, потом отбивают "\", потом опять +=
Проблемы с которыми я столкнулся на тестовом проекте1.Зависимость SKU от картинки2.Зависимоть SKU в каталоге от верстки3.Они написали свой JS фреймверк BX:JS4.tfoot в таблицу убивает функционал корзины5.button в корзину требует переписывания 100500 строчек кода. Проще сделать <a>.6.Подписка на товары не реализована, хотя заявлена7.Все что связано с JS крайне трудно читаемо. Простыни кода, нет единой метрики кода: видно что каждый писал так как любит. Сначал используют +=, потом отбивают "\", потом опять +=8.Порой, чтобы не рушить супер-связанную логику, проще сделать невидимым какую-то штуку, чем искать зависимости.
Проблемы с которыми я столкнулся на тестовом проекте1.Зависимость SKU от картинки2.Зависимоть SKU в каталоге от верстки3.Они написали свой JS фреймверк BX:JS4.tfoot в таблицу убивает функционал корзины5.button в корзину требует переписывания 100500 строчек кода. Проще сделать <a>.6.Подписка на товары не реализована, хотя заявлена7.Все что связано с JS крайне трудно читаемо. Простыни кода, нет единой метрики кода: видно что каждый писал так как любит. Сначал используют +=, потом отбивают "\", потом опять +=8.Порой, чтобы не рушить супер-связанную логику, проще сделать невидимым какую-то штуку, чем искать зависимости9.SVG в качестве картинки для пункта меню — нельзя. Только png
Проблемы с которыми я столкнулся на тестовом проекте1.Зависимость SKU от картинки2.Зависимоть SKU в каталоге от верстки3.Они написали свой JS фреймверк BX:JS4.tfoot в таблицу убивает функционал корзины5.button в корзину требует переписывания 100500 строчек кода. Проще сделать <a>.6.Подписка на товары не реализована, хотя заявлена7.Все что связано с JS крайне трудно читаемо. Простыни кода, нет единой метрики кода: видно что каждый писал так как любит. Сначал используют +=, потом отбивают "\", потом опять +=8.Порой, чтобы не рушить супер-связанную логику, проще сделать невидимым какую-то штуку, чем искать зависимости9.SVG в качестве картинки для пункта меню — нельзя. Только png10.??????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• [email protected]