Много кто про рабочий опыт писал, да и я с ними согласен. Но хотелось бы про обучении свои пять копеек вставить.
По сути дела, курсы и книги сейчас существуют в таком количестве, что разобраться в этой каше попросту невозможно. Более того, качество сомнительное - часть книг представляют собой просто выжимку из документации, часть курсов просто дают базу-базу по тем же книгам, а потом натаскивают на прохождение собеседований. Это ж могила.
Все больше убеждаюсь в том, что нынешнее развитие в IT - это подвешенный язык и умение случайно оказаться в нужном месте в нужное время. И что-то услышать. Вон, буквально вчера в лифте ехал с какими-то ребятами, которые матом жаловались на то, что препод в универе не рассказывает про паттерны и просит покупать какой-то его авторский курс. Подумал, что мне их жалко, да влез в разговор и посоветовал почитать Фаулера. Если им это поможет - значит им просто повезло оказаться с незнакомым дядькой в лифте.
А вообще, автор молодец. Старается, анализирует, делает выводы и стремится к своей цели. Думаю, все получится. Успехов!
Приятно видеть, что разработчики перестали бояться Б24 и начинают его кастомизировать и рассказывать о своем опыте. Долгое время никто публично не хотел лезть в свои сущности и списки.
Ну хорошо, Битрикс, а можно в другой раз писать более адекватные примеры? И, например, пояснять, что именно может сломаться, как вас будут ломать...
И да, самое главное, указывать современные способы работы с вашим фреймворком, а не устаревшие глупости.
Вот давайте по порядку:
Защита от XSS через два разных способа, которые под капотом ссылаются на одно и то же. Зачем? Достаточно и последнего, через HtmlFilter.
Пример XSS с одинарными кавычками работает так же, как и с двойными. Можно было разве что упомянуть, что стандарты HTML рекомендуют использовать двойные кавычки, но это вне рамок данной статьи.
Вы упоминаете про прямые запросы к БД, в то время как в своей же документации говорите, что это "нежелательно". Ну так не учите людей неправильному, global $DB должен быть позабыт как страшный сон.
Прошу вас, удалите из статьи все прямые запросы к своим таблицам. Особенно к b_user. Люди правда так делают, читая это.
Зачем в примерах ORM-запросов вы использете DM-классы из Internals? Опять таки, люди посмотрят и будут делать так же.
Половину статьи рекомендую заменить на фразу "не доверяйте пользовательскому вводу, валидируйте его", вторую половину статьи на "все, что выводится на экран из БД, должно быть экранировано". Между этими двумя частями напишите "используйте ORM".
Все, вы восхитительно!
Но вообще, конечно, спасибо, что делаете хоть что-то.
Вы не используете созданный вами генератор, поэтому память была занята только ресурсами, полученными из БД. В первом примере Вы записываете все данные собранных элементов инфоблока в массив.
foreach (getProperties($elements) as $element) {
$items[] = $element;
}
После добавления данного кода во второй пример можно будет сказать, что примеры идентичны. Предполагаю, что "проблему" с потреблением памяти генератор не решит.
Много кто про рабочий опыт писал, да и я с ними согласен. Но хотелось бы про обучении свои пять копеек вставить.
По сути дела, курсы и книги сейчас существуют в таком количестве, что разобраться в этой каше попросту невозможно. Более того, качество сомнительное - часть книг представляют собой просто выжимку из документации, часть курсов просто дают базу-базу по тем же книгам, а потом натаскивают на прохождение собеседований. Это ж могила.
Все больше убеждаюсь в том, что нынешнее развитие в IT - это подвешенный язык и умение случайно оказаться в нужном месте в нужное время. И что-то услышать.
Вон, буквально вчера в лифте ехал с какими-то ребятами, которые матом жаловались на то, что препод в универе не рассказывает про паттерны и просит покупать какой-то его авторский курс. Подумал, что мне их жалко, да влез в разговор и посоветовал почитать Фаулера.
Если им это поможет - значит им просто повезло оказаться с незнакомым дядькой в лифте.
А вообще, автор молодец. Старается, анализирует, делает выводы и стремится к своей цели.
Думаю, все получится. Успехов!
Приятно видеть, что разработчики перестали бояться Б24 и начинают его кастомизировать и рассказывать о своем опыте. Долгое время никто публично не хотел лезть в свои сущности и списки.
Рекомендую ознакомиться с последней вышедшей Академией по кастомизации Б24, в которой в том числе рассматриваются практики работы со своими таблицами, использования списков и детальных страниц: https://academy.1c-bitrix.ru/courses/?COURSE_ID=318&LESSON_ID=27694&LESSON_PATH=27688.27694
Коллеги, а поясните ценность статьи и ее "залайканность", с учетом того, что это почти полная копия статьи с вашего же сайта от 2014 года?
См. https://dev.1c-bitrix.ru/community/blogs/vws/looping-event-handlers.php
Ну вы б хоть код поправили, типизацию там, под современные реалии...
Ну хорошо, Битрикс, а можно в другой раз писать более адекватные примеры? И, например, пояснять, что именно может сломаться, как вас будут ломать...
И да, самое главное, указывать современные способы работы с вашим фреймворком, а не устаревшие глупости.
Вот давайте по порядку:
Защита от XSS через два разных способа, которые под капотом ссылаются на одно и то же. Зачем? Достаточно и последнего, через HtmlFilter.
Пример XSS с одинарными кавычками работает так же, как и с двойными. Можно было разве что упомянуть, что стандарты HTML рекомендуют использовать двойные кавычки, но это вне рамок данной статьи.
Вы упоминаете про прямые запросы к БД, в то время как в своей же документации говорите, что это "нежелательно". Ну так не учите людей неправильному, global $DB должен быть позабыт как страшный сон.
Прошу вас, удалите из статьи все прямые запросы к своим таблицам. Особенно к b_user. Люди правда так делают, читая это.
Зачем в примерах ORM-запросов вы использете DM-классы из Internals? Опять таки, люди посмотрят и будут делать так же.
Половину статьи рекомендую заменить на фразу "не доверяйте пользовательскому вводу, валидируйте его", вторую половину статьи на "все, что выводится на экран из БД, должно быть экранировано". Между этими двумя частями напишите "используйте ORM".
Все, вы восхитительно!
Но вообще, конечно, спасибо, что делаете хоть что-то.
Вы не используете созданный вами генератор, поэтому память была занята только ресурсами, полученными из БД. В первом примере Вы записываете все данные собранных элементов инфоблока в массив.
После добавления данного кода во второй пример можно будет сказать, что примеры идентичны. Предполагаю, что "проблему" с потреблением памяти генератор не решит.