Люблю путешествовать, мотоциклы, хорошие книги.
Контакты

Достижения

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

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

Все теги (117)

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

Все ответы (228)
  • Почему в дорогих коммерческих сайтах преобладает битрикс а не вородпрес?

    @immaculate
    Программист-путешественник
    Я в дорогих коммерческих сайтах не вижу ни того, ни другого.
    Ответ написан
  • Как решить проблему с концентрацией?

    @immaculate
    Программист-путешественник
    Медитация. Отсечь лишние источники информации: ТВ, новости, социальные сети. Уменьшить нагрузку. У меня такие симптомы, когда слишком много обязанностей на себя беру.
    Ответ написан
  • Какое средство резервного копирования для Ubuntu лучше всего?

    @immaculate
    Программист-путешественник
    Я использую утилиту duplicity уже около 6 лет. Причем как для резервного копирования своего ноутбука, так и для копирования серверов, которые поддерживаю и администрирую.

    Она простая, запускается из командной строки, поддерживает шифрование (GPG), бэкапы в определенную папку, на S3, ftp, и т.д. и т.п. Инкрементальное копирование с полным через определенные интервалы, разбиение копий на тома заданного размера.

    Настоящий комбайн, при том достаточно простой. Например, вот часть моего скрипта для бэкапа ноута:
    duplicity \
        --full-if-older-than 3M \
        --volsize 150 \
        --exclude='**/*.pyc' \
        --exclude='**/firefox/*/cache2' \
        --exclude='**/lib/python2.7' \
        --exclude='**/.thumbnails' \
        --exclude='**/.virtualenvs' \
        --exclude='**/.virtualenv' \
        --exclude='**/thumbnails' \
        --exclude='**/.xsession-errors*' \
        --exclude='**/.PyCharm*' \
        --exclude=/home/jmv/.Private \
        --exclude=/home/jmv/.ecryptfs \
        --exclude=/home/jmv/.cache \
        --exclude=/home/jmv/.macromedia \
        --exclude=/home/jmv/.adobe \
        --exclude=/home/jmv/.nvm \
        --exclude=/home/jmv/.local/share/zeitgeist \
        --include=/etc \
        --include=/home/jmv \
        --exclude='**' \
        / $DEST
    
    duplicity remove-older-than 12M --force $DEST
    Ответ написан
  • Как вы выбираете из множества решений то, которое в итоге реализуете?

    @immaculate
    Программист-путешественник
    Это вряд ли возможно формализовать. Один из подходов: KISS — keep it simple. Выбираю самое простое решение, потому что, пока оно дойдет до production, требования 10 раз поменяются (и еще 10 раз поменяются уже после внедрения), а простое решение и проще реализовать и проще переделать. Но это только одна из эвристик.

    Такое, чтобы запутаться в решении не бывает. Это только, если не понимать, что делаешь. Иногда бывает, что не совсем до конца понимаешь требования, или как решать задачу. Тогда можно зайти в тупик спустя несколько часов или дней. Но такие ситуации встречаются редко.

    Иногда по мере того, как делаешь задачу, понимаешь, что ее можно сделать совсем иначе, при этом получится проще и эффективнее. Ничего страшного нет: с самого начала продумать идеальное решение не может никто.

    В жизни нет готовых рецептов на все случаи. Жизнь вообще не поддается формализации.
    Ответ написан
  • Best practies? Две независимые модели для пользователя и админа, Django 1.11.x?

    @immaculate
    Программист-путешественник
    Я не раз видел попытки такого разделения пользователей по классам в проектах на Django. Не знаю, почему все сразу выбирают такое решение, которое в перспективе не приносит ничего, кроме боли.

    Проще всего пойти стандартным путем: унаследовать пользователя от django.contrib.auth.models.AbstractUser, а различие между пользователями определять либо по группе/разрешениям, либо добавить поле в свою модель типа is_moderator. Это будет во много раз (на порядок точно) проще реализовать и поддерживать, будет совместимость со всем стандартным кодом Django и сторонними библиотеками, любому просто войти в проект и внести изменения.

    Разделение на две разных модели никаких абсолютно преимуществ не дает, кроме тонны мусорного кода и головняков с поддержкой данной гидры.

    TLDR:
    1) Из вашего вопроса остается неясным, почему требуется разделение по разным классам. Это самый безумный вариант для разграничения полномочий, и в Django разделение полномочий пользователей уже предусмотрено по умолчанию
    2) Поддерживал пару проектов с разными классами для разных классов пользователей. Поверьте, это просто ужас-ужас в поддержке, а самое главное, что он ничем не оправдан.
    Ответ написан

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

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