Задать вопрос
  • Брутят админку. Стоит ли переживать?

    shambler81
    @shambler81 Куратор тега 1С-Битрикс
    10 нет , если бы 20000 раз то можно было бы начинать думать
    Ответ написан
    Комментировать
  • Сколько стоит час веб-разработчика-фрилансера?

    @deliro
    Ты веcь такой кругом молодец, то знаешь, это знаешь. А теперь представь себе среднестатистический проект, который должен приносить бизнесу деньги. За две недели работы ты едва напишешь хлипкий CRUD для данных, неправильно смаппив бизнес-сущности в объекты ORM, ещё через месяц натянешь какой-то слайдер на jQ, попутно захватив 2мб JS кривых библиотек, а через два заказчик поставит тебе плохую оценку, потому что твой ценник он оплатил не за то, что ему нужно, а потому что ты знаешь монады, которые ему даром не сдались.

    А теперь давай представим простого программиста. Из алгоритмов он с трудом вспоминает сортировку пузырьком, а двусвязный список — предел его знаний о структурах данных, и даже этим списком он пользовался два раза в жизни. Хаскель он никогда не видел в глаза, C++ учил только в школе, вместо этого пишет неэффективный код на PHP. И у него есть опыт. За день он распишет сущности, за второй сделает универсальный CRUD, на третий день поднимет фронт на React'е с SSR. Да, внутренности проекта будут "медленными". Вместо O(logN) что-то будет выполняться за O(N) или даже O(N^2), но всем похер. Пока всё работает на приемлемом уровне — бизнес радуется.

    Кстати, к чему эта поучительная лапша? Я хотел сказать, что всеми этими модными словами можно пугать друзей и преподавателей, но в реальной жизни все алгоритмы уже реализованы, все типы данных уже подобраны оптимально. Знать их полезно для себя (чтобы мозг не атрофировался), но не для работы. Для работы тебе нужны такие навыки как:

    * Оптимальный баланс между говнокодом и идеальным кодом
    * Оптимальный баланс между скоростью разработки и оптимизацией кода
    * Оптимальный баланс между поддерживаемым кодом и костылями
    * Умение использовать те инструменты, с которыми ты работаешь. Опять же, для того, чтобы писать быстро, при этом имея минимальное количество говнокода и обеспечивая максимальную поддерживаемость (в пределах сроков). Например, можешь выкинуть в помойку свой Vim, как бы круто ты себя не чувствовал, разрабатывая в консольном редакторе, если продукты от JetBrains позволят за это же время сделать что-то лучше или чего-то больше
    * Чувство "знаю больше менеджеров". Это то чувство, когда тебе кажется, что "вот эта фича скоро изменится" и надо сделать архитектуру заранее более гибкой. Или "вот эту фичу мы через месяц выпилим" и не надо тратить на неё силы — напиши костыль и через месяц с чистой совестью удали его
    * Знания, как сделать ту или иную фичу. Потому что фичи повторяются (немного видоизменяясь) от проекта к проекту. И если ты сделал что-то за два дня, в следующий раз ты похожее сделаешь за три часа

    Что касается инструментов, выбери любой полноценный фреймворк, который умеет решать 90%+ потребностей "из коробки": Symfony, Django, Laravel

    Всякие "минималистичные" поделия вроде Falcon, Flask (в PHP не знаю, я на питоне пишу) оставь хипстерам. Пусть они говорят: "Мой фалкон такой быстрый, он написан на Cython". Тебя это не должно волновать, потому что бизнес с твоей скоростью разработки уже заработал достаточно денег, чтобы купить ещё десять серверов, пока фалконисты неделю гуглили, как прикрутить миграциии и запустить юнит-тесты на VPSке за пять баксов.
    Ответ написан
    5 комментариев
  • 64GB ОЗУ — как выжать максимум?

    longclaps
    @longclaps
    Которая пустует - ту выковырять из сервера и продать. Чтобы не пустовала.
    Ответ написан
    Комментировать
  • $_POST в component_epilog.php недоступен?

    В component_epilog.php $_POST и другие суперглобальные массивы доступны.
    https://dev.1c-bitrix.ru/learning/course/index.php...
    Компонент с component_epilog.php вызывается, случайно, не в шаблоне другого компонента (template.php или result_modifier.php )?
    Ответ написан
    5 комментариев
  • Как переопределить класс Notify в папке local (или кастомизировать свои оповещения) в Битрикс:Управление сайтом?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Скажите пожалуйста, что можно предпринять?


    Для начала: классы нельзя переопределять - только модули, но это не вариант от слова "совсем".

    Для решения вашей задачи легальные способы:
    - Модифицировать отправляемый почтовый шаблон и добавить в него php-код для получения нужно информации
    - На событии onBeforeEventAdd / onBeforeEventSend дописывать нужные данные в почтовый шаблон
    - Отключить стандартные уведомления и на событиях самому отправлять уведомления.

    Выбирайте способ которым хотите воспользоваться сами :)
    Ответ написан
    3 комментария
  • Как переопределить класс Notify в папке local (или кастомизировать свои оповещения) в Битрикс:Управление сайтом?

    @eugenezadorin
    Посмотрите в сторону обработчиков событий.

    Думаю что в вашем случае проще всего будет подписаться на событие OnBeforeEventSend (название точно не помню, гуглите).

    В обработчике события доступен тип отправляемого письма и все данные для его формирования. Этого достаточно, чтобы выбрать из базы дополнительную информацию и направить ее в почтовый шаблон.
    Ответ написан
    1 комментарий
  • Как соблюсти принцип последней буквы SOLID?

    @Wentixon
    Во-первых, я советую тебе не заниматься херней, проходя всякие тупые курсы и делая свои велосипеды. Поверь, эти курсы тебя ничему хорошему не научат, я сам это все прошел - толку ровно ноль. У тебя все равно ничего хорошего не получится, так как лучшие разработчики годами оттачивают свои фреймворки, при чем заимствуя фишки друг у друга (речь идет о популярных фреймворках).

    Во-вторых, если все же у тебя шило в попе, хочется какую то херню погородить, то умные люди придумали некоторые стандарты. Условным стандартом в php являются компоненты с самого качественного фреймворка symfony, на которых кстати основан также laravel. Вот компонент роутера например. Популярные фреймворки состоят из таких мелких независимых компонентов.

    В-третьих, на будущее.. Прежде чем что то делать, посмотри как это сделано у других. Компонент роута я тебе дал, хочешь свой пилить (хотя это абсолютно бессмысленно), то пожалуйста, но лучше ты 100% не сделаешь, так что просто посмотри как сделано у них хотя бы.

    Ну а теперь отвечу на твой вопрос. Контроллеры привязываются к роутеру извне, так что внутри никаких привязок не будет. И вообще, тут не стоит говорить о SOLID, так как это этап загрузки приложения. Никто не может быть уверенным, что такой контроллер вообще найдется и в нем будет присутствовать такой метод, так что в этом случае просто будет исключение.

    Кстати можешь посмотреть эти курсы, самое толковое из того что есть
    Ответ написан
    64 комментария
  • Куда в пространствах имён определять трейты, интерфейсы и абстр. классы?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Нет, не нужно ничего выделять, это идиотизм. Делить нужно по какой-то логике (logging, например), и внутри можно добавлять "под-категории", если нужно. Если меньше чем 20 файлов то и в этом смысла нет.

    Почему? Потому что это упрощает навигацию. Если человек знает, что ищет, то он легко найдет это и без дерева файлов, а вот если не знает, то он может и не иметь представления о том, трейт это, абстрактный класс или интерфейс. Зато если разделить по "механике" - найти нужное будет не сложно.
    Ответ написан
    1 комментарий
  • Как узнать что записи в БД кончились?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    как только в ответ на очередной запрос на подгрузку сервер не вернул данные - можно считать, что они закончились.
    Ответ написан
    5 комментариев
  • Кому принадлежат права на программу закрывшейся фирмы?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Права на ПО не чем не отличаются от табуретки, компьютера или машины. При ликвидации они уходят или кредиторам или учредителям. В общем никакой халявы не возникает.
    Ответ написан
    Комментировать
  • Sudo: add-apt-repository: command not found. Что делать?

    @a_alexeev
    sudo apt-get install software-properties-common python-software-properties
    Ответ написан
    Комментировать
  • Можно ли сделать из Linux компьютера Bluetooth микрофон?

    parotikov
    @parotikov
    Wordpress, Laravel, OctoberCMS, Vue, Nuxt.js
    Звучит так, что линукс тут совсем лишний. Вам же звук из line-in в блютус сделать надо, ну так возьмите какой-то трансмиттер, типа https://ru.aliexpress.com/item/B6-2-1-Bluetooth-4-...
    Воткните в него line-in, и ловите блюху где нужно.

    Если же вдруг на линуксе вам надо со звуком какие-то манипуляции делать - то схема такая:
    line-in -> linux -> line_out -> bluetooth transmitter
    Ответ написан
    2 комментария
  • Вернуть клиенту деньги, за проделанную работу?

    solotony
    @solotony
    покоряю пик Балмера
    Работа сделана ? О каком возврате денег может идти речь ? А аванс для того и взымается с клиента, на случай если он "передумает", то бы не остаться с голой ...

    ---

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

    Разговор записать. И с записью разговора в трудовую инспекцию. Не ждать, не предупреждать, не пугать.

    Естественно это имеет смысл если клиент не чистый физик, а представитель организации, ИП и т.д.
    Ответ написан
    Комментировать
  • Вернуть клиенту деньги, за проделанную работу?

    vetero4eg
    @vetero4eg
    Frontend
    Подготовьте ему смету, куда включите все по пунктикам, что сделано: прототип - столько-то часов, столько-то денег, телефонные переговоры с таким-то и таким-то его кандидатом на роль крутого фотографа - столько-то часов, столько-то времени... Длинный список, итого - затрачено времени - стоимость. Ознакомьте клиента. Разберитесь кто что кому еще должен. Желательно держаться в рамках спокойного диалога, ну а там уж как получится.
    Ответ написан
    2 комментария
  • Какой тактикой вы руководствуетесь при верстке под битрикс? Что быстрее?

    @sergafon
    С битриксом работать можно, главное знать как. Работаю на нем уже не первый год как со стороны фронтенда, так и бекенда и делал на нем как простые лендинги так и интернет-магазины с калькуляторами и был даже новостной портал с парсингом новостей с разных источников. Конечно данная система не лишена недостатков как и любая другая CMS. С битриксом работают многие топовые компании на рынке России, и делают множество разных продуктов от простых до сложных. И причин в сторону выбора битрикса много, это и экономическая составляющая и множество готовых модулей позволяющих реализовать требования заказчика с меньшими затратами, чем на разработку с нуля на ларавел или питоне, но также выбор битрикса не всегда оправдан в случае простых сайтов.

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

    Так же немаловажный момент выстроить правильную работу с прогерами, которые будут садить вашу верстку на движок. Так как когда пойдут правки по верстке и если ваш проект с минифицированными файлами ту и полезет куча проблем с потерей времени, либо правки будут вставляться в виде костылей в отдельные файлы (еще хуже если в те же самые сжатые, тогда ваша сборка верстки идет лесом) стилей, либо будут возвраты верстальщику он будет править js и css и html, а программисту придется частично переделывать уже проделанную работу, либо нужно будет думать над другими решениями (в 99% случаев бывают правки верстки). Можно использовать git для командной работы и умного мержа файлов например через phpstorm, там есть для этого нужный функционал, либо через командную строку мержить.

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

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

    Рекомендую посмотреть в сторону gulp или webpack, если вы их еще не используете, это поможет облегчить работу по верстке очень сильно.
    Ответ написан
    Комментировать
  • Как правильно сделать проверку на существование записи в базе в 1С Битрикс?

    1) Почитайте про sql инъекции. Пример
    2) Я бы на вашем месте избегал использования для запросов $DB->Query. Вместо этого лучше использовать D7 ORM . Описываете таблицу классом, а потом используете выборки данный через getList или Query, если нужен специфичный запрос.

    Ну и как уже сказали, надо проверять что то более конкретное. Из вашего описания, вообще не понятно, что вы пытаетесь сделать.
    Ответ написан
    Комментировать
  • Почему скрипт выпуска сертификата LetsEncrypt не находит сайт?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Есть у меня подозрение что вы не то пишите.
    При выходе в панель у вас должна быть аналогичная картинка
    ------------------------------------------------------------------------------------
    SiteName        | dbName          |       Type | S | Certificate          | Key
    ------------------------------------------------------------------------------------
    default         | sitemanager0    |     kernel | N |  |
    ------------------------------------------------------------------------------------

    И при указании
    Enter site name (default): xxxxxxxxxx.com

    Вы должны писать то, что находится в первом столбце. Т.е. не url-сайта, а вот это вот "default" или что у вас там.
    Ответ написан
    4 комментария
  • Переадресация с http на https на битриксе?

    customtema
    @customtema
    arint.ru
    Причем тут битрикс???

    Причем тут nginx? Похоже, у вас конфигурация для Apache2, у nginx она выглядит по-другому.
    Ответ написан
    Комментировать
  • Можно при создании функции в PHP ограничить тип аргумента встроенными средствами, и как?

    Decadal
    @Decadal
    php 7 - typehints.
    function fname(string $str, \SoapClient $client) {
    //...
    }


    с указанием возвращаемого типа:

    function fname(string $str, \SoapClient $client) : int
    {
    //...
    return 0; 
    }


    php 7.1
    nullable parameters
    /**
     * @param $str string|null
     * @param $client \SoapClien  
     **/
    function fname(?string $str, \SoapClient $client) {
    //...
    }
    Ответ написан
    3 комментария