Задать вопрос
  • В чем указывать доход, если он приходил в долларах на рублевый банковский счет?

    opium
    @opium
    Просто люблю качественно работать
    В рублях конечно
    Ответ написан
    Комментировать
  • Почему не работает lenght?

    @AFI19
    У вас ошибка в lenght, нужно length
    Ответ написан
    Комментировать
  • Как запретить Google считать страницы с GET-параметрами самостоятельными страницами?

    PavelMonro
    @PavelMonro
    Насколько знаю для Гугла этот вопрос решается каноническими ссылками
    Ну или в robots
    Disallow: /*?*dir=
    Disallow: /*?*order=
    Disallow: /*?*p=
    Ответ написан
    1 комментарий
  • Не завышено ли тестовое?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Задание простое для человека с опытом yii2. Но для стажера это странно. Однако разобраться со всем этим Вам все равно нужно, так что не вижу причин не сделать это в рамках тестового задания. Да будет не просто и не быстро, но это навыки, которые не раз пригодятся.
    Ответ написан
    2 комментария
  • Как заменить switch case паттерном стратегия?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Switch
    public enum DamageType { Melee, Range, Magic }
    public class Monster
    {
        public double Health { get; private set; }
        public double MeleeDamage { get; private set; }
        public double RangeDamage { get; private set; }
        public double MagicDamage { get; private set; }
        public DamageType FavoriteDamageType { get; private set; }
    
        public Monster(double health, double meleeDamage, double rangeDamage, double magicDamage, DamageType favoriteDamageType)
        {
            Health = health;
            MeleeDamage = meleeDamage;
            RangeDamage = rangeDamage;
            MagicDamage = magicDamage;
            FavoriteDamageType = favoriteDamageType;
        }
    
        public void AttackTo(Monster monster, DamageType damageType)
        {
            switch (damageType) // используется switch
            {
                case MonsterType.Melee: monster.Health -= MeleeDamage; break;
                case MonsterType.Range: monster.Health -= RangeDamage; break;
                case MonsterType.Magic: monster.Health -= MagicDamage; break;
            }
        }
    
        public void AttackTo(Monster monster)
        {
            AttackTo(monster, FavoriteDamageType);
        }
    }


    То же самое, но со стратегией
    public class Monster
    {
        public double Health { get; set; }
        public double MeleeDamage { get; private set; }
        public double RangeDamage { get; private set; }
        public double MagicDamage { get; private set; }
        public IDamageStrategy FavoriteDamageStrategy { get; private set; }
    
        public Monster(double health, double meleeDamage, double rangeDamage, double magicDamage, IDamageStrategy favoriteDamageStrategy)
        {
            Health = health;
            MeleeDamage = meleeDamage;
            RangeDamage = rangeDamage;
            MagicDamage = magicDamage;
            FavoriteDamageStrategy = favoriteDamageStrategy;
        }
    
        public void AttackTo(Monster monster, IDamageStrategy damageStrategy)
        {
            damageStrategy.Attack(this, monster); // не используется switch
        }
    
        public void AttackTo(Monster monster)
        {
            AttackTo(monster, FavoriteDamageStrategy);
        }
    }
    
    
    public interface IDamageStrategy
    {
        void Attack(Monster attacker, Monster defender);
    }
    public class MeleeDamageStrategy : IDamageStrategy 
    {
        public void Attack(Monster attacker, Monster defender)
        {
            defender.Health -= attacker.MeleeDamage;
        }
    }
    public class RangeDamageStrategy : IDamageStrategy 
    {
        public void Attack(Monster attacker, Monster defender)
        {
            defender.Health -= attacker.RangeDamage;
        }
    }
    public class MagicDamageStrategy : IDamageStrategy 
    {
        public void Attack(Monster attacker, Monster defender)
        {
            defender.Health -= attacker.MagicDamage;
        }
    }

    Отличие класса Monster только в коде первого метода AttackTo. Ну и свойства FavoriteDamageType или FavoriteDamageStrategy.

    Стратегия может быть полезна, если код атаки, в зависимости от типа, сильно отличается, используя внешние данные (не из класса монстра), например, день или ночь, ясно/дождь и пр. Использование стратегии переносит часть кода из класса монстра (и так сложного класса) в несколько простых классов.
    Ответ написан
    1 комментарий
  • Как заменить switch case паттерном стратегия?

    qonand
    @qonand
    Software Engineer
    Для выбора стратегии switch не используется. Объект необходимой стратегии просто передается в класс. Пример можно посмотреть например здесь
    Ответ написан
    1 комментарий
  • Как правильно дождаться выполнения всех потоков, созданных в цикле?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Написано все правильно.

    Чтобы понять, в чем проблема, давайте попробуем внутри метода "GenerateMonthSheet" вывести в лог две записи: начало работы, окончание работы (с указанием месяца).

    И посчитаем, сколько стартануло, сколько завершило работу.

    P.S. А как вы номер месяца в генератор передаете? И откуда берется переменная "sh"?
    Ответ написан
    1 комментарий
  • Как правильно дождаться выполнения всех потоков, созданных в цикле?

    tomnolane
    @tomnolane
    профессиональный разработчик
    оффтоп
    люди подписались чисто поглазеть или поржать?

    вы уверены, что вам нужен Thread?
    Task или Thread в C#.NET 4.0 WPF? ( Павел Елизарьев доступно описал разницу в ответе)
    я бы использовал Task для начала, т.к. есть такая замечательная штука, как пулл потоков (подзабыл как на английском называется) который лучше обычного программиста (автоматически) понимает, когда и кто закончил, сколько есть свободных, сколько нужно и что с ним дальше делать. И нужно у вас в коде делать акцент не на блокирование/синхронизацию потоков (оставьте их в покое - чем быстрее сделают, тем лучше), а использовать вот такую простую штуку: Оператор lock
    а зависание происходит потому, что вы и основной поток блокируете.
    Ключевое слово lock не позволит ни одному потоку войти в важный раздел кода в тот момент, когда в нем находится другой поток. При попытке входа другого потока в заблокированный код потребуется дождаться снятия блокировки объекта.
    Ответ написан
    1 комментарий
  • Как правильно дождаться выполнения всех потоков, созданных в цикле?

    @kttotto
    пофиг на чем писать
    У Вас не правильный подход. Во первых забудьте про Thread и используйте TPL. Во вторых для распараллеливания запросов в цикле есть замечательный метод Parallel.ForEach. В третьих для ожидания выполнения всех параллельных задач есть Task.WaitAll.
    В общем Вы можете создать список Task-ов и запихнуть их в Task.WaitAll, но лучше пройдитесь параллельным форичем по Вашему периоду и внутри запускайте Ваши методы. Код за форичем будет ожидать завершения всех потоков в цикле.
    Ответ написан
    2 комментария
  • Сколько нужно знать слов, чтобы начать учиться только на английском?

    @Programmir
    Надо развивать listening и speaking. Вот я знаю 5000 слов на английском, но вообще не воспринимаю на слух, могу уловить только отдельные слова. А потом читаю текст и удивляюсь, как это я его не понял. Вроде простые слова используются.
    Ответ написан
    Комментировать
  • Насколько реально совмещать учебу и работу в Чехии?

    У меня данные не самые свежие (5 летней давности), может что изменилось.
    Я был в Брненском техническом университете на IT факультете.
    На посещение лекций особо никто не смотрит, важно только здаешь ли ты вовремя задания\лабораторные\экзамены.
    Но вариантов пересдать\досдать\сдать позже,
    для большинства заданий\лаб нет. пропустил время сдачи лабы, или завалил ее по полной - все можешь больше на лекции даже не ходить, нужно будет заново этот предмет в следующем году проходить. (Если до следующего года дойдет дело), так что оно может быть достаточно напряжно при совмещении с работой, но
    в принципе наверно реально.

    Основной вопрос по трудоустройству у меня был связан с визой, у меня была учебная виза, и по ней официально работать на полную ставку было нельзя. Если делать рабочую визу, то были проблемы что при увольнении надо очень быстро найти другую работу. 2 визы сразу иметь было нельзя. Вот как сейчас с этим дела я не знаю.
    Ответ написан
    Комментировать
  • Где найти HTML верстальщика?

    EugeneOZ
    @EugeneOZ
    JS/AJAX разработка; — это не верстальщик, не надо хитрить.
    Ответ написан
    Комментировать
  • Как направить программиста на путь истинный?

    akubintsev
    @akubintsev
    Опытный backend разработчик
    Есть два пути:
    1) объяснять зачем нужен единый и адекватный стиль кода
    2) использовать административный ресурс

    Второй путь более эффективен с точки энергозатрат и результата. Но, соответственно, нужно иметь утвержденные стандарты стиля кода.
    Ответ написан
    Комментировать
  • Как правильно использовать многопоточность в однотипных циклических операциях?

    @petelinmn
    Программист
    Если слабое место запросы, то думается именно их и нужно оптимизировать.
    Если в многопоточном режиме загрузить БД будет ли намного быстрее работать это вопрос.
    Ответ написан
    Комментировать
  • Как правильно использовать многопоточность в однотипных циклических операциях?

    DarkRaven
    @DarkRaven
    разработка программного обеспечения
    А почему вы не можете перейти на 1 запрос? Реально, так было бы проще.
    Касаемо же многопоточности, то тут важно, чтобы провайдер поддерживал пул соединений (и использовал их, в вашем случае) и создавалось новое соединение для каждого потока.

    Но, большого ускорения не будет, вы тут упретесь в размер пула соединений. Еще момент, сколько активных соединений поддерживает ваша БД.

    Вариант с многопоточным формированием отчета - это очень дорогой, как для БД, ресурсов , так и для железа и, повторюсь - будет куда лучше это делать через один запрос.
    Ответ написан
    2 комментария
  • Почему в большинстве университетов C# стал заменять Java?

    longclaps
    @longclaps
    Как действующий профессор многих университетов отвечаю:
    таковы мои личные предпочтения.
    зы и что за дурацкое противопоставление: разумный выбор vs Microsoft?
    Ответ написан
    1 комментарий
  • Как лучше всего выполнить задание на должность Junior QA?

    Привет.

    1) У тебя должно быть по итогу два документа: Тест-план и Тест-кейсы (табличкой). Их ты сможешь сделать, если прочитаешь базовую теорию по тестированию софта. Обычно тест-план занимает одну страничку, а тест-кейсы содержат от 5 до 10 страничек на собеседованиях.

    2) Надеюсь, ты у них спросил какие они дают тебе ограничения по тестированию игру. Так как при тестировании игры в вакууме, получается такой же "вакуумный ответ". Поэтому, хорошо бы выписать все спорные и пограничные моменты, которые у тебя есть, и уточнить их у продакта (того, кто тебя собеседует). Это любят на собеседованиях, так как если ты этого не спрашиваешь, они понимают, что ты в этом вообще ничего не шаришь.

    3) Не делать тупую ошибку - пытаться ломать игру с самого начала. Твоя задача для начала проверить, что игра работает правильно (согласно требованиям), потом проверить пограничные случаи, а только потом делать негативные тесты.
    Ответ написан
    1 комментарий
  • Как интегрировать AMP в сайт без cms?

    Maksclub
    @Maksclub
    maksfedorov.ru
    1. создаете на сайте правило в роутинге или директорию /amp/ (смотря как у вас там)
    так, чтобы все ваши страницы "дублировались"
    • обычная /about
    • amp /amp/about

    Но та, что по роуту /amp/... должна отдаваться по определенной разметке. то есть вам нужно или поправить разметку или шаблон или как там у вас... не знаю

    2. Потом нужно на обычных страницах указать отсылку на АМП версию:
    https://www.ampproject.org/ru/docs/tutorials/creat...

    Все! Гугл закеширует ваши страницы и будет отдавать со своего сайта удобный контент

    Более подробно: https://www.ampproject.org/ru/docs/tutorials/create
    Ответ написан
    3 комментария
  • Как вернуть мотивацию к обучению?

    При повторной потере мотивации алгоритм следующий:
    1) Идем высыпаемся. По-нормальному так, без будильников. Чтоб глаза вообще больше не закрывались.
    2) Если мотивация не вернулась (возвращается в 70% случаев) - берем велик (хотя можно и пешком) - и на улицу. Если есть приличный парк в городе - находим пару нестандартных физ. упражнений (можно боевых), пытаемся выполнить. Работа с телом и физические нагрузки - это совершенно другая часть вашего сознания, про нее нужно не забывать.
    3) Если мотивация не вернулась (уже где-то 85% случаев) - берем случайную книгу (не техническую), в идеале - из жанра который вам нравится. Читаем. Спокойно, страницы не считаем.
    4) Если не вернулась, повторить с п. 1 до пяти раз, не думая о времени и выполняя только самые важные дела (срочные задачи по учебе, работа, если есть), можно даже попросить родных/знакомых помочь по дому и бытовым делам, чтобы себя разгрузить.
    5) Если не помогло после 5 раз, задаем новый вопрос на тостере, подробно описываем что делали).

    Хотя бы один из п. 1-3 выполняем для профилактики каждый выходной.
    P.S. в принципе плохо сравнивать себя с кем-то - для "сравнения" на свете есть всякие соревнования и состязания, где есть правила и контекст. В жизни правил нет, один учится в MIT, другой учится в колледже в России - какие могут быть сравнения? Вы думаете тут большинство людей за один год все узнало и всего добилось? Вы глубоко заблуждаетесь) PHP-шники-выскочки не в счет, у них искаженное представление о реальности.
    Ответ написан
    11 комментариев