• Где можно найти и посмотреть "хорошие практики" на React?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Гайдлайн от airbnb по оформлению кода.
    Куча полезных ссылок по react + redux.
    Ответ написан
    Комментировать
  • Как вернуть результата выполнения вложенных функций?

    rockon404
    @rockon404
    Frontend Developer
    Подсказка:

    Чтобы sum(1), а также sum(1)(2) можно было вызвать новыми скобками – результатом sum должна быть функция.

    Но эта функция также должна уметь превращаться в число. Для этого нужно дать ей соответствующий valueOf. А если мы хотим, чтобы и в строковом контексте она вела себя так же – то toString.

    Ответ написан
    1 комментарий
  • Как получить время сервера на клиенте?

    @alekssamos
    Программист любитель
    Сделай отдельный скрипт getdate или как там, getservertime и уже отправляй либо датой, либо в формате времени unix.
    Ответ написан
    1 комментарий
  • Как получить время сервера на клиенте?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    записать его в data атрибут например. Все зависит от того в каком виде Вы ответ получаете.
    Ответ написан
    Комментировать
  • Как получить время сервера на клиенте?

    Stalker_RED
    @Stalker_RED
    Сервер не обязан отправлять свое время. Придется это настроить (если есть такая настройка) или прописать в коде.
    Ответ написан
    2 комментария
  • Источники вдохновения для Front End разработчика?

    @ynblpb_spb
    дятел php
    Ответ написан
    Комментировать
  • Есть смысл делать сайт каталог на vue?

    1. Кривят мины при слове jquery только старые деды, потому что библиотека полезна и экономит много времени (особенно у новичков). Даже если эта библиотека будет объективно считаться полным дерьмом, какая вам разница если она решает ваши задачи?

    2. Раньше говорили, vue используют там, где jquery уже не хватает. Я не понимал что это значит, столкнувшись с некоторыми задачами я понял смысл этой фразы. В действительности, если вам нужно повесить пару обработчиков на кнопки, формы и тд, vue вам не нужен. Если вам, как и мне, нужно подгружать постоянно обновляемые данные, всю эту информацию выводить в разных блоках, на каждый из который вешаются свои обработчики, когда появляются какие-то динамичные элементы в приложении и вы видите что в своем js-коде вы уже ничерта не можете разобраться, потому что вы пытались каждый модуль писать в отдельном файле и совмещать их вы уже не можете, вы открываете для себя vue-компоненты, за которыми легко следить и связывать между собой.

    Сайт, что вы кинули - обычный лендос, прям обычный на все 167%. Для чего вам париться лепить компоненты в vue, если вам нужно написать 10 строк js кода? Конечно нет смысл использовать.

    В качестве примера, для чего vue подошел бы, могу сказать то, что приходилось делать мне: есть проект с криптовалютой, который выводит кучу графиков по валюте, по каждому графику можно выбирать временной интервал и получать какие-то результирующие данные по этим интервалам. Для каждого блока начинка и обработчики разные (vue-компоненты), все это хранится в одном файле, отвечающий за каждый компонент. Помимо этих блоков есть некоторый объем периодично подгружаемой информации, которая тоже имеет вид графиков, круговых диаграмм итд. Все это прекрасно работало и на голом js, но когда проект стал разрастаться - в коде было уже сложно разбираться и я пытался сам писать какой-то аналог компонентов vue, понял что горожу велосипеды, перелез на vue и все.
    Ответ написан
    Комментировать
  • Как преодолеть кризис начинающего специалиста?

    @deliro
    Как преодолеть такой кризис?

    1. Уволиться, пойти поработать кассиром/грузчиком/официантом/таксистом (но надо иметь свой бизнес);
    2. Понять, что даже писать CRUD не так утомительно и скучно;
    3. Радоваться тому, что есть.

    Как на самом деле работают программисты?

    90% времени думают, 10% времени пишут.

    А ещё, говорят, ИТ не сводится к одному ДС. Можно попробовать что-то другое.
    Ответ написан
    Комментировать
  • Как вызвать один action в другом action с использование redux-thunk?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    export const actionFromA = data => async (dispatch) => {  
      dispatch(actionFromA());
    }


    Документацию хоть почитайте.
    Аргумент dispatch это функция store.dispatch.
    Обновление состояния хранилища инициируется передачей в эту функцию объекта действия:
    store.dispatch({ type: 'action_name' });
    Ваш action creator actionFromA() возвращает подобный объект. И вызов:
    dispatch(actionFromA());
    Эквивалентен:
    store.dispatch({ /* объект возвращаемый actionFromA */ });
    Ответ написан
    2 комментария
  • Как дождаться всех данных при данной конструкции React Redux Async Recursion?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Зачем вам рекурсия? Выглядит как набор костылей. Попробуйте решить задачу по-другому. Например, забрать данные одним запросом, либо реализовать бесконечный скролл с подгрузкой данных по требованию.

    Перерисовка наступает тогда когда вы обновляете store. Ничего удивительного.

    Если так хотите оставить и использовать свой подход. У вас есть два пути:
    1. Добавить в store ключ isAllDataLoaded и обновлять его в редьюсере когда приходит последняя часть данных.
    2. Добавить в проект redux-thunk. Переписать свою функцию в async action:
    const fetchData = () => async dispatch => {
      const data = [];
      try {
        while(true) {
          const response = await Api.getSomeData({ from: data.length });
          data.push(response.item); // если item это массив, то data.push(...response.item); 
          if(!response.items.length) {
            break;
          }
        }
        
        dispatch(fetchDataSuccess(data));
        
        return data;
      } catch (e) {
        dispatch(fetchDataFail(e));
      }
    };


    Еще учитесь писать поддерживаемый и читаемых код. Соблюдайте стандарты комьюнити, такие запросы, при использовании redux, принято выносить в async action или сагу.

    В API принято реализовывать эндпоинты для получения как одного экземпляра данных, так и целой коллекции.
    Возможно, вам стоит написать эндпоинт для получении всей коллекции данных. Потому что сейчас ваш код выглядит как набор костылей, написанных, в попытке заполнить именно эту брешь в API.
    Ответ написан
    6 комментариев
  • Паттерны программирования для react developer-а?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Хорошо знать, что они есть и какие задачи решают. Стоит понимать, что JavaScript и, в частности, код React приложения, сильно далек от классического ООП и во многих классических паттернах тут нет необходимости. А что-то уже реализовано в браузерных API и библиотеках которые вы используете.
    В JavaScript и в React разработке используются свои паттерны и приемы. Просто вбейте в поисковике React patterns . Так же хорошо знать что такое принципы SOLID, DRY и прочее.
    Ответ написан
    2 комментария
  • Как вы боретесь со слабой типизацией и зачем ее придумали?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Хорошая архитектура снижает необходимость в приведении типов.
    5af00f1b811b0153622827.png
    А придумали и используют динамическую типизацию потому, что она существенно снижает TTM.
    Ответ написан
    4 комментария
  • Как вы боретесь со слабой типизацией и зачем ее придумали?

    profesor08
    @profesor08 Куратор тега JavaScript
    Если ты дергаешь всякие значения из документа, или из форм, то по умолчанию там тип данных - строка, а раз так, то чему тут удивляться, парси строку. Если ты не объявляешь какую-то переменную, или не задаешь какой-то параметр для функции, то снова, почему удивления, js мыслей читать не умеет? Еще есть параметры по умолчанию.
    Ответ написан
    Комментировать
  • Автообновление по id Javascript?

    rockon404
    @rockon404
    Frontend Developer
    Вы время получаете один раз при инициализации и значения никогда не меняются. Перенесите получение времени в функцию Test:
    function Test(){
      var D = new Date(); // Получение текущего времени
      var D_M = D.getMinutes(); // Минуты
      /* остальной код функции */
    }
    Ответ написан
    1 комментарий
  • Как сделать установочный ISO образ настроенного Linux?

    NeiroNx
    @NeiroNx
    Программист
    Может просто записать в образ - образы разделов и программу их записи. А чтобы "посмотреть" - монтирование как RO (нужны разные initrd)
    Ответ написан
    Комментировать
  • Как сделать установочный ISO образ настроенного Linux?

    Sanes
    @Sanes
    Для Ubuntu есть Remastersys, SystemBack
    Ответ написан
    Комментировать
  • Нормально ли что бекенд отдает сырые данные на фронт?

    @alexalexes
    Работать с сырыми данными на клиенте накладно всем.
    Накладно клиенту, потому что приходится работать с сопоставлением справочников, что должна делать СУБД "одной левой пяткой" при правильно составленном запросе с помощью индексов и кэша.
    Накладно инфраструктуре связи - гоняем много данных по каналам и не один раз.
    Накладно бекэнду - постоянно создавать соединение с клиентом и СУБД, разрывать соединение.
    Накладно СУБД - делать серию мелких запросов с толстой процедурой подготовки соединения, проверки прав пользователя на объекты, выполнения запросов, вместо того, чтобы выполнить запрос в один/два присеста.
    Что делать?
    Организовывать на стороне сервера грамотный API - каждая функция API при запросе к серверу должна давать порцию данных, необходимую для отображения конкретного отчета. В ответе не должно быть переизбытка данных. Если это список товаров, то отображать данные не всего списка, а от такой-то позиции до такой-то. Если у товаров есть какие-то "тяжелые" подробности, скажем, посмотреть большую фотку его, то подгружаем ее только по запросу пользователя, скажем, при наведении мыши - то есть вызываем другую функцию API. То есть функции API должны соответствовать механике работы с отчетом, а не предоставлять несвязные клочки данных.
    Ответ написан
    Комментировать
  • Нормально ли что бекенд отдает сырые данные на фронт?

    profesor08
    @profesor08
    Если ты не можешь на это повлиять, то смирись. На самом деле, то что ты описал, и как ты это описал, должно делаться еще на уровне самого SQL запроса, и возвращаться должны готовые для употребления данные. Вот эти все сравнения идентификаторов должна делать субд на основе пришедшего к ней SQL запроса. А тебе должно быть достаточно сделать запрос вроде getMenu(params), где params это и локализация, и прочие нужные поля.

    А так выходит что бэкенд это файл базы данных, а роль субд выполняет фронтенд.
    Ответ написан
    1 комментарий
  • Нарушают ли законы своей страны иностранные удалённые работодатели?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Вы не можете по тур визе оформится там как российиский ИП.
    1. потому что вы не можете физически работать там.
    2. потому что ваш ИП - никто там.

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