GodMode 2
Потому что никто не любит писать админки
25 июля 2016 :: 38 комментариев :: 12536 просмотров :: 488 слов

Наконец-то нашел силы заопенсурсить небольшой проектик, который время от времени занимал меня почти пару лет. В борьбе лени и перфекционизма он многократно переписывался, подстраивался под новые нужды и проекты, но как-то всегда оставался тёмной лошадкой еще с ужасной первой версии.

Всё начиналось как быстрое решение для pet-проектов vas3k.ru, чтобы дух phpMyAdmin всё еще по-хардкору жил в наших сердцах, но как только появлялась необходимость — можно было всё красивенько настроить. А потом хорошо подошел и к более крупным проектам. И если в своих проектах админка зачастую — это psql через ssh, но даже в некоторых настоящих проектах не понимают, что админка — не дети и просто так не появляется потому что «дал бог проектик, даст и админочку». Чаще всего это такой форс мажор, который каждый раз «никто не ожидал, а он вот опять», после чего активируется режим «срочно зовите человека-программиста, чтобы сделал что-нибудь по-быстрому». И затем получается какое-нибудь быстро собранное говно на ExtJS, которые чтобы отрисовать очередное незакрываемое модальное окошко разогревают ваш ноутбук до температуры горящих пуканов. Единственный нормальный подход к разработке админок я видел у Медузы, там даже не один человек-программист поработал, но и человек-дизайнер! Да и те скорее всего его спиздили где-нибудь на западе, как все остальные форматы.

Из всех этих соображений и появился GodMode 2 — автоматическая генерилка кастомизируемых админок для программистов, которым лень, нет времени или всё сразу.

Идея была взять всё лучшее от существующих CRUD-генераторов и сделать максимально просто, минимально блевотно и standalone. Это не WordPress, которым хоть и может пользоваться ваша мама, но его код вгоняет в депрессию любого миддла, а джуниора разрывает на куски. GodMode концептуально ближе к Django-Admin, однако юзабелен без джанговского вендорлока. А еще мне нравится, когда из коробки получается секси. Не набор ссылок в углу окошка как у Django, и не забутстрапленное говно с одинаково глючными выпадающими меню на jQuery оптимизированными под Opera Mini.

Так получился GodMode, в котором кроме пиздатого названия есть еще и следующие нескучные фичи:

— нескучный интерфейс приятных синеньких цветов

— автоматический маппинг всех полей и foreign keys таблиц из БД

— неистовая мощь SQLAlchemy везде

— такая же неистовая мощь WTForms в рендеринге виджетов и автоматической валидации данных

— возможность по желанию изменить рендеринг любого элемента на экране

— с помощью actions можно повесить любые действия на объект или кучу объектов

— остальное в README

Хуево получилось или нет — решат звездочки и пуллреквесты на гитхабе. Я просто продолжаю использовать GodMode в своих проектах, для меня это рабочий инструмент, даже эти строки я набираю в нем. А ядро отдаю в opensource. Если у кого-то внезапно появилось жгучее желание участвовать, то в README.md в разделе Future Plans есть список хотелок. А если ваш английский не на уровне «London is the capital», как у меня, можете поискать ошибки в readme. Ну и сорян, пока еще нет стабильной версии, всё API может поменяться. Пишите в issues если что-то перестало работать.

Кстати почему-то не вижу вокруг сотни проектов админок. Неужели каждый пишет себе свою под каждый проект? Отпишитесь в комментариях как делаете вы/ваша компания, интересен опыт.

И еще раз ссылочку на github: https://github.com/vas3k/GodMode2.

Комментарии ↓
themylogin :: 29 июля 2016 в 10:46 #
0

Очень кстати, на днях как раз надо будет делать админку и CRM!

Hast :: 29 июля 2016 в 12:21 из Kiev, UA #
1

> Python 2.x is not supported. Неужели

> Sonata Admin Bundle (PHP) Ты смотри, про сонаточку не забыл

vas3k :: 29 июля 2016 в 12:29 из Vilnius, LT #
1

Hast, > > Python 2.x is not supported. > Неужели Так год-то какой :) >> Sonata Admin Bundle (PHP) > Ты смотри, про сонаточку не забыл С неё всё начиналось. В детстве. Когда были гаражи, грязь и phpMyAdmin!

themylogin :: 29 июля 2016 в 13:27 #
0

> С неё всё начиналось Не с неё, а с Symfony Admin Generator из Symfony 1! Отличная штука была, юзал её как GodMode даже когда уже был Symfony 2, а сам проект был не на PHP. Sonata Admin Bundle — это для Symfony 2, качество полный пиздец. Сломано абсолютно всё, что может быть сломано, и что не сломано тоже, всё разъехалось, ничего не работает, каждый плагин весит 10 мегабайт, скачивается 20 минут, требует прописать 30 строк в 40 разных .yml и 50 .xml и предоставляет убогий функционал уровня 60-х годов. Как люди этим пользуются — не представляю.

vas3k :: 29 июля 2016 в 13:50 из Vilnius, LT #
0

themylogin, > Не с неё, а с Symfony Admin Generator из Symfony 1 Да, именно. Как я понимаю из Symfony 2 стали выпиливать всё подряд потому Symfony Admin Generator выкинули <s>к хуям</s> в опенсорс и переназвали. А сам его не юзал, просто указал как вроде бы живой проект с похожей идеей, больше никаких не нашел. Но да, примерно ожидаемо, что дай программистам волю они любую легковестную и приятную штуку превратят в module-based plug-in oriented architecture, чтобы блядь у нас ООП и ПОЛИМОРФИЗМ везде, как в школе учили. Круто было бы научиться как они умеют в виджеты и удобно разруливать one-to-many, many-to-many связи, но превращаться в такое же говно с плагинами и шаблонами made for php nuke — очень не хочется. Но именно по админке Symfony 1 я и скучал все эти годы, да! GodMode во многом вдохновлен идеями оттуда. Я даже скачивал себе доисторический Cheat Sheet в корявом PDF, чтобы освежить в памяти как и почему там было круто и удобно.

Hast :: 29 июля 2016 в 20:54 из Kiev, UA #
0

> Sonata Admin Bundle — это для Symfony 2, качество полный пиздец. Когда ты его последний раз юзал? :) Мы его используем на продакшене постоянно. Чтобы запустить круд на 1 таблицу хоть с сотней связей, достаточно добавить одну строчку в .yml файлик. Ну и как бы, Symfony 3 уже полгода как вышел, двойка скоро уйдёт на покой к своему прародителю. http://demo.sonata-project.org/ - тут можно потыкать, там дефолтный экран админки даже в напоминает скрин из поста :) > Так год-то какой :) Ну вот пару дней назад пил пиво в Праге с Димой, он как-то обмолвился, что тот же фласк до сих пор полностью тройку не поддерживает. Твистеды какие-нибудь - тоже, вроде. Поэтому когда вижу пометочку python 3 only, воспринимаю это как целое достижение. Даже на сраный пхп7 почти все либы перешли в течении года после релиза.

themylogin :: 30 июля 2016 в 07:00 #
0

> Когда ты его последний раз юзал? :) Слава Богу, 2013 > круд на 1 таблицу хоть с сотней связей, достаточно добавить одну строчку в .yml файлик И, очевидно, получится уёбищно пиздец, будешь ID выбирать из списка в 100000 элементов? > там дефолтный экран админки даже в напоминает скрин из поста :) Дефолтный экран напоминает Bootstrap 2 и моду того же времени при загрузке страницы первым делом видеть не относящуюся к делу картинку > фласк до сих пор полностью тройку не поддерживает Неправда. Это некоторые программисты не поддерживают flask, запущенный в python 3 > Твистеды какие-нибудь - тоже, вроде Он не нужен там

vas3k :: 30 июля 2016 в 07:04 из Vilnius, LT #
0

Hast, > тут можно потыкать, там дефолтный экран админки даже в напоминает скрин из поста :) Забавно, они спиздили похожий бесплатный template из интернета, что и я :D Спасибо за демку, потыкаю, хорошие идеи утащу к себе. > Ну вот пару дней назад пил пиво в Праге с Димой, он как-то обмолвился, что тот же фласк до сих пор полностью тройку не поддерживает В мире Python есть два типа людей: те, которые сидят на двойке, и уже пятый год успокаивают себя тем, что "никто еще тройку не поддерживает", и те, кто уже перешел на тройку и не испытывают никаких проблем. Всё уже есть под тройку, GodMode написан на Flask, так что не знаю что там не поддерживается. Я 2 года уже пишу 3.x-only и не нашел нужную либу лишь однажды, да и та была какой-то хуйней. PY3WOS как бы намекает https://python3wos.appspot.com/ — всё, что осталось красным, уже сдохло и не нужно. Fabric не нужен потому что Ansible и Docker, PIL заменили на более удобный Pillow, selenium специфичная хуйня только для тестировщиков. Короче года 4 назад я говорил, что рано. Года 2 назад я аккуратно перелезал сам и боли не испытал. В этом году я уже абсолютно уверен, что двойка сдохла, и немножко хихикаю, когда кто-то говорит про Python 2.x. > Твистеды какие-нибудь - тоже, вроде А это поделие сдохло еще раньше, торнадо победил. А сам торнадо тоже скоро сдохнет, потому что в 3.5 он считай нативно интегрирован в виде asyncIO. Либо превратится в обертку над asyncIO, что кстати щас и происходит.

Hast :: 30 июля 2016 в 20:22 из Kiev, UA #
0

> А это поделие сдохло еще раньше, торнадо победил. Я тут наверное туплю уже. Я думал это немного разные вещи, аля торнада - асинхронный веб-сервер, а твистед - сетевой фреймворк. Как торнадо мог его вытеснить, если они разные задачи решали? > И, очевидно, получится уёбищно пиздец, будешь ID выбирать из списка в 100000 элементов? Вообще не понял наезда. Можно поточнее?

themylogin :: 31 июля 2016 в 14:37 #
0

> Вообще не понял наезда. Можно поточнее? Ну, для many-to-many из одной строчки в .yml оно какой виджет срендерит?

vas3k :: 31 июля 2016 в 17:10 из Vilnius, LT #
0

Hast, > а твистед - сетевой фреймворк "Сетевой фреймворк" — очень богато звучит, придумавший этот буллщит наверняка в душе был маркетологом. Да даже от "асинхронный веб-сервер" меня передергивает. Пахнет школьным учителем, который в книжке прочитал, а сути не понимает. И твистед и торнада — просто реализация ивентлупов с обвязкой, просто твистед почему-то решил, что надо нахуячить внутрь дерьма побольше — свой HTTP, DNS, IMAP, XMPP да это просто emacs какой-то, конечно простое название "асинхронная либа" уже как-то не круто, столько кода нахуячили же, давайте назовем это "СЕТЕВОЙ МЕГАТРОН" чтобы пугать джуниоров до усрачки. А торнадо просто сделал очень простую и доступную каждой домохозяйке асинхронность. И это оказалось нужнее. А еще и работало чуть ли не нагибая этот ваш нодежээс. Настолько всё круто было, что быстренько придумали asyncio, который по сути копирует тот же самый ивентлуп с корутинами и обвязкой, а весь http отдельно вынесли в aiohttp. Начиная с 3.5 asyncio в stdlib, и всё, НЕ НУЖОН ВАШ ИНТОРНЕТ больше. Даже торнада будет скоро не нужна, когда aiohttp дозреет.

Hast :: 31 июля 2016 в 17:35 из Kiev, UA #
0

> Ну, для many-to-many из одной строчки в .yml оно какой виджет срендерит? Табличку с текущими связями (и кнопочкой delete), и поле с автокомплитом (и кнопочкой Add) для добавления новых. Да, возможно там придется указать еще property path чтобы автокомплит знал по какому полю искать значения, сорри. Это еще одна строчка. > И твистед и торнада — просто реализация ивентлупов с обвязкой, просто твистед почему-то решил, что надо нахуячить внутрь дерьма побольше Вася, ты бы стал охуенным учителем. Даже лозунг можно захуячить типа: "Просто, доступно и со вкусом. Школа правильных пацанов имени вастрика".

vas3k :: 31 июля 2016 в 17:48 из Vilnius, LT #
0

Hast, > Вася, ты бы стал охуенным учителем. Как говорил Фейнман: "Если квантовый физик, и не можете в двух словах объяснить пятилетнему ребёнку, чем вы занимаетесь, — вы шарлатан". Я уже думал даже завести какой-нить "проект", чтобы объяснять вещи не за "40 часов лекций стенфорда на курсере", а <s>по-пацански</s> простым языком. Можно, кстати, попробовать в блоге завести экспериментальную рубрику с названием «Короче, блять...». Мне кажется мир погряз в канцеляризмах и каждый пытается передавать опыт как можно сложнее, потому что «я же занимаюсь важными вещами». Я из-за этой хуйни в науку и не пошел, потому что заебало прикладывать руку к лицу каждый раз, когда очередной седой дед, чтобы как-то объяснить свое существование в должности «Профессора» пытается рассказывать банальные вещи настолько сложным языком, что я ебал. Лучше уж буду просто книжки читать. Но во времена снапчатов и покемон го это никому нахуй не надо. Расскажи лучше про PHP 7. Как там жизнь в параллельной вселенной без многопоточности, асинхронности, байт-кода и остальных достижений последних лет 20? HHWM всё еще считается вершиной эволюции и производительности?

Hast :: 31 июля 2016 в 18:42 из Kiev, UA #
0

> Расскажи лучше про PHP 7. Байт-код давно уже нативный в пхп, начиная с 5.5. Но его по-прежнему можно зачем-то отключить в конфиге. HHWM почти ничем не отличается от 7-ки по скорости, кое-где может выигрывать только благодаря JIT-у (который в пхп всё еще в экспериментальной ветке). Вообще в 7-ке очень сильно переписали движок, пафосно назвали его PHP New Generation (как боинг, ага) и похерили всю обратную совемстимость Zend API, так что всем разработчикам расширений тоже пришлось знатно попотеть. Хотя все они справились с переходом еще на этапе бета-теста. Только сраная монгодб почему-то до сих пор не выпустила нативный драйвер. Но в итоге производительность нехерово так возросла. Например, вот статистика проекта, который я сам переводил на php 7 (как тут, блять, картинку вставить?). По потреблению памяти вообще смешно вышло. http://joxi.ru/E5mdlwIvzKpdm1.png Но в самом языке позитивных изменений мало. Полезные предложения (типа именованных параметров, "давайтеуберём <?php" ) откланяются, и в язык пихают еще больше всякого дерьма (например, уровни доступ к константам класса (НАХУЯ БЛЯТЬ), анонимные классы и прочее бесполезное дерьмо). Ну и в семерочке теперь можно задавать тип возвращаемого значения, это очень и модно, прямо typing.py из 3.5. Но есть одно НО: типизация всё еще не строгая, поэтому вот такая конструкция вполне себе валидная: function foo(): int { return "1"; }. Но у пхп есть один большой плюс - это Симфони. Который, несмотря на наличие уёбищного Dependency Injection (это уже издержки самого языка), всё ещё уделывает по универсальности и гибкости вашу дарную джангу. Sf - это такой себе фласк с наличием готовой структуры для проекта и обладающий всем необходимым из коробки. В 3-ке вообще появился microframerowk mode, который отрубает почти всё не нужное и работает очень быстро. А еще тут есть нормальный пакетный менеджер с гибкой и удобной системой указания версий, никаких вам блядских requirements.txt.

У тебя тут GMT-1 стоит что ли? :'D

vas3k :: 31 июля 2016 в 19:20 из Riga, LV #
0

Hast, > один большой плюс - это Симфони Всё то же самое слышу который год про Yii. Понятно, ничего нового, всё еще рулят жирные метафреймворки и программирование на yml. > всё ещё уделывает по универсальности и гибкости вашу дарную джангу Сравнения разухабистых http-фреймворков это просто смешно. Как сравнивать кто умеет хуже программировать, чтобы заказчик не заметил. Даже не буду копать что там лучше джанги, в любом случае ведь Wordpress уделывает всех :D Там вообще можно код не писать, охуенно же! Для меня даже джанга это уже слишком дохуя. Это галимый HTTP, похуй на чем его писать, гибкость здесь напрямую зависит от гибкости языка, а здесь как-то пока не очень всё. > вообще появился microframerowk mode, который отрубает почти всё не нужное и работает очень быстро Дальше ты перечисляешь фичи той же джанги двух-трех годичной давности. Оооокей. > удобной системой указания версий, никаких вам блядских requirements.txt. А вот тут уже интереснее посраться. Что может быть проще и лучше простого списка в текстовом файле? Или просто вместо txt там yml файлы? Чем система указания версий в pip тебя не устроила? Npm-блядки тоже вон кричали как у них удобно всё, а потом один left-pad всех на колени поставил. Ну и да, virtualenv тоже всё еще нет?

themylogin :: 31 июля 2016 в 20:29 #
0

> и поле с автокомплитом (и кнопочкой Add) Прикольно, уже можно жить наверное! А сортированный many-to-many можно? А дополнительные поля в это отношение (чтобы табличка получалась)? > virtualenv тоже всё еще нет? Так нигде же почти нет. Избыточная штука в мире, где есть докер

Кстати, да. Сервер теперь не в UTC+6, а в UTC+3, из-за этого мне с UTC+3 показывает время по UTC, а у вас с Hast ещё более раннее? Пришло время заменить все .now() на .utcnow()!

> экспериментальную рубрику с названием «Короче, блять...» Программирование с пивом на завалинке. Хорошая идея, я много раз пытался во времена, когда был блог, может, у тебя получится!

Hast :: 31 июля 2016 в 20:44 из Kiev, UA #
0

> Всё то же самое слышу который год про Yii Чтобы любить Yii нужно быть просто конченным извращенцем. Нет, серьезно. Это те самые люди, которые раньше на code igniter писали и боготворили друпал. У меня он на одной полке с джумлой стоит. Так что хз как его можно было с симфони сравнить. > Там вообще можно код не писать, охуенно же! Как и в рельсах, ага. Но я не про это. У симфони почти все компоненты независимы друг от друга. Для некоторых только юзаются Бриджы, типа DoctrineBundle (примерно то же самое что Flask-SQLAlchemy). И любые компоненты абсолютно заменяемые. Ну например, если у джанги вырвать ORM, то смысла юзать джангу уже не будет, так как от неё мало что останется. А т.к. симфони - это просто набор компонентов, то вырвав из них ORM, ты спокойно можешь продолжить её юзать в других целях. Еще, напрмер, я в своё время так и не понял, как для джанги запилиь поддержку Nosql. Там вроде нужно было вообще ставить какой-то форк джанги, поверх неё еще какую-то самопальную ORM. Но это уже какой-то долбоебизм. Может сейчас всё поменялось, не знаю. > гибкость здесь напрямую зависит от гибкости языка, а здесь как-то пока не очень всё. Не, про ущербность пхп я ничего не говорю. Но симфони эту ущербность максимально компенсирует, насколько это вообще можно сделать с говняным языком. > Что может быть проще и лучше простого списка в текстовом файле? А зачем проще? Здесь минимализм ни к чему. Когда у тебя просто список пакетов и версий - окей. Но когда вырастают дополнительные правила - банально удобнее и читабельнее, если у тебя всё это записано с нормальной структурой. Ну и есть фичи, которых я в pip просто не нашёл (херово искал?). Допустим, я меня есть форк пакета Х, который я хочу юзать вместо оригинального. Причем еще 2 пакета требуют этот самый Х, и я хочу, чтобы они юзали мой форк, а не оригинальный пакет. Как мне такой финт провернуть через requirements.txt? Ну или у меня есть отладочные пакеты, которые мне нужны только для дев-окружения. Composer нативно поддерживает возможность установить доп. пакеты для определённых энаваерментов. Как я это сделаю в pip, не создавая отдельный requirements файл?

> из-за этого мне с UTC+3 показывает время по UTC у меня то же самое. Я написал сообщение в 23:44, но в посте отображается время 20:44. > Прикольно, уже можно жить наверное! А сортированный many-to-many можно? А дополнительные поля в это отношение (чтобы табличка получалась)? Да всё там охуенно, я же и говорю. Конечно для MtM с дополнительными полями нужно будет еще пару строк чего-нибудь дописать, но работает оно хорошо. Я не помню, правда, есть ли в демке такие примеры. Ну и как бы автокомплит там уже года 3 есть, вроде как. > Избыточная штука в мире, где есть докер Зачем эти виртуалэнвы, если есть докер, который тормозит, как ёбаный ад. Зато стильно, модно, ноджээсно.

vas3k :: 31 июля 2016 в 21:24 из Vilnius, LT #
0

themylogin, > Пришло время заменить все .now() на .utcnow()! Кажется использование utcnow это то, что отличает middle от senior python developer. Реально эта хуйня приходит только с многолетним опытом. Но так как текущий vas3k.ru писался 2-3 года назад, там еще был просто now, так как все сервера, к которым я привык, всегда были в UTC. Да ктож вообще мог знать, что проект переживет ТАКОЕ количество серверов и utcnow реально будет реально полезен, так как есть сервера не в UTC. Даже в «том самом последнем» проекте ты видел, что везде utcnow, но блядь ни разу не пригодились (ибо амазон), а тут вот на тебе, даже заметили! > Программирование с пивом на завалинке. Да не, ты передергиваешь. Это не быдло-базар. Так я делал уже в каких-то унылых некропостах, когда пытался писать туториал по питону для гопников на примере кепок. Там было натужно и несмешно. Тут скорее реально полезная инфа через призму того, кто в ней разбирается, а не хабрахабра. Очищенная от погони за "кармой", "профессором", и другим социальным капиталом. Чисто утилитарная штука для своих. Вот тебе надо завтра освоить какой-нить Go — у тебя два выхода: скачать книжку на 400 страниц или открыть тот самый сайт "learn X in Y minutes" (он реально охуенный). Я всегда выбираю второе, оно экономит время на очередном описании почему закрывать файлы и как написать hello-world (print("Hello world" в любом современном языке, ВАУ НИХУЯСЕ). Вот что-то подобное, но в более глобальном масштабе. Например в этом году мне понравилась книжка Хокинга про "Теорию Всего" (прост физика, как наука, остаётся главным моим внутренним хобби, которым я занимаюсь ночью под одеялом), он там делал то же самое с такой сложной областью, как астрофизика и история вселенной. Прочитав её, у меня появилось жгучее желание написать ликбез по астрофизике в бложек, но как бы не формат. Hast, тебе отвечу завтра, потому что щас я в говно пьян, а ты пидор! > Зачем эти виртуалэнвы, если есть докер, который тормозит, как ёбаный ад Хитренькие. Нашли-таки, чем оправдать свои косяки, надо придумывать новые выпады, эти в этом году устарели видимо. А ведь еще в 2015-м работали :3

Hast :: 31 июля 2016 в 22:56 из Kiev, UA #
0

> тебе отвечу завтра, потому что щас я в говно пьян, а ты пидор! Приятного похмелья <3

themylogin :: 01 августа 2016 в 06:54 #
0

> есть форк пакета Х, который я хочу юзать вместо оригинального dependency_links в setup.py > как я это сделаю в pip, не создавая отдельный requirements файл? extra_requires в setup.py requirements.txt - это для публичных пакетов в pip, чтобы можно было получить список зависимостей не выполняя код. Для остального setuptools предоставляют уникальные возможности (в т.ч. и для стрельбы в ногу), которые мало где ещё есть. Вот в composer можно бинарный пакет собрать? > докер, который тормозит, как ёбаный ад У любителей программировать на MacBook 13" с docker-machine > Зато стильно, модно, ноджээсно. Угу, абсолютно нинужная техна логия, здохнет через пару лет также как и ноджс... Примерно так же, наверное, рассуждал наш фронтендер, выдавая код, не собирающийся на CI-сервере с Linux из-за case-sensitive ФС там и insensitive на его MacBook 13" Вообще, у меня есть теория, что бэкендеры на других языках не любит node.js за то, как его применение сильно изменило мир frontend-разработки, закрыв его от этих самых бэкендеров, которые раньше фронтенд делать могли, а теперь нет (потому что столька инструментов!!!! непонятно че ставить!!! невазможна пользоваться!!! всё гавно))) Как там AsseticBundle поживает всвязи с этим кстати?

Hast :: 01 августа 2016 в 07:53 из Kiev, UA #
0

> setup.py Понял, спасибо. Я думал, что requirements.txt == composer.json. Теперь ясно. > Как там AsseticBundle поживает всвязи с этим кстати? Я его не юзаю. Всё равно это тормознутое избыточное говно. Пусть фронтендеры сами собирают всё своими калпами, грантами, или что там сейчас модно на этой неделе. > Примерно так же, наверное, рассуждал наш фронтендер, выдавая код, не собирающийся на CI-сервере с Linux из-за case-sensitive ФС там и insensitive на его MacBook 13" Тут у у чувака что-то с мозгом, или просто нехватка опыта. При чем тут докер? Я работаю вообще на винде, и за последние пару лет не сталкивался с такими проблемами при деплое на никсы. Хотя ситуация такая же, даже хуже (венда же, о госпаде, тут ничего не работает, ааа, фу говно, ставь убунту, дурак что ли).

themylogin :: 01 августа 2016 в 08:53 #
0

> Я думал, что requirements.txt == composer.json Так оно и есть, всё-таки setup.py — уже программный код, а не конфиг > Всё равно это тормознутое избыточное говно. Пусть фронтендеры сами собирают всё своими калпами, грантами, или что там сейчас модно на этой неделе. Ноджс меняет мир! > Тут у у чувака что-то с мозгом, или просто нехватка опыта. При чем тут докер? Так ошибиться может любой, это сродни опечатке. Докер тут при том, что пользовался бы он docker-machine — этой и других проблем платформозависимости удалось бы избежать.

vas3k :: 01 августа 2016 в 08:54 из Vilnius, LT #
0

Hast, пока отсыпался, тут уже за меня всё раскидали. themylogin, > которые раньше фронтенд делать могли, а теперь нет (потому что столька инструментов!!!! непонятно че ставить!!! невазможна пользоваться!!! всё гавно)) Кстати да. А разве не дохуя ли говна в современном мире надо поставить, чтобы собрать очередной ебучий landing page? Причем ладно бы это были какие-то базовые вещи, так это они еще и каждый месяц новые. Я понимаю еще такое усложнение, когда это яндекс.маркет или ибей какой-нить, действительно сложные фронтенды, но сука когда я открываю очередной лендинг, который в былое время на голом HTML под 5 браузеров (щас по сути один остался) писали за пол дня, а там 120 библиотек в зависимостях, собирается всё это пол часа с помощью стороннего платного CI-стартапа, который купил фейсбук и закрыл на прошлых выходных, а на выходе только текста на 10 мегабайт. Ну а чо, инторнет-то у всех быстрый. А потом к тебе приходит тот, кто деньги даёт, и просит вот тут кнопочку на 5 пикселей сдвинуть, этож быстро же. А фронтендера еще в прошлом месяце уволили, нахуй он нужен, любой дурак может кнопочки двигать же, вон попросите бекендеров, они же тоже программисты. Ну а дальше вы знаете. P.S.: А еще знаете как проще всего сделать так, чтобы фронтендер уволился? Попросите его поправить код другого фронтендера, написанный больше полугода назад. Проверено! Методик кроме как "переписать всё с нуля" там пока не завезли. Пора открывать юмористичекий паблик "Программист-Миллениал".

themylogin :: 01 августа 2016 в 09:09 #
0

> А разве не дохуя ли говна в современном мире надо поставить, чтобы собрать очередной ебучий landing page? Причем ладно бы это были какие-то базовые вещи, так это они еще и каждый месяц новые. Процесс устаканивания всего этого ещё идёт, но в целом, если разобраться, всё уже почти норм. Со своим первым фронтендом на современных технологиях я, конечно, наебался, со вторым наебался уже только в тех местах, которых не было в первым, третий (боже упаси), думаю, уже запущу с такой же лёгкостью, как проект на питоне. Фронтенд любой сложности, дорого, качество среднее, размер от 600 килобайт (из них 100 log4javascript и 200 tzdata). > на выходе только текста на 10 мегабайт Потому что не было БИЗНЕС-требования, чтобы быстро грузилось, вот и понаподключали всего подряд! > А фронтендера еще в прошлом месяце уволили, нахуй он нужен, любой дурак может кнопочки двигать Тут уже не совсем серьёзно, но это потому что он не оставил за собой Dockerfile, который бы всё это собирал!

vas3k :: 01 августа 2016 в 09:18 из Vilnius, LT #
0

themylogin, > Тут уже не совсем серьёзно, но это потому что он не оставил за собой Dockerfile, который бы всё это собирал! Оставил, только вот его фронтендерский Dockerfile в этом месяце уже устарел, никто не помнит как их собирать, даже поисковики, сайт с консольной утилитой для сборки закрыт. Ебитесь как хотите! Раз уж тут у нас пьянка пошла, заясни за docker-machine? Стоит ли смотреть, почему?

Hast :: 01 августа 2016 в 09:57 из Kiev, UA #
0

> Стоит ли смотреть, почему? Впадлу поднимать локальный энваермент? Не умеете в virtualenv? Не знаете что такое регистрозависимая FS? Не знаете про существование Homebrew? Докер - это то, что вам нужно.

У нас тут чуваки пытались для мегакрутогодорогогоклассного проекта поднять continuous delivery на докерах через дженкинс. В итоге ебались с ним месяц. И ебались бы ещё, если бы проект не свернули. Я на самом деле не понимаю, зачем это говно в принципе может понадобиться, если даже на винде голимой обычно всё подымается без проблем,

vas3k :: 01 августа 2016 в 10:52 из Vilnius, LT #
0

> У нас тут чуваки пытались для мегакрутогодорогогоклассного проекта поднять continuous delivery на докерах через дженкинс Вот что бывает когда похапешникам дают взрослые инструменты в руки :D Зелогин вон то же самое еще и с амазоном и автоскейлос за пару дней собрал. > Впадлу поднимать локальный энваермент? Не умеете в virtualenv? Да нет же, докер совсем не про это, он про доставку и унификацию окружения. А это всё как оказалось дает прикольный профит, как самое простое - оркестрацию всего этого дела.

Попробуй блять локальный энвайромент поднять, где тебе нужна определенная версия nginx, linux, python. Особенно старая. И тут-то сосай лалка.

themylogin :: 01 августа 2016 в 12:45 #
0

> фронтендерский Dockerfile в этом месяце уже устарел Вот это одно из преимуществ: если результирующий образ пушили в репозиторий, все промежуточные слои в нём сохранены, можно восстановить сборку с любой точки. С ним гораздо спокойнее собирать сложные системы, реально. > заясни за docker-machine? Стоит ли смотреть, почему? Он ставит тебе на мак/винду виртуалбокс, в него очень лёгкий (60 мегабайт) линукс с докером. Прописываешь себе в environment одну строчку — и из консоли юзаешь этот докер как локальный, а на http://192.168.99.100 у тебя твой сервис. Производительность идентична как если бы ты на это же железо поставил настоящий линукс, раз в пару недель может глюкануть до необходимости перезапуска и раз в пару месяцев — до rm -rf ~/.VirtualBox

vas3k :: 01 августа 2016 в 13:06 из Vilnius, LT #
0

themylogin, > Он ставит тебе на мак/винду виртуалбокс То есть это старый Vagrant, но с докером? Прикольно. А логи всякие и остальное оно как отдает? Опять надо держать кучу унылых ssh-терминалов на локалхост?

themylogin :: 01 августа 2016 в 13:31 #
0

> А логи всякие и остальное оно как отдает? Опять надо держать кучу унылых ssh-терминалов на локалхост? Неа, всё как будто бы локально. docker-machine ssh набирал раза три за всё время ради интереса.

LameGuy :: 04 февраля 2019 в 22:11 из Usman', RU #
1

Привет, хочу сделать авторский блог, ведь я нитакойкаквсе, однако я застрял примерно в мезолите 2010-х с вордпрессами. Не хотеть похапе, не хотеть эгею (она чересчур минималистична), хотеть ваши новомодные vue, обмотанные питоном. Как это сейчас делается? Мало ведь этой админки? Как-то же это собирать надо, хранить, впс и блаблабла. Есть фак, что в каком порядке ковырять? Заранее благодарен. С меня как обычно.

Комментирование доступно только участникам Клуба

Войти
Еще? Тогда вот