Умпутун
👤 SpeakerAppearances Over Time
Podcast Appearances
Я уточню, с точки зрения автора. Я с автором в этой теме абсолютно не согласен. Подход, который он показывает как у боги, как мы с Лехой пишем на Go. Мы не пишем... Не знаю, Леха, может, меня поправит, но мы не вводим лишних сущностей, потому что почему бы нам не передать в removeById какой-нибудь предикат, который будет вместо id что угодно позволять удалять по.
Я уточню, с точки зрения автора. Я с автором в этой теме абсолютно не согласен. Подход, который он показывает как у боги, как мы с Лехой пишем на Go. Мы не пишем... Не знаю, Леха, может, меня поправит, но мы не вводим лишних сущностей, потому что почему бы нам не передать в removeById какой-нибудь предикат, который будет вместо id что угодно позволять удалять по.
Да не надо нам ни по чему другому удалять. Во всяком случае, пока. А когда понадобится, тогда будем решать проблему.
Да не надо нам ни по чему другому удалять. Во всяком случае, пока. А когда понадобится, тогда будем решать проблему.
Вот в начальном шопинг-карт у него два метода. Remove by ID, который понятно, почему... And remove all out of stock.
Вот в начальном шопинг-карт у него два метода. Remove by ID, который понятно, почему... And remove all out of stock.
А третий clear. Мне этот подход кажется абсолютно нормальным. Понятно, что оно делает. Понятно, чем каждая функция занимается. Вопрос-то внутренней имплементации. Вот то, что он рассказывает, что хорошо бы сюда функцию передать, и она бы сделала тебе фильтр. Да это вообще проблема внутренней реализации. С точки зрения интерфейса, мне три метода этих видятся вполне разумным решением.
А третий clear. Мне этот подход кажется абсолютно нормальным. Понятно, что оно делает. Понятно, чем каждая функция занимается. Вопрос-то внутренней имплементации. Вот то, что он рассказывает, что хорошо бы сюда функцию передать, и она бы сделала тебе фильтр. Да это вообще проблема внутренней реализации. С точки зрения интерфейса, мне три метода этих видятся вполне разумным решением.
Здесь можно написать такой шопинг-карт, который будет не только шопинг-карт удалять, а что угодно удалять, правильно? У нас же дженерики есть. Чего будем останавливаться только на этом?
Здесь можно написать такой шопинг-карт, который будет не только шопинг-карт удалять, а что угодно удалять, правильно? У нас же дженерики есть. Чего будем останавливаться только на этом?
У меня был недавно, Леха, почти то же самое, что и рассказываешь. У меня есть система, которая занимается тем, что достает файлы из определенного места, потом их как-то парсит, как-то обрабатывает, какие-то результаты куда-то пишет. Ну, как мы все пишем, правильно? JSON-ы перекладываем. Но в моем случае там не JSON-ы, а real-time файлы.
У меня был недавно, Леха, почти то же самое, что и рассказываешь. У меня есть система, которая занимается тем, что достает файлы из определенного места, потом их как-то парсит, как-то обрабатывает, какие-то результаты куда-то пишет. Ну, как мы все пишем, правильно? JSON-ы перекладываем. Но в моем случае там не JSON-ы, а real-time файлы.
И вот появилась необходимость системы, которая умела обрабатывать опции. Это такой очень специальный вид данных, которых много, которые тяжелые. А у них появился новый вид данных, который типа состояние вот этих опций на конец дня. То есть если обработка опций это инкрементальные маленькие файлы, которые там обложены абсолютно оптимально всем на свете, то вот этот файл конца дня, он типа CSV.
И вот появилась необходимость системы, которая умела обрабатывать опции. Это такой очень специальный вид данных, которых много, которые тяжелые. А у них появился новый вид данных, который типа состояние вот этих опций на конец дня. То есть если обработка опций это инкрементальные маленькие файлы, которые там обложены абсолютно оптимально всем на свете, то вот этот файл конца дня, он типа CSV.
И его там 2 мегабайта размером. Его достал 2 мегабайта, 2 миллиона айтемов внутри. То есть фигня вопрос. Он больше, чем 2 мегабайта по размеру. И вот я начал думать, как же его к этой системе прикрутить. Она типа все это делать уже умеет. Она умеет взять данные, она умеет эти данные засунуть в какой-то парсер, она умеет из этого парсера достать и буферизированно записать в Mongo.
И его там 2 мегабайта размером. Его достал 2 мегабайта, 2 миллиона айтемов внутри. То есть фигня вопрос. Он больше, чем 2 мегабайта по размеру. И вот я начал думать, как же его к этой системе прикрутить. Она типа все это делать уже умеет. Она умеет взять данные, она умеет эти данные засунуть в какой-то парсер, она умеет из этого парсера достать и буферизированно записать в Mongo.
Думал-думал, написал прототип, мне вообще не понравилось. То есть я немножко сделал более вот этот код-дженерик, который умел все остальное делать. И он стал и это уметь делать. Но мне так это не понравилось, что я просто в этом же проекте написал другой CMD, то есть другой бинарник делается, который использует те же самые базовые.
Думал-думал, написал прототип, мне вообще не понравилось. То есть я немножко сделал более вот этот код-дженерик, который умел все остальное делать. И он стал и это уметь делать. Но мне так это не понравилось, что я просто в этом же проекте написал другой CMD, то есть другой бинарник делается, который использует те же самые базовые.
Файл трансфер, он же один и тот же остался, по SFTP по-любому одинаково получаешь. В S3 одинаково кладешь, правильно, ему-то все равно, что ты кладешь. Просто вокруг этого написал новый бинарник, который просто для этого специально запускается, живет в одной и той же кодовой базе, но по сути ничего с логикой предыдущего решения общего не имеет.
Файл трансфер, он же один и тот же остался, по SFTP по-любому одинаково получаешь. В S3 одинаково кладешь, правильно, ему-то все равно, что ты кладешь. Просто вокруг этого написал новый бинарник, который просто для этого специально запускается, живет в одной и той же кодовой базе, но по сути ничего с логикой предыдущего решения общего не имеет.