Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (20)

Лучшие ответы пользователя

Все ответы (28)
  • Порядок действий для оформления самозанятого, для иностраных платежей и выбор банка?

    @falconandy
    Мой недавний опыт
    1. На сайте Альфа-банка заказал бесплатную дебетовую карту с выдачей в отделении (отделение выбрал центральное с "моментальной" выдачей). Альфа-банк, потому что в моем регионе у них есть банкоматы с приемом/выдачей валюты. Заранее установил мобильное приложение Альфа-банка. Через пару часов туда подъехал, по-моему по моей заявке еще никто ничего не делал. Поинтересовались, для чего мне их карта и выдали мне именную рублевую дебетовую карту (в заявке указывал MasterCard, но принесли Visa - мне было непринципиально), и дополнительно я попросил долларовую (собственно для этого я и забирал лично, хотя можно было заказать доставку) - выдали неименную. Мобильное приложение Альфы понадобилось, чтоб тут же активировать карты. Всё заняло минут 20-25, но мои данные у них уже были, несколько лет назад я получал через них зарплату.
    2. Зарегистрировался как самозанятый через веб-доступ налоговой (в моем регионе доступно с июля 2020 г.).
    3. Установил мобильное приложение Мой Налог. В мобильном приложении Альфа-банка зарегистрировался как уже зарегистрированный самозанятый.
    4. Добавил 2 новых счета (рублевый и долларовый), назвал их, чтоб было понятно что они для учета доходов от самозанятости.
    5. Добавил эти счета в Upwork (рублевый "Direct to Local Bank" и долларовый "Wire Transfer")
    6. С рублевым счетом проблем не было, а в долларовом не совпало моё имя (в Альфе было еще отчество и транслитерация одной буквы не совпадала) - отправил запрос в поддержку Upwork и счет в течение нескольких часов одобрили.
    7. Добавленные счета становятся доступными для вывода через 3 дня.
    8. Через 3 дня вывел в долларах через "Wire Transfer", на счет Альфы пришло на следующий день. Никакого явного валютного контоля не было, документы не просили, комиссий не снялось (только $30 снял Upwork как и положено).
    9. Самостоятельно посчитал пришедшую сумму в рублях по курсу ЦБ на дату получения денег на счет.
    10. В мобильном приложении Альфы создал новый чек от иностранной организции (Upwork Global Inc.), указал сумму в рублях. Проверил в приложении Мой Налог, что чек нормально ушел и начислился налог (по факту реального налога пока нет, т.к. действует налоговый бонус около 22000 руб. = 10000 руб + чуть больше 12000 руб.)
    11. На всякий пожарный случай: скачал шаблон Confirmation of Service, заполнил и отправил в поддержку Upwork. Полученный от них подписанный экземпляр сохранил.
    Ответ написан
  • Не будет гонки и повреждения данных в памяти?

    @falconandy
    По-моему вы переусложняете без необходимости. Если значения из конфига только читаются, то потокобезопасность не нужна. Если же у вас предполагается еще и изменение, то в пул возвращаются указатели на "порченные" объекты, что тоже неправильно.
    Если возможно, конфиг лучше прочитать в начале выполнения, а также паниковать на уровне main.
    В результате и код проще, и тормозить нечему:
    package config
    
    import (
    	"encoding/json"
    	"fmt"
    	"os"
    )
    
    type Cfg struct {
    	// Fields
    }
    
    var (
    	cfg *Cfg
    )
    
    func Config() *Cfg {
    	return cfg
    }
    
    func LoadConfig() error {
    	f, err := os.Open("./config/config.json")
    	if err != nil {
    		return fmt.Errorf("can't open config file: %w", err)
    	}
    	defer f.Close()
    
    	dec := json.NewDecoder(f)
    	var c *Cfg
    	if err := dec.Decode(c); err != nil {
    		return fmt.Errorf("can't decode config file: %w", err)
    	}
    
    	if err := validate(c); err != nil {
    		return fmt.Errorf("can't validate config file: %w", err)
    	}
    	
    	cfg = c
    
    	return nil
    }
    
    func validate(cfg *Cfg) error {
    	// Logic
    	return nil
    }
    Ответ написан
  • Go-micro. Проблема с обнаружением сервиса из примера в документации. Что делаю не так?

    @falconandy
    Посмотрите https://github.com/micro/examples/issues/98 - советуют разобраться с firewall и собирать/запускать в режиме "go module". На Ubuntu 18.04 с go 1.14.2 всё ок.
    Ответ написан