- 1
Объясните, зачем нужен docker-compose
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Объясните, зачем нужен docker-compose
Есть же Dockerfile, туда можно поставить всё, что нужно сразу, а не плодить кучу контейнеров, которые нужно связать
* что тоже не совсем верно. Один контейнер - один сервис, если ему надо плодить дочерние процессы, то в общем-то никаких проблем с этим нет.
Как что-то хорошее. Один хер большая часть функционала ляжет если каждого сервиса по одной штуке.
Получается недовиртуалка с недопрыщами.
2) не завезли - я хз в каком вы там году https://www.packer.io/docs/builders/docker
С мелкими образами этой проблемы нет, ты можешь обновить или заморозить любой из них.
вообще смотря что надо. докер легковесней, из виртуалки сложней выпругнуть и никакой ебли с зашаренными ресурсами (хоть dentries вспомнить)
FROM суперговно:1.0
Конфигу подбросил, версию зафиксировал, сидишь молишься, что не протухнут никакие ключи и не помрут ссылки на докерхабовском докерфайле. Ну как и всегда, просто доверяешь разрабам, хуле.
А если тебе надо дохуя чего — то у тебя будет раздутый докерфайл форкнутый от непонятно чего, чего-нибудь базового куда всё доставлять будешь руками.
Вывод: четыре контейнера с докерфайлами в одну строчку лучше, чем один с докерфайлом в километр (зависимости, хуё-моё, не дай бог make прямо там же)
Если нужно зеркалить все зависимости для продакшена, то можно и поебаться, но имхо даже если всё вручную собирать, всё равно лучше побить на контейнеры, /green модульность — это всегда хорошо.
Увы, но иначе никак. Что ты там с хаба качаешь - хуй знает, выдал ты dnsmasq cap net admin, а там жук усатый весь твой нетворк слушает, таракан-оборотень.
Впрочем, с виртуалками ровно та же история.
Короче, говно, блядь, нельзя без ебли короче, мартин алексеевич, заводим говнодевопс.ру
Почему при второй конкатенации программа не падает?
Я же из скоупа main передал объект в другой скоуп, и переместил его, почему уник_указатель sn продолжает держать объект, ведь я его обратно не вернул? По идее же move конструктор должен очистить его.
И вывелось бы:
1
2
Не забывай, что std::move() нихуя не делает. Это просто каст такой.
Ну так у меня что получается, два уникальных указателя на один объект в какой то промежуток времени ссылаются?
З.Ы. Не пойму зачем тебе тут rvalue ссылка, обычная точно так же отработала бы.
Наверное, когда сами вызываем конструктор или оператор призваивания?
Если вызывающему коду не похуй и он продолжает дёргать методы -- код написан криво.
- неопределённом состоянии, пригодном для разрушения
+ неопределённом но валидном состоянии
Т.е. таки можно туда что-то потом присвоить или позвать reset. Но на то, что там лежит до этого момента, корректной проге должно быть похуй.
https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html
> In languages with pointers, it’s easy to erroneously create a dangling pointer, a pointer that references a location in memory that may have been given to someone else, by freeing some memory while preserving a pointer to that memory. In Rust, by contrast, the compiler guarantees that references will never be dangling references: if you have a reference to some data, the compiler will ensure that the data will not go out of scope before the reference to the data does.
- внутри каждой функции?
Тут попытались это немного формализовать.
Там же куча оверхеда и фиксированный набор ячеек... Остаётся ждать пока появится дешёвая технология для печати ASIC'ов.
При установке же. И потом можно реюзать пока не выбросишь.
В С++ создать указывающую ни на что ссылку тоже нельзя: ссылок на nullptr не бывает. А указатель бывает, конечно.
В расте указатели бывают только в unsafe коде, а в обычном есть только ссылки.
Правда, в плюсах ты можешь почистить память, и получить болтающуюуся ссылку, а в расте тебе не дадут так сделать
*ta-daaa*
rotoeb gaming
you play for what you pay
в нормальном формате
https://www.php.net/manual/ru/ds-priorityqueue.jsonserialize.php
Т. е. при добавлении нового класса в проект тебе не нужно переписывать функцию json_encode.
Как обобщенная коллекция вообще может что-либо сериализовать, если она не знает, что лежит внутри?
Почему он сейчас повсюду?
JSON имеет смысл только в одном случае: когда ты пишшеь на JavaScript, и у тебя и так всё тормозит и тебе пофиг.
или ты мне щас опять будешь рассказывать про непревзойдённые бинарные протоколы?
>непревзойдённые
Ну да, всего в 5К раз разница. Копейки. Пренебречь. Вальсируем
> Почему не XML или не TOML?
> в 5К раз разница
– citation needed
Питухи впиндюрили в класс для коллекции метод для сериализации в JSON. Я и спрашиваю: почему в JSON-то? Перформанс тут не причем, это чисто вопрос говнокода.
>– citation needed
Я там дал ссылочку сверху, посмотри
Incorrect Java code generation. uint8 generates int instead of byte
Incorrect type returned from table string getter
flat_buffers.dart putFloat64 is wrong
Flatbuffer typescript ulong types are wrong
[Dart, master] Enum named "value" causes variable name conflict
CMake build error in win10 WSL
flatc does not like quoted strings for paths that include spaces etc. that then end in a \
ЗАТО БЫСТРО
>быстро
ну ты понел.
>typescript
>быстро
слушайте, ну прекращайте давайте
>dart
ого! А с поддержкой эйфории как там дела??
откуда цифры?
>запариваться
"запариваться" это вручную парсить какое-то бессхемное говно. Даже в обычных protobuf (у которых сотни тыщ пользователей, и вылизанные тулы) есть прокси-классы
приведи десять реальных примеров проектов, где жсон это боттлнек
> вручную парсить
– не знаю, у меня всё машина парсит, попробуй себе компьютер купить
ты как обычно из всех проблем в computer science выбрал едва ли не самую незначительную и доебался, как дон кихот. поражаюсь этой твоей способности! энергию бы да в правильное русло
Приведи пять реальных примеров когда пузырёк тормозит.
>>– не знаю, у меня всё машина парсит, попробуй себе компьютер купить
Ты троллишь, или ты реально не понял, чем
хуже чем
?
– ясно, слился, ну
> foo.getString("bar")
– это в какой хуйне так писать-то надо? у нормальных людей жсон тоже сразу в модели маппится
Ты задал тупой вопрос, и я попробовал провести аналогию, чтобы ты осознал тупость вопроса. К сожалению, ты её не осознал.
> нормальных людей жсон тоже сразу в модели маппится
А откуда эти модели берутся?
> А откуда эти модели берутся?
– угадай.
кстати, возможно ты не в курсе о существовании swagger...
>кстати, возможно ты не в курсе о существовании swagger...
вот этот https://github.com/swagger-api/swagger-core/issues ?
То-есть мне нужны какие-то дополнительные тулы? и чем это лучше protobuf кроме того, то тормозит?
– которое ты при этом не в состоянии опровергнуть, хе-хе
> мне нужны какие-то дополнительные тулы?
– нет, не нужны, но ты можешь их использовать. в отличие от протобафа, трифта, авро, графкл, где, что повар дал, то и кушайте
ладно, заебал. давай лучше вот это обсирать:
https://www.apollographql.com/docs/apollo-server/performance/apq
Бремя доказательства лежит на утверждающем
>нет, не нужны, но ты можешь их использовать.
как же я тогда получу модель?
>лучше вот это обсирать:
давай, начинай
я всегда готов что угодно обосрать
– угу, бремя доказательства, что json это боттлнек
> начинай
– ребята поняли, что жсон в жсон это не очень обезжиренный творог, и придумали кэширование через хэширование
Смотри, если у меня алгоритм за O(n^3), то пузырьковая сортировка какого-то говна до или после сложность не изменит. Если поменяешь пузырька на qsort, то говно так и останется за O(n^3). Так зачем заморачиваться, и переписывать?
А если у меня алго за O(n*log(n)), то пузырёк катастрофически всё испортит. Здесь имеет смысл использовать быструю сортировку. А ещё, может быть, упороться в структуре хранения (например, по возможности, сортировать инты вместо строк), если это будет заметно на общем перформансе.
Так же и с JS-оном. Зачем что-то оптимизировать, если трансфер через него занимает меньше 1% процессорного времени?
Конечно, если это ядро прыщей, то этот 1% стоит свеч. Но в большинстве случаев — нет.
– 775 открытых issues на гх. ещё вылизывать и вылизывать.
не, я понимаю, что в произвольном парсере жсона тоже можно говна найти (привет, яббл), но не в такой же БЛЯДЬ концентрации
ты тличашеь protobuf от flatbuffers?
https://github.com/protocolbuffers/protobuf/issues
В том и преимущество JSON, что для него не обязательна схема (кроме go).
Хочешь — хуярь схему и автогенерацию классов. Хочешь хуярь говно на JS, PHP, Python.
Зачем мне схема, если мне нужно отправить в запросе JSON определенного формата? Мне даже не нужно его парсить.
Я всеми руками за Protobuf, если что. Но не все его используют.
получится, правда, жсон в жсоне, но зато цель же достигнута, правда?
– кстати, на твоём месте я бы вкусил REBOL-а
https://www.php.net/manual/ru/ds-set.sum.php ?
итераторы и лямбды не осилили?
Почему в плюсах еще двадцать пять лет назад сделали итераторы у вектора и листа и всякие `std::accumulate`?
Мы как-бы выносим за скобки зачем вообще такой вербозный монстр скриптоговну
...и все двадцать пять лет плюются от этой монструозной, неудобной и невыносимо вербозной поебени.
Настолько плюются, что аж придумали целую новую стандартную либу «ranges», которая вроде как решает проблемы старых алгоритмов на итераторах, но всё ещё пиздец какая недоделанная хрень.
> find это вдруг методы сета?
Справедливости ради, переопределять «find» для сета богоугодно, чтобы искать за логарифм/константу, а не обобщённо за линейное время.
что ты скажешь про
https://www.php.net/manual/ru/ds-set.sum.php
?
Подобные петушни нужно реализовывать явно. По уму это сделано в C++ и Rust.
Мыхомакаки копируют глупости из ЯЖИ
По уму это сделано в нормальных языках (см. «Haskell typeclasses») и пародиях на нормальные языки (см. «Scala implicits», «Scala typeclasses»). В ржавом трейты тоже вроде нормально сделали, но я не вникал; а вот в крестах это хоть и терпимо (точно лучше, чем ебучий Object с пачкой методов), но всё равно вербозно и криво.
1) Не имеют нормальных требований, прописанных в коде. Какие методы нужно реализовать для компаратора в std::sort? Догадайся, ёпта! Тебе даже код стандартной либы мало поможет, потому что в самом std::sort там просто «class _Pr», а копаться дальше — занятие не для слабонервных.
2) Передаются строго вручную. И создаются тоже.
3) Никак не стандартизированы и не посыпаны никаким сахаром, так что каждый либодел придумывает что-то своё.
По сравнению с нормальными языками — это срань и каменный век (но, конечно, не настолько срань, как методы в Object и/или говноIJsonSerializable).
Да не, в стандарте можно посмотреть, он же так легко читается. И стоит всего 23к рублей.
>но, конечно, не настолько срань, как методы в Object и/или говноIJsonSerializable
ну так))))) А я о чем
Вот в этом и проблема, да. В классе должно быть только то, что необходимо классу для выполнения его задачи (единственной). Всяческие конструкторы копирования, операторы сравнения, hashCode, wait и прочая срань — это грубейшее нарушение «SRP» и говнокод. В нормальных языках такого нет (таки почитай про тайпклассы в «Хаскелле» — это как раз то, с чего обезьяны слизывают трейты/имплиситы/etc.). Любая функциональность, выходящая за рамки единственной ответственности типа, выносится в отдельный тайпкласс — тоже имеющий свою единственную ответственность.
При этом примечательно, что больше всех орут про «SOLID» люди, у которых любой объект обязан реализовывать в себе hashCode() и прочую срань.
/green
Сначала Хаскелль
Потом Плюсы (ну и Раст)
Потом долго-долго никого нет
Потом Джава
Потом мужики коробочки клеют
Потом "ПХП"