• Я неправильно создал Cookie?

    Vestail
    @Vestail
    Software Engineer
    document.getElementById("done").onclick = init;
    Если ставите скобки после переменной которая ссылается на функцию, то вы вызываете эту функцию, а значит передаете результат её выполнения. Что бы передать саму функцию скобки ставить не нужно.
    Ответ написан
    Комментировать
  • Производительность индексов в mysql?

    @nelson
    Зависит от распределения значений и запросов.
    Например, если у вас 0 и 1 равномерно распределены по строкам, и в запросе вы также ищете как 0 так и 1 - то индекс особо не нужен.
    Если же у вас 80% нули, и 20% единицы, а в запросах вы проверяете только на =1, то индекс может повысить производительность такого запроса.

    Я бы ориентировался на цифру в 20% - если в столбце есть значения которые встречаются реже чем в 20% строк, и по этим значениям осуществляется поиск, то индекс может его ускорить.

    На вашем месте я бы начал с того, что добавил этот индекс и посмотрел план запроса командой EXPLAIN - если индекс лишний, то оптимизатор mysql его не будет использовать (смотрите столбец key в результате explain).

    Кстати, при выполнении запроса оптимизатор mysql как правило выбирает только один индекс. Смотрит среди всех столбцов, который есть в условии where или order by и выбирает самый селективный (это если упрощенно, без деталей).
    Ответ написан
    3 комментария
  • Способы улучшения JS-кода?

    dunmaksim
    @dunmaksim
    Технический писатель
    Знаки !, -, + заставляют интерпретатор вычислить (в данном случае - выполнить) то, что находится справа. Например, в Bootstrap всюду вставлен знак + для этого.
    Однако, более правильным было бы переписать код так:
    (function ($){
        "use strict";
        
    }(this.jQuery));

    Это тоже шаблон самовызываемой функции, описан в книге Стояна Стефанова "JavaScript. Шаблоны" (люто рекомендую читать не смотря на преклонный для литературы данного типа возраст, где взять - сами знаете).

    Обращение к локальным переменным избавляет от головной боли и долгой отладки, когда непонятно, почему при клике на эту кнопку не только обновляется список записей таблицы, но и увеличивается размер шрифта в заголовке страницы. Глобальные переменные - зло, и с этим нужно бороться. Только замыкания, только хардкор.

    Что касается скорости - в сравнении с перерисовкой DOM любой ваш код будет быстрым, как молния. И да, обращение к глобальным переменным дороже, чем к локальным, т.к. сначала делается поиск в локальной области видимости, и только потом - к глобальной.

    document и window можете помещать, можете не помещать - разница будет только в том, что можно использовать краткие имена:

    (function (W, D){ 
        // W = window   (1 символ против 6)
        // D = document (1 символ против 8)
        "use strict";
    
    }(window, document));


    Всё остальное в указанной книге ну и конечно Николас Закас, "JavaScript. Оптимизация производит....
    Ответ написан
    2 комментария
  • При каком количестве записей лучше использовать транзакцию?

    SwoDs
    @SwoDs
    PHP YII2
    Транзакции используются при выполнении связных запросов, вне зависимости от количества.

    К примеру один человек переводит деньги другому это два запроса:
    Снять у Васи 10 рублей.
    Пополнить баланс Пети на 10 рублей.

    Если произойдет ошибка при 2 запросе и при этом не будет использована транзакция, то у Васи деньги пропадут, а у Пети не появятся.

    При использовании транзакции все изменения откатываются.
    Ответ написан
    9 комментариев
  • На что рассчитывать начинающему PHP Developer (Laravel)?

    Denormalization
    @Denormalization
    1) С каких пор зарплата оценивается уровнем знания конкретного фреймворка? Может начнем зарплачу по APM мерить?
    2) Laravel сейчас в топе. Yii/Laravel/Symfony сейчас самые популярные. Не нужно зацикливаться на чем-то одном.
    3) Нужны знания не фреймворка, а просто уметь програмировать. Нужно учить PHP, а не Yii/Laravel. Фреймворк учится за пару дней до уровня "написать простой магазинчик".
    Ответ написан
  • Как сделать, чтобы запись добавлялась с уникальным id автоматически?

    edli007
    @edli007
    full stack, team lead
    1. перестаем говнокодить устаревшими на 10 лет функциями, изучаем PDO.
    2. Читаем про auto_increment в MySQL
    3. Читаем про ORDER BY в MySQL
    4. Читаем про иньекции в MySQL
    5. Учимся верстать и не используем устаревшие на 15 лет теги.
    Ответ написан
    4 комментария
  • Возможно ли отображать время рядом с командами в консоли?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    software engineer
    PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w`date +[%H:%M:%S]`\$"
    Ответ написан
    1 комментарий
  • Laravel или Yii - на чем лучше на данный момент начинать разработку сайта? В чем отличия?

    @igorRovenki
    Я бы рекомендовал присмотреться к Laravel или Symfony. Мы сейчас используем Symfony2. Пока всем довольны:
    • большое развитое соообщество
    • достаточное кол-во готовых бандлов и библиотек
    • достаточное кол-во продакшн проектов
    • компоненты Symfony используют Laravel и Drupal
    • популярный компонент dependency_injection
    • интеграция с популярным ORM Doctrine2 - он хоть и тормозной, но удобный + выручает кеширование
    • очень удобная работа с аннотациями - роутинг/кеш/маппинг/валидация и т.д
    • ...
    • и много других хорошик плюшек :)

    Можете также посмотреть статью про выбор Laravel vs Symfony: devsize.ru/laravel-vs-symfony-5-steps-choosing-fra...
    Ответ написан
    Комментировать
  • Как выполнить javascript-код в песочнице на сервере?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Есть такой неймспейс "vm", см. nodejs.org/api/vm.html В нем методы: vm.createContext(sandbox), vm.createScript(code, scriptName). Так же в нем класс Script и у него методы: script.runInThisContext(), script.runInNewContext(sandbox). В общем, можно создать песочницу, у которой даже не будет доступа к require, и пробросить в нее только те функции, что нужны для безопасного выполнения скрипта. Потом обернуть выполнение скрипта в Domain, см. nodejs.org/api/domain.html И тогда уж все будет точно безопасно, и доступ ко внешнему миру будет у скрипта закрыт и если он свалится, то через domain можно поймать, и global он своими данными не засрет, т.е. песочницу можно убить и создать новую, даже не перезапуская процесс ноды. Пример использования можно подсмотреть тут: https://github.com/tshemsedinov/impress/blob/maste... Там есть некоторые хитрости, например, как сделать примесь своих функций к базовым классам в песочнице и подобное.
    Ответ написан
    Комментировать
  • Логика работы с MongoDB в сервере на Node.JS?

    dizballanze
    @dizballanze
    Software developer at Yandex
    Насколько я понимаю, адаптер берет эту работу на себя. Т.е. в приложении об этом не нужно беспокоится, создал соединение один раз и пользуешься. А все остальное происходит за кулисами. Думаю об этом подробнее можно почитать в документации к адаптеру mongodb.
    Ответ написан
    1 комментарий