Оговорюсь сразу, я тут не священную войну веду, а просто выдаю детали возможного решения на django+celery, что б сравнить и понять когда что будет более уместно:)
Понятно, то есть с celery нужно будет писать и саму management-команду и обвязку для нее с декоратором task. django-chronograph убирает часть с @task.
Там команда одна сразу на всё будет, и она реально две строчки:
И, насколько я понимаю, это всё может быть параметризовано переменными окружения, которые, опять же, можно задавать во время запуска. Собственно в одном из проектов я наблюдаю порядка десятка не-инженеров запускающих пайплайны с разными параметрами в зависимости от собственных нужд.
В итоге, если есть инструмент, который устраивает и к которому все привыкли – естественно стоит его использовать. А вот если новый проект начинать, кмк для описанного случая gitlab pipelines выглядит более предпочтительно из-за большей функциональности и активной поддержки. Конечно же это в отсутствие других условий вроде отсутствия гитлаба в инфраструктуре:)
Оборачиваем в самом общем виде в celery task (doc)
В админке делаем форму с параметрами для конкретной задачи (on get show form, on post submin/bind the task) и страницу статуса (on get show the task progress or result).
Это если с нуля делать. Основные недостатки:
В лоб нельзя автоматом получить форму из management command arg parser и наоборот. Такие решения есть, но опять же придётся подбирать стороннюю библиотеку.
Проверку статуса задач хорошо бы делать не через формы, а вытаскивать через api. Сильно подозреваю, что есть готовые решения - но опять же это будут третьи библиотеки, в celery такого не припомню.
Придётся ещё и js-код писать для этих страниц результата/статуса.
В общем выглядит как написание своей нетривиальной библиотеки для django, которую потом можно и нужно самим же выкладывать в открытый доступ для облегчения поддержки:)
p.s. Можете поделиться деталями - а в каких случаях нужно команды из админки запускать? Потому что в проектах, над которыми я работаю, пока полностью устраивает даже "нетехнических" людей в одном случае запуск как часть gitlab pipelines (заодно и полный аудит и история), а в другом - просто из cli (`docker exec ... python manage.py my_command`, только не локально, а в docker swarm).
И в энтерпрайзе тоже на скорость работы именно языка почти всегда плевать потому, что почти все задачи io bound, и решает скорость разработки и наличие программистов.
Альтернативой зеркальной антенне может быть фазированная антенная решётка. У неё отличные технические характеристики, но и высокая цена. Пользовательский терминал на основе решётки будет иметь стоимость порядка нескольких миллионов рублей, в зависимости от серии и размера апертуры.
Как так получается, что Маск терминалы в пределах 2500$ (порядка 200 тыс. руб.) продает с установкой, а тут вдруг миллионы? Они что, 5х5 метров?
Но я считаю, что мы можем более согласованно сойтись на том, каким хотим видеть язык
Не можем, и это - одна из причин популярности php, python, c++, java и прочих подобных. Пока одна группа людей будет тратить время на выяснение того, какой подход – самый лучший, вторая будет писать больше прикладного кода так, как получается, и склеивать используя более гибкий язык.
В итоге у первой будет красивый hello world, а у второй - таки работающий продукт.
Ехать за фурой - это нарушение ПДД так-то. Оно и для опытных водителей опасно, а новичкам советовать - отличный способ уменьшить число этих самых новичков. Выключать фары - туда же.
Часть кода будет жить в статическом файле и будет провалидирована на старте, изменять её сможет не-технический специалист.
О сколько нам открытий чудных… Вам придется выбирать два из трех: правки нетехническим специалистом, текстовый формат, markup language.
Кроме того у вас фактически получается неявная машина состояний с фиксированными переходами между этими состояниями. В свою очередь либо все выльется в DSL, если продолжите добавлять возможности в yaml описание бота, либо в то, что «менеджеры» смогут максимум опечатки в тексте править.
в физических рассчетах все хорошо, но как только дело доходит до маркетинга/социологии/чего-то странного, то либо все сваливается в безразмерные величины (эдакий математический void*), либо нужно почти с нуля свою доменно-ориентированную систему городить, причем, в отличие от СИ, быстро-быстро.
Поддержу. Для разработчика часто: если фичу выкатили без проблем - хорошо, а если пришлось после этого героически чинить прод - то это уже шаг к квартальному бонусу. В результате тесты разработке может и помогают, а вот разработчику слегка мешают.
Если на США нападёт условная инопланетная цивилизация, обладающая качественным превосходством в технологиях и экономике, то процесс падения и результат не сильно будет от Джамахирии отличаться:)
К сожалению, есть фактические ошибки: у вас карты мало того, что противоречат российскому законодательству и действительности (Крым и новые области в России и не в ENTSO-E), так они ещё и друг другу противоречат (в какой из систем Прибалтика?). Также UCTE в ENTSO-E превратилось 13 лет назад.
Достаточно здравая международная шкала. И специалистов из более-менее годных ВУЗов вполне приравнивают к мастеру - 7 уровень. Только бумажек перевести надо больше одной, что бы подтвердить сроки обучения.
Оговорюсь сразу, я тут не священную войну веду, а просто выдаю детали возможного решения на django+celery, что б сравнить и понять когда что будет более уместно:)
Там команда одна сразу на всё будет, и она реально две строчки:
Вот только что для себя открыл, что в гитлабе есть:
а) отложенные задачи: https://docs.gitlab.com/ee/ci/jobs/job_control.html#run-a-job-after-a-delay
б) возможность запускать пайплайны по расписанию https://docs.gitlab.com/ee/ci/pipelines/schedules.html
И, насколько я понимаю, это всё может быть параметризовано переменными окружения, которые, опять же, можно задавать во время запуска. Собственно в одном из проектов я наблюдаю порядка десятка не-инженеров запускающих пайплайны с разными параметрами в зависимости от собственных нужд.
В итоге, если есть инструмент, который устраивает и к которому все привыкли – естественно стоит его использовать. А вот если новый проект начинать, кмк для описанного случая gitlab pipelines выглядит более предпочтительно из-за большей функциональности и активной поддержки. Конечно же это в отсутствие других условий вроде отсутствия гитлаба в инфраструктуре:)
Работать на корпорации бесплатно в свое свободное время? Или вы можете дать много примеров активного опенсорса, где нет явных корпоративных интересов?
Не комментатор выше, но попробую ответить. Если делать с нуля без третьих библиотек, то:
Берём
call_command
(doc)Оборачиваем в самом общем виде в celery task (doc)
В админке делаем форму с параметрами для конкретной задачи (on get show form, on post submin/bind the task) и страницу статуса (on get show the task progress or result).
Это если с нуля делать. Основные недостатки:
В лоб нельзя автоматом получить форму из management command arg parser и наоборот. Такие решения есть, но опять же придётся подбирать стороннюю библиотеку.
Проверку статуса задач хорошо бы делать не через формы, а вытаскивать через api. Сильно подозреваю, что есть готовые решения - но опять же это будут третьи библиотеки, в celery такого не припомню.
Придётся ещё и js-код писать для этих страниц результата/статуса.
В общем выглядит как написание своей нетривиальной библиотеки для django, которую потом можно и нужно самим же выкладывать в открытый доступ для облегчения поддержки:)
p.s. Можете поделиться деталями - а в каких случаях нужно команды из админки запускать? Потому что в проектах, над которыми я работаю, пока полностью устраивает даже "нетехнических" людей в одном случае запуск как часть gitlab pipelines (заодно и полный аудит и история), а в другом - просто из cli (`docker exec ... python manage.py my_command`, только не локально, а в docker swarm).
И в энтерпрайзе тоже на скорость работы именно языка почти всегда плевать потому, что почти все задачи io bound, и решает скорость разработки и наличие программистов.
Как так получается, что Маск терминалы в пределах 2500$ (порядка 200 тыс. руб.) продает с установкой, а тут вдруг миллионы? Они что, 5х5 метров?
Не можем, и это - одна из причин популярности php, python, c++, java и прочих подобных. Пока одна группа людей будет тратить время на выяснение того, какой подход – самый лучший, вторая будет писать больше прикладного кода так, как получается, и склеивать используя более гибкий язык.
В итоге у первой будет красивый hello world, а у второй - таки работающий продукт.
Свободный Steam и авторитарный VKPlay, смотри не перепутай!
В третьей версии все поля опциональные по-умолчанию. Так что они на эту же проблему нарвались, как, кстати, и другие компании.
Ехать за фурой - это нарушение ПДД так-то. Оно и для опытных водителей опасно, а новичкам советовать - отличный способ уменьшить число этих самых новичков. Выключать фары - туда же.
Вообще да, для астрономов, например, целый курс про летоисчисления и время
И какой же у конкретных людей оклад? Покажете документы, или написали комментарий что бы написать?
О сколько нам открытий чудных… Вам придется выбирать два из трех: правки нетехническим специалистом, текстовый формат, markup language.
Кроме того у вас фактически получается неявная машина состояний с фиксированными переходами между этими состояниями. В свою очередь либо все выльется в DSL, если продолжите добавлять возможности в yaml описание бота, либо в то, что «менеджеры» смогут максимум опечатки в тексте править.
Желаю удачи:)
А вот форбс и экономист рассказывают, что это из-за продуктивности, которую вы измеряете в номинальных долларах. Кому верить?
в физических рассчетах все хорошо, но как только дело доходит до маркетинга/социологии/чего-то странного, то либо все сваливается в безразмерные величины (эдакий математический void*), либо нужно почти с нуля свою доменно-ориентированную систему городить, причем, в отличие от СИ, быстро-быстро.
Поддержу. Для разработчика часто: если фичу выкатили без проблем - хорошо, а если пришлось после этого героически чинить прод - то это уже шаг к квартальному бонусу. В результате тесты разработке может и помогают, а вот разработчику слегка мешают.
Если на США нападёт условная инопланетная цивилизация, обладающая качественным превосходством в технологиях и экономике, то процесс падения и результат не сильно будет от Джамахирии отличаться:)
Нормальная ситуация - 50% страны живущая в одном городе. Именно такие страны любят урбанисты.
Менеджер и техлид запихиваются в комнату (можно виртуальную). Как примут совместное решение - можно выпускать.
Спасибо за материал!
К сожалению, есть фактические ошибки: у вас карты мало того, что противоречат российскому законодательству и действительности (Крым и новые области в России и не в ENTSO-E), так они ещё и друг другу противоречат (в какой из систем Прибалтика?). Также UCTE в ENTSO-E превратилось 13 лет назад.
https://en.wikipedia.org/wiki/International_Standard_Classification_of_Education (на русском https://ru.wikipedia.org/wiki/Международная_стандартная_классификация_образования , но там деталей меньше(
Достаточно здравая международная шкала. И специалистов из более-менее годных ВУЗов вполне приравнивают к мастеру - 7 уровень. Только бумажек перевести надо больше одной, что бы подтвердить сроки обучения.