All streams
Search
Write a publication
Pull to refresh
10
0
Андрей @customlabs

Backend разработчик

Send message
Про бота уже написали, поэтому просто отправил подъемные :)
Не туда ответил. это к комментарию про не работающий num pad под linux
У меня тоже не работает
Лови 3шку с прогрессией
Если ее скопировать в Recipient wallet address окна send grams — то поля суммы и комментария — автоматически заполняются, ну и в поле адресата остается только адрес кошелька
Так при создании invoice спрашивают же сумму

ton://transfer/EQCWDQ-CsQyqzStKU6k50VYBamGSZ9flElNGjuonwGoQbxtr?amount=2000000000&text=Test%20invoice
Если верить информации, которую показывает сам кошеле по каждой транзакции, имеем у меня:

  1. Исходящий перевод
    0,005437 transaction fee 0,000000041 storage fee
  2. Входящий перевод
    0,0001 transaction fee 0,000000016 storage fee
  3. Перевод самому себе
    0,0001 transaction fee

О, первый баг.
При попытке отправить 0,0000000 — окно крашится.
Пришло, причем с комиссией 0,000100016 — не понял, комиссию отправителя или получателя снимают
Кому не жалко, ради бога граммов и великого тестирования EQCWDQ-CsQyqzStKU6k50VYBamGSZ9flElNGjuonwGoQbxtr
По моему мнению, это обсуждение начинает скатываться в «холивар» по реализациям. Что, в свою очередь уведет от сути. Я специально в статье обходил, моменты, которые могут свести все к разнообразным «холиварам» не по теме.

В приведенном Вами примере, больше вопросов чем ответов. «Холиварных», вопросов.

Вопросы:

  1. Интерфейс CustomerNameChangedEvent, какому пакету (модулю, банду, скопу) принадлежит? Сервису, который отвечает за изменение данных клиента?
  2. Интерфейс SmsNotifyEvent, какому пакету (модулю, банду, скопу) принадлежит? Сервису, который отвечает за sms отправку?
  3. Интерфейс LogChangesEvent, какому пакету (модулю, банду, скопу) принадлежит? Сервису, который отвечает за логирование?


По описанному вами коду, я вижу 3 разных задачи:. Изменение имени, смс информирование, и логирование. При этом основной задачей является изменение имени. Остальные второстепенные.

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

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

поскольку объекты всегда передаются по ссылке, пункт 1 это лишь частный случай пункта 2


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

Пример:

interface CustomerNameInterface {

    public function firstName(): string;

    public function lastName(): string;

    public function middleName(): ?string;
}


interface customerNameChangedListener {

    public function onCustomerNameChange(
        int $customerId, 
        CustomerNameInterface $customerName
    );
}


Это только оповещение, без возможности изменения переданного объекта.

interface customerNameBeforeChangeListener {

    public function onBeforeCustomerNameChange(
        int $customerId, 
        CustomerNameInterface $customerName
    ): CustomerNameInterface

}


Тут, явно описано, что обработчик может изменить объект, или даже подменить его реализацию.

И повторюсь, интерфейс CustomerNameInterface при разработке уже есть в системе, в описанном способе дополнительный объект «сахар» CustomerEvent не нужен.
2

Information

Rating
Does not participate
Registered
Activity