• Что написать на ASP.NET MVC WebAPI + AnjularJS(либо другой SPA фрейм) для практики, разнообразные JS - Api приветствуются))?

    @coddy
    FullStack Web Developer
    Чат с комнатами, регистрацией и использованием SignalR.
    Ответ написан
    Комментировать
  • Абстрактные классы и интерфейсы - когда применять одно или другое?

    @Mercury13
    Программист на «си с крестами» и не только
    Всё зависит от того, что вы хотите. И вообще, с «опциональной» функциональностью есть много вариантов (для простоты пишу на Java).

    1. «Типа по ООП».
    class Animal {}
    class Dog extends Animal {
       public void doSound() {}
    }

    Недостаток: если у нас есть собака со звуком, кошка со звуком и утка со звуком и надо выдать звук, если возможно — фигвам!

    2. Реализовать интерфейс Vocal
    interface Vocal {
      void doSound();
    }
    class Animal {}
    class Dog extends Animal implements Vocal {
       @Override
       public void doSound();
    }

    В таком случае
    if (animal instanceof Vocal)
      ((Vocal)animal).doSound().

    Впрочем, такие преобразования типа — тоже слегка не по ООП.

    3. Не в курсе, возможно ли в Java, напишу это на C++. Protected doSound в Animal и public в Dog.
    class Animal {
    protected:
       void doSound();
    };
    class Dog : public Animal {
    public:
      using Animal::doSound;
    };

    Недостаток в том, что если всё же придётся организовывать общую функциональность — то приходится писать шаблон «Public Морозов».
    Пример: у всех компонентов VCL есть protected __property Caption. И в 99% случаев этого хватает: заглавие отображается где-то — вытягивай наружу. У меня возник вопрос с автоматическим переводом форм. Либо подключай интроспекцию, либо Public Морозов (в Delphi/Builder есть интроспекция и доп. право доступа published, подключающее свойство к ней). Я не стал мучиться и сделал второе.
    Также задача несколько неудобна, когда библиотека долго живёт и развивается: с каждой новой версией приходится выносить наружу всё новые и новые свойства
    Плюсы? Просто, малый расход памяти и удобно писать специальные задачи. Например, свойство Hint protected, но действует; если всплывающая подсказка какая-нибудь динамическая и снаружи менять нельзя — меняй на здоровье изнутри.

    ЗЫ. Пришёл с работы, то же самое на Java.
    public class Dog extends Animal {
        @Override
        public void doSound() { super.doSound(); }
    }

    Ну а роль Морозова будут играть API интроспекции и «морозовский» класс в том же пакете. Все мы забываем, что protected покрывает более жёсткое package, т.е. из того же пакета тоже можно.
    public static void main(String[] args) {
            Animal an = new Animal();
            an.doSound();   // protected!
        }


    4. Может ли издавать звук?
    class Animal {
    public boolean isVocal() { return false; }
    public void doSound() {}
    }


    5. Вернуть интерфейс Vocal; если null — животное молчит.
    class Animal {
    public Vocal getVocal() { return null; }
    }


    Что выбирать — однозначного ответа нет. Насколько много будут наследовать от этого класса, насколько много будет общих задач и насколько будет перегруженной документация… Допустим, если мы не имеем доступа к классу Animal, заманчиво второе. А если Vocal — не интерфейс, а абстрактный класс, то пятое.
    Ответ написан
    Комментировать
  • Jquery. Как загрузить несколько частей html через ajax-запрос?

    Immortal_pony
    @Immortal_pony Куратор тега JavaScript
    В данной строке формируется html, который будет вставлен в модальное окно.
    var new_data = $(data).find('#content').html();

    Его можно изменить примерно следующим образом:
    var new_data = '';
        new_data += '<div>Какой-то свой код</div>';
        new_data += $(data).find('#some-block').html(); // Вместо #some-block можно использовать любой селектор
        new_data += '<p>Еще немного своего кода</p>';
        new_data += $(data).find('#content').html();
    Ответ написан
    Комментировать
  • Где хостить ASP.NET Core + F1 план от Azure?

    SuccessVM
    @SuccessVM
    Программирование - творчество
    ASP.NET Core имеет второе название ASP.NET 5. Фреймворк разработан для новой платформы от Microsoft - .NET Core, её разрабатывали, как кросс платформенное решение для запуска на любой популярной ОС.

    ASP.NET Core будет прекрасно работать, как на Windows или Mac OS X, так и на Linux - Debian/Ubuntu/CentOS/Fedora.

    При запуске ASP.NET Core приложения на Linux или Mac OS X необходимы следующие установленные компоненты:

    • Платформа .NET Core или альтернативная платформа Monо - это open source проект, реализующий .NET Framework, для платформ Mac OS X или Linux. Mono активно поддерживается компанией Xamarin и совсем недавно Microsoft официально объявила о приобретении Xamarin.

    • Веб сервер, который будет взаимодействовать с ASP.NET приложением, например Kestrel. Kestrel – проект с открытым исходным кодом, кросс платформенный. Можно использовать любой другой веб сервер, главное, чтобы он реализовывал интерфейсы Feature ASP.NET приложения, как минимум, IHttpRequestFeature и IHttpResponseFeature. Если приложение не высоконагруженное, запросы к Kestrel можно принимать напрямую, но обычно используют прокси сервер, как Apache или NGINX.


    На Windows, помимо установленного .NET Core также потребуется наличие веб сервера для работы с элементами Features ASP.NET, рекомендуется использовать WebListener, но можно тот же Kestrel. Прокси сервером, в данном случае, лучше использовать IIS, хотя можно любой другой.

    Что же касается плана от Azure, то это прекрасная возможность ознакомиться с облачными технологиями и разрабатывать северные приложения совершенно бесплатно, но для продакшена такой вариант не подойдёт, тут либо переходить на платный тариф либо искать альтернативу, например виртуальный или облачный сервер на Linux – сейчас это вполне доступно.
    Ответ написан
    Комментировать
  • Где хостить ASP.NET Core + F1 план от Azure?

    @just_dmitry
    F1 - всего 60мин ЦП/сутки (плюс 3 мин в течение 5 мин), нельзя подцепить свой sitename (будет только дефолтный yoursite.azurewebsites.net).

    В D1 получше с ЦП, плюс можно custom domain name.

    Что касается других хостингов, то благодаря фичам ASP.NET Core его можно хостить на обычном IIS (8б yf 7.5 надо вроде доставлять модуль в IIS для роутинга запросов в отдельный dnx процесс), надо лишь умудриться указать что wwwroot находится "глубже" чем сама папка дистрибутива сайта. На "подконтрольном" сервере на работе это заняло одну минуту, а вот какие хостинги дадут провернуть этот фокус у себя - хз, сам только задался этим вопросом.
    Ответ написан
    Комментировать
  • Как минимизировать нагрузку на сервер для чата на ASP.NET MVC с SignalR?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Не инстанс контекста, а не самой БД - разные вещи!
    Используй dependencyInjection и переиспользуй инстанс контекста БД в каждом последующем контроллере, подойдет NInject.
    Где хостится сервер? IIS? Katana? Если IIS, то стоит помнить про то, что пул может убиваться, соответственно объекты не вечные, в отличие от self-hosted.

    Чтобы минимизировать нагрузку и не завязываться на БД стоит продумать кэш в оперативной памяти, продумать сценарии рефреша страницы и подгрузки недавней истории. И, конечно же, корректно использовать entity для чтения (Не трэкать всё подряд) и записи (вставка пачками - bulkinsert по таймеру, если требуется ну очень много вставок).
    Ответ написан
    3 комментария
  • Как написать программу для двигателя авто?

    Spetros
    @Spetros
    IT-шник
    Нужно взять язык программирования, документацию на интерфейсы и протоколы передачи данных систем автомобиля, и совместить путем написания программы, которая делает то, что от нее требуется.
    Ответ написан
    Комментировать
  • Прошу помочь составить план\стратегию\порядок обучения, радиоэлектронике\пайке\и т.п.?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    Ну тут два важных вопроса, как и в любой науке - теория и практика.
    Для начала нужно изучить теорию, понять смысл, суть, физику, основы процессов и движения электронов, p-n-переходы, термопреобразования, вольт-амперные характеристики, законы токов, закон Ома и т.д.
    На этот случай в СССР издано много хороших классических книг. Их можно погуглить и скачать. Либо можно купить в бумажном варианте, есть классика уже с эндцатым переизданием, до сих пор актуальна.
    Есть и новые книги. На любой вкус. Как основа и база, можно порекомендовать таких авторов: Хоровиц, Хилл, Шило, Корис, Титце, Шенк, Фрунзе, Банк, Баскаков, Гоноровский, Калашников, Иванов, Шахгильдян, Олсон, и другие.
    Это только что сразу же вспомнил. Вообще заяндогуглите по тегам: основы электроники, радиотехники, схемотехники. Не забывайте, что радиотехника или электроника подразделяется глобально на аналоговую и цифровую.
    Собственно по каждому разделу свои книги и принципы познания. Не забывайте про теорию цепей, способы рассчета их, тут будет полезной линейная, аналитическая, матричная алгебра. При изучении дискретной\цифровой техники или электроники будет необходимо знать дискретную математику и булеву алгебру. Это все основы, это все теория. Также полезен старый добрый журнал "Радио".
    Любую теорию подкреплять необходимо практикой. Рассчеты - рассчетами, решением различных задач, особенно практических. Полезны будут для изучения даже задачи из сборника задач по физике (раздел электричество), радиолектронике, схемотехнике. То есть теоретико-практические задачи - именно тренируют умение применять базу знаний для анализа и рассчетов.
    Ну и собственно после этого самая что ни на есть настоящая практика - пайка, монтаж, проектирование в CAD, работа руками...
    Очень важным будет являться умение пользоваться современными средствами рассчетов и измерений: калькулятор, компьютер, программатор, осциллограф, мультиметр, вольтметр, амперметр. Знать протоколы обмена между периферией и цифровой аппаратурой.
    Ну и самым наверное главным инструментом будет паяльник с всей оснасткой: припои, пасты, жала, канифоли, жиры, шкурки, зачистки, и другие колюще-режущие штуки, способные прийти на помощь при монтаже или пайке.
    В настоящее время в китайских интернет-магазинах есть готовый toolkitы, то есть наборы для обучения электро-монтажу-программированию-конструированию цифровых устройств, также там можно заказать и провода и макетные платы.
    В комплекте с toolkitами идут бывает и инструкции и методики, даже полезно будет приобрести вариант для детей, тоже бывает интересно.
    В интернете распространен буржуйский журнал по проектированию устройств на основе Raspberry Pi, различные проекты. Можно обучаясь попробовать и это на практике, там и пайка и программирование.
    Вообще, изучать электронику и позновательно и увлекательно, в настоящее время для этого все есть. Единственное, подумайте, зачем вам это? Просто как хобби - одно, а если вы хотите стать профессиональным проектировщиком радиоаппаратуры - то сложновато будет самостоятельно все изучить, так как нужны более фундаментальные знания. В таком случае без высшего образования тут никуда не деться. Так что какова ваша мотивация, каковы ваши цели - такова будет и соответствующая стратегия.
    Если хотите базовые знания, реальный и крутой диплом о высшем образовании - то учите математику с физикой, информатику и английский - и вперед в ВУЗ!
    Удачи в постижении электротехнических наук!
    Ответ написан
    5 комментариев