Задать вопрос
Технический писатель, энтузиаст Debian Linux и GNU Emacs
Контакты
Местоположение
Россия, Липецкая обл., Липецк

Достижения

Все достижения (21)

Наибольший вклад в теги

Все теги (75)

Лучшие ответы пользователя

Все ответы (73)
  • Как вы начинаете вёрстку сайта?

    dunmaksim
    @dunmaksim
    Технический писатель
    1. Создаю каталог для проекта
    2. Инициализирую Bower
    3. Устанавливаю нужные пакеты, например, Twitter Bootstrap, Angular, jQuery и т.д.
    4. Ставлю Grunt, плагины для него и т.д.
    5. Запускаю EMACS и создаю index.html
    6. С помощью Emmet создаю шаблон, который уже начинаю заполнять.
    7. В каталоге src создаю папки less, js и т.д.
    8. Попутно пишу задачи для Grunt
    9. Если в выбранном фреймворке не хватает какого-либо класса для стилизации элемента, сначала описываю стили прямо в шаблоне, в свойстве style. Затем при необходимости выношу их оттуда в LESS в виде одного или нескольких классов.
    10. ??????????
    11. PROFIT!!!
    Ответ написан
    15 комментариев
  • Что такое провайдер в программировании?

    dunmaksim
    @dunmaksim
    Технический писатель
    Как правило провайдер используется для инкапсуляции более сложного кода, скрывая детали реализации. Он служит этакой обёрткой, реализуя шаблон проектирования "Фасад".
    Вы копируете файл из каталога в каталог, просто перетащив его мышью. Но как это произошло на физическом уровне? Вам этого знать не обязательно, всё скрыто под множественными слоями абстракций.
    Чтобы не думать о каких-либо низкоуровневых вещах, часто вводят провайдеры, сервисы и т.д. Суть одна - скрыть какие-либо часто используемые сложные функции и рутинную работу за простым и понятным интерфейсом.
    Ответ написан
    2 комментария
  • Хочу научиться создавать плагины JQuery - с чего начать?

    dunmaksim
    @dunmaksim
    Технический писатель
    Чтобы создавать свои плагины, Вам нужно:
    - хорошо знать JS и его подводные камни;
    - знать, что такое шаблон "модуль" и уметь писать свои модули;
    - помнить, что jQuery.fn - всего лишь псевдоним для jQuery.prototype; добавляя свою функцию к этому свойству, Вы расширяете прототип функции jQuery, и важно ничего там не сломать;
    - следовать соглашению, по которому любой плагин jQuery на выходе должен вернуть исходный или модифицированный массив переданных на вход элементов (шаблон "цепочка", есть ещё антишаблон, следующий из этого, называемый "крушение поезда")

    Собственно, вот Вам заготовка модуля:
    (function ($){
        "use strict";
        function myFunction(items){
            return $(items).each(function(){
                $(this).text("Hello, jQuery!");
            });
        }
    
        $.fn.hellojQuery = myFunction;
    }(jQuery));
    Ответ написан
    1 комментарий
  • Давайте сделаем чеклист подготовки linux сервера?

    dunmaksim
    @dunmaksim
    Технический писатель
    Общее
    1. Обновить все пакеты.
    2. Добавить нужные репозитории и их ключи в список (Nginx, PostgreSQL)
    3. В нужные места для deb-based добавить non-free contrib, т.к. в том же Debian из коробки только свободные пакеты.
    4. Поставить и включить bash-completion
    5. Поставить sudo, внести себя в группу админов, запретить root'у логиниться в системе
    6. Поставить ntp и ntp-date, указать сервера в файлах настройки


    SSH (статья)
    1. Установить openssh-server
    2. Добавить в ~/.ssh/authorized_keys свой публичный ключ.
    3. Увеличить длину серверных ключей до 2048 бит минимум, по-умолчанию везде 768.
    4. Сгенерировать серверные ключи заново.
    5. Отключить авторизацию по паролю.
    6. Запретить входить без пароля
    7. Поставить и настроить fail2ban
    8. Сменить порт SSH с 22 на какой-нибудь другой (отсекает 95% ScriptKiddies сразу же)


    SSL (статья)
    1. Включить шифрование по ГОСТу (не всем нужно, но лично мне по работе - нужно всегда)


    PostgreSQL (статья)
    1. Ставить только из официального репозитория последнюю стабильную версию.
    2. Оптимизировать настройки postgresql.conf с помощью этого сайта под конкретную систему / машину.
    3. Сделать Listen только на внутренний интерфейс локальной сети или вообще на localhost, если СУБД и сервер приложений будут на одной машине.
    4. Настроить pg_hba.conf
    5. Написать скрипты резервного копирования.
    Ответ написан
    Комментировать
  • Способы улучшения 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 комментария

Лучшие вопросы пользователя

Все вопросы (29)