• Ошибки 499 в одном браузере, как найти что вызывает?

    блокировщик рекламы вызывает
    Ответ написан
    Комментировать
  • Как писать "отказоустойчивый" клиентский js?

    @afanasiyz
    Javascript-разработчик
    Писать код, который не крашится :D
    Ну, а если серьезно, сложно представить ситуацию, в которой ошибка риалтайма была бы не формата "smth is not defined" или "cannot read property smth of undefined".
    То есть в основном все ошибки будут из-за невалидных данных или из-за отсутствия каких-то методов в старых браузерах.
    Решение - валидировать входные данные, проверять все на null/undefined, использовать babel.
    Ответ написан
    3 комментария
  • Как мне передать переменную из дочернего класса в родительский?

    @entermix
    Столкнулся с такой проблемой, не знаю как передать переменную из дочернего класс в родительский.

    Никак, это невозможно, к счастью.
    Ответ написан
    Комментировать
  • Объясните решение сортировки массива?

    hrenly
    @hrenly
    Это вызов стрелочной функции, вызывает ее метод Array.prototype.sort(). Суть этого метода в сортировке массива при помощи функции, которая будет определять порядок сортировки. Метод возвращает массив, а на выходе мы берем нулевой ([0]) элемент массива – т.е. самый "маленький"
    Ответ написан
    Комментировать
  • Нужно ли защищать обработчик формы (PHP файл) от прямого доступа?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Не бывает никакого "непрямого" доступа к обработчикам форм. Доступ всегда прямой.
    Не бывает никаких отдельных специальных обработчиков форм. Твой обработчик - это обычный пхп скрипт, такой же как все остальные. И защищать его надо не больше и не меньше, чем остальные скрипты.

    Поэтому надо выкинуть эти фантазии из головы и заняться чем-нибудь полезным.
    Ответ написан
    13 комментариев
  • Зачем нужен link preload, и что хочет от меня pagespeed?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Что я делаю не так?
    Нужно добавить <link rel="preload" />, а не заменить ими ваши скрипты.
    Ответ написан
    Комментировать
  • Брутят админку. Стоит ли переживать?

    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 недоступен?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    В 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
    покоряю пик Балмера
    Работа сделана ? О каком возврате денег может идти речь ? А аванс для того и взымается с клиента, на случай если он "передумает", то бы не остаться с голой ...

    ---

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

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

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