Насчёт формата списка дубликатов: так как вы всё равно парсите его самостоятельно, имеет смысл добавить туда поддержку комментариев. Это позволяет писать, почему дубликаты ещё не убраны, и при необходимости записывать ссылки на блокеры. Также это позволяет сделать список самодокументируемым: можно записать в начале, для чего этот список нужен, какой у него формат, как запустить проверку дубликатов и как при необходимости вносить исправления (можно даже немного угореть по сопровождаемости и требовать комментарий с объяснением у каждой зависимости). Лично я у себя записываю список в наиболее, наверное, простом виде — по имени на строку — поэтому я сделал комментариями строки, которые начинаются с
И ещё небольшой момент. В основном репозитории Rust в корне есть инструмент
К чему я это всё? Имеет смысл добавить в данный код функциональность для безусловного перезаписывания списка. Разумеется, она должна быть немного более сложной, чем просто запись поверх, потому что иначе она будет перетирать комментарии. Лично я для своего формата поступил следующим образом:
Функция получает на вход набор новых дубликатов и набор более-не-дубликатов. Сначала я считываю список целиком и разбиваю его на строки. Затем я прохожу по нему и для строк с именами зависимостей добавляю номер строки в набор удаляемых строк, если имя зависимости присутствует в наборе более-не-дубликатов. После этого я снова открываю файл с
Вы, вероятно, скажете, что отслеживать номера излишне, поскольку можно просто проверять строки во время вывода с набором удалённых дубликатов. Так и есть. Но дело в том, что я делаю немного больше и удаляю не только строки с дубликатами, но и непосредственно предшествующие им строки с комментариями. Это решение я обосновываю тем, что если перед именем зависимости есть комментарий, то он наверняка объясняет, почему эта зависимость присутствует в списке дубликатов, а потому при удалении зависимости этот комментарий более неактуален и может ввести в заблуждение.
И последний момент: нужно как-то прокидывать информацию о том, что тест должен обновить список. Использование аргументов командной строки не выглядит хорошей (и удобной) идеей, поэтому мой код обновляет список, если выставлена определённая переменная окружения. Имя этой переменной, разумеется, есть в комментариях в списке дубликатов.
#. И ещё небольшой момент. В основном репозитории Rust в корне есть инструмент
x.py, который позволяет коротко выполнять важные в контексте разработки задачи — в частности, запускать тесты. В репозитории Rust есть куча UI тестов, которые проверяют, что компилятор выдаёт на проблемы с кодом диагностики в ожидаемом формате. Создавать файлы с ожидаемым форматом вручную неудобно — особенно с учётом того, что формат для ожидаемого вывода абстрагируется от конкретных номеров строк — поэтому у x.py test есть опция --bless, которая перезаписывает ожидаемый вывод указанного теста реальным выводом компилятора. Эта опция также пригождается, когда вносится изменение в код для вывода диагностик — это позволяет избежать внесения изменений в ожидаемый вывод вручную.К чему я это всё? Имеет смысл добавить в данный код функциональность для безусловного перезаписывания списка. Разумеется, она должна быть немного более сложной, чем просто запись поверх, потому что иначе она будет перетирать комментарии. Лично я для своего формата поступил следующим образом:
Функция получает на вход набор новых дубликатов и набор более-не-дубликатов. Сначала я считываю список целиком и разбиваю его на строки. Затем я прохожу по нему и для строк с именами зависимостей добавляю номер строки в набор удаляемых строк, если имя зависимости присутствует в наборе более-не-дубликатов. После этого я снова открываю файл с
.truncate(true), записываю туда построчно старое содержимое, пропуская строки с номерами из числа удаляемых, и докидываю туда построчно список новых дубликатов.Вы, вероятно, скажете, что отслеживать номера излишне, поскольку можно просто проверять строки во время вывода с набором удалённых дубликатов. Так и есть. Но дело в том, что я делаю немного больше и удаляю не только строки с дубликатами, но и непосредственно предшествующие им строки с комментариями. Это решение я обосновываю тем, что если перед именем зависимости есть комментарий, то он наверняка объясняет, почему эта зависимость присутствует в списке дубликатов, а потому при удалении зависимости этот комментарий более неактуален и может ввести в заблуждение.
И последний момент: нужно как-то прокидывать информацию о том, что тест должен обновить список. Использование аргументов командной строки не выглядит хорошей (и удобной) идеей, поэтому мой код обновляет список, если выставлена определённая переменная окружения. Имя этой переменной, разумеется, есть в комментариях в списке дубликатов.
👍4❤3🔥2
😒🤚 Избавляться от кругов под глазами консилером
😏👉 Избавляться от кругов под глазами хорошим сном
😏👉 Избавляться от кругов под глазами хорошим сном
👏16🥰4🤔2
Купил себе майку (местного производства), а она настолько длинная, что мне почти годится как мини-платье.
И это типа размер S.
И это типа размер S.
🌚8👎1
Блог*
😒🤚 Избавляться от кругов под глазами консилером 😏👉 Избавляться от кругов под глазами хорошим сном
Подписчик прислал ссылку по теме: https://xn--r1a.website/donttouchmyface/870
Telegram
don't touch my face
Темные круги под глазами - это такая штука, с которой многие пытаются бороться, покупают какие-то кремы в огромных количествах, но в итоге, ничего, кроме разочарования, не испытывают.
Если тёмные круги у вас всю жизнь, то это гены, и справиться с ними не…
Если тёмные круги у вас всю жизнь, то это гены, и справиться с ними не…
Forwarded from Таксики и лытдыбр σποραδικος
В женской консультации почему-то принимает стоматолог. Vagina dentata?
Блог*
#music "Doom is a game where you have a boss music" youtu.be/watch?v=kpnW68Q8ltc
YouTube
Doom Eternal - "The Only Thing They Fear is You"
SHEETS NOW AVAILABLE! http://bit.ly/onlythingtheyfearisyou
AND BFG DIVISION: https://bit.ly/bfgdivisionsheets
New Piano version of "The Only Thing They Fear Is You" - from the Doom Eternal OST Soundtrack, composed by @MickGordon
ALL SHEETS FOR MY POPULAR…
AND BFG DIVISION: https://bit.ly/bfgdivisionsheets
New Piano version of "The Only Thing They Fear Is You" - from the Doom Eternal OST Soundtrack, composed by @MickGordon
ALL SHEETS FOR MY POPULAR…
🔥4🤡1
#prog #haskell #article
Unique sample drawing & searches with List and StateT --- "Send more money"
Или про то, как интерпретация списка как недетерминированного значения позволяет очень ясно записать решение задачи с ограничениями и при этом задействовать ранний бектрекинг.
Unique sample drawing & searches with List and StateT --- "Send more money"
Или про то, как интерпретация списка как недетерминированного значения позволяет очень ясно записать решение задачи с ограничениями и при этом задействовать ранний бектрекинг.
in Code
Unique sample drawing & searches with List and StateT --- "Send more money"
Nothing too crazy today, just a cute (basic/intermediate) haskell trick as a response to Mark Dominus’s excellent Universe of Discourse post on Easy exhaustive search with the list monad intended for people new or unfamiliar with haskell demonstrating the…
❤🔥5🔥1🤡1
Блог*
#gamedev Вы когда-нибудь хотели прогуляться по трёхмерному фракталу? Что ж, теперь вы можете. Всё ещё в разработке, но выглядит потрясающе. https://bananaft.itch.io/yedomaglobula
#game
Трейлер к Fractal sailor — игре от другого разработчика, но со схожими вайбами.
youtu.be/LklRyY_L96c
Трейлер к Fractal sailor — игре от другого разработчика, но со схожими вайбами.
youtu.be/LklRyY_L96c
YouTube
Fractal Sailor - Tech Demo Gameplay Trailer
Play the Tech Demo for free on Win/Mac: https://propagant.itch.io/fractal-sailor
I'm actually working on a full game! Check the early teaser here: https://www.youtube.com/watch?v=uGLIIHsptcY&ab_channel=MatejVanco
Fractal Sailor is an experimental, atmospheric…
I'm actually working on a full game! Check the early teaser here: https://www.youtube.com/watch?v=uGLIIHsptcY&ab_channel=MatejVanco
Fractal Sailor is an experimental, atmospheric…
Forwarded from Random three body problem
This media is not supported in your browser
VIEW IN TELEGRAM
Initial states:
m: 6.097 x: 7.280 y: 2.371 vx: 0.087 vy: -0.402
m: 3.707 x: -7.427 y: 8.735 vx: 0.188 vy: -0.131
m: 5.375 x: 1.043 y: 7.741 vx: -0.409 vy: 0.267
Interest-ness score: 56
m: 6.097 x: 7.280 y: 2.371 vx: 0.087 vy: -0.402
m: 3.707 x: -7.427 y: 8.735 vx: 0.188 vy: -0.131
m: 5.375 x: 1.043 y: 7.741 vx: -0.409 vy: 0.267
Interest-ness score: 56
🤡7🥰6🤯3👍1🔥1