• Допустим я завел UnionPay в российском банке, и теперь могу ей платить там где принимают, но могу ли я принимать НА нё деньги?

    @P747
    Сегодня на статью одну наткнулся. Пишут что есть нюансы. Например европейские банки не примут деньги от санкционного банка, даже если платеж будет через UnionPay.
    Ответ написан
    Комментировать
  • Что все-таки лучше table или div?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Да, уже лет десять как.
    Верстают блочными элементами (не только div`ами, но и другими, по типу header, footer, article и пр.), к которым применяют следующие стили (на выбор):
    • flex
    • grid

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

    gobananas
    @gobananas
    finishhim.ru
    Именно на Windows? А так берёте БД clickhouse, пишете в неё данные любым демоном, потом запросами выбираете нужные данные и всё
    Ответ написан
    7 комментариев
  • Наиболее частые/популярные/типичные вопросы для обучения/интервью?

    gobananas
    @gobananas
    finishhim.ru
    Я сам не сторонник людей с высокоуровневыми языками по алгоритмам гонять но кто-то спрашивает про алгоритмы и структуры данных
    Ответ написан
    Комментировать
  • Как внедрять новых программистов в проект?

    gobananas
    @gobananas
    finishhim.ru
    1. Доступ к БД по разному организуют. У нас, например был полный доступ к реальной БД проекта, но можно создать копию реальной БД отдельно для DEV-сервера
    2. Нужен DEV-сервер с копией проекта для разработчика

    не было полного доступа к базе и ресурсам сервиса?

    3. Так будет сложно работать, тогда нужна микросервисная архитектура

    Но есть люди, которые внедряют определенные проектные задачи

    4. Ну да, вы говорите вот это твой модуль, вот документация по нему, вот такая задача, иди разберись как он работает и принеси мне план что как ты сделаешь (иногда сразу делают без плана если функционал маленький)
    5. Есть доклад довольно дельный на эту тему от сотрудников Badoo https://www.youtube.com/watch?v=GJZbzEME_og
    Ответ написан
    Комментировать
  • Как определить подходящую компанию на рынке труда веб-разработки для первого раза?

    gobananas
    @gobananas
    finishhim.ru
    Вариант А - продукт, менеджер, разработчик
    Вариант Б - это работа маркетолога больше

    У вас 2 пути:

    1. Работа в компании где заказная разработка - зачастую бардак, хаос, всё горит, если это небольшая компания, но зато есть шанс прокачаться в проектах с нуля, архитектуре.
    2. Работа с продуктовой компании. Там всё уже написано до вас, на сколько хорошая там будет прокачка непонятно. Может быть хорошая. А могут быть устаревшие технологии прокачки вообще не быть.

    Идите куда берут. Пума верно сказал.
    Ответ написан
    Комментировать
  • Важна ли индексация комментариев для SEO?

    gobananas
    @gobananas
    finishhim.ru
    Зависит от того что будет в комментариях, если осмысленные тексты длинной хотя бы в абзац то можно индексировать, если фразы типа Агонь, Бугага, Ору как гаубица, то не стоит.
    Ответ написан
    Комментировать
  • Как написать SQL-запрос?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT `t`.`id`, `m`.`name`, `m`.`date`
      FROM (
        SELECT MAX(`date`) AS `date`, `name`
          FROM `table`
          GROUP BY `name`
      ) AS `m`
      JOIN `table` AS `t`
        ON `t`.`date` = `m`.`date` AND `t`.`name` = `m`.`name`
    Ответ написан
    4 комментария
  • Как сейчас работают с Git?

    gobananas
    @gobananas
    finishhim.ru
    Лучше начинать с консоли. Любые программы обычно имеют ограниченные функции и дают быстро и просто делать только самые часто используемые вещи.
    Ответ написан
    Комментировать
  • Как найти применение модным технологиям в типовых проектах?

    gobananas
    @gobananas
    finishhim.ru
    Так делайте НЕ типовой проект что бы выйти из зоны комфорта. Вы пытаетесь думать где применить варежки на Юге, хотя надо поехать на Север и там им сразу найдется применение.

    Всем нам хочется нормально жить, для чего зарабатывать деньги важнее, чем проводить эксперименты.

    Вот вы сделали проекцию своего мнения на всех, а кто-то всё свободное и часть рабочего времени тратит на эксперименты, а зарабатывает мало ))

    какие узкие места в разрабатываемых проектах можно закрывать посредством Go, Elixir

    Если там нагрузка будет только тестовая от вас то и PHP везде справится, а так... запилите pet-проект с API, откройте его миру бесплатно, немного продвижения и тогда вы увидите как текущие средства не справляются с нагрузкой и придёт время применять другие технологии.

    Понятное дело, что как ни думай как в песочнице поработать экскаватором - все решения будут так себе.
    Ответ написан
    2 комментария
  • Как безопасно разорвать fixed price контракт?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    типичная ситуация с фиксПрайс контрактами, будет вам урок, никогда нельзя брать фикспрайс контракты, даже на 5 минутную "доработку" - рано или поздно ты изза копеечной правки нарвешься на такого заказчика, который испортит тебе репутацию.
    Само собой не все такие проблемные, но в случае проблем (например клиент хочет бесконечно растягивать обьем работ, затягивая и компосируя мозги как в примере), то ты будешь всегда крайним.
    ---
    Вариантов не так много:
    1. возврат денег (безопасно но теряешь деньги за уже выполненый труд)
    2. Не разрывать контракт, просто ему также бесконечно компосировать мозги, он тебе что-то шлет, ты соглашаешься посмотреть (но не указываешь точных сроков когда что-то посмотришь или исправишь), просто все время говоришь что еще НЕ разобрался, нужно время, при этом никогда не грубишь и НЕ отказываешься от работы, просто тянешь бесконечно время, ничего не делая, если он начинает высказывать не довольство ожиданием, предлагаешь ему сменить подрядчика.
    Клиент или сам расторгнет контракт, или забьет, ну и в случае чего спор проще будет решать, все равно клиент сам пропал, а теперь не хочет ждать когда у тебя время освободится. . .
    3. Попробовать все довести до желаемое клиентом состояния - но предположу что скорее всего не получится сколько бы ты труда не вложил, (нужно понимать что всегда оставшиеся 10% проекта занимают 90% труда), кто заказывает по фикспрайс часто этого не понимают и что-то обьяснять ему как правило бесполезно (поэтому брать проекты на фикспрайс - это безумие, хорошо тебе еще ума хватило проект на этапы разделить, так бы ты ни копейки за свой труд не увидел).
    Ответ написан
    Комментировать
  • Оценка своего уровня. Как улучшить код?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    1. Используйте const вместо let для определения переменных которые не переопределяются в коде. Это помогает снизить когнитивную нагрузку с человека читающего код и негласный стандарт в React разработке.

    2. Такие вещи как globalStyles и конфигурацию store лучше вынести в отдельные файлы. Они могут со временем хорошо разрастись.
    По поводу globalStyles, вы вообще можете вынести их в отдельный css файл.

    3. Вместо:
    {
      isModal
      ? <Route path="/auth" component={AuthPopup} />
      : null
    }

    лучше:
    {isModal && <Route path="/auth" component={AuthPopup} />}


    4. Вместо:
    function mapDispatchToProps(dispatch) {
        return {
            autoLogin: () => dispatch(autoLogin()),
            getBrowser: () => dispatch(getBrowser()),
            getMedia: () => dispatch(getMedia())
        }
    }


    лучше:
    const mapDispatchToProps = {
      autoLogin,
      getBrowser,
      getMedia,
    };


    5. Точки с запятыми в конце то есть, то нет. Определитесь и приведите код к одному виду.

    6.
    & label {}
    & input {}
    & span {}

    Это не очень хороший подход. Во-первых ваши стили не изолированные, что может приводить к неожиданным результатам. Во-вторых у вас очень много дублирования стилей. Определите Input и Label как базовые компоненты и используйте в разных местах, то же с остальным если есть.

    7. Почему папка со страницами называется Containers? Дань бойлерплейтам?

    8. Использование trailing comma является хорошей практикой.

    9.
    import {combineReducers} from 'redux';
    import photoReducer from './photoReducer';
    import authReducer from './authReducer';
    import globalReducer from './globalReducer';
    
    export default combineReducers({
        photoReducer, authReducer, globalReducer
    })


    Все таки приятней работать с хранилищем в котором ключи не имеют в названии слова reducer:
    import {combineReducers} from 'redux';
    import photo from './photoReducer';
    import auth from './authReducer';
    import global from './globalReducer';
    
    export default combineReducers({
      photo, 
      auth,
      global,
    });


    10. Забудьте вообще, что в языке есть возможность использовать вложенный тернарный оператор:
    return e === 'invalid-email' ? 'Неверно указан e-mail'
        : e === 'user-not-found' ? 'Указанный e-mail на найден'
        : e === 'wrong-password' ? 'Неверный пароль'
        : e === 'email-already-in-use' ? 'Указанный e-mail уже используется'
        : e === 'network-request-failed' ? 'Нет подключения к интернету'
        : e === 'operation-not-allowed' ? 'Произошла ошибка, попробуйте снова'
        : e === 'popup-closed-by-user' ? 'Окно авторизации закрыто пользователем'
        : e === 'account-exists-with-different-credential' ? 'Аккаунт уже существует с другими данными, используйте другой способ авторизации'
        : e

    Это одна из самых худших практик в JavaScript разработке. Тут лучше подойдет конструкция switch case

    11. Константы actionTypes лучше вынести в папку constants и разложить по разным файлам, иначе со временем у вас там будет свалка.

    12. Вместо:
    import {SET_ACTIVE, CHANGE_VALUE, SET_DEFAULT, UPLOAD, UPDATE_IMAGE, SET_IMAGE_ERROR, SET_LIKE, SET_COMMENT, ADD_ARTICLE_SUCCESS, FETCH_ARTICLES_START, FETCH_ARTICLES_SUCCESS, FETCH_ARTICLES_ERROR} from '../actions/actionTypes';

    Лучше:
    import {
      SET_ACTIVE,
      CHANGE_VALUE,
      SET_DEFAULT, UPLOAD,  
      UPDATE_IMAGE,
      SET_IMAGE_ERROR,
      SET_LIKE,
      SET_COMMENT,
      ADD_ARTICLE_SUCCESS,
      FETCH_ARTICLES_START,
      FETCH_ARTICLES_SUCCESS,
      FETCH_ARTICLES_ERROR,
    } from '../actions/actionTypes';


    13. Попробуйте внедрить библиотеку reselect. И для получения значения из store вместо записи вида:
    function mapStateToProps(state) {
        return {
            browser: state.globalReducer.browser
        }
    }


    использовать селектор:
    const mapStateToProps = state => ({
      browser: browserSelector(state),
    });
    Ответ написан
    12 комментариев
  • Как передать значение полученное из БД в переменную?

    @cybernoob
    $var = $items[0]['count(*)'];
    Ответ написан
    Комментировать
  • Как скрыть div на странице, если его value =?

    @cybernoob
    Идеально присвоить ему id и сделать display: none по айдишнику
    Ответ написан
    1 комментарий
  • Почему веб сервер стал долго отвечать на запросы?

    @cybernoob
    1. Включить логирование медленных запросов в MySQL
    2. Посмотреть в браузере вкладку Network
    Ответ написан
    1 комментарий
  • Стоит ли сейчас покупать домены в зоне .info?

    @cybernoob
    Индексируются так же как и другие, никаких проблем
    Ответ написан
    Комментировать
  • Сложение всех значений массива?

    gobananas
    @gobananas
    finishhim.ru
    $arr2 = array_column($arr1, 'price');
    print_r(array_sum($arr2));
    Ответ написан
    1 комментарий
  • Как практиковаться правильно?

    @bigsnake
    Надо начинать с простых. Смотрите. Если знаете как сделать - делаете. Или надо что бы было пару вопросов. Если смотрите и вообще не представляете как это сверстать, значит рано ещё для такого макета.
    Сразу PRO становиться и прыгать в сложное не очень хорошая идея ))
    Ответ написан
    Комментировать