• Что такое Redux простыми словами?

    Лучшее объяснение Redux что я видел.
    getinstance.info/articles/react/learning-react-redux
    ba494148d28e422b4c7bd269de5bed09.png
    Ответ написан
    Комментировать
  • Переход проекта с jQuery на Angular 1 или Angular 2 или React?

    @beduin01
    очень советую vuejs.org Vue посовременнее и побыстрее чем React будет
    Ответ написан
    4 комментария
  • ASP.NET Custom Authentication Service + OWIN или ASP.NET Identity 2.0?

    artem_b89
    @artem_b89
    Сетевой бездельник
    1) Достаточно
    2) В Identity реализован базовый функционал работы с пользователями/ролями и т.д., возможность подключения авторизации через стороннии сервисы.
    Если нужна простейшая аутентификация/авторизация, то Identity в целом не нужен, достаточно будет найти в DAL пользователя с указанными логином и паролем и авторизовать его.
    Псевдокод:
    public User Validate(string login, string secret)
    {
      return DbContext.Users.FirstOrDefault(x=>x.login == login && secret == secret );
    }  
    public async void SignIn(User user)
    {
    	List<Claim> claims = new List<Claim>();	
    	claims.Add(new Claim(ClaimTypes.Name, user.Name));
    	ClaimsIdentity identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
    	ClaimsPrincipal principal = new ClaimsPrincipal(identity);
    	await HttpContext.Authentication.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);
    }
    public async void SignOut()
    {
      await HttpContext.Authentication.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
    }

    Вся остальная логика работы с пользователями и ролями пишется достаточно легко. Вопрос только в том нужно ли городить свой велосипед.
    Ответ написан
    1 комментарий
  • Какую литература почитать по asp.net core?

    SuccessVM
    @SuccessVM
    Программирование - творчество
    Руководство по ASP.NET Core

    Документация по ASP.NET 5, не обращай внимание на старое название, его только недавно переименовали в Core.

    Оба ресурса отлично дополняют друг друга.
    Ответ написан
    Комментировать
  • На каких площадках (аля habrahabr) вы рассказываете о своих opensource проектах?

    @alexxandr
    you'll see in memory only 0xDEADFACE
    В баре обычно
    Ответ написан
    Комментировать
  • Знаете ли вы программистов которые в одиночку создали крутой проект?

    @asd111
    Google - два парня Сергей Брин и Ларри Пейдж
    Facebook - начал Марк Цукерберг
    Instagram - два парня, один делал приложение для iPhone, другой делал сайт, потом заработали расширились
    MsDOS - первую версию сделал один человек, потом Баллмер у него купил за 50 000 $ и права перешли Microsoft
    Nginx - начал Игорь Сысоев
    Компьютер Apple I - дело рук Стива Возняка
    Linux - начал Линус Торвальдс
    Git - начал Линус торвальдс
    Redis - Salvatore Sanfilippo ( antirez )
    Minecraft - начал Маркус Перссон ( также известный как notch )
    Dropbox - начал Дрю Хьюстон
    Shadertoy - создан Iñigo Quilez ( также известен как iq )
    C++ - начал Бьёрн Страуструп
    Python - Гвидо ван Россум
    PHP - Расмус Лердорф

    SimplaCMS - начал один человек
    DLE CMS - начал один человек
    TYPO3 CMS - начал один человек

    P.S. ответ редактировался и дополнялся
    Ответ написан
    20 комментариев
  • Кириллица в vim'e

    @vireulgr
    Понимаю, что "Вопрос задан более 3х лет назад", но может кому интересно будет ))
    Перед запуском vim в консоли делаю
    chcp 1251
    и потом, если возникают проблемы, обратно
    chcp 866
    В .vimrc такие настройки:
    if has( "gui_running" )
    ...
    else
        if has( 'win32' )
            set encoding=cp1251
            set termencoding=cp866
            set keymap=russian-jcukenwin
        endif
    endif

    Переключение языков производится сочетанием Ctrl-6. Подробнее см. справку в Vim
    :help keymap
    :help enc
    :help tenc

    UPD:
    Поюзал консольный Vim под виндой, и обнаружил ещё кое-что
    • Если в свойствах консоли выбрать какой-нибудь TrueType шрифт, то нужно делатьset termencoding=cp1251
    • Чтобы не запариваться с переключением chcp 1251 ... chcp 866, можно сделать алиас для cmd.exe: DOSKEY vim=chcp 1251 $T vim $* $T chcp 866, поместить этот алиас в скрипт и настроить автоматическое выполнение скрипта при старте cmd.exe (будет что-то вроде .bashrc для bash). Про алиас и скрипт подробнее здесь: stackoverflow.com/a/21040825/3047301.


    ОС Win 7 x64, Vim 7.4.
    Ответ написан
    Комментировать
  • В чем разница между var f = function(){}; и function f(){};?

    standy
    @standy
    var f = function() {};function expression
    function f() {};function declaration

    Основная разница в том, что второе поднимает определение функции до начала области видимости, в которой она объявлена. То есть можно использовать функцию до ее объявления.

    hoisted(); // выведет 'foo'
    
    function hoisted() {
      console.log('foo');
    }

    notHoisted(); // TypeError: notHoisted is not a function
    
    var notHoisted = function() {
       console.log('bar');
    };


    upd:
    Другое отличие состоит в возможности моментального вызова функции, так называемое iife

    var expression = function() { console.log('foo'); }();
    // выведет 'foo'

    function declaration() { console.log('bar'); }();
    // SyntaxError: expected expression, got ')'
    Ответ написан
    1 комментарий
  • Каковы ваши впечатления о книгах Мартина Фаулера?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Норм.

    p.s. Каков вопрос таков и ответ.
    Ответ написан
    Комментировать
  • Angular $digest цикл?

    miraage
    @miraage
    Старый прогер
    Максимальная глубина будет.

    Мало ли, у Вас есть сервис, который используется в 10 контроллерах в пределах одной страницы в разных view. Как им узнать об изменениях? - $rootScope.$digest().

    Когда я уверен, что мне надо запустить что-то в пределах одного элемента, и это ОЧЕНЬ критично по производительности - создам кастомную директиву, в которой вместо $scope.$apply() напишу $scope.$$phase || $scope.$digest(). Проверятся лишь вотчеры в пределах одного $scope.
    Ответ написан
    2 комментария
  • С чего начать механизм работы плагинов?

    smanioso
    @smanioso
    Отмечайте ответы на свои вопросы!
    1. Выбрать ЯП для плагинов
    2. Описать API для плагинов
    3. Реализовать

    Если уже есть опыт работы с документацией от Mozilla, то можно почитать их мысли о плагинах и их lifecycle - https://developer.mozilla.org/en-US/Add-ons/Plugin...
    Ответ написан
    Комментировать
  • Время жизни объекта, если передали ссылку его поля в статический класс?

    Mrrl
    @Mrrl
    Заводчик кардиганов
    Будет. Ссылка идёт не на поле объекта, а на объект, который когда-то лежал в этом поле. После чистки останется только объект d. Вот если бы в d при конструировании была ссылка на b, как на "родителя", то b бы тоже остался.
    Ответ написан
    Комментировать
  • Как удобней передать в шаблонизатор кучу аргуметов?

    iximiuz
    @iximiuz
    Сделайте так:
    tpl_params = {...}  # сколько угодно строк, заполняющих dict.
    return render_template("index.html", **tpl_params)

    А вообще... Есть такая практика - не передавать в шаблон море переменных. Кажется в Rails, если пишешь код в RubyMine, даже предупреждения будут, если передал в шаблон больше 1 или 2 объектов. Есть такой паттерн - View Object. Это про то, что нужно собрать все данные, требуемые текущей страницей, в один более или менее согласованный (по интерфейсу) объект и передать в шаблон именно его. При таком подходе код становится чище, и проще писать тесты на шаблонизацию.
    Ответ написан
    Комментировать
  • Как найти записи соответствующие элементам массива не прибегая к циклу, и используя лямбда выражение?

    @mayorovp
    Используйте методы расширения Linq Where и Contains. Также для поиска элемента в массиве можно использовать метод IndexOf.
    Ответ написан
    Комментировать
  • Структура когда, как построить правильно?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    Авторы такие:
    • Андрей Александреску,
    • Томас Кормен,
    • Ален Голуб,
    • Джефф Элджер,
    • Скотт Майерс.
    Ответ написан
    Комментировать
  • Куда поступать на программиста?

    @asd111
    Крутой ВУЗ дает больше возможностей больше знакомств, легче устроится в крутую компанию.
    Ответ написан
    Комментировать
  • Зачем нужен ООП?

    @Mercury13
    Программист на «си с крестами» и не только
    Я хотел спросить: вы что, студент? Потом посмотрел: нет, вебист. Вебистам действительно ООП нужно крайне редко; если не связывался с хитрой поддержкой сложных протоколов или со сложными моделями данных — в памяти, не в БД — можно писать без ООП и быть успешным вебистом.

    Я и сам долгое время не понимал, на что нужны эти объекты. Главный вопрос: ДЛЯ ЧЕГО?

    Для того, чтобы передать взаимодействие кучи вещей. Где нет взаимодействия, там нет ООП, и можно заниматься, например, научными расчётами, на которые мало кто из нас способен, высший пилотаж, и вообще про ООП ничего не знать. Помню, как Вассерман — тот самый, некогда программист техпроцессов — долго-долго вспоминал, что такое ООП.

    Предлагаю начать с простого.

    1. Объектный синтаксис. Было…
    iDog : integer;
    iDog := SpawnMonster(world, mtDog, x, y);
    ChargeAtPlayer(iDog);


    Стало…
    dog : TMonster;
    dog := world.SpawnMonster(mtDog, x, y);
    dog.ChargeAtPlayer;


    Уже стало красивее. Да и номер собаки можно случайно передать, например, вместо номера оружия; с типом TMonster такой фокус не пройдёт.

    2. Инкапсуляция.
    Это мы уже думаем над тем, чтобы вызовы функций не могли привести объект в «ненадлежащее» состояние, а всё, что может объект подпортить,— засунуто в private.

    3. Абстракция и наследование. Это уже «сложный пилотаж». Не высший — это неотъемлемая часть навыков хорошего программиста, да и для 80% задач это не нужно, зато в остальных 20-и очень улучшает жизнь. Самый простой пример. В какой-нибудь 2D-игре есть некий TGameObject, у которого виртуальные функции Live и Render. Первая прокручивает такт «жизни» объекта, вторая рисует его на экране. TGameObject можно разбить на TPlayer, TProjectile, TEnemy и TBonus, и т.д.

    Ах да. Для ООП не нужен объектно-ориентированный язык и объектный синтаксис, нужно объектно-ориентированное мышление. Например, Doom был написан на Си, но в очень-очень объектном стиле.
    Ответ написан
    Комментировать
  • Зачем нужен ООП?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Не везде и не всегда нужны классы. Вы верно заметили. НО! Прежде чем принять решение о том, что в конкретном месте кода класс только вредит, нужен профайлер или другие инструменты позволяющие принять такое решение. К примеру в Python словарь значительно выигрывает по скорости чем класс с методами.

    Фишка ООП в том, что человек уже думает классами! Поднимаем голову к небу и видим "Птица летит", другими словами "У объекта "Птица" был вызван метод "Лететь"", но мы так сложно не думаем и для нас это просто "Летящая птица".
    Вспомните детство и моменты когда родители посылали за хлебом. Как это происходило? Возможно это было так: "Объект сын в твое поле ложу объект "Задача" с полями "хлеб", "комод" и "100 рублей", в поле "результат" ложу "Хлеб". Объект сын вызываю метод "Купить"". Не думаю что это было так, мне кажется это было так: "Сын возьми 100 рублей и купи хлеба". В неявном виде обратились к объекту "Сын", вызвали метод "Взять" и передали аргумент "100 рублей" и ожидаем результат вызова в виде значения "Хлеб".

    Попробуйте процедурный подход переложить в нашу естественную жизнь? ;) Попробуйте так общаться, процедурно. Это очень сложно. Потому что человек привык думать объектами! Самолет, кошка, лошадь, дерево и др. Для нас вроде есть концепция "кошка", но конкретная кошка "Масяня" сильно отличается от другой конкретной кошки "Машка".

    Изучая задачу мы прежде всего должны задать вопрос : "Что является условием завершения задачи?" и вторым не менее важным "Что используется при достижении результата?". Вот это "что используется" как правило и есть объекты.
    Ответ написан
    8 комментариев
  • Какой ЯП лучше всего подойдёт для данной задачи?

    maaGames
    @maaGames
    Погроммирую программы
    Любой язык, который знаешь достаточно хорошо для реализации этой задачи и который поддерживается используемым сервером. На загрузку файлов потратишь больше времени, чем на их парсинг любым из озвученных языков, так что выбирай из собственных знаний и удобства реализации.
    Ответ написан
    5 комментариев