Задать вопрос
  • Как создать такую базу данных?

    index0h
    @index0h
    > Что значит готовый СУБД?

    Загуглить никак?)) Серьезно может это просто не ваше?
  • Как создать онлайн веб сервис?

    index0h
    @index0h
    Пилили его неторопливо и не все эти годы подряд.


    При работе с деньгами торопиться в принципе не стоит.

    Там 2 человека пилили первый год активно. Потом поддерживает один.


    Я правильно понимаю, в начале в проекте участвовало всего 2 человека?
  • Почему возникает ConnectionException?

    index0h
    @index0h
    Отформатировать вашу простыню не вариант?
  • Может ли сайт отличить статичную картинку от видео с веб камеры?

    index0h
    @index0h
    Может ли жигуль отличить запорожец от москвича?
  • Можно ли совмещать разработчика и тестировщика в одном человеке?

    index0h
    @index0h
    @angrySCV

    Не хватает аргументации - доколупаюсь до формулировки. Так держать))
  • Можно ли совмещать разработчика и тестировщика в одном человеке?

    index0h
    @index0h
    ⚡ Kotobotov ⚡

    ну для меня качественный код - в первую очередь это корректный код, потом уже все остальное.


    Вообще говоря за код, который не работает увольняют. Качество имеет смысл оценивать только у кода, который как минимум выполняет требования в ТЗ.

    обычно подразумевается тестирование юзабилити фронтэнда, чего-то такого, а не непосредственно кода.

    А с какого перепугу QA должен тестировать код

    чувак ты сам за меня уже что-то нафантазировал и дискутируешь с этим))))


    Медаль "золотая рыбка" этому господину))

    направлений для тестирования с десяток

    И чо?)) Usabillity тестирование, о котором ты говорил - это в принципе процесс обработки обратной связи с пользователями из твоей ЦА, а не задача абстрактного QA.
  • Можно ли совмещать разработчика и тестировщика в одном человеке?

    index0h
    @index0h
    ⚡ Kotobotov ⚡

    > Также и с программированием, если программист заморачивается по поводу качества - то проблемы в коде может найти только другой разработчик, у которого как минимум не ниже квалификация.

    Если под "качеством" вы понимаете архитектуру, оформление, легкость поддержки и расширения, тестируемость (простоту покрытия автотестами) - тогда согласен. Квалификация Dev-а влияет качество ошибок, но не на их количество.
    Если же под "качеством" вы понимаете как раз результаты работ QA, т.е. нахождение багов - не согласен.
    Хотите вы того, или нет, но задачи у QA и у Dev разные, единственное, что у них общее - ТЗ (которое вы постоянно меняете).

    Такого разраба можно взять на позицию тестировщика - но ЗП у него будет скорее всего даже БОЛЬШЕ, а не меньше. . .


    У вас очень странные выводы. Работа QA мануальщика - это ежедневная проверка одного и того же, день за днем, у QA автоматизатора - постоянное исправление false-positive / false-negative тестов + написание новых. Работа Dev - реализовывать решения проблем вашего бизнеса в виде некоего ПО.
    Квалификация Dev вообще не коррелирует с квалификацией QA.

    А про ЗП вы конечно классно придумали, во только побороть текучку кадров вам удастся только с помощью SuperStart, который рано, или поздно запорет ваш продукт, потому что продукт - это команда.

    Хотя говоря о копеешных тестировщиках - это обычно подразумевается тестирование юзабилити фронтэнда, чего-то такого, а не непосредственно кода.


    А с какого перепугу QA должен тестировать код?)) Его задача проверить соответствие продукта вашему ТЗ под разными углами, с разных сторон и при любом изменении. Вообще говоря юзабилити QA тоже не должен тестировать.
    Тестировать код - это задача действительно Dev-а, но отлично покрытый тестами код - это вовсе на значит правильно работающий продукт.
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    @SeApps
    Здравый смысл превыше всего.
    Чем больше проект - тем более ощутимый профит дают эти требования. На мелких проектах плюсов будет меньше.
    Я не спорю, для сайта по заказу пиццы те же тесты вероятно будут излишни. Но требования, которые можно выполнить малой кровью - просто облегчат вам жизнь.
    Например: повсеместная валидация данных с бросанием исключений, с одной стороны вроде как геморно, но с другой это реально экономит время при дебаге.
    Отказ от магии и статики - тоже, вроде как больше кода писать придется, но прелести магии+статики заканчиваются в тот момент, когда нужно ее нужно менять, или расширять, вероятнее всего повышая сложность.
  • Как работать с goimports?

    index0h
    @index0h
    хз, смотрите на сайте разработчика
  • Как лучше реализовать удаление записей?

    index0h
    @index0h
    Ruslan Ruslanov Ага, ничего что удаление записи - это очень длительная операция и под нагрузкой у вас буду проблемы?))
    Разрастется - это на сколько? Проблемы с весом в мускуля начинаются от сотен GB, в рамках одного тазика.
  • Сразу на хостинге или сначала на локальном сервере делать сайт?

    index0h
    @index0h
    @AndrzejLipnitsky

    Чтобы не ломать продакш, пока идет разработка.
  • Apache как реализовать одновременную работу нескольких скриптов?

    index0h
    @index0h
    @Shillkas11

    > Эта ссылка требует авторизации

    Собсно и чо? Юзеру стоит обновить страницу пару раз и ваш сайт лежит.

    > не имеет смысла, т.к. это все равно что просто перейти по этому url из браузера.

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

    index0h
    @index0h
    ganjo888 А в том то и дело, что try-catch тут не нужен))
    Если ваш метод вызывается так, что штатное выполнение невозможно - бросайте исключение. Код, который вызывает ваш метод уже должен как-то это обрабатывать.
    Вот по вашему же коду: если я задаю НЕ url - вы можете получить данные по url? Нет, ваш метод не может работать со строками, которые не являются url. Именно по этой причине стоит бросить исключение, штатная работа метода с не корректными аргументами невозможно. Код выше, что вызывает этот метод должен либо не допускать таких ситуаций (что лучше), либо обрабатывать подобные ситуации с try-catch.
  • Правильно ли я пишу phpunit тесты?

    index0h
    @index0h
    $this->assertTrue($contentService->getContent($url) !== false);

    не херня жеж!

    $actual = $contentService->getContent($url);
    
    $this->assertSame($expected,  $actual);
  • Правильно ли я пишу phpunit тесты?

    index0h
    @index0h
    Что вам мешает задать хинт на $query?

    public function getContent(string $query): ?string
  • Правильно ли я пишу phpunit тесты?

    index0h
    @index0h
    public function getContent($query): ?string
    ...
                return false;


    Это не валидный код. Если filter_var($query, FILTER_VALIDATE_URL) не отработал корректно - бросайте исключение, а не подавляйте его
  • Как разбить транзакцию по микросервисам сохранив консистентность данных?

    index0h
    @index0h
    Самое простое - это последовательно выполнять запись в каждом микросервисе. Если в 3ем произошел сбой - два предыдущих откатываем.
  • Как разбить транзакцию по микросервисам сохранив консистентность данных?

    index0h
    @index0h
    Vitaliy Orlov Понимаете какая фигня получается, абстрактные транзакции в сферических микросервисах в вакууме могут отработать, или не отработать по огромному списку причин.
    Цель в том и заключается, что бы обойти ошибки, которые возникают по этому списку причин. Последние в свою очередь очень зависят от проекта.

    Пример 1. У вас есть кластер метрик на каком-нить influxdb, запись параллельно происходит в каждую, чтение по round-robin. Допустим одна из нод отвалилась (ребут сервера), эта нода не может принимать запросы. В таких ситуациях стоит вести некий лог запросов на запись, что бы когда нода включилась обратно - она могла его дотянуть. Сервис управления кластером же должен считать, если например 4 из 5 успешно отработали, а одна - нет, запись прошла успешно.

    Пример 2. У вас эл. магазин. Пользователь оформляет заказ и хочет сделать оплату онлайн. Вы его перебрасываете, например на paypal и ожидаете уже от paypal уведомление о том, что транзакция прошла, или не прошла. Допустим paypal не доступен из места, где обитает пользователь, перебросив его на paypal вы не получите ответ. По хорошему его заказ должен быть сохранен с возможностью выбора другого способа оплаты, который уже будет доступен пользователю. Как только пользователь попытается отправить деньги другим способом - вы должны уведомить paypal о том, что транзакцию необходимо отменить, даже если пользователь ее не подтвердил.

    Пример 3. У вас есть некий сервис, на который вы хотите налить трафика. Допустим сайты-партнеры, с которых идет наливка получают от вас уведомление о каждом приведенном пользователе посредством http запроса. По хорошему вы должны залоггировать у себя заход пользователя от партнера, а так же уведомить его об этом заходе, что бы баланс с обоих сторон сходился. Но партнер отвечает вам 500-й ошибкой. По идее нужно отправить запрос несколько раз, пока партнер не ответит 200 OK. Но тут есть момент: если трафика будет много, а партнерский сайт приуныл на 20 минут - вы его за DDOS-ите.