• Как в Appium для React Native получить текст из элемента Text?

    @f-end Автор вопроса
    Угробил почти день на решение этого вопроса. Как обычно все оказалось банально:
    проблема была в функции setTestId. Как всем, наверное, известно, существует проблема с поиском элементов по testId на Андроиде. И поэтому на нем ищет по accessibilityLabel.
    Вот эта функция для тестового окружения она у меня возвращала такой объект:
    return { accessibilityLabel: id, testID: id };
    Я устанавливал И то И другое. Мне не жалко. А оказалось надо было ставить только одно нужное значение. Вот так:
    return Platform.OS === 'android'
                ? { accessible: true, accessibilityLabel: id }
                : { testID: id };
    Ответ написан
    Комментировать
  • Почему не работает async/await в Vue?

    async/await под капотом работают с промисами, а setTimeout не возвращает промис, а вместо этого вызывает коллбек-функцию.
    Странно что в Vue компонентах не так.
    Ответ написан
    4 комментария
  • Как контролировать целостность и достаточность данных на клиенте?

    @f-end Автор вопроса
    Вот мой вариант пока:
    1. Создаем единый экшен (redux) для всех запросов данных по API
    2. Каждый компонент, который запускает экшен, запускает его всегда при вставке компонента в DOM и обязательно передает в него схему, которая описывает структуру данных, необходимых компоненту
    3. Экшен (имеет доступ к store) проверяет все поля всех необходимых ресурсов на соответствие схеме, если все поля существуют - ок, значит компонент отрисован, если нет, значит компоненту не хватает всех или части данных, формируется GET-запрос для необходимых полей и отсылается на сервер
    ...
    Ответ написан
    Комментировать
  • Почему moddlewear для Express Multer не сохраняет изображение?

    @f-end Автор вопроса
    Вопрос снят.
    Оказалось, что upload.single не берет из массива один первый файл (как я предполагал), а работает в одинм объектом типа File
    Ответ написан
  • Индексация AJAX страниц интернет-магазина?

    На мой взгляд в таком формате делать AJAX-страницы для интернет-магазина противопоказано.
    Я прямо в данный момент разрабатываю интернет-магазин в формате SPA, который запрашивает данные через API и само собой разумеющимся считаю реализацию серверного рендеринга ВСЕХ страниц каталога. Без этого делать магазин просто нельзя в современных реалиях.
    Мало того, в идеале необходимо, чтобы даже при отключеном javascript можно было взаимодействовать с магазином: добавлять товары в корзину и оформлять заказы.
    Server side rendering сейчас реализован во всех основных фреймворках и с его реализацией не должно быть проблем.

    "самым надежным кажется конфигурация страницы, при которой карточки товара отдаются сразу при ответе сервера... Прятать JavaScript'ом после загрузки страницы?" - не надо ничего прятать, надо использовать отрендеренную сервером разметку.
    Ответ написан
    3 комментария
  • Какие курсы, книги и видео по изучению JQuery посоветуете новичку?

    Однозначно вот этот учебник. Я сам раньше много с чего начинал, но именно благодаря книге Антона Шевчука я смог сразу начать что-то делать, и делать это более менее, осмысленно, понимая как можно оптимизировать код и как вообще работает библиотека.
    Ответ написан
    Комментировать
  • Что выбрать для небольшого проекта на Angular 4.0?

    Я бы с CLI вообще не связывался.
    После обновления Ангуляра со 2 на 4 версию я получил много боли и страданий, апофеозом которых стала поломка скриптов (анимаций) после сборки в продакшен! ПОСЛЕ СБОРКИ, КАРЛ! В девелопе все работало, хотя и помучился я для этого прилично т.к. CLI для второго Ангуляра - это совсем другой скрипт. Не версия другая, а просто скрипт другой, с другим названием.

    В итоге по хорошему надо для обновления на 4 версию делать свою сборку, но мне лень. Однако выводы я для себя сделал и больше это поделие использовать не стану. Лучше потратить немного времени и настроить свой конфиг. Или хотя бы взять нормальный стартер и допилить его под себя.
    Ответ написан
    Комментировать
  • Используют ли React как шаблонизатор в Node?

    Вот прекрасный шаблонизатор на React для Express.
    Как плюс позволяет переиспользовать шаблоны на фронте.
    Это не для "изоморфных" решений, а именно шаблонизатор.
    Ответ написан
    Комментировать
  • Пример работающего кода на гитхаб с локальной аутентификацией Passport, Node?

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

    Все получилось (правда, регистрацию пока не делал, только авторизацию)
    Ответ написан
    7 комментариев
  • Тестирование верстки сайта в 4K без монитора 4K?

    Я просто в FF ставлю нужную ширину:
    joxi.ru/Dr86O0DI4yEZk2
    Как раз вчера была необходимость такого тестирования, заказчик проверял на огромном маковском мониторе. В общем проблем не обнаружил, все как я видел на свое мониторе, так же отображалось у заказчика.
    Ответ написан
    Комментировать
  • Какой у вас размер bundle.min.js в React.js приложении или Померяемся React.js билдами?

    Задался тем же вопросом. Проанализировал сборку, там было много конструкций типа:
    if(NODE_ENV !== "prodi=uction")...
    Совершенно очевидно, что такого мусора быть не должно.
    Поправил плагин webpack DefinePlugin, написав его таким образом:
    new webpack.DefinePlugin({
            'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
        }),

    (раньше был просто NODE_ENV': JSON.stringify(process.env.NODE_ENV))
    Вес сборки уменьшился в 2 раза!
    А у Вас этот плагин вообще не подключен.

    П.С. Может, кому-то еще пригодится ответ.
    Ответ написан
    1 комментарий
  • Какой использовать рецепт, если я хочу использовать typescript, плагины Jquery и библиотеку svgjs??

    Надо зайти сюда: https://microsoft.github.io/TypeSearch/
    Скачать и установить тайпинги для перечисленных библиотек
    Указать папку с тайпингами в tsconfig.json примерно так:
    "typeRoots": [
    "../node_modules/@types",
    "../custom-types"
    ]
    Все.

    А да, редактор я использую Webstorm
    Ответ написан
    Комментировать
  • Как подружить owl-carousel и Angular 2?

    Инициировать карусель, то есть делать вот это:
    $('.owl-carousel').owlCarousel({
    ....
    }))

    необходимо где-то в каллбэке.
    У вас получается следующая очередность событий:
    1 . GET-запрос
    2. ngAfterViewInit() - тут вы ждете события готовности DOM и инициируете карусель
    3. Возвращаются данные
    4. Отрабатывает цикл *ngFor и создаются элементы (карусель о них ничего уже не узнает)

    А вам нужно, чтобы карусель инициировалась после того, как данные будут получены и *ngFor отработает.
    Вот пример как сделать каллбэк на *ngFor:
    <li *ngFor="let item in Items; let last = last">
      ...
      <span *ngIf="last">{{ngForCallback()}}</span>
    </li>
    
    public ngForCallback() {
      ...
    }

    Пример взят отсюда
    Ответ написан
  • Angular 2 и Redux?

    Один из разработчиков Angular описал свой опыт применения паттерна Redux для построения архитектуры сложного приложения: blog.mgechev.com/2016/04/10/scalable-javascript-si...
    Там же можно найти пример его реализации с помощью RXJS.
    То есть redux в Angular 2 вполне уместен и активно используется.
    Ответ написан
  • Возможно ли подгружать можули динамически?

    Есть функционал ленивой подгрузки модулей при роутинге:
    https://angular.io/docs/ts/latest/guide/ngmodule.h...
    (Ссылка ломается, вот правильная: angular.io/docs/ts/latest/guide/ngmodule.html#!/#lazy-load )
    Ответ написан
    Комментировать
  • Кто знает хорошие вебинары по БЭМ'у?

    Вот этот я лично смотрел, изучая БЭМ: https://video.yandex.ru/users/ya-events/view/3982
    Больше ничего не понадобилось. Там были еще части про сборку галпом, про js, но это не обязательно для понимания сути.
    Ответ написан
    2 комментария
  • Как учиться новому после рабочего дня?

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

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

    И самое главное: два-три месяца работы в компании с более высоким уровнем разработки, чем у вас в данный момент, дадут вам больше, чем год бессонных ночей после работы. Поэтому не стоит пытаться сначала дорасти до определенного уровня, а потом устраиваться. Скорее всего не дорастете, только время потеряете. Изучайте базу и в бой!
    Ответ написан
    7 комментариев
  • Как сделать минифицированную сборку с Webpack и es2015?

    @f-end Автор вопроса
    Нашел причину.
    Вебпак ищет папку node_modules в родительских для обрабатываемых файлов директориях.
    Если они их не находит, то Babel не отрабатывает и - как следствие - минификатор давится не преобразованным кодом
    Ответ написан
  • Зачем ставить перед переменной $?

    Так отмечают переменные, которые содержат jquery-объект.
    Ответ написан
    1 комментарий
  • Как вытащить svg из иконочного шрифта?

    Наверное мой способ слишком хлопотный, но так как это мне не приходится делать часто, то меня он вполне устраивает. Итак.
    1. Иду на fontello.com и выбираю иконку
    2. Открываю ее в редакторе, там будет строка типа такой:
    <glyph glyph-name="menu" unicode="&#xf008;" d="<тут координаты всякие>

    заменяю ее на
    <path d="<тут координаты всякие>
    Так же очищаю весь мусор вокруг, получается примерно так:
    <svg width="22" height="22" xmlns="http://www.w3.org/2000/svg">
        <g>
            <title>Layer 1</title>
            <path d="<тут координаты всякие>" id="svg_1" fill="black" transform="rotate(180, 11, 11.0614)"/>
        </g>
    </svg>

    3. После этого открываю prohtml.net/services/svg и вставляю в редактор получившийся код, после чего масштабирую его до нужных размеров.
    4. Копирую получившийся код в новый файл .svg
    Ответ написан
    Комментировать