Size: a a a

2020 June 30

KK

Kirill (Cykooz) Kuzm... in rannts
Sergey Arkhipov
Вы все такие смелые, миграции автоматически накатываете
8 лет с монгой в обнимку - это не хухры-мухры, уже "Стокгольмский синдром" развился даже 😊
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Хотя последние 3 года мы все миграции делаем ручными. Разве что авто-создание индексов доверили Mongoengine, немого его подлатав, что бы он только один раз (после запуска приложения) вызывал создание индекса для модели при первом вызове .save().
источник

SA

Sergey Arkhipov in rannts
А почему вы операции с индексами не делаете миграциями?
источник

SA

Sergey Arkhipov in rannts
У нас это все миграции
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Да надо бы тоже на миграции переходить, но пока и так вроде работало, если не создавать новые индексы на очень больших коллекциях
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Но пока у нас нет "скрипта" для инициализации стенда. Что бы первый раз создал все индексы без миграций.
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Для этого надо в приложении "регать" модели, которые в ней используются. Ну или тупо сканировать весь код в поисках этих моделей по какому-то признаку, что скорее всего сложнее нежели запилить регистрирующий декоратор.
источник

A🌚

Al 🌚l in rannts
источник

A🌚

Al 🌚l in rannts
а многие вообще считают, что сотня функций в 4 строки лучше 8 функций в 50 строк?
источник

A🌚

Al 🌚l in rannts
понятно, что от контекста все зависит, но имхо в общем случае слишком короткие функции портят код так же, как и слишком длинные
источник

A🌚

Al 🌚l in rannts
хотя тут уже вкусовщина
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Я пока стараюсь хотя бы не делать функции выше чем размер "экрана". Т.е. что бы их было видно целиком в моей IDE
источник

SA

Sergey Arkhipov in rannts
С большими функциями нет особых проблем, по-моему, если они делают мало количество всяких разных операций. Если функция, скажем, помечает ресурс как используемый, и делает только это, то не очень важно, в какое количество строк это происходит. Проблемы начинаются, когда кто-то пытается впендюрить туда еще чего-нибудь, типа оповещения соседней системы и тп
источник

KK

Kirill (Cykooz) Kuzm... in rannts
У меня обычно большими получаются тестирующие функции, когда один раз "готовишь" окружение и потом последовательно обкатываешь на нём разные кейсы, которые расчитывают на определённое состояние окружения после предыдущих тестов.
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Есть ещё, наверное, классический вариант - функция с case-switch на 1000 строк 😊
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Характерная херня для всяких стейт-машин, особенно в играх
источник

S

Serg in rannts
Функция в 1500 строк с 15 входными параметрами, точно плохо))
источник

KK

Kirill (Cykooz) Kuzm... in rannts
https://github.com/MongoEngine/mongoengine/issues/564

Оказывается баге уже 6 лет, и он даже High Priority, но всё равно не починили
источник

SZ

Sergey Z in rannts
Al 🌚l
а многие вообще считают, что сотня функций в 4 строки лучше 8 функций в 50 строк?
Есть ещё "интересный" подход распилить большую функцию на кучу 3-10 строчных одноразовых, которые более нигде не используются и не могут быть использованы.
Типа декомпозиция.
Бывает их даже по разным файлам распихивают.
источник

RB

Roman Bolkhovitin in rannts
Kirill (Cykooz) Kuzminykh
Характерная херня для всяких стейт-машин, особенно в играх
как так можно, будучи питонистом в питонячьем чатике приводить какие-то левые примеры огромных свич-кейсов, когда у нас есть свой собственный? 😂

https://github.com/python/cpython/blob/384621c42f9102e31ba2c47feba144af09c989e5/Python/ceval.c#L1487
источник