• Как работает angular изнутри?

    YuriyVorobyov1333
    @YuriyVorobyov1333
    Software Developer
    Зачем ролик? Прочитайте статью разок, и все станет понятно.
    Если статья не нравится, гуглите incremental DOM и tree shaking, думаю, этого хватит с головой.
    Ответ написан
    Комментировать
  • Как работает angular изнутри?

    мб поможет https://habr.com/ru/post/448048/
    Ответ написан
    Комментировать
  • Странная подсведка проекта phpstrom?

    Попробуйте следующее:
    1. Закройте PhpStorm
    2. Перейдите в корень проекта
    3. Удалите папку .idea (обычно скрыта)
    4. Откройте проект снова в PhpStorm

    Должно помочь.
    Ответ написан
    Комментировать
  • Что лучше использовать Redux или Context?

    mbelskiy
    @mbelskiy
    Software Developer
    TLDR: Лучше использовать то, что подходит для решения конкретных задач в вашем приложении.

    В простом приложении сойдёт и контекст. Начнёт приложение разрастаться, контекста будет не хватать, начнешь накручивать логику. Получится свой редакс на минималках, но скорее всего с худшей реализацией.

    Голый редакс в 2021 лучше не брать. Смотри сразу в сторону redux-toolkit. Если нужен "стор" для кэша данных от веб-сервера, есть смысл посмотреть на redux-toolkit query, буквально неделю как релизнули.

    Хорошая статья по этой теме: https://blog.isquaredsoftware.com/2021/01/context-...
    Ответ написан
    2 комментария
  • Помогает ли спортивное программирование фронтендеру?

    danielchistyakov
    @danielchistyakov
    Frontend Engineer
    Напишите какой-нибудь сайт для радио или какой-нибудь простой портал на React (с нормальным API), выведите оттуда данные, чтобы это всё не баговало и не крашилось и чтобы не было хаотичной загрузки элементов у клиента (это бесит и вызывает недоверие к сайту). Сначала покажется о, так просто сфетчил и всё, но потом у Вас будет взрыв мозга когда реально столкнётесь с асинхронностью, лишним рендерингом и вот тогда у Вас начнётся реальный хардкорный спорт :)
    А так, конечно, пишите очень и очень много реальных проектов и не бойтесь спрашивать, тормоз на проблеме, которая Вас мучит больше 2 дней ничего хорошего Вам не принесёт, но и на токсичных личностей тоже забивайте.
    Ответ написан
    Комментировать
  • Что входит в бизнес логику?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Василий Иванович вип клиент и получает скидку в 5%
    Клиент купивший больше чем на 500 рублей получает бесплатную доставку.
    Все это бизнес логика.

    Даже купите больше чем на 10000 и получите скидку это тоже бизнес логика.

    Фронт , ну как впрочем и бэк просто отображает изменения ну и подсовывает Сообщения и флажки.
    Ответ написан
    1 комментарий
  • Что входит в бизнес логику?

    AVollane
    @AVollane
    Начинающий C# разработчик
    Роберт Мартин писал в книге "Чистая архитектура" следующее: "Строго говоря, бизнес-правила - это правила или процедуры, делающие или экономящие деньги. Еще строже говоря, бизнес-правила - это правила, делающие или экономящие деньги независимо от наличия или отсутствия их реализации на компьютере. Они делают или экономят деньги, даже когда выполняются вручную.

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

    Почитайте выше упомянутую книгу, если ещё не читали.
    Ответ написан
    Комментировать
  • Как сделать динамический импорт React?

    Seasle
    @Seasle Куратор тега JavaScript
    Сразу в component записывайте React.lazy.
    Ответ написан
    4 комментария
  • В чем разница между внедрения зависимостей и наследованием?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Если честно, то это принципиально разные вещи.
    Есть принципы ООП - наследование, абстракция, инкапсуляция, полиморфизм.
    Наследование (inheritance):
    {class} extends {superClass} это способность класса или объекта базироваться на другом классе или объекте.
    Например, Dog -> Animal Cat -> Animal

    Внедрение зависимостей (dependency injection) является разновидностью IoC (inversion of control - инверсия управления). Например, есть класс, внутри которого есть объект для подключения к БД. Притом connection является интерфейсом. То какая реализация в зависимости от используемой БД будет внедрена во время рантайма на данный момент не определена.
    UserService {
    Connection connection;
    }


    Т.е. если разработчик хочет подключить БД MySQL, то будет внедрена реализация connection для работы с MySQL. Например, MySqlConnection
    Т.е. класс UserService не решает какая именно зависимость должна быть внедрена туда. За него это делает отдельный механизм согласно конфигурации.

    Я привел абстрактные примеры, чтобы лучше была видна разница между DI & inheritance
    Ответ написан
    Комментировать
  • Что использовать Сервисы или Глобальные хранилища?

    search
    @search
    мама говорит что я особенный
    Переменные в сервисах мало чем отличаются от глобальных переменных. По сути - это и есть глобальные переменные со всеми вытекающими последствиями. Например, переменная сервиса может быть неожиданно изменена во время какого-нибудь асинхронного действия. Что приведёт к неожиданным/нежелательным сайд-эффектам. Современные ООП парадигмы (например, ДДД), напрямую говорят о том что сервисы не должны хранить состояние.
    Ответ написан
    Комментировать
  • Хорошие курсы по бд(возможно платные)?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Курсы бесполезны, они приносят пользу только их авторам. Читайте учебники и документацию вашей СУБД.
    Ответ написан
    2 комментария
  • В чем преимущество Angular перед Vue или React?

    search
    @search
    мама говорит что я особенный
    Пользовался Ангуляром почти 3 года. Главный плюс Ангуляра в том что это платформа. В ней стандартизированно почти всё: от процесса бутстрепа до процесса деплоя. Включая работу с CLI, тестированием и еще много чем. Это огромный селлинг поинт для проектов корпоративного уровня: когда над проектом трудится много человек из разных стран. Им не нужно договариваться об архитектуре, тестировании, и т.п. потому что Ангуляр предоставляет готовые решения на многие проблемы.

    Лично я бы не стал пихать Ангуляр в проект уровня дэшборда или лендинга. Но для проекта уровня, например, клиент банка, Ангуляр может быть отличным кандитадом.

    Я не пользовался Вью никогда, поэтому не знаю что он предоставляет. Но после где-то двух лет на Реакте (огромный проект с микрофронтендной архитектурой для Dazn) впечатления такие: в целом весело. Очень хорошо подходит для прототипов и небольших проектиков. Но для энтерпрайз проекта я бы не стал его советовать, так как слишком много нерешенных или по-детски решённых проблем. Командам будет сложно договариваться между собой.

    Такие дела.
    Ответ написан
    Комментировать
  • Почему jquery возвращает undefined?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Событие DOMSubtreeModified морально устарело и не поддерживается более браузерами.
    Если вам нужна реакция на изменение страницы, то вы должны использовать наблюдателей.

    Делается это примерно так:
    // При клике на кнокпу выполняем функцию:
    
    $('#employee_avatar_button').click(function(){
    	
    	// Создаем наблюдателя, переданная функция будет
    	// выполнятся всякий раз при изменении страницы:
    
    	var observer = new MutationObserver(function() {
    		
    		// Ищем нужный нам элемент:
    		var el = $('#employee_avatar_ul li::last-child');
    		
    		// Если элемент найден:
    		
    		if (el.length > 0) {
    			
    			// Откл. наблюдателя:
    			observer.disconnect();
    			
    			// Выводим уведомления:
    			
    			console.log('Найден элемент:');
    			console.dir(el[0]);
    			
    			console.log('Его атрибут file_id: ' + el.attr('file_id'));
    			
    		}
    		
    		// Если элемента еще нет:
    		
    		else {
    			
    			// Выводим соотвествующее уведомление:
    			console.log('Обнаружено изменение содержимого тега <body></body> - однако элемент, который мы ждем, пока еще отсуствует на странице.');
    			
    		}
    		
    	});
    
    	// Прикрепляем наблюдатель к body:
    
    	observer.observe(document.body, {
    		characterData: true,
    		attributes: true,
    		childList: true,
    		subtree: true
    	});
    
    });

    Почитать подробнее можно здесь: https://learn.javascript.ru/mutation-observer
    Ответ написан
    Комментировать
  • Цепочка DOM запросов jquery?

    Seasle
    @Seasle Куратор тега JavaScript
    $('.some_class .just_child').first().find('li');
    Ответ написан
    2 комментария
  • Разный результат при одном и том же запросе MongoShell и Node.js?

    @Israfil22
    collection.find
    Второй аргумент options.projection
    Шелл и драйвера это разные вещи
    Ответ написан
    3 комментария
  • Как получить часть документа mongodb?

    @Asapin
    В свободное время ковыряюсь с Rust и Wasm
    Для этой задачи вам надо использовать проекцию. Их в монге несколько видов:

    1. Используется в запросах find, findOne, findOneAndDelete, findOneAndReplace и findOneAndUpdate
    2. Используется для фильтрации элементов массива
    3. Используется как отдельная стадия аггрегации


    1 тип аггрегации позволяет только скрыть лишние элементы из ответа. Если воспользоваться этим типом, то запрос будет выглядеть вот так:
    db.subjects.find(
    	{"ФизМат.Педагогические науки.B009": {$exists: true}}, // Из всех документов (если у вас их несколько, а не один огромный документ), выбрать те, у которых существует поле "ФизМат.Педагогические науки.B009"
    	{
    		_id: 1, // У найденного документа вернуть только поле _id
    		"ФизМат.Педагогические науки.B009": 1 // и поле "ФизМат.Педагогические науки.B009"
    	}
    )


    Ответ на такой запрос:
    {
      "_id": ObjectId("600fa6f3101fa920a8575e6f"),
      "ФизМат": {
        "Педагогические науки": {
          "B009": {
            "code": "B009",
            "name": "Подготовка учителей математики",
            "max": "140",
            "min": " 107",
            "minWithQuota": " 95"
          }
        }
      }
    }


    т.е. будут скрыты все поля, кроме _id и ФизМат.Педагогические науки.B009, никаких дополнительных преобразований над документом проводиться не будет.

    2 тип используется что бы из массива выбрать только первое подходящее значение, но у вас предметы оформлены не в виде массива документов, поэтому этот тип пропустим.

    3 тип - как стадия аггрегации. Аггрегация в монге - довольно мощный инструмент, который позволяет группировать результаты, преобразовывать их, делать многоуровневый поиск и т.п.
    В данном случае сам запрос будет выглядеть совершенно по другому:
    db.subjects.aggregate(
    [
      { 
        $match: { // Эта стадия ищет документы, подходящие под условие
          "ФизМат.Педагогические науки.B009": {$exists: true} // В документе есть поле "ФизМат.Педагогические науки.B009"
        } 
      },
      { 
        $project: { // Стадия проекции
          _id: 1, // Вернуть id документа
          value: "$ФизМат.Педагогические науки.B009" // Вернуть embedded документ в поле value
        }
      },
    ])


    Ответ в таком случае будет выглядеть вот так:
    {
      "_id": ObjectId("600fa6f3101fa920a8575e6f"),
      "value": {
        "code": "B009",
        "name": "Подготовка учителей математики",
        "max": "140",
        "min": " 107",
        "minWithQuota": " 95"
      }
    }
    Ответ написан
    1 комментарий
  • Почему запрос findOne возвращает всю коллекцию mongodb?

    @hello_my_name_is_dany
    Backend Developer (Node.js, PHP, C#)
    Это один документ из коллекции, вы поставили условие, он нашёл и выдал. А вы видимо хотите получить часть документа.
    Ответ написан
    2 комментария
  • Можно ли подключить телеграм бота на rest api?

    agoalofalife
    @agoalofalife
    Team Lead
    Хороший вопрос - это уже половина ответа. Да вы можете интегрировать бота в свой сервер.
    От telegram вам надо будет получить token, а telegram от вас надо будет получить url(webhook) куда они будут отправлять различные события и данные.
    Соответственно - далее вы уже на свое усмотрение реализовываете обработку.
    Ответ написан
    Комментировать
  • Изменилась ли масса Вселенной после Большего взрыва?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ясное дело изменилась, какая то часть материи перешла в энергию. Что то исчезло не пойми куда, в общем уже как 100 лет перекраивают теории
    Ответ написан
    3 комментария
  • Где и как хранить дерево(очень больше дерево:))?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Где и как хранить, зависит от того, где и как будет использоваться.
    Например, можно хранить в текстовом файле в формате JSON.
    Ответ написан
    Комментировать