Pull to refresh
63
-3
Николай Сумрак @NikolasSumrak

PHP Magento Developer

Send message

Спасибо, добавил

Да, наоборот, вы правы. Но по сути же, если я не ошибаюсь, будет одно и то же, просто зеркально относительно диагонали между х и у.

Окей, давайте поразмышляем.

Отчасти вы правы, на самом деле нет большой разницы для дебага, file_put_contents(logfile) или file_get_contents в телегу, в первом случае смотришь в файл, во втором - в чат.

С точки зрения производительности: написать в файл быстрее чем отправить запрос на другой сервер.

С точки зрения размера лога: телеграм сообщение имеет ограниченную длину.

С точки зрения «сломать прод» - в телеге есть ограничение на количество запросов в секунду, и если его превысить - телега вернет ошибку.

С точки зрения «замедлить прод»: на сервере может быть вайтлист разрешенных исходящих соединений, и тогда каждый такой вызов будет ждать 30 секунд (или как настроено) прежде чем отвалиться.

Как видите - будет гораздо больше изменений, нежели «размер файла и дата модификации»

Потому что результатом выполнения этого запроса будет одно число, месяцы вы там не увидите

Вы в школе на математике на задачах вида "У Коли и Пети было два яблока, Коля отдал одно яблоко Пете, сколько у Коли яблок" тоже сокрушались, что Коля теперь несчастный с единственным яблоком, когда его дружбан жирует с тремя? =)

А ведь можно было просто отключить функционал оплаты товаров без фактической отгрузки…

Я может сейчас ляпну глупость, но разве не «а ведь можно было просто проверять, прошла ли транзакция»?

Обычно в платежных системах, если денег на карте нет, то и заказ не совершается

Я не говорю, что тестами нужно покрывать все. Но неужто у вас никогда не было сложных алгоритмов, которые гораздо быстрее протестировать программно, нежели руками?

Нельзя так просто взять, и сказать, что тесты для MVP - говно. Или - наоборот, серебряная пуля.

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

Вставлю свои 5 копеек — работал на проекте, который предоставлял исключительно json-апи для фронта на ангуляре. И все апи покрывали функциональными тестами на codeception. И это было невероятно удобно, также с апи очень легко работал подход TDD

Естественно то, что описано в статье — не серебряная пуля, и все может сильно отличаться от проекта к проекту.


Например — те же 80 полей могут оказаться полями одной сущности — и тогда они прекрасно мапятся на dto, и далее по коду используется уже мок этого самого объекта, вместо класса реквеста.


Плюс сложно представить код, в котором 80 полей из реквеста получаются вручную через get() 80 раз, скорее код будет немного другим

По первому пункту полностью согласен.


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

А как предпросматривать текст, который отображается в ответ на конкретные действия пользователя?

Ну вот например — «сохранено». Усложненный вариант: контроллер с формой, отдельный контроллер обработки формы, добавление сессионного сообщения, редирект обратно на форму.
У меня вообще был веселый опыт с амазоном.
Хотел купить там что-то, зарегистрировался, купил. Попутно поставил галку на подписку амазон прайма, там фришиппинг и триал в месяц.

Через пару дней меня забанили с требовнием подтвердить, что я — это я и карта моя. Причем никакие выписки из банка на них не действовали, как в ответ одно и то же «выписка не нравится, давайте еще раз».

Проходит месяц, и они снимают платеж за амазон прайм. Ох, как у меня горело. То есть я мошенник с чужой кредиткой, но как бабки списать — так всегда пожалуйста. Аккаунт заблокирован, подписку не отменить. Поддержка футболит «вы мошенник с чужой кредиткой, идите отсюда». Месяца 3 или 4 убил на то, чтобы они наконец достали палец из носа и занялись делом.
Я не силен в подкапотном пространстве телефонии, но неужели нельзя ограничить подмену caller id на уровне операторов? К примеру, получить id другого человека или компании можно только по заявлению самого человека (если вдруг что- не так — вот все документы, вот пользователь подмененого номера). А иначе — номер подставлять родной. Ну или подписывать, так сказать, каждый номер сертификатом=)
Эхх, столько сделали, спасибо.
Но вы просто не представляете, сколько людей сказали бы вам спасибо, если бы можно было в настройках проекта указать ветку по-умолчанию для новых мерж-реквестов (в русской локализации — запросов на слияние :)).

P.S. предупреждая самый популярный ответ — настройка default branch не подходит вот почему

Отвечу только на последний абзац: хорошо, когда у тебя работа не состоит из ежедневного клепания сайтов «на скорость» (а это — львиная часть аутсорс-компаний)

Я не доказываю что PHP плохой, я люблю PHP. Я просто хотел подчеркнуть одну из проблем языка. Да, тот, кто хочет писать только на PHP этой проблемы и не заметит, но для тех любознательных, которые еще не определились с выбором, или планируют что-то менять это может стать серьезным препятствием

да, она родимая.

Information

Rating
Does not participate
Location
США
Date of birth
Registered
Activity