Search
Write a publication
Pull to refresh
1
0
Денис Закусило @DVZakusilo

Руководитель ИТ

Send message

а вот gigacode. от сбера встроенный в ИДЕ предлагает совершенно бредовые подсказки, которые в разы страшнее встроенных подсказок от джетбрейнса. По факту там он только мешается, надеюсь, пока.

Я пользуюсь только когда точно знаю какой мне нужен результат и именно "помощника" прошу написать код, где надо его подправив по итогу. Не отдаю на его мнение что и как сделать, а только уменьшаю рутину. Таким образом он просто переносит на строки то что я хочу сделать, а не он за меня пишет.

Ну и, кстати, тут публика довольно специфичные статьи воспринимает.

Если посмотреть в топ читаемого - это новости, там больше всего лайков. Переводы зарубежных публикаций. Не создание авторского контента.

В этих технических статьях, хоть какой-то интерес у малой публики есть, я попробовал, чтобы убедиться, взять хайповую зарубежную публикацию, что подтвердило результат, эта статья набрала самый большой отклик.

Если касаемо, красивого текста, хорошего оформления, создание собственного контента и собственных изображений, была проба https://habr.com/ru/articles/872470/
Она ожиаемо набрала самое большое количество минусов, не смотря на то, что тут все авторское, с вложением большого времени в контент, тк это часть и выжимка из европейского курса по управлению ИТ персоналом, который обошелся мне, в пересчете в 210тр, хотел перенести на русскую публику с разжевыванием нюансов))
Красивое оформление и красивый слог - не всегда рулят.
А текущая статья дает конкретно куски кода с пояснениями для тех, кто конкретно пытается у себя сделать также))

Не за что извиняться, вполне конструктивная критика.
Я не писатель и это мой первый опыт, конструктивная критика - именно то, что нужно.
Эти статьи родились скорее из того, что множество разработчиков, раз из раза приходили с запросами - как структурировать код, понимая, что что-то идет не так и получается хаос.

Скорее так, я написал как умею инструкцию для ребят, кто постоянно этим занимается, но не достиг уровня самостоятельного планирования архитектуры. А делиться с миром - я думаю, кто захочет, тот возьмет))
Критику учту))

В принципе, в начале статьи, мы просто кастомную папку внутри local. и там контроллеры и любые классы могут использовать иерархию какую пожелаете, лишь бы она была на основе psr-4. Если я правильно понял корень проблемы - в init.php

/*****
 * Подключение кастомных классов.
 *****/
try {
    Loader::registerNamespace(
        "MyNameSpace",
        Loader::getDocumentRoot() . "/local/Directory"
    );
} catch (LoaderException $e) {
  echo $e->getMassage();
}

Тогда можно будет любой MyNameSpace/Controllers/ControllerClass.php использовать

Пока да, позиция такая, что нам достался старый проект, который постепенно по кусочку выносим во внешнюю архитектуру, позадачно, с чем работаем - то и выпиливаем.

По поводу взаимодействия с ОРМ.

Есть как хотелось бы: сделать отдельный сервис в инфраструктуре, в котором был бы паттерн адаптер, которому присылаешь SQL или запрос типа GetList. и он сам бы в зависимости от подключенной ОРМ (Bitrix, Eloquent, doctrine) и т д, формировал бы запрос, ну или хотябы прямые sql, которые просто пернаправлялись в соответствующую ормку.

И есть, как есть: сейчас ОРМ жестко завязана на битрикс, тк в init.php ядро подключается, то и битрикс методы доступны, а далее дело техники, лишь бы через ядро D7, что хоть как-то ложится в архитектуру без кучи глобалов и констант. Про этот вариант можно прочитать в прошлой статье

Записки разработчика: как подружить D7 свойства и IDE
Приветствую всех неравнодушных! В статье я расскажу, как мы смогли подружить сложные D7 свойства инф...
habr.com

Тесты, хочется и колется, тк заказная разработка а не внутренняя, и время дается на конкретные задачи, клиент в 90% случаев не выделяет время на них, архитектурно - основу положили, но дальше ждем у моря погоды.

Для примера сделали тест для интеграции с airflow, также из другой прошлой статьи, большего пока позволить не можем себе))

Вообще, изначально, просто использовали кастомную реализацию событий

AddEventHandler - функция предназначена для регистрации произвольных обработчиков, которые не расположены в модулях. Ее необходимо вызывать до возникновения события на тех страницах, где требуется его обработать. Например, если событие нужно обработать на всех страницах, где оно возникает, то функцию можно вызвать в /bitrix/php_interface/init.php

и складывали их в соответствии с архитектурой

но когда время позволяло, то делали полноценную файбрику и в ней регистрировали события, тут на статью тянет))

Создаем фабрику, которая наследует битриксовый контейнер и предоставляет нам методы регистраций событий

Прописываем события, чтобы они зарегистрировались

Ну и сами события регистрируются с помощью функционала \Bitrix\Crm\Service\Operation\<Add,Update...>

Первый вариант, конечно проще, второй универсальнее. Если есть интерес, то могу попросить коллегу, написать отдельную статью по такому подходу.

Вашими устами, да мед бы пить, сударь, вот просто одно из обращений после обновлений))

Потом оказалось, что там 5 модулей просто отвалились, тк по ним код стал не рабочий и они требовали переустановки, этот первый, который фаталл в списке выдал.

К сожалению, в России 80%. компаний гордо пишут во всех вакансиях - у нас ДМС для всех.
На деле сначала у тебя вычитают из зп часть за этот бесплатный ДМС для всех, а, затем, еще и когда зуб пойдешь лечить, то дырку тебе сделают за этот ДМС а заделывать ее приходится тысяч за 60+)) По итогу, этим ДМС пользуешься только чтобы анализы сдавать.

joxy использую для скриншотов и там есть затемнение области.

Минусы ставят - это норма, выкладываю статьи для того, чтобы профи могли посоветовать - как сделать более хардкорно, но с балансом, так чтобы и джуны и мидлы понимали - как работает. Как рук разработки мне важны не супер технологии а такие, которые легко подойдут для всех. Вот то, что минусы без комментариев, это удручает))

Спасибо за комментарий, мы конечно рассматривали этот момент, и его используем для аннотаций, я его забыл упомянуть в статье, мой косяк))
Его проблема в том, что он аннотирует только битрикс модули, которые по стандартам битрикса делаются, а мы выбрали подход DDD в архитектуре и не завязываемся на битрикс стандарты, что видно по неймспейсам в примерах, битрикс пока так не могут анализировать.
Нам такой подход позволяет легко переносить разработки из проекта в проект, просто копированием директорий, сделали один сервис для работы с тем же rabbitMQ, скопировали и он точно также заработал в другом проекте. Об этом пишется отдельная статья.
Кроме того, внешняя архитектура позволяет обучать чисто битрикс разработчиков к работе с другими фреймворками, где нету этих правил битры.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity