• Может ли одноядерный процессор выполнять несколько команд одновременно?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    1) Может ли одноядерный процессор выполнять несколько команд одновременно
    Нет, одно ядро может выполнять только одну команту за такт.

    2), иметь нессколько потоков? если да, то каким образом может это происходить?
    Да, например в такой технологии как hyper-threading. Реализовано тем, что в процессоре есть два набора регистров для двух потоков, ОС видит процессор с двумя логическими ядрами.
    Если один поток что-то ожидает, то процессор может переключиться и выполнить команду другого потока.
    Понятно, что это не так быстро, как реальные два ядра - просто процессор просто не будет простаивать, если один поток чего-то ожидает, и не будет затрачивать время для переключения с одного потока на другой, так как необходимые для работы данные - во втором наборе регистров.
    Ответ написан
    6 комментариев
  • Объясните про поля имя которых пишется через двойное подчеркивание?

    Есть некоторые системные свойства и методы, которые записаны таким же образом, как на скриншоте. Никто вам не мешает объявить собственное свойство с двойными или даже тройными подчеркиваниями - отличий от других свойств не будет. Так, как на скрине, сделано преимущественно для того, чтобы минимизировать конфликты со свойствами, которые добавляют разработчики (как правило, двойные подчеркивания используются в исключительных случаях), а во-вторых, для того, чтобы подчеркнуть (уж простите за тавтологию) этими подчеркиваниями тот факт, что свойство является системным, внутренним, предопределенным и особенным, и, скорее всего, не создано программистом вручную.

    Автоматически к свойствам не привязывается никаких геттеров и прочих каких бы то ни было обработчиков. Любое поведение, которое отличается от стандартного свойства объекта, вы должны добавлять вручную.

    почему для выполнения геттер функции не надо вызывать, ставить скобки "()"

    Если я вас правильно понял, то вы обращаетесь к свойству, для которого создан геттер. Для обращения к свойствам скобки не нужны. Однако, при попытке доступа к свойству браузер проверяет, имеется ли для него функция-геттер, и если да, то браузер вызывает ее. Эти процессы происходят без вашего участия, функция-геттер вызывается неявно (посредством).
    Ответ написан
    Комментировать
  • Как можно короче записать тернарное условие?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Можно короче без тернарного оператора:

    myVariable && (myVariable - 35)

    Проверяем, действительно ли будем получать одно и то же:

    [100, 0, null, '', true, false, 'gdfsg'].map(n => [n ? n - 35 : n, n && (n - 35)]);
    /*
    0:(2) [65, 65]
    1:(2) [0, 0]
    2:(2) [null, null]
    3:(2) ["", ""]
    4:(2) [-34, -34]
    5:(2) [false, false]
    6:(2) [NaN, NaN]
    */

    Вроде похоже на правду.

    UPD. Можно с функцией, так длинное имя переменной будет использовано всего один раз:

    (n => n && (n - 35))(myVariable)
    Ответ написан
    Комментировать
  • Как можно короче записать тернарное условие?

    Sanasol
    @Sanasol Куратор тега JavaScript
    нельзя просто так взять и загуглить ошибку
    тернарный это и так сокращение нескольких строк кода до одной.

    давайте кодить вообще однобуквенно, и тогда даже минифицировать не надо будет!
    Ответ написан
    Комментировать
  • Насколько правильным считается брать store.getState() в создателях действий?

    @eddy-lazar
    В целом такой подход не является анти-патерном, зависит от ситуации. Если в проекте используется redux-thunk, тогда удобней это делать напрямую из функции, вторым параметром thunk передает как раз метод getState

    export const SOME_ACTION = 'SOME_ACTION';
    export function someAction() {
      return (dispatch, getState) => {
        const {items} = getState().otherReducer;
        dispatch(anotherAction(items));
      }
    }


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

    https://habrahabr.ru/post/330692/ - хорошая статья на тему что хорошо в redux что плохо и так далее.
    Ответ написан
    2 комментария
  • Как можно по условию передавать пропс или нет?

    mannaro
    @mannaro
    Умею профессионально гуглить
    const needDefaultValue = false;
    
    React.createElement('input', needDefaultValue ? { defaultValue: i } : {});
    // или
    const params = {};
    if(needDefaultValue) params.defaultValue = i;
    <input {...params} />;
    Ответ написан
    1 комментарий
  • Стоит ли учить все шаблоны проектирования ReactJS разработчику?

    mmmaaak
    @mmmaaak
    Знать нужно, но главное, чтоб не дошло до ситуации, когда вы используете шаблоны проектирования только ради того, чтоб использовать шаблоны проектирования.

    У меня в универе было такое задание в качестве итоговой работы за семестр: написать программу, использовав в ней любые 5 шаблонов проектирования. Тогда я понял, что шаблоны придуманы для того, чтоб упростить решение проблемы, не нужно придумывать проблему под какие-либо шаблоны. Так я прогу и не написал, показалось неправильным высасывать из пальца проблемы, чтоб обосновать использование шаблона, но к экзамену меня допустили и норм сдал
    Ответ написан
    Комментировать
  • Стоит ли учить все шаблоны проектирования ReactJS разработчику?

    AStek
    @AStek
    Учить стоит как минимум для общего развития.

    В ReactJS проекте навскидку могут встретиться: итераторы, стратегии, состояния, наблюдатели, билдеры, прототипы.

    И это только то что я вспомнил по своему небольшому проекту (около 10 скринов).
    Ответ написан
    Комментировать
  • Откуда берутся встроенные в javascript функции?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Часть встроена в язык (и предоставляется движком языка), часть предоставляет среда выполнения — браузер (DOM, всякие html5 API типа геолокации и localStorage), nodejs (работа с файлами, с http), nashorn. В браузерах обычно реализовано на том же языке, что и движок и браузер, то есть в 99% С++. В nodejs часть реализована на js. В nashorn -- на java.

    Можете посмотреть исходники V8.
    Ответ написан
    2 комментария
  • Возможно ли написать свою реализацию call, apply?

    Да, можно.

    Вообще, call \ apply предполагают, что this внутри функции будет иметь переданное значение. Эмуляцию гарантированно можно сделать при помощи метода bind. Если без него - то вряд ли, this невозможно перезаписать, если только пилить адовые костыли и не использовать this вообще.

    В этом случае вам придется передавать, например, _this в список аргументов функции или записывать контекст в ее свойства. Однако это все равно не будет полноценной эмуляцией без участия bind, потому что тогда использующему ваш полифилл придется использовать именно это свойство - _this, и забыть про нативный this.
    Ответ написан
    6 комментариев
  • Как отправить Post multipart/form-data с двумя формами, первая объект json, а вторая бинарный файл?

    Stalker_RED
    @Stalker_RED
    как можно отправить сразу две формы
    Никак, только по очереди.

    и для чего и как в header content-disposition можно задать несколько значений как выше в примере
    Вот же https://developer.mozilla.org/ru/docs/Web/HTTP/Hea...

    Возможно вы путаете понятие форма (form) и поле (field).

    Вот пример отправки формы с файлами через XHR: https://developer.mozilla.org/ru/docs/Web/API/Form...
    А JSON объект можно преобразовать в строку, и ее уже отправить.
    Ответ написан
    Комментировать
  • Существенно ли увеличится скорость работы системы при переходе с SSD со скоростью чтения 500 МБ/C на 1500 МБ/C?

    DevMan
    @DevMan
    не стоит: значительного прироста не будет.
    говорю как обладатель нескольких pci-ssd (и в страйпе, и без) на своей рабочей машинке.

    такие диски - штука хорошая.
    но профит дают только на определенных задачах и в обычной работе являются напрасной тратой денег.
    Ответ написан
    Комментировать
  • Как подписаться на изменение значения через оператор =?

    lazalu68
    @lazalu68
    Salmon
    С помощью Proxy:

    var obj = {};
    
    var obj = new Proxy(obj, {
    	set: function(target, key, value, self) {
    		console.log("I have no idea what im doing");
    		target[ key ] = value;
    	}
    });
    
    obj.a = 2; // "I have no idea what im doing"
    Ответ написан
    Комментировать
  • В какой момент Virtual DOM Сравнивается с Real DOM?

    larisamoroz
    @larisamoroz
    Курю маны, втыкаю в код, ваяю, починяю.
    ReactDOM отвечает за работу с DOM,
    иными словами, если приложение работает и что-то отрисовывает в браузере — то нужно подключать ReactDOM.

    Virtual DOM сравнивается:
    1. не с текущей DOM , а с текущим снимком Virtual DOM (сделанным непосредственно перед применением каких-либо изменений)
    2. всякий раз, когда
      • а) меняется состояние компонента через setState
      • б) или меняются его props:


      а) lifecycle_state.png б) lifecycle_props.png

      См.:
    React: The Virtual DOM, React Component Lifecycle, The Component Lifecycle
    Ответ написан
    2 комментария
  • Почему props неизменяемы?

    Есть специальный метод:
    const freezedObject = Object.freeze({ a: 1, b: 5 })
    
    freezedObject.a = 'quux'; // тихо ничего не делает
    Ответ написан
    4 комментария
  • Как разместить два элемента что бы один был по центру а второй в конце?

    Bobert88
    @Bobert88
    Vice President of Javascript, very important guy.
    Привет, Андрей, нужно больше флекса! :D
    решение: https://codepen.io/glebez/pen/XgOZxm
    Ответ написан
    Комментировать
  • Для чего может понадобиться subsribe из store?

    Начнем с того, что redux - самостоятельное решение, которое можно использовать отдельно от стека react'а. По сему - API разрабатывается для общих нужд. В случае с connect - да, там используется subscribe.

    Если вы разрабатывается на rxjs - можно сделать observable из вашего стора (хотя сейчас для этого есть более удобный способ). Также очень полезно подписаться если вы разрабатываете инфраструктурные модули. Вот в голову пришла идея - у вас есть localStoe - вам нужно синхронизировать какой-то кусочек state, чтобы понять, что state изменился - подписываетесь на store.
    Ответ написан
    Комментировать
  • Что такое Корреляция?

    dom1n1k
    @dom1n1k
    типо что это связь между двумя и более случайными значениями, но какая связь?

    В этом и состоит смысл - известно, что есть какая-то связь, но неизвестно какая именно.
    Например, мы обнаруживаем, что продажи табуреток коррелируют с биржевыми котировками. Как? Откуда? Почему? Что есть причина, а что следствие? И есть ли эта связь в действительности или это недостоверные данные? Это предстоит выяснять.
    Ответ написан
    3 комментария
  • Каким образом функция connect из react-redux мапит данные в пропсы?

    Провайдер передает store через контекст. Функция connect создает HOC, который подписывается на обновления store. Ну и далее вызываются ваши mapState, mapActions где вы получаете необходимые данные и мапите их в props
    Ответ написан
    2 комментария
  • Как перевести этот код с swift на objective-c?

    @oltv00
    Как то так.
    Не уверен что вызвал тот метод dataTaskWithRequest
    Но он тоже должен сработать в этом случае.

    #import <AFNetworking.h>
    
        NSString *urlString = @"https://api...";
        NSURL *url = [NSURL URLWithString:urlString];
        NSMutableURLRequest *mutableURLRequest = [NSMutableURLRequest requestWithURL:url];
        NSMutableData *requestBodyData = [NSMutableData data];
    
        mutableURLRequest.HTTPBody = requestBodyData;
        mutableURLRequest.HTTPMethod = @"POST";
    
        NSString *accessToken = @"accessToken";
        NSString *value = [NSString stringWithFormat:@"Bearer %@", accessToken];
        [mutableURLRequest setValue:value forHTTPHeaderField:@"Authorization"];
    
        [mutableURLRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    
    
        [[AFHTTPSessionManager manager] dataTaskWithRequest:mutableURLRequest completionHandler:^(NSURLResponse * _Nonnull response,
                                                                                                  id  _Nullable responseObject,
                                                                                                  NSError * _Nullable error) {
            //We do not reach this code block !
    
            // Save the incoming data to CoreData
            completionHandler(UIBackgroundFetchResultNewData);
        }];
    Ответ написан
    1 комментарий