Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Psilon
    @Pzixel
    Weather может быть Copy
    трейты не именуются с I, это не интерфейсы, и правила нейминга другие
    аналогично Exception -> Error
    Vanquisher Winbringer
    @VictoremWinbringer
    Ок
    Psilon
    @Pzixel
    ErrorMessage лучше заменить на ParsingError + InvalidResponseError (судя по его исполььзованиям)
    Vanquisher Winbringer
    @VictoremWinbringer
    Ну мне нравиться когда трейты ака интерфейсы с особым наименованием чтобы сразу видеть что тут Трейт.
    Psilon
    @Pzixel
    вместо проверок if city == "test_city" лучше сделать impl IWeatherAdapter for TestWeatherAdapter и логику держать там
    Vanquisher Winbringer
    @VictoremWinbringer
    Да это да. Нужно больше кодов ошибок. Красивых и разных. Я серьезно. Просто от Лёни стал все в один пихать а так да. Надо ещё разныхтипов ошибок добавить . :)
    Psilon
    @Pzixel
    вместо daily_1day и daily_5day лучше сделать перечисление enum ForecastType { OneDay, FiveDays } и передавать их, сделав соответственно один метод get_forecast с этим энумом. Тогда добавление еще недельного или месячного прогноза не будет адом
    Vanquisher Winbringer
    @VictoremWinbringer
    Там есть такой энум. Просто мне было лень его везде использовать а так да. Надо енумом сделать :)
    Psilon
    @Pzixel
    ну на первый взгляд как-то так
    Vanquisher Winbringer
    @VictoremWinbringer
    Тест везе адаптер типо прокси к основному сделать или ты предлагаешь его покатое вместо основного? Просто тут так проще было сквозной тест сделать.
    Мокать*
    Psilon
    @Pzixel
    ну моки делаются все-таки отдельными типами реализующими тот же интерфейс (трейт)
    а не вставкой проверок)
    ах да, важное забыл: ни одного теста нет)
    гонять консоль чтобы проверить что-то в 21 веке не очень
    Vanquisher Winbringer
    @VictoremWinbringer
    Т. Е. Ты имел в виду прокси? Там есть много тестов вроде как. О о
    Psilon
    @Pzixel
    у тебя все тесты вроде как интеграционные
    ты делаешь reqwest на локалхост
    хотя может для твоего сервиса это ок
    у меня вон сервис записи в эфириум, там тоже юнит-тесты только на корректную десериализацию))
    Vanquisher Winbringer
    @VictoremWinbringer
    Это, я так и не понял с TestWeatherAdapter - ты имел ввиду мок или прокси или разные энвиропменты сделать. Типо параметр майну передавать и в зависимости от этого параметра использовать нужный адаптер? Какой вариант конкретно то?
    На шарпе для интеграционной фигни я на #if Debug проверял когда не мог по другому.
    Psilon
    @Pzixel
    Test очевидно мок
    никогда не юзал #if Debug
    Autofac в помощь :)
    Vanquisher Winbringer
    @VictoremWinbringer
    Ну я Симпле Инжектером пользуюсь.
    Таки я не хочу мокать потому что тогда надо будет бокситовых трейты
    Ну или изначально надо было другую архитектуру делать - с процедурами как С стайл только + дженерики и принимать возвращать impl Trait
    Psilon
    @Pzixel
    что боксить?
    тебе не надо ничего боксить
    Vanquisher Winbringer
    @VictoremWinbringer
    Хотя да, такая архитектура лучше ложиться на раст ибо он явно ближе к С чем к С#
    вот смотри я делал
    TestMetadata
    и дальше юзаешь
    в реальном коде нормальная метадата
    Vanquisher Winbringer
    @VictoremWinbringer
    Хм, спасибо. Сейчас гляну.
    Psilon
    @Pzixel
    гугли по Metadata использования: https://github.com/Pzixel/boyan_detector_bot/search?q=Metadata&unscoped_q=Metadata
    Vanquisher Winbringer
    @VictoremWinbringer
    А ну да, я пробовал с генетиками и ограничением на трейты сделать но у меня там что-то не получилось и вариант был либо указывать конкретный тип либо бокс с трестом внутри.
    Так-то да, если бы получилось то сделал бы так же как у тебя
    БТВ, таки я не в курсе - для раста есть какие то DI контейнеры? И да, там где я #if Debug делал - был легачи вообще без DI
    Psilon
    @Pzixel
    Вроде есть, но никому особо не нужно
    DI нужен когда у тебя интерфейсы везде
    в расте у тебя генерики, которые явно кодируют тип
    никаких резолверов не надо
    lapinvert
    @lapinvert
    Hi there
    Psilon
    @Pzixel
    hey