Задать вопрос
  • Где джуну получать тестовые задания?

    maxfarseer
    @maxfarseer Автор вопроса
    https://maxpfrontend.ru, обучаю реакту и компании
    Выяснилось, что удобного места со списком заданий нет, кроме ответа от Максим Зайцев
    Так же выяснилось, что созданием ТЗ и последующим разбором в данный момент никто не занимается кроме меня, поэтому добавляю ответ от себя.

    Здесь есть задания и разбор. Будет пополняться.

    Задание 1 (уже разобрано)
    Задание 2 (будет разобрано в конце мая)

    p.s. ссылки ведут на github, поэтому я надеюсь у модераторов не будет претензий.
    Ответ написан
    Комментировать
  • Как "привязать" звук к событию JavaScript?

    Stalker_RED
    @Stalker_RED
    Ответ написан
    Комментировать
  • Как восстановить MongoDB после Unclean shutdown detected?

    @roadvirus
    rm -rf /data/db/mongod.lock
    mongod --dbpath /data/db --repair
    mongod --dbpath /data/db

    после первого шага УБЕДИТЬСЯ что mongod.lock удален, иначе успех операции не гарантирован :)
    Ответ написан
    Комментировать
  • Зачем нужен redux-thunk?

    xakplant
    @xakplant
    Автор сайта xakplant.ru
    Действительно, скорее всего это про организацию кода.
    Если мы делаем наше react-приложение возможно, что однажды нам придётся изменить хранилище. Вообще дурной тон использовать dispatch в самом компоненте не обернув его в HOC. Ведь это сразу делает невозможным переиспользование. Например у нас есть компонент, который рендерит какой-то список и использует redux. Для того, чтобы мы могли его переиспользовать правильно сделать так:

    import React, { Component } import 'react';
    import List from './List'; // Список
    import { connect } from 'react-redux'
    import { mutatinList } from './actions'; // Какой-то action
    
    class ListContainer extends Component{
    	render(){
    		return(
    			<List {...this.props} />
    		)
    	}
    }
    
    const mapStateToProps = (state) => ({
        list: state.list
    })
    
    const mapDispatchToProps = {
    	mutatinList: mutatinList
    }
    
    export default connect(mapStateToProps, mapDispatchToProps)(ListContainer);


    Если мы захотим переиспользовать наш спискок то нам не придётся переписывать сам компонент, а можем лишь написать новый HOC

    Ещё по этой теме я написал небольшую статью
    Ответ написан
    Комментировать
  • Зачем нужен redux-thunk?

    @Hydrock
    Тоже страдаю от этого вопроса. Лично мне, наоборот, не нравится что логика выносится в экшен креэйторы. Саги как то больше подходят.
    Ответ написан
    Комментировать
  • Зачем нужен redux-thunk?

    devellopah
    @devellopah
    Я бы сказал, что redux-thunk, redux-saga или какое-то другое "решение" для организации сайд-эффектов не является необходимой зависимостью для любого приложения, написанного на reactjs.
    Точно так же как и не является необходимостью сам redux. Но если ваше приложение нуждается в инструменте для управления состоянием(redux), то автоматически из этого следует, что оно так же нуждается в инструменте для организации сайд-эффектов.

    В redux-thunk вы диспатчите функцию словно это action. Это очень важно. В контейнере вне зависимости от "природы" экшена, вы будете писать this.props.dispatch(whateverAction).

    А ваш коллега, напротив, будет вынужден синхронные экшены диспатчить через this.props.dispatch(syncAction), а асинхронный просто вызовом функции, содержащей setTimeout.

    Как-то не очень красиво, да и самому контейнеру не обязательно знать какие экшены синхронные, а какие асинхронные.
    Ответ написан
    2 комментария
  • Зачем нужен redux-thunk?

    Комментировать
  • Зачем нужен redux-thunk?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Если я правильно понял вашего коллегу, то речь была не о том, что нужно асинхронные функции через setTimeout вызывать, а это был просто пример, как сделать какой-то кусочек "типа асинхронным".
    Его довод был в том, что вместо вызова dispatch из замыкания (полученного с помощью redux-thunk, например) он вызывал store.dispatch напрямую (то есть у объекта store, и этот store импортировал бы в каждом файле).

    В таком случае, у redux-thunk - одно преимущество явное - не нужно импортировать store в каждом файле.

    В остальном, все очень четко расписано в ответе Дэна Абрамова, который привел holymotion.
    Если быть кратким, то вам нужна функция dispatch, ведь именно через нее вы "диспатчите" свои экшены. Вы не можете в асинхронном ответе написать:
    ...
    axios.get('/user')
          .then(res => {
            // успешно получили данные
            dispatch({ // <-- здесь вы вызываете функцию dispatch, а если она к вам не пришла в анонимной функции, с помощью redux-thunk, то октуда вы ее возьмете?
              type: GET_PROFILE_SECCUESS
              payload: res.data
            })
          })
    ...


    Поэтому вы были бы обязаны в каждый action creator, который является асинхронным, передавать бы помимо нужных вам аргументов, еще и функцию dispatch из своего контейнера. Что не удобно. (это все есть по ссылке на stackoverflow, но более подробно)
    Ответ написан
    1 комментарий
  • Как отправить HTTP запрос методом POST на URL через PHP?

    GeneMoss
    @GeneMoss
    void
    $url = 'http://localhost/post.php';
    $params = array(
        'param1' => '123', // в http://localhost/post.php это будет $_POST['param1'] == '123'
        'param2' => 'abc', // в http://localhost/post.php это будет $_POST['param2'] == 'abc'
    );
    $result = file_get_contents($url, false, stream_context_create(array(
        'http' => array(
            'method'  => 'POST',
            'header'  => 'Content-type: application/x-www-form-urlencoded',
            'content' => http_build_query($params)
        )
    )));
    
    echo $result;
    Ответ написан
    1 комментарий
  • Как отправить HTTP запрос методом POST на URL через PHP?

    Tyranron
    @Tyranron
    Действительно, за время, которое потратили на создание вопроса, Вы могли без проблем найти интересующую Вас информацию в любом поисковике.

    Но раз вопрос уже задан, то должен быть и ответ(ы).
    Собственно, @OnYourLips дал ссылку на хороший фреймворк, но если нет смысла тащить в проект/скрипт целый фреймворк ради одного запроса, к примеру, то логичнее воспользоваться упомянутым CURL. В Вашем случае сценарий использования CURL будет выглядеть примерно следующим образом:
    $myCurl = curl_init();
    curl_setopt_array($myCurl, array(
        CURLOPT_URL => 'http://target.site.com/form.php',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => http_build_query(array(/*здесь массив параметров запроса*/))
    ));
    $response = curl_exec($myCurl);
    curl_close($myCurl);
    
    echo "Ответ на Ваш запрос: ".$response;

    Если надо передать при этом ещё и файлы, или обратиться по https, или ещё чего Вам понадобится - добро пожаловать в документацию:
    http://php.net/manual/ru/book.curl.php
    Советую обратиться к документации в любом случае, дабы ознакомиться со всеми возможными нюансами, а также понять и выбрать то, что конкретно Вам потребуется для решения Вашей задачи.
    Ответ написан
    3 комментария
  • Как убрать frontend/web/index.php c url в yii2 advanced?

    @bultikk
    Начинающий веб-разработчик.
    Комментировать
  • Как узнать, что за входящий параметр в функции, в чужом коде?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега JavaScript
    Руководитель frontend направления, предприниматель
    1. Прочитать код, понять его.
    2. Понять, что автор поленился придумать название для людей.
    3. Принять это, смириться с ним и жить дальше.
    Ответ написан
    1 комментарий
  • Как узнать, что за входящий параметр в функции, в чужом коде?

    @res2001
    Developer, ex-admin
    Тут dt - объект типа Date, учитывая как она используется в коде.
    А вообще смотрите как вызывается интересующая вас функция.
    Ответ написан
    2 комментария
  • Как добавить сопровождающего пользователя в приватный github репозиторий?

    cissav
    @cissav
    Руководитель Omnidesk.ru
    Заходите в репозиторий - Settings - Collaborators - добавляете нужного.
    Ответ написан
    1 комментарий
  • Как преобразовать timestamp в дату вида мм.дд.гггг?

    dummyman
    @dummyman
    диссидент-схизматик
    console.log( new Date( 1497094200000 ) );

    ("" + (new Date(1497094200000)).toISOString()).replace(/^([^T]+)T(.+)$/,'$1')

    "2017-06-10"

    ("" + (new Date(1497094200000)).toISOString())
            .replace(/^([^T]+)T(.+)$/,'$1')
            .replace(/^(\d+)-(\d+)-(\d+)$/,'$3.$2.$1')

    "10.06.2017"
    Ответ написан
    Комментировать
  • Какой необходимый уровень знаний для junior React.js Разработчика?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    UPDATE: реальные тестовые задания и разборы здесь, ответы на все вопросы из поста в моем блоге об обучении react.

    не включая основы js

    Извините, но стандартная задача, про "напишите функуцию add, которая при вызове add(1)(2) вернет 3" - многих положила на лопатки =) Поэтому будьте готовы..

    React
    0) Какую проблему решает react ?
    1) Мгновенно ли срабатывает setState? Если нет, то как выполнить код, который 100% выполнится после того, как новый state будет установлен?
    2) Зачем многие постоянно пишут в constructor: this.FUNCTION_NAME = this.FUNCTION_NAME.bind(this) и отсюда вопрос вытекает чему равно this в разных местах вашего компонента...
    3) в каких методах жизненого цикла стоит выполнять xhr запросы? В каких стоит "обновлять state на основе props"?
    4) Что будет если вызвать this.setState в render методе компонента?
    5) зачем нужен componenWIllUnmount, приведите пример..
    6) Контролируемые, не контролируемые компоненты
    7) Как организовать роутинг в реакт приложении? (ответ: взять react-router - подходит, но было бы круто, если бы вы рассказали, как он примерно работает)*
    8) Зачем нужны propTypes? Что происходит с ними в production сборке?
    9) Как можно удобно "отлаживать" чужой код приложения, написанного на react (намек в сторону React devtools)
    ...

    Redux
    0) Какую проблему решает redux?
    1) Зачем многие создают типы действий NAME_REQUEST / NAME_SUCCESS ? А заодно, что такое "действие", а что такое "создатель действия"...
    2) Что такое редьюсер? Можете написать простой редьюсер без react/redux?*
    3) Для чего нужен redux-thunk? Как он работает? Напишите (можно псевдокод) асинхронный создатель действия (либо, если надоело говорить "терминами" - асинхронный aciton)
    4) Как компоненты приложения получают "пропсы" из "стора"?*
    5) Можно ли (и считается ли это нормальным) использовать state, если используется Redux?
    6) Почему в reducer'ax мы возвращаем новые объекты? Приведите пример, когда вы возвращаете новый объект, а когда тот же самый.
    6.5) А так же, "как в js вообще это работает?". Например:
    let obj1 { name: 'Test', age: 100 }
    let obj2 = obj1
    obj2.name = 'Test_new'

    Что будет в obj1, почему? В каких случаях объекты могут быть равны?
    7) Что возвращает функция connect (из react-redux)?
    ...

    Общее:
    0) package.json
    1) Webpack, gulp, etc...
    2) node.js
    3) promise

    Что-нибудь практическое:
    1) Как бы вы валидировали форму, если ошибки валидации приходят после submit'a ее на сервер..
    2) Почему не работает следующий код, сделайте чтобы работало
    ...
    На истину не претендую, но такие вопросы имели место быть на собеседованиях. В беседе можно многое разузнать дополнительными вопросами и так далее. Так же, если часть вопросов вам неизвестна - не беда, многие и на половину ответить не могут.

    p.s. возможно дополню...
    p.p.s. звездочкой отметил, на мой взгляд не самые необходимые для junior-собеседования вопросы.
    Ответ написан
    31 комментарий
  • Чем webpack лучше gulp/grunt?

    Webpack - это система сборки с массой возможностей. В частности, он анализирует JS-код (а также CSS или другой, через лоадеры), это даёт ему superpowers.

    Gulp/grunt - это общая система для организации задач, которая сама по себе сборку не поддерживает, но её можно на ней написать, с помощью плагинов. При этом анализа кода, скорее всего, не будет, а значит ряд продвинутых фич отпадут.

    То есть, это две разные вещи. В качестве одной из задач на gulp/grunt вполне может быть сборка webpack, так обычно и делают.

    Простую сборку вполне можно написать и на gulp/grunt напрямую. А если посложнее или просто хочется иметь задел "на будущее", то можно воспользоваться специальным инструментом (Webpack).

    P.S. У меня когда-то были и gulp task'и сборщики и browserify, но уже давно их место плотненько занял Webpack.
    Ответ написан
    18 комментариев
  • Где искать разработчиков софта для трейдинга?

    mistik_max
    @mistik_max
    Копирайтер, йог и созидательный инвестор))
    я бы на вашем месте обратился в тех поддержку любой более не менее успешной брокерской компании, там вам точно посоветуют адекватных разработчиков, которые им портал делали)
    Ответ написан
    Комментировать
  • Где искать разработчиков софта для трейдинга?

    @vl12
    Смотря какой софт и ЯП. На MT4 и MT5 - mql4.com/ru и mql5.com/ru, как ни странно. )
    Ответ написан
    Комментировать
  • Как в PyCharm из проекта создать репозиторий на GitHub?

    @balamut108
    Py
    Создаёте новый проект, активируете VCS (Enable VCS), создаёте новый репозиторий Git, добавляете в него нужные файлы, делаете коммит, далее в VCS выбираете Import Into Version Control -> Share Project in GitHub.
    Это будет работать при условии что у Вас корректно настроены VCS в Settings -> Version Control.
    Ответ написан
    1 комментарий