Задать вопрос
  • В чем моя причина провала тестового задания Яндекса?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну давайте я покритикую:

    возьмем файлик

    1) вы не разобрались как объявлять методы у прототипов с новой нотацией `class`:

    class Travelsort {
        constructor() {}
        sortTickets(tickets) {}
    }


    2) вы не умеете пользоваться исключениями.
    if (!Array.isArray(cards)) {
        throw new ValueError('Wrong input');
    }


    3) использование let там где должен использоваться const

    4) в принципе использование переменных там где их быть не должно

    5) вы зачем-то реализовали свою функцию сортировки, я не увидел в требованиях отсутствия возможности использовать старый добрый Array.prototype.sort

    6) Общие замечания по кодинг стайлу. snake_case там где должен быть camelCase, пишите с большой буквы то что должно быть с маленькой и т.д.

    7) нарушения принципа единой ответственности. У вас объеткт умеет и сортировать и писать куда-то. Это категорически плохо.

    8) Если исправить 7-ой пункт то наш класс превращается просто в функцию.

    Далее... берем следующий файлик

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

    2) вы зачем-то тут в прототип объекта строки впихиваете функции для парсинга CSS. Таким образом мы нарушаем принцип единой ответственности. Да и в целом расширять без надобности прототипы объектов как-то не ок.

    Чуть дальше проскролил - вы пытаетесь расширить прототип строк для того что бы добиться API jquery? ух, батенька.

    3) очень много дублирования.

    4) очень плохо с protected variations.

    Справедливости ради, ваш код входит в категорию ">50% JS кода", так что не расстраивайтесь. Просто для работы в яндексе нужен чуть более высокий уровень и понимание вещей.
    Ответ написан
    17 комментариев
  • Как откатить makemigrations в django?

    fox_12
    @fox_12 Куратор тега Django
    Расставляю биты, управляю заряженными частицами
    Просто удалите файл данной миграции если она еще не применена. Исправьте и выполните makemigrations еще раз.
    По manage.py show migrations можно глянуть примененные и непримененные миграции.
    Указав номер, можно откатиться на предыдущую миграцию
    manage.py migrate <модель> <номер миграции>
    Ответ написан
    Комментировать
  • Где нужно писать миксины, общие для нескольких приложений?

    @deliro
    Я храню в core/mixins.py
    Ответ написан
    Комментировать
  • Где нужно писать миксины, общие для нескольких приложений?

    sim3x
    @sim3x
    строгого определения нет
    core/views.py
    common/views.py
    progectname/common_views.py
    Ответ написан
    Комментировать
  • Где находить open source проект Java для новичка?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Нигде.
    Open Source не для новичков.
    Все эти хипстерские отзывы в стиле - пилите проекты на гитхаб и работодатели сами за вас хвататься будут - полный бред.
    Не тратьте время. Ищите стразу стажировку у работодателей.
    Ответ написан
    1 комментарий
  • Как заполнить поле slug автоматически через форму?

    @FireGM
    У модели Advert переписать метод save.
    Я обычно пользуюсь библиотекой slugify
    Получается что-то вроде этого
    from slugify import slugify
    
    class Advert(models.Model):
        region = models.CharField(max_length=32)
        city = models.CharField(max_length=30)
        category = models.TextField()
        title = models.CharField(max_length=32)
        description = models.CharField(max_length=900)
        photo = models.ImageField(upload_to='')
        phone_number = models.CharField(max_length=11)
        date = models.DateTimeField(auto_now_add=True, null=True)
        slug = models.SlugField(unique=True, null=True, blank=True)
    
        def __str__(self):
            return self.title
        
        def save(self,  *args, **kwargs):
            self.slug = slugify(self.title)
            return super(Advert, self).save(*args, **kwargs)
    Ответ написан
    Комментировать
  • Как заполнить поле slug автоматически через форму?

    un1t
    @un1t
    Ответ написан
    Комментировать
  • Для решения каких задач нужен Django Rest Framework?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Опишу одно из применений REST-фреймворка. Вот написали вы корпоративное приложение. А потом захотели чтобы и из мобильных приложений функциональность БД вашего приложения была доступна в софте на java например. Вот для "скрещивания ужа с ежом" - то есть для организации работы мобильного приложения на java с вашей базой на Django, наиболее удобным будет использование REST-интерфейса.
    Через REST-интерфейс будут доступны все операции с вашими моделями - авторизация, выборки, редактирование данных, и прочее, с использованием наименьшего количества телодвижений.
    Ответ написан
    Комментировать
  • Как в django CVB ListView вывести данные из другой модели?

    fox_12
    @fox_12 Куратор тега Django
    Расставляю биты, управляю заряженными частицами
    Контекст в шаблон передаете?
    Так нужный контекст уже и так в шаблон улетает:

    {% for obj in objects_list %}
       {% for img in obj.modela_set.all %}
          {{ img }}
       {% endfor %}
    {% endfor %}


    Если это нужно делать именно во вьюхе - получайте список объектов в get_queryset(), и там добавляйте какие угодно поля.
    Ответ написан
    Комментировать
  • Как вывести на экран данные из базы?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Если вам это необходимо для отладки, то лучше запустить django-shell командой python manage.py shell из каталога проекта и выполнять любые запросы в ней. Никакой лишний вывод вас беспокоить не будет и "die()" не понадобится.

    Чтобы получить список всех атрибутов класса можно использовать встроенную функцию dir(). Чтобы получить значения атрибутов объекта, используйте встроенную функцию vars().

    from django.contrib.auth.models import User
    user = User.objects.first()
    vars(user)


    {'_password': None,
     '_state': <django.db.models.base.ModelState at 0x7871fd0>,
     'date_joined': datetime.datetime(2013, 12, 12, 6, 6, 58, tzinfo=<UTC>),
     'email': 'user@domain.com',
     'first_name': 'Сергей',
     'id': 1,
     'is_active': True,
     'is_staff': True,
     'is_superuser': True,
     'last_login': datetime.datetime(2016, 3, 31, 8, 1, 59, 780493, tzinfo=<UTC>),
     'last_name': 'Горностаев',
     'password': '<secret>',
     'username': 'gornostaev'}
    Ответ написан
    1 комментарий
  • Стоит ли сейчас учить C# и .NET?

    @766dt
    Мой совет такой - не разбрасываться по языкам, а выучить один до такой степени, когда сам язык становиться не так уж и важен, а новым языком можно начать пользоваться, прочитав пару тонких книжек. Python для этой цели отлично подходит, на мой взгляд.
    Ответ написан
    2 комментария
  • Что будет перспективней в данном случае?

    ncix
    @ncix
    Предприниматель
    Есть ли смысл менять Python на php работать с ним?
    Вопрос не совсем корректный - вы не меняете, а дополняете свой "стек" новым языком.
    Двигайте туда где интересно. И поищите работу в интернете, если локально во Владе с этим напряг. Английский прокачайте немного.
    Мой вам совет - не бойтесь новых и абсолютно вам неизвестных языков, фреймворков и технологий. После 2-3 языков остальные пойдут уже очень легко, и будут выглядеть вариациями одних и тех же общих принципов. То же самое и с фреймворками.
    Я за 12 лет в программировании овладел профессионально VB, Delphi и SQL, потом за пару лет С++ и Qt, затем за 3 месяца Java/ADT (Android), сейчас вот без проблем развиваю в себе PHP и JS, посматриваю с любопытством на AngularJS. Кроме того параллельно занимаюсь контроллерами - начиная от Arduino с его любительским фремворком и до голого С и даже ассемблера.
    И чем больше охватываю технологий тем проще дальше развиваться.
    Ответ написан
    5 комментариев
  • Как устанавливать модули Django на VPS?

    @deliro
    Этот твой хостинг просит 425 рублей в месяц за 400 мгц ЦП, 256 оперативы и 5гб HDD (не SSD) ещё и нет доступа к системе? Вали с него :)
    Ответ написан
    6 комментариев
  • Как эффективно изучать angular js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1) продолжаем учить "ванильный JS", паралельно почитывая про babel, es2015 и т.д.
    2) когда мы ищем информацию в интернетах - учитываем что сейчас актуальная версия ангуляра - 1.5, второй ангуляр в бете, так что 90% информации устарело. Я даже больше скажу - даже официальная документация устарела, обновленный вариант сможете найти на github проекта в пул реквестах.
    3) https://github.com/gdi2290/ngExam - рекомендую этот список тем того, что вам надо знать про ангуляр (ну и не только).
    4) https://github.com/AngularClass/NG6-todomvc-starter - тут я попытался собрать полезные статьи на тему что надо учить и как + пример маленького современного приложения. Так же в ишусах к NG6-starter обсуждается как лучше его готовить.
    5) https://habrahabr.ru/post/277087/ - про angular 1.5 и то как я готовлю ангуляр.

    Ну и так же не стоит пренебрежительно относиться ко всяким реактам и эмберам - идеология у всех приблизительно схожа, все крутые чуваки юзают компонентный подход (потому что это удобно и логично для проектирования интерфейсов), у всех примерно одинаковое виденье по поводу data-flow в приложениях и т.д. Так что с ними ознакомиться тоже можно, у реакта чуть больше расписано про компоненты например.

    Ну и да - обязательно прочитать документацию к ангуляру. Возможно не всю сразу но базовые понятия что бы раскрыть. И разобраться с тем что значит "декларативное представление".
    Ответ написан
    4 комментария
  • Почему стремление к упорядочиванию приводит к большей энтропии и отнимает силы?

    @di23
    Периодически меня, как и вас, клинит на теме упорядочивания всего.

    Что я только не пробовал, что я только не читал и чего я только не делал. Иногда это было даже циклически, сначала бросался к одному методу, потом переходил на другой, потом на третий, а затем опять возвращался к первому. И так всегда, на протяжении 5 - 6 лет, точно уж и не помню.

    Сейчас пришел к выводу что лучшая система та, которая работает, работает легко, непринужденно и естественно, как правая рука. И боюсь, для вас сейчас будут плохие новости... Это означает, что упорядочивание всего - неэффективно и расточительно.
    Мозг и наш в целом организм - это не математика, а биология. Связи строятся хаотично. Эффективная цепочка становится крепче. Там где связь непрочная ищутся другие пути, как река находит свое русло, хоть оно и извилистое, но для реки данный путь является наиболее эффективным. Надеюсь, улавливаете мою мысль.
    Идем дальше. Ввиду того что связи строятся хаотично, не стоит насильно принуждать свой мозг работать по той или иной технике. Техника должна помогать, а не крушить ваши сформированные процессы. Принимайте то, что наиболее эффективно работает, пусть даже с виду это будет хаос. Вашему мозгу виднее, что хаос, а что нет. Совершенствуйте все постепенно, медленно, оттачивая процессы.
    По сути вы создаете гибрид, который работает только с вами и вашим мозгом. Не заменяя ваш мозг, а как бы является его продолжением, дополнительными нейронами или конечностями, которыми можно шевелить.

    Если уйти из абстрактного мира, в реальный. Это означает что у вас будет куча различных приложений, помогающих вам в повседневных делах, не удивительно если у вас будет сразу несколько ТуДушек.... Сейчас посчитал сколько их у меня, оказалась 4 штуки. Причем все они выступают также и хранителями информации. А сколько разнообразных хранителей информаций я использую... уж лучше и не считать.
    Причем все это эффективно работает, нужная инфа находится крайне быстро, несмотря на внешний хаос. Все это потому что мой мозг врос в систему и стал неотъемлемой его частью. Как пароль, как ключ, как процессор обрабатывающий хаос и упорядочивающий его в уме.

    Вот собственно как это работает у меня. Надеюсь "метафизики" достаточно в моем посте и вы ею насладились. ))) Я старался. )
    Ответ написан
    Комментировать
  • Как выучить основные методы и функции Javascript?

    trevoga_su
    @trevoga_su
    не надо учить язык, точнее не надо заучивать ВСЕ его методы/функции.
    надо знать хорошо синтаксис языка и понимать как на нем писать.

    достаточно пройтись 2-3 раза по мануалу глазами и понять, что он умеет и какие базовые методы в нем есть.
    потом когда возникает задача, например найти функцию какую-то, открываем мануал и читаем.
    это применимо ко всем ЯП
    Ответ написан
    4 комментария
  • Почему стремление к упорядочиванию приводит к большей энтропии и отнимает силы?

    opium
    @opium
    Просто люблю качественно работать
    какой то херней вы страдаете, пробовали просто делать?
    Ответ написан
    19 комментариев
  • Как отдать html-страницу, а потом её конвертировать в PDF?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    В pageclan содержится объект HttpResponse, а convertURI принимает ссылку на страницу. Надо что-то вроде

    tmpl = get_template('marketing/parser.html')
    html = tmpl.render(done)
    pdf = client.convertHtml(html)
    Ответ написан
    2 комментария
  • Как сделать публикацию новости посредством чекбокса?

    winordie
    @winordie
    Лучшая документация -- исходники
    class NewsView(ListView):
      model = News
      def get_queryset(self):
        return super().get_queryset().filter(published=True)

    В чем проблема то?
    Ответ написан
    22 комментария
  • Python. От теории к практике?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Суть вашего непонимания заключается в том, что сейчас программирование состоит не только из знания языка программирования, а из знания стека технологий, из которых можно построить продукт.

    Например, чтобы сделать веб-сайт на питоне, нужно понять как в принципе работает http, подучить html, понять как прицепить питон к веб-серверу (cgi?), разобраться как работает авторизация, как хранить данные (sql?). Часто для этого используют фреймворки, следовательно разобраться с ними, а для фреймворков уже нужен ООП.

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

    В общем учитесь дальше.
    Ответ написан
    Комментировать