Задать вопрос
  • Примеры классов в программировании?

    cjey
    @cjey
    Классы нужны для реализации объектно ориентированного подхода в программировании.
    Поэтому правильнее сравнивать ООП и Процедурное или модульное программирование.
    У всех подходов есть свои плюсы и минусы, где-то удобнее один подход, где-то другой.

    В вкратце плюсы ООП:
    * Инкапсуляция. Проверка прав доступа данных на уровне языка. Нельзя случайно испортить чужую переменную. Объединение данных и методов работы с данными в одну сущность.
    * Абстракция. Можно работать с объектами как с черным ящиком, не задумываясь как оно устроено внутри.
    * Наследование. Можно породить сущность на основе уже существующей, немного ее изменив. Нет необходимости полного описания новой сущности, достаточно описать только различия.
    * Полиморфизм. Можно работать с группой разных сущностный через общий интерфейс.
    Ответ написан
    6 комментариев
  • Примеры классов в программировании?

    aush
    @aush
    The venerable master Qc Na was walking with his student, Anton. Hoping to prompt the master into a discussion, Anton said "Master, I have heard that objects are a very good thing - is this true?" Qc Na looked pityingly at his student and replied, "Foolish pupil - objects are merely a poor man's closures."

    Chastised, Anton took his leave from his master and returned to his cell, intent on studying closures. He carefully read the entire "Lambda: The Ultimate..." series of papers and its cousins, and implemented a small Scheme interpreter with a closure-based object system. He learned much, and looked forward to informing his master of his progress.

    On his next walk with Qc Na, Anton attempted to impress his master by saying "Master, I have diligently studied the matter, and now understand that objects are truly a poor man's closures." Qc Na responded by hitting Anton with his stick, saying "When will you learn? Closures are a poor man's object." At that moment, Anton became enlightened.

    Anton van Straaten

    Без классов прекрасно можно обойтись. Более того, на примере разработки на объектно-ориентированном C# можно заметить, что если четко следовать принципам Single responsibility и Open/closed из SOLID, то код начинает сильно напоминать функциональный.

    Тут нет такого, как лучше/хуже. Есть разные задачи, разные подходы и разные инструменты.

    Можно сказать, что главная задача, которую решают классы - инкапсуляция. Допустим, два человека работают с одним проектом и оба создают для своей задачи какую-то глобальную переменную и работают с ней в своих функциях. В итоге, ни один из них не может быть уверен в том, какое значение имеет эта переменная в заданный момент времени. Если же каждый из них следует принципу инкапсуляции, то такой проблемы обычно не возникает.
    Ответ написан
    4 комментария
  • Что не так в этом генераторе рандомных чисел?

    Remmi
    @Remmi
    Если числа жёстко должны быть в диапазоне от 1 до 20 - можно попробовать сделать массив с числами от 1 до 20, а потом отсортировать их в случайном порядке.

    У Кантора есть пример реализации.
    Ответ написан
    3 комментария
  • Чем лучше анимировать блоки?

    dimka-dooz
    @dimka-dooz
    front-end разработчик)
    Если нужна поддержка старыx браузеров, то js. если нет, то css)
    Ответ написан
    Комментировать
  • Чем лучше анимировать блоки?

    rework
    @rework
    Помог ответ? В благодарность отметь его решением
    Если анимация не очень сложная и есть возможность реализовать на css, то лучше выбрать этот способ, т.к. анимация получается более плавной и не такой прихотливой к ресурсам.
    Ответ написан
    Комментировать
  • JavaScript - как скопировать выделенный текст?

    deadbyelpy
    @deadbyelpy
    веб-шмеб
    function getHTMLOfSelection () {
          var range;
          if (document.selection && document.selection.createRange) {
            range = document.selection.createRange();
            return range.htmlText;
          }
          else if (window.getSelection) {
            var selection = window.getSelection();
            if (selection.rangeCount > 0) {
              range = selection.getRangeAt(0);
              var clonedSelection = range.cloneContents();
              var div = document.createElement('div');
              div.appendChild(clonedSelection);
              return div.innerHTML;
            }
            else {
              return '';
            }
          }
          else {
            return '';
          }
        }
    Ответ написан
    2 комментария
  • Как делаются такие игры на JS?

    Symphony
    @Symphony Куратор тега JavaScript
    на js делаются с помощью canvas+webgl, а Ваше демо сделано на флеш
    Ответ написан
    Комментировать
  • Сколько весит булевая переменная в си подобных языках?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    toster.ru/answer?answer_id=396975

    как можно в обычной переменной изменить значение третьего бита или получить его значение

    int v = 8;
    int v3 = (v >> 3) & 1; // получил значение третьего бита (0/1)
    
    v ^= (1 << 3); // инвертировал третий бит
    v |= (1 << 3); // установил третий бит
    v &= ~(1 << 3); // сбросил третий бит
    Ответ написан
  • Сколько весит булевая переменная в си подобных языках?

    @DancingOnWater
    Побитовые операции смотреть.
    А еще битовые поля.

    Вот так, к примеру, можно получить третий бит (написал из головы, за полную корректность не отвечаю)
    uint x = 10;
    int value = (x & 0x8) >>2;

    P.S. А 4 весит из-за того, что все типы в Си пляшут от 4-битового char. Но никто не мешает объявить структуру шириной в 1 бит, но тогда самому придется встретиться с выравниванием.
    Ответ написан
    Комментировать
  • В чём прикол таких сайтов?

    Rrooom
    @Rrooom
    Потому что сидят крутые дизайнеры и фронтэндеры на топовых мак про и плевать им, что у простых смертных не 32гига оперативы и не топовый i7.

    Зато красиво.
    Ответ написан
    8 комментариев
  • Как сделали такой эффект зума на js?

    KorsaR-ZN
    @KorsaR-ZN
    Там через видео ролики сделано, и когда ролик полностью проигрывается, он скрывается и показывается последний кадр зума, как картинка.

    Пример: видео и последний кадр
    Ответ написан
    1 комментарий
  • В чём прикол таких сайтов?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    У меня все отлично прокручивается и не подвисает.
    Анимации позволяют разнообразить процесс поглощения контента и не дают заскучать + есть лишний стимул в виде интереса промотать до конца.

    В целом Ваш вопрос не очень понятен.
    Если вопрос "Зачем делать одностраничные лендинги" - ответ очевиден.
    Если вопрос "Зачем добавлять туда анимацию" - ответ "а почему бы и нет?"
    Ответ написан
    Комментировать
  • Что не так настроено в почте?

    merryjane
    @merryjane
    Системный администратор
    Вам надо переопределить переменную sendmail_path.
    Это можно сделать или в конфиге php.ini или в конфиге виртуального хоста apache.
    Должно быть как-то так:
    sendmail_path = sendmail -t -i -f noreply@domain.com -F Интернет-магазин\ MyDomain
    Ответ написан
    3 комментария
  • Как сделана эта игра?

    CTAKAH4uK
    @CTAKAH4uK
    JS, :
    // создаём игру
    	new PikabuGame2('pikabu_game2_container', '.');
    	window.focus();

    Изображения хранятся в Base64, скорее всего APNG.
    Ответ написан
    4 комментария
  • Какая проверка работает быстрее?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Какая проверка работает быстрее?

    Которая вызывает переход, предсказанный предсказателем переходов (поскольку ветвь по которой пойдет код уйдет в конвеер)

    Если в контексте PHP/Python/Ruby то разницы нету вообще, потому что поток команд формируется по мере выполнения и в итоге не особо получится что-то такое разруливать и тут вообще пофигу какое из перечисленных условий вы будете выполнять. А если говорить о java/javascript/c#/c++/etc то тут большее значение имеет то, как часто будет срабатывать одна или другая ветвь кода. Скажем если условие всегда выполняется или не выполняется, то современный процессор будет после первых двух итераций всегда угадывать какая ветвь кода будет грузиться и оверхэда вообще не будет. Не знаю как на AMD но на интеловских так же неплохо работает предсказание того, что ветви будут выполняться по переменно, один раз одна, другой раз другая.

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

    И да, если это вообще разовое условие то можно просто забить. Это важно только в циклах.
    Ответ написан
    Комментировать
  • Какая проверка работает быстрее?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    никакой разницы, т.к. операция математического сравнения - это одна команда процессора.
    Ответ написан
    Комментировать
  • Как избежать попадания письма в спам, отправленной функцией mail()?

    @donbot
    Вероятно дело в другом. Для того, чтобы узнать в чем проблема, воспользуйтесь этим сервисом.
    Ответ написан
    Комментировать
  • Провод vs радио?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Оптика однозначно быстрее. Кстати оптика это не провод. А провод не коаксиал. Так что вы уж определитесь что вам нужно.
    Ответ написан
    Комментировать
  • Как связан Devocot и Postfix?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Postfix - MTA, Mail Transfer Agent, почтовый сервер SMTP.
    Dovecot - почтовый сервер POP3 и IMAP
    Phpmailer - класс для отправки почты через SMTP
    Ответ написан
    Комментировать
  • Какой самый перспективный язык программирования для написания игр в будущем?

    Под iOS Swift для спрайтовых игр.
    Для остального всегда был и будет, мне так кажется, С++.
    Ответ написан
    Комментировать