Ответы пользователя по тегу Веб-разработка
  • В чём минусы и плюсы веб-приложений?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Все просто: для каждой платформы свой клиент. Не предоставляя мобильный клиент ты в лучшем случае лишаешь приложение части аудитории, а также уникальных возможностей.

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

    Т.е. если ты хочешь делать мобильное приложение нужно именно стараться задействовать возможности мобильного устройства и его операционной системы. Иначе это просто мобильная вебстраница.

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

    lxsmkv
    @lxsmkv
    Test automation engineer
    На редактирование кода уходит хорошо если час-два в день. Два это уже хорошо. Остальное - осмысление проблемы, чтение документации, кода, иногда книг, поиск подходящего решения, выбор решения, осмысление выбора, переписка с другими людьми, если от них зависит твоя работа. Да, общаться приходится довольно много. На емейлы может уходить до нескольких часов в день. Писанина в багтрекере, написание публичных заметок (назовем это "документацией").
    Чем ближе проект к кровавому энтерпрайзу, тем меньше ты программируешь. Если ты, например, пишешь ПО для ракеты как в НАСА, то там больше чертят диаграммы и проверяют все на бумаге, чем редактируют код. И вообще просто так нельзя вносить изменения в код без согласования. Ну это совсем крайний случай.

    Я вот занимаюсь автоматизацией, у меня на проекте на написание новых тестов уходит от силы наверное 15% времени, все остальное время - проверка и разбор результатов тестов, заведение багрепортов, проверка фиксов. Отчетность, митинги (как я их терпеть не могу). Бывают - дни вообще ни одного коммита.
    Ответ написан
    Комментировать
  • Как в CMS/Битрикс 24 автоматизировать проверку работоспособности доработок после обновления?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Короткий ответ - писать UI тесты.
    Для этого чаще всего пользуются Selenium. Но нужно будет программировать, на яве, питоне или руби.
    Есть решения где программировать надо по минимуму. Но такие инструменты могут быть не бесплатными.
    Вот небольшая выборка таких. Ничего конкретно из них порекомендовать не могу - не пользуюсь. Пробуйте.
    https://www.katalon.com/katalon-studio/
    https://www.testcraft.io/
    https://www.froglogic.com/squish/
    https://www.leapwork.com/technology/web-automation
    https://testcafe.devexpress.com/
    https://www.cypress.io/
    https://endtest.io/
    https://experitest.com/cross-browser-testing/visua...
    https://screener.io/
    Ответ написан
  • Может сайт или расширение собирать идентификационные данные железа компьютера?

    lxsmkv
    @lxsmkv
    Test automation engineer
    код на яваскрипте который опрашивает webgl и выдает модель графической карты:
    spoiler
    var canvas = document.createElement('canvas');
    var gl;
    var debugInfo;
    var vendor;
    var renderer;
    
    try {
      gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
    } catch (e) {
    }
    
    if (gl) {
      debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
      vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
      renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
    }
    
    // Sample output:
    //
    // » console.log(renderer);
    // ATI Technologies Inc. AMD Radeon R9 M370X OpenGL Engine
    ссылка на gist

    количество логических ядер процессора:
    logicalProcessors = window.navigator.hardwareConcurrency
    документация

    но вот способа выяснить модель процессора вы не найдете, как и обьем оперативной памяти и т.д. В JS стандарте нет таких возможностей и не может быть - это было бы нарушением безопасности системы.
    Как видите API дают только доступ к той информации которая важна для выбора способа обработки. В случае с количеством логических ядер в процессоре это используется для эффективного запуска Webworkers. Информация о способностях графической карты важна для выбора способа отображения.

    Все другие способы требуют активных действий пользователя, инсталляции расширений в браузер, программ, апплетов и пр.
    Ответ написан
    Комментировать
  • Делаем что то одно — все остальное ломаем?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Регрессии это нормальное явление. Почему такое происходит в принципе - интересный сам по себе вопрос.
    Регресс появляется когда добавление нового кода или изменение старого не учитывает всех задействованных частей программы.
    Отсюда можно сделать вывод, чтобы минимизировать эффект от регрессии, нужно огранизовывать код так, чтобы при его изменении, можно было легко понять, на какие другие части логики это изменение влияет. Именно это является целью создания идеальной архитектуры приложения. Чтобы все было по полочкам. Чтобы доставая из шкафа полотенце, вам на голову не падала матрешка которая стоит на шкафу сверху (кто ее туда поставил, и почему - неясно, записку с комментариями никто не оставил)
    Чтобы бороться с наваливанием кода в кучу - нужно чтобы кто-то следил за тем чтобы его не наваливали в кучу. Архитектор например. Архитектор это такой ландшафтный дизайнер для кода. Но нужен и садовник. Чтобы лужайки были зеленые, а огурцы не расли на грядке в перемешку с морковкой. Фреймворки конечно тоже отчасти справляются с этой задачей. Фреймворк для того в принципе и служит, чтобы для каждой части приложения была своя песочница. Мол, складывай вещи как хочешь но в коробки 40х50х30. Текстиль сюда, кухонную утварь сюда. Коробку подписать, занести в реестр. Как на складе.
    Но ничто не защитит вас от того, что в коробки накидают не того что там должно быть. Надо проверять (тестирование). Выстраивать процесс таким образом чтобы ошибиться по халатности было трудно (архитектура). Чтобы было легко локализовать источник ошибки (логгирование). Систематично избавляться от сложности во всем (здравый смысл).
    Ответ написан
    Комментировать
  • Как перейти от стадии знания тегов к успешной верстке?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Смотреть как сверстаны чужие страницы, например. Ну и постоянно спрашивать Яндекс "как верстать сайты", там весь интернет этим завален.
    Знание тегов это как знание назначения карандаша, красок и кисточки. Рисовать все равно надо учиться. Это процесс. И как в любом обучении быстрых путей нет. Можно быстро что-то сделать но научиться быстро чему-то нельзя. Я могу сделать яичницу, но чтобы научиться ее делать нужно посвятить этому куда больше времени чем я этому посвящаю. Так вот нужно ответить себе на вопрос, вам хочется быстрых результатов или вы хотите этому научиться, то есть посвятить этому часть своей жизни.

    Когда я увлекался веб программированием, я мастерил маленькие финтифлюшки в онлайн редакторах типа jsfiddle и jsbin. Нужно постоянно решать какие-то задачи, только так нарабатываются навыки. Тренировка называется. И нужно доводить до конца. Что значит не выходит? Просто оно еще не готово. Делайте, продолжайте трудиться над этой конкретной задачей, и получится. Только когда вы одолеете свою задачу вы чему-то научитесь. Я повторюсь: быстрых путей нет.
    Ну и важно, чтобы это вам было действительно интересно. Если предмет интересен, ты готов читать о нем и исследовать его весь день. А это положительно сказывается на результате. Вот такой секрет.
    Ответ написан
    Комментировать
  • Стоит ли изучать паттерны проектирования, если ты всю жизнь будешь писать на фреймворках?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Попишите на фреймворках, и не беспокойтесь пока о паттернах. Когда появится необходимость понимания паттернов - разберетесь в паттернах. А такая необходимость появится как только вы захотите изучить фреймворк изнутри. А вы захотите это сделать когда упретесь в ограничения фреймворка. А изучать что-то без практической необходимости - мука. Зачем мучать себя заранее.
    Ответ написан
    4 комментария
  • Какой оптимальный (время написания тестов/эффективность) вариант тестирования веб-апи?

    lxsmkv
    @lxsmkv
    Test automation engineer
    тестирование регистрации и аутентификации никак с точки зрения теста друг с другом не связаны.
    в тестах регистрации вы хотите убедиться в том что если ввести невалидные данные то система даст отрицательный ответ. и если данные валидные то система ответит положительно.
    при логине вы хотите убедиться в том что если послать системе данные не существующего аккаунта система даст отрицательный ответ. если дать данные заблокированного аккаунта (ну например есть у вас такая категория), система ответит правильным сообщением. и, если пользователь существует и не заблокирован система ответит положительно. Естественно чтобы провести эти тесты, вам понадобится один валидный аккаунт в базе, чтобы система могла ответить положительно, и данные одного не существующего аккаунта, и одного заблокированного аккаунта. Если логин в систему не работает, ваши тесты логина обнаружат баг.
    Чтобы добится независимости от такого возможного бага, вы при тестировании запросов с залогиненым пользователем настраиваете систему перед тестом таким образом чтобы она не учитывала информацию по логину.

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

    Однако в случае если при тестировании входа выяснится что дверной замок не работает, то включить дверной замок для теста не получится, и второй тест скажет что мол замок двери открылся, все хорошо, однако на самом деле замок был все время открыт, потому что неработал. (т.н. false positive)
    Ответ написан
    6 комментариев
  • Что нужно для развития логики?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Решайте задачки по программированию. Попробуйте обучающие игры типа codecombat.com, js.checkio.org, screeps.com, codewars.com, codehunt.com ( правда тут java /c#)
    Попробуйте порешать задачки на этих интерактивных курсах: repl.it/community/classrooms/24696 repl.it/community/classrooms/26415
    и тут coderbyte.com

    Рекомендую еще книжку Самоучитель JavaScript (Дмитриева М.) Там на яваскрипте решаются серьезные алгоритмические задачи.

    Учебник по логике вам мало чем поможет, так же как и учебник по физкультуре мало поможет научиться подтягиваться на турнике по 20 раз.
    Ответ написан
    Комментировать
  • Что делать веб разработчику, если уже всё придумано?

    lxsmkv
    @lxsmkv
    Test automation engineer
    вы дизайнер графических интерфейсов, так? ив вы говорите что все уже придумано? То есть все интерфейсы которыми вы пользуетесь и с которыми знакомы идеальны и не нуждаются в улучшении?
    Тогда не понятно почему фирмы делают редизайн из года в год. Непонятно зачем гугл придумал material design, зачем эппл меняет дизайн Mac OS, зачем хабр делает редизайн , почему меняется дизайн навигационных систем..
    Ответ написан
    3 комментария
  • Создание робота-паука для сбора данных - где искать информацию?

    lxsmkv
    @lxsmkv
    Test automation engineer
    само это занятие называется web scraping или web harvesting, по этой теме инфы очень много в интернете.
    Ответ написан
    Комментировать
  • Обучение в группе энтузиастов: опыт, идеи, исследования?

    lxsmkv
    @lxsmkv
    Test automation engineer
    У нас хорошо идут презентации на тему. Вы что-то умеете лучше остальных? Соберите людей и расскажите им как вы решаете проблемы. А какие проблемы выбрать темой вы сами наверное уже определили. Достаточно будет нескольких таких воркшопов.
    Ответ написан
    Комментировать
  • Ответственность за баги при нетривиальном поведении?

    lxsmkv
    @lxsmkv
    Test automation engineer
    я тестировал это все 1000 раз но эту комбинацию в голову не пришло сделать

    может имеет смысл принять на вооружение методику pairwise и инструмент PICT.
    По этой теме есть доклады, вот один из них для примера https://www.youtube.com/watch?v=Bqmuw3ZJ75g
    Цель методики заключается в том чтобы из бесчисленного количества возможных комбинаций выбрать те которые обеспечат максимальное покрытие, при минимальном наборе тестов.
    P.S. ну и автоматизация тестирования в обязательном порядке, если ее еще нет.
    Ответ написан
    Комментировать
  • Правильно ли я понимаю суть программирования?

    lxsmkv
    @lxsmkv
    Test automation engineer
    программирование - перевод из человеческого языка на язык компьютера.
    при этом человеческий язык неоднозначен по своей природе, а компьютерный - не допускает двусмысленности.
    Ответ написан
    Комментировать
  • Тема Диплома (WebDev)?

    lxsmkv
    @lxsmkv
    Test automation engineer
    "Кроссплатформенные приложения на базе современных веб технологий."
    и рассмотреть могут ли веб-приложения стать заменой классическим платформозависимым приложениям.
    Хороший пример например тот же офисный пакет google drive. И десятки других примеров.
    Потом вполне можно себе представить формат программых пакетов которые можно будет написать один раз и они будут работать и на компьютерах(на ноде в качестве платформы) и на мобильных устройствах. Пространство для фантазии огромное. Но тут конечно надо вам подумать в какую сторону тему развивать в зависимости от времени и навыков.
    Вот еще пару ключевых слов: Webassembly, Progressive Web App, стандарты на w3c.org
    Ответ написан
    Комментировать
  • Можно-ли брать доп. плату за несоблюдение дэдлайна?

    lxsmkv
    @lxsmkv
    Test automation engineer
    ГК РФ Статья 406. Просрочка кредитора
    Ответ написан
  • Как аргументировать начальству создание существующего проекта заново, с ноля?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Начальство боится потерять то, что уже есть и как-то работает. Если вы будете делать новое параллельно , во внеурочное время, думаю никто не будет против :) У меня такой опыт;
    Нам передали проект с говнокодом, и архитектор и сен. дев. сказали что нужно переписать все с нуля, иначе это нам потом аукнется. Ответственный руководитель, добрый но трусливый, не дал ход изменениям. Через год руководитель ушел. И мы остались сидеть на говнокоде. А переписать все заняло бы наверно 2 недели упорной работы. Теперь просто некогда. Жаль что не решились. В принципе начальника можно было тогда уломать, но никто не был достаточно настойчив.

    По моему опыте с обобщающими ассоциациями нужно быть осторожным. Это может интерпретироваться как болтология и нежелание работать. Мол возмущаться и жаловаться все горазды..

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

    lxsmkv
    @lxsmkv
    Test automation engineer
    Google search: sites like codzhouse.co жмак
    Ответ написан
    Комментировать
  • С чего начать изучение веб-дизайна?

    lxsmkv
    @lxsmkv
    Test automation engineer
    попробуйте ввести в поисковик: книги по дизайну site:toster.ru
    лень смотреть все, посмотрите этот ответ: Книга по дизайну сайтов?

    И добавлю, учебник дизайна - это нонсенс. Mаксимум в так называемых книгах по дизайну покажут примеры каких-то решений. Я настраивал свое восприятие на рецензиях опытных дизайнеров у самизнаетекого
    Ответ написан
    Комментировать
  • Поможет ли создание блога, в изучении первого Языка программирования Java?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Скажу на собственном опыте: пытаясь "совместить приятное с полезным" сильно удлаяешься от основной задачи. И в конечном итоге не сделано ни то ни то. Это горькая правда из той самой поговорки про двух зайцев. Хотите изучить яву, изучайте, не надо тратить время на блоги. Для закрепления материала будет лучше обьяснить пройденый материал другу.
    Если вы чувствуете что вас больше тянет в сторону блогов, то может вам и не нужна ява а нужно посмотреть в сторону веб-разработки.
    Ответ написан