Anton
Я БЛЯТЬ БУДУ ЕГО ПЕРЕПИСЫВАТЬ НА РАСТЕ
Anton
тоесть он блять в принципе в пизду нужен
Маjко
Юниты хороши там где у тебя есть чистые функции. В которые ты можешь захерачить данные и получить данные.
Filipp
ты можешь его переписать, а тесты оставить
Anton
а структуру аутпута я в комментах прописал и файлике оутпута с выводом
Filipp
тесты сразу на расте просто напиши
Маjко
Или хотя бы проверить результат ака код возврата
Anton
ну может тестов 10 под это правило у меня подойдут
Anton
не более
Маjко
10 — больше нуля)
Anton
тесты сразу на расте просто напиши
блэт, парсер на питоне, отдает жпс, мне типо проверять юниттестами аутпут относительно узлов serde?
Маjко
А для остального — e2e как тут уже сказали
Anton
С учетом что потом на расте будет переписано все, под свои узлы и тд
Маjко
тесты сразу на расте просто напиши
Да это дичь. Тестить парсер на питоне надо тестами на питоне)
Anton
А для остального — e2e как тут уже сказали
для e2e дохуя в целом можно сделать
Vlad
не большой любитель ложки? вилки наше все?
Если серьезно, есть мнение, что писать и юнит- и интеграционные тесты - это двойная работа. Ну т.е. если пытаться зачем-то покрывать юнит-тестами вот прям всё, как в некоторых конторах практикуют
Anton
вот только я хуй знает как e2e относительно gtk делать
Filipp
если парсер написан не тобой, то тестировать бессмысленно, да
Anton
к тому же, я сейчас сдам очередной деллайн, и потом надо все яйца в кулак собрать и написать парсер
Anton
на одном дыхании
Anton
без спидов(
Anton
ибо я просадил толер в ноль
Anton
а абсолютный ноль
Alexander
Итератор же иммьютабл. Ты можешь менять ключи, но удалить элемент в процессе итерирования — нет. Тут тебе не жава
https://crates.io/crates/intrusive-collections - это же Rust, здесь можно написать всё, что надо, если нет 😊 Правда это называется курсор, а не итератор 😊
Anton
ноль на котором я скорее умру от инфаркта чем получу концентрацию и внимание к деталям
Loo
ну в общем то так себе интерфейс короче. мне прям дали двустволку
Loo
и я сразу выстрелил себе в ноги
Loo
и в голову после
Alexander
Там скорее по другому работает. Курсор начинает указывать куда-то ещё при удалении (или никуда, если уже некуда). То есть в целом подход сильно другой, да.
Alexander
"начинает указывать на" => "устанавливается на" 😊
Alexander
Я так полагаю, местами это чего-то стоит в рантайме. Нужно таки собраться с духом и почитать исходники, как оно всё внутри там устроено.
Filipp
про тесты уже все?
Anton
мы выяснили что тесты хуйня
Filipp
таааак
Filipp
triggered
Filipp
неправильно выяснили
Filipp
гуй конечно сложно юнит-тестировать
Filipp
и если ты только и делаешь что переписываешь вызовы библиотечных функций, то они не помогут
Filipp
но
Filipp
вот расскажи свой цикл разработки
Filipp
ну кто-нибудь
Anton
вот расскажи свой цикл разработки
> Придумал идею > Сделал первую реализацию > накатил поверх нее еще приблуд > Видишь что говно, рефакторишь/переписываешь > GOTO start
Anton
к тому же для gtk вообще нет никаких паттернов разработки
Anton
так что я придумываю их поверх вьюхи на ходу
Anton
остальные растодрочеры вообще не делают архитектуру гуев
Vladimir
вот расскажи свой цикл разработки
Пишешь лесенку, не хватает чегото- дописываешь пару ступенек
Anton
сириусли если глянуть любое приложение, там просто один main в который запихали лапшой все и сразу
Filipp
как ты узнаешь что нехватает чего-то?
Anton
как ты узнаешь что нехватает чего-то?
аллах во сне дает мне откровения
Vladimir
Пусть тогда Аллах и тестирует
Vladimir
Ну а если серьезно, то многое без тестов загнется
Vladimir
Например байтодрочерство
Filipp
аллах во сне дает мне откровения
интесный способ разработки
Anton
я просто сравниваю с лично своим проектом
Anton
и говорю - что тесты не панацея даже близко
Anton
особенно на первых этапах
Anton
когда есть некий стэйбл - то без базару интеграционки напишу и дело с концом
Vladimir
Панацея, еслиб был патерн для простого создания тестов для гуи
Vladimir
А так, тебе просто дороже было бы освоение такой херни, чем накидывание тонн говнокода
Alexander
Ну вот с архитектурой и парсерами. Пишешь текстовый парсер. К нему "рендер" в обратном направлении. Получается такая себе нормализация строки. Тестируешь, что на входе в парсер и выходе из рендера всё как надо, при том, что это не одна и та же строка. Меняешь архитектуру как хочешь и сколько угодно раз, возможно по пути немного меняется вызов парсера и рендерера, но не более того. Но в процессе тесты со строками остаются неизменными и показывают, где что отвалилось, если вдруг (а оно часто бывает, когда полез архитектуру вверх дном воротить). ??? ПРОФИТ!
Vladimir
Во-во, для парсера кстати очень применимо
Alexander
Но с ГУИ - без специально обученного человека™ обычно туго...
Filipp
да. идея в том, что чтобы понять правильно работае или нет тебе надо руками запустить и глазами посмотреть
Filipp
а за тебя это может сделать комп
Vladimir
Ибо явно ж после переписывания всего добра на раст, что-то явно сломается
Vladimir
И будет шрамко ныть, что ещё день проебал на дрочку с сьехавшим дизайном
Vladimir
Но с ГУИ - без специально обученного человека™ обычно туго...
Можно функционал тестить вполне, "нажал кнопку - что-то произошло". А человек нужен просто для юзабилити и комплексного тестирования. Но для такого человека ещё нужно требования написать, как всё должно работать
Alexander
Ну, а чем программа написанная на русском языке будет отличаться от программы написанной на ЯП, кроме ненадёжности платформы, на которой она запускается? 😊
Vladimir
Короче шрамко