Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

Евгений Петров

  • 0
    вклад
  • 34
    вопроса
  • 9
    ответов
  • 56%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Почему нет разницы в производительности между fork mode и cluster mode в PM2?

    bingo347
    Дмитрий Беляев @bingo347 Куратор тега JavaScript
    Ткнуть в доку лучше готового к копипасте ответа
    Во-первых, cluster мод отличается от fork только тем, что умеет шарить слушаемые tcp порты между процессами. И там и там процессов будет ровно столько, сколько настроите, а значение по умолчанию - количество физических потоков (логических ядер) системы.
    Во-вторых, "двухядерный сервак с 2Гб оперативой" выглядит как виртуалка на большом сервере, где Вам выделили некоторые ресурсы. И ваши 2 ядра вполне могут быть логическими, но физически - 1 ядром или даже его половиной (если 4 потока на ядро), за счет гипертрединга. Вот только гипертрединг штука нацеленная на лучшую утилизацию ресурсов процессора при простоях, а вот при большой нагрузке он вполне себе может замедлить систему, особенно основанную на кооперативной многозадачности (асинхронном исполнении) как в ноде.
    Ответ написан 21 мар.
    1 комментарий
    Нравится 1 1 комментарий
  • Как защитить базу postgres от ошибочного запроса?

    ky0
    ky0 @ky0
    Миллиардер, филантроп, патологический лгун
    Можно настроить вторую реплику с отсрочкой применения изменений (recovery_min_apply_delay). Ну а вообще - бэкапы и не лазить лишний раз суперюзером в базу.
    Ответ написан 17 янв.
    Комментировать
    Нравится 2 Комментировать
  • Как защитить базу postgres от ошибочного запроса?

    Василий Банников @vabka
    Токсичный
    к примеру UPDATE без WHERE, ну мало ли, человеческий фактор

    Каким образом можно защититься от подобного рода ошибок?

    1. Бэкапы
    2. Ограничить человеческий фактор
    - Делать как можно меньше запросов вручную
    - Ограничить круг людей, которые могут это регулярно делать
    - Убрать соблазн сделать запись вручную (в datagrip можно поставить галочку на базу, как read-only и без подтверждения не получится послать туда запрос не на чтение)
    Ответ написан 17 янв.
    4 комментария
    Нравится 1 4 комментария
  • Как защитить базу postgres от ошибочного запроса?

    sergey-gornostaev
    Сергей Горностаев @sergey-gornostaev Куратор тега PostgreSQL
    Седой и строгий
    Бэкапы и обязательно ревью всех мутирующих запросов.
    Ответ написан 17 янв.
    3 комментария
    Нравится 2 3 комментария
  • Как передать функцию с параметрами в качестве аргумента в другую функцию?

    alexey-m-ukolov
    Алексей Уколов @alexey-m-ukolov Куратор тега JavaScript
    В современном JS, когда везде включен strict mode это сделать невозможно.
    Да и не выглядит эта задача хорошей с точки зрения архитектуры. Передавайте аргументы и функцию отдельно, а там уже вызывайте как нужно.
    Ответ написан 10 янв.
    4 комментария
    Нравится 1 4 комментария
  • Существует ли "карта программиста"? Что и за чем учить?

    DevMan
    DevMan @DevMan Куратор тега IT-образование
    https://github.com/zualex/devmap
    images.vfl.ru/ii/1466366676/e324255d/13079149.png
    www.webdesigndegreecenter.org/learn-to-code
    Ответ написан более трёх лет назад
    7 комментариев
    Нравится 147 7 комментариев
  • Как завершить Console.Readline при наступлении события?

    MykolaPetiukh
    Изобретатель Дикпиков @MykolaPetiukh
    Директор кафе
    Чтоб не блокировался основной поток, придумали async
    Ответ написан 18 нояб. 2020
    1 комментарий
    Нравится 2 1 комментарий
  • Как завершить Console.Readline при наступлении события?

    firedragon
    Владимир Коротенко @firedragon
    Senior .NET developer
    https://stackoverflow.com/questions/57615/how-to-a...
    https://metanit.com/sharp/tutorial/12.5.php
    Ответ написан 18 нояб. 2020
    2 комментария
    Нравится 1 2 комментария
  • Как в Sequelize ассоциациях выбирать не по id, а по другому полю?

    Евгений @Nc_Soft
    { foreignKey: 'status', targetKey: '****' }
    Ответ написан 12 авг. 2020
    1 комментарий
    Нравится 1 1 комментарий
  • Почему Sequelize COUNT не попадает в выборку?

    Евгений @Nc_Soft
    У вас в моделе не описано это свойство, поэтому доставать надо так
    current.dataValues.count_col;
    Совет: не пользуйтесь sequilize, он монструозен, попробуйте knex
    Ответ написан 26 июл. 2020
    1 комментарий
    Нравится 1 1 комментарий
  • Как динамически добавлять и удалять элементы?

    0xD34F
    0xD34F @0xD34F
    function App() {
      const [ items, setItems ] = useState([]);
    
      const onItemClick = ({ target: { dataset: { id } } }) =>
        setItems(items.filter(n => n !== +id));
    
      const onAddNewClick = () =>
        setItems([ ...items, 1 + Math.max(0, ...items) ]);
    
      return (
        <div>
          {items.map(n => <button onClick={onItemClick} data-id={n}>#{n}</button>)}
          <button onClick={onAddNewClick}>add</button>
        </div>
      );
    }
    Ответ написан 15 июн. 2020
    1 комментарий
    Нравится 2 1 комментарий
  • Почему после запуска модального окна, ref возвращает null-овые объекты?

    LEXA_JA @LEXA_JA
    Начнем с того, почему так происходит. ref срабатывает каждый раз, когда происходит рендер. Поскольку модалка использует setState, которая вызывает render, который запускает функцию в ref, в массив каждый раз попадает все больше ссылок, с каждым открытием\закрытием модалки. Иногда в ref может быть null, из-за инлайн функции Подробнее.
    Однако такой подход в принципе не правильный.
    Для управлением состоянием чекбокса, использование ref не принято. Использование ref в React в принципе нежно использовать не очень часто. Правильный подход - использование props: checked\defaultChecked и onChange Формы
    Вообще, состояние должно быть в реакте, а реакт сам применяет его на DOM, в это его суть.

    Правильный вариант - положить состояние чекбоксов в стейт, в виде массива или Set'а.
    state = {
    		values: [false, false, false], // Изначально все 3 чекбокса выключены
    	};
    
    	onToggleCheckbox = (checked, index) => {
    		this.setState(({ values: prevValues }) => {
    			const newValues = [...prevValues]; // меняем состояние нужного чекбокса по индексу
    			newValues[index] = checked;
    
    			return {
    				value: newValues,
    			};
    		});
    	};
    
    	onToggleAll = checked => {
    		this.setState(({ values }) => ({
    			values: values.map(() => checked),
    		}));
    	};

    Тогда отрисовка чекбоксов:
    <div>
        {this.props.checked.map((value, index) => (
          <input
            type="checkbox"
            checked={value}
            key={index}
            onChange={event => this.props.onToggle(event, index)}
          />
        ))}
      </div>


    Состояние чекбокса который переключает все остальный вычислимое:
    <input type="checkbox" checked={this.props.values.every(value => value)} onChange={event => this.props.onToggleAll(event.target.checked)} />
    Ответ написан 21 апр. 2020
    2 комментария
    Нравится 1 2 комментария
  • PUT & POST при написании API

    Владимир Чернышев @VolCh
    Ориентируетесь на это описание: microformats.org/wiki/rest/urls
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 6 1 комментарий
  • При обновлении одного поля state, обновляются все компоненты?

    Wondermarin
    Wondermarin @Wondermarin
    При обновлении state происходит перерисовка компонента, если ваш компонент содержит в себе дочерние компоненты, то, очевидно, что они также будут перерисованы, родительский компонент это не задевает.
    Ответ написан более года назад
    3 комментария
    Нравится 1 3 комментария
  • Как правильно задать структуру класса для json объекта?

    leahch
    Алексей Черемисин @leahch
    Я мастер на все руки, я козлик Элек Мэк :-)
    Вот, с помощью Gson все парсится хорошо.

    PS. вместо lombook.Data просто создайте геттеры/сеттеры у внутреннего класса. Мне так удобнее.

    package com.mycompany;
    
    import java.lang.reflect.Type;
    import java.util.Map;
    import java.util.Map.Entry;
    
    import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
    
    public class ReTest {
    	
    	@lombok.Data
    	public static class MyData {
    		private String name;
    		private String lastName;
    	}
    	
    	public static void main(String[] args) {
    		
    		String  json = "{\n" + 
    				"   \"12:30\": [\n" + 
    				"     {\n" + 
    				"         name: \"someName\",\n" + 
    				"         lastName: \"someLastName\"\n" + 
    				"      },\n" + 
    				"      {\n" + 
    				"         name: \"someName2\",\n" + 
    				"         lastName: \"someLastName2\"\n" + 
    				"      }\n" + 
    				"   ],\n" + 
    				"   \"13:15\": [\n" + 
    				"       {\n" + 
    				"         name: \"someName3\",\n" + 
    				"         lastName: \"someLastName3\"\n" + 
    				"      },\n" + 
    				"      {\n" + 
    				"         name: \"someName4\",\n" + 
    				"         lastName: \"someLastName4\"\n" + 
    				"      }\n" + 
    				"   ]\n" + 
    				"}";
    		
    		Gson parser = new Gson(); // create json parser
    		Type type = new TypeToken<Map<String, MyData[]>>(){}.getType(); // create custom type
    		Map<String, MyData[]> data = parser.fromJson(json, type); // parse data to 
     		
    		for( Entry<String, MyData[]> d: data.entrySet()) {
    			System.out.printf("%s\n", d.getKey());
    
    			for(MyData e: d.getValue()) {
    				System.out.printf("       %s\n", e);
    			}
    			System.out.println();
    		}
    	}
    }

    И вывод.
    12:30
           ReTest.MyData(name=someName, lastName=someLastName)
           ReTest.MyData(name=someName2, lastName=someLastName2)
    
    13:15
           ReTest.MyData(name=someName3, lastName=someLastName3)
           ReTest.MyData(name=someName4, lastName=someLastName4)
    Ответ написан более года назад
    1 комментарий
    Нравится 2 1 комментарий
  • Как синхронизируются с сервером такие приложения как Whatsapp, Viber и т.д.?

    sergey-gornostaev
    Сергей Горностаев @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Пока запущены, держат соединение с сервером. Когда закрыты, принимают новые сообщение через FCM.
    Ответ написан более года назад
    5 комментариев
    Нравится 4 5 комментариев
  • Как перебрать массив объектов в java?

    TheRonCronix
    TheRonCronix @TheRonCronix
    Примеров очень много. Пожалуйста: https://duckduckgo.com/?q=load+and+traverse+json+i...
    Ответ написан более года назад
    Комментировать
    Нравится 1 Комментировать
  • Как передать в компонент Vue JS данные из PHP?

    D3lphi @D3lphi
    Да все достаточно просто:

    <template>
        <div>
            <!-- Вызываем вычисляемое свойство -->
            {{ decodedData }}
        <div>
    </template>
    
    <script>
    export default {
        // Входной параметр, через который компонент будет принимать данные в JSON представление.
        props: ['dataFromPhp '],
        computed: {
            // Вычисляемое свойство, которое будет преобразовывать данные из JSON в объект js.
            decodedData() {
                return JSON.parse(this.dataFromPhp );
            }
        }
    }
    </script>


    Код, в котором используется этот компонент:
    <example-component data-from-php="<?= json_encode($data) ?>"></example-component>
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 4 1 комментарий
  • Как передать в компонент Vue JS данные из PHP?

    Wolfnsex
    Евгений Вольф @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Как это делается на Vue JS? Заранее спасибо
    Не могу обозначить своё мнение, как хоть сколь нибудь экспертное, но в целом, в JS'е (любом, клиентском, связка с серверной частью) обычно это делается одним из двух вариантов:
    1. Отправляете запрос на сервер (AJAX например) - получаете данные
    2. Рендерите данные прямо в странице, в <script>'e, например, что-то вроде: var a = 100; //Генерируется в PHP

    Я обычно использую и тот и другой, от случая к случаю. Второй вариант, не так красив как первый, за то на 99.999% исключены "задержки", прогрузки дополнительные, -1 запрос к серверу и т.д.

    P.S. Есть ещё разные "крайние" варианты, вроде записи/чтения кук, работа через веб-сокеты и масса других, я привёл самые простые и наиболее распространенные.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 2 Комментировать
  • Есть ли смысл устанавливать Webpack и Node JS для разработки на Vue JS?

    Yustas Alexu @Yuxus
    NodeJS и webpack ставятся как dev-dependencies, то есть они нужны только во время разработки. Ставить их на сервер не нужно.
    Ответ написан более трёх лет назад
    2 комментария
    Нравится 3 2 комментария
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • hottabxp
    Сергей Карбивничий
    • 18 ответов
    • 0 вопросов
  • dimonchik2013
    dimonchik2013
    • 12 ответов
    • 0 вопросов
  • Василий Банников
    • 10 ответов
    • 0 вопросов
  • firedragon
    Владимир Коротенко
    • 7 ответов
    • 0 вопросов
  • Rsa97
    Rsa97
    • 6 ответов
    • 0 вопросов
  • SoreMix
    SoreMix
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации