Ответы пользователя по тегу Фронтенд
  • Какой сейчас самый продвинутый и современный загрузчик картинок используете на JS?

    mazhekin
    @mazhekin
    Frontend, Backend Web Developer
    Самый продвинутый загрузчик это старый добрый input file. Так как по специфике и дизайну проектов приходиться делать очень разные по дизайну и потребностям загрузчики.
    Ответ написан
  • Как быть с camelCase на фронте и snake_case на бэкенде?

    mazhekin
    @mazhekin
    Frontend, Backend Web Developer
    Если бекендер очень высокого уровня, то есть умеет красиво и оптимально проектировать методы и данные под потребности клиентских app, четко это документировать (swagger) и покрывать тестами свои методы, то обычно таких проблем не возникает.
    В противном случае контролируйте все что приходит с бекенда, сделайте статические мапперы, подстраиваться под бек не вариант, всякие линтеры начнут ругаться, вы начнете запутыватся в плохоименованных переменных, уговаривать бекендеров слать данные в нужном формате то же больше времени потратите, третий вариант сам приемлемый, бекенд часто шлет, не то что в нужном формате а еще много того что не нужно на фронт.
    Например: бекенд шлет (это частая ситуация, так в бд например хранится, а правила кодирования у разных клиентов (web, ios, android) свои, но они могут использовать один и тот же бек)
    {
      ID '2342',
      stu_cfg: 'werwer'
      pfu_num: '1231'
      sys_created: '2000-12-10'
      register_date: '06 Mar 2017 21:22:23 Z'
    }

    бы обозначаете что вам нужно и в каком виде (в тайпскипте например) (или в js комментариями)
    interface SomeEntity {
      id: string,
      status: string,
      created: Date
      registered: Date 
    }


    class MyMapper {
        static someEntityToClient(data): SomeEntity {
            const someEntity: SomeEntity = {
               id = data['ID'],
               status = data['stu_cfg'],
               created = moment(data['sys_created']).toDate
               registered = moment(data['register_date']).toDate 
            }
            return someEntity;
        } 
    }

    И вызовите маппер сразу после апи вызова как только получили данные. Таким образом вы решите проблемы:
    1) ненужные данные отфильтруете, чтоб не ломать голову (что это? зачем?) потом во время отладки фронта
    2) в коде будет единый стандарт именования переменных (плюс закодированные имена (cfg, klk и т. п.) пропишете понятно).
    3) в бизнес логике будет единый стандарт типов данных (как например со временем) (преобразований не надо потом нигде по 10 раз делать, проверки отпадут, вы все проконтролировали на входе)
    Ответ написан
    Комментировать