Кстати кто знает чем особо отличается sqlite 3.9.0 от той же 3.7.17 (та что в centos 7.9 в базе) ?
У меня достаточно большая работа с моделями и так как я использую django с колес я просто меняю :
cd /var/venv36/django3/lib/python3.6/site-packages/django/db/backends/sqlite3
vi base.py (lines: 67 and 69)
И все пашет без проблем, а если перейти на другой движок db то вообще это по барабану. Мне кажется это основное из за чего в centos 7x нет пакета python3-django-3xxx
Да ладно, налетели на человека. Там оригинал тоже походу чудовищно квалифицированные специалисты писали.
Они не знают, что index - это irregular noun. Вместо этого пишут «Functional indexes»
Самописные http/websocket штуки на базе сырого epoll. Старая самодельная либа, с 2012 года клепаю, не в опенсорсе. На самом деле пишется за месяц по вечерам или за неделю, если ты наркоман.
ну, я тоже сам написал, заюзал libh2o, чтобы парсер не клипать самому. вот сделал сейчас кодогенерацию, теперь можно клиентов и основую сервисов генерить.
websocket не зашел как-то, сделал просто бек для sockjs.
Посмотрел в примеры - классика жанра: чтобы сделать какую-то простую вещь нужно написать 100500 строк кода. При этом не запутаться в обработке ошибок, очистке памяти и т.д.
Вот именно в эту область - прикладной веб - я б на километры с С не пускал: сложность на пустом месте и большая цена ошибки.
Намного лучше уж какой-нибудь beast на корутинах, если хочется native.
Свести различие Laravel и Django к языку программирования такое себе.
Связка Django с Vue.js имеет место быть, но только в проектах с огромной кодовой базой доставшейся от дедов. Для небольшых , средних проектов в подавляющем случае можно все на js перенести. На бекенде и фронтенде удобно использовать что-то одно - js для всего однозначно лучше связки python и js. Если это не машинное обучение или что-то специфическое, к которому библиотеки есть только для python.
FastAPI и Django совсем о разном. Это как автомобиль и дирижабль, а так они конечно средства передвижения.
На бекенде и фронтенде удобно использовать что-то одно
Эта маркетинговая чушь была модной лет 10 назад, вылезай из анабиоза.
С тех пор уже бизнес на собственном опыте и ошибках понял, что использовать нужно подходящие в контексте прикладной задачи инструменты, а не универсальный супер-язык для всего, словно это The Answer to the Ultimate Question of Life, the Universe, and Everything.
Использовать другой язык для бэкенда не менее удобно, а зачастую даже удобней.
Использовать другой язык для бэкенда не менее удобно, а зачастую даже удобней.
++ Тем более, что темплейты для SPA и для статичных копий всё равно могут быть на одном движке быть (например, PUG), а модель данных/JSON вообще к языку не привязаны.
ага, меня тоже обычно первая останавливает, позорится не хочется ))
я пока как бы не выложил (ну так-то найти можно при желании, код не закрыт). пока в планах сделать микросвервисный фреймворк. для теста первый будет сервис прав и авторизации, чтобы можно было с gmail или фейсбука регатся. уже частично готов (сами права работают). плюс некий сервис мета данных. тоже готов, но хочу переделать с кодогенерацией.
вот как сделаю, выложу :)
Извините, но это же С. Вот именно в эту область - прикладной веб - я б на километры с С не пускал
ну, пока кроме си ничего и нет. в конечном итоге все туда и придет. нужно сокет создать, память выделить и прочее. так что веб без си никуда.
чтобы сделать какую-то простую вещь нужно написать 100500 строк кода
ну, а то, что там много писать надо, это так каежтся. один раз написал, создал удобный интерфейс, и не паришься. вот как раз сейчас с памятью немного оптимизировал: в h2o выделяется буфер памяти на запрос, я его представил как std::pmr::memory_resource, теперь можно юзать для стандартной библиотеки. еще правда не проверял, но думаю так намного быстрее. память во первых не выделяется для каждой мелкой операции, а во вторых не освобождается сразу, к концу запроса целиком только, так что по пустякам лишнее не дергается. думаю быстрее намного. этот «прикладной веб» все равно сводится ко всяким микросервисам, вот там такое и нужно, чтобы по максимуму ресурсы использовать.
чтобы сделать какую-то простую вещь
тут тоже: что значит простую. если нечто просто, то и кода много не требует. а если требует много кода, значит не так уже и просто, как на первый взгляд кажется. если где-то, чтобы например сходить на какой-то урл, нужно одну строчку кода написать, значит очень много решений принято до тебя и ты не можешь повлиять на процесс.
При этом не запутаться в обработке ошибок
обработка ошибок: я же пишу на плюсах, просто делаешь небольшую обертку, которая кидает исключения.
beast на корутинах
я на корутинах и сделал. вернее на бустовых фибрах. каждый запрос (вернее все, что из лупа приходит) - фибра (ну на самом деле поведение опционально, но не вижу ризона для друого, если только малонагруженный сервис и от буста не хочется зависеть).
beast
ну, я сделал до того, как оно появилось. но у меня rt полиморфизм. и там вроде нет http2. но им не пользовался, так что сравнить труднова-то :) плюс не знаю как там с памятью, можно ли там, например, pmr использовать. че-то вроде не.
пхп из мира питона. Никто вменяемый это не выберет, видите проект на джанге - знайте, его делали либо школьники, либо под руководством эффективных менеджеров.
Я не знаю открою я ВАМ страшную тайну или нет, но большая часть программеров на питоне не применяет ОО. Django так как основан питоне тоже позволяет писать процедурно, я правда хз плохо это или хорошо, но в конце концов это дело разработчика.
Какой ещё каркас и апрель? Остов/крепь/костяк и березозол/снегогон/ручейник.
Вбиваем в гугл фреймворк, первым выдаёт Википедии статью.
Фре́ймворк (иногда фреймво́рк; англицизм, неологизм от framework — остов, каркас, структура) — программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.
Употребляется также слово «каркас», а некоторые авторы используют его в качестве основного, в том числе не базируясь вообще на англоязычном аналоге[1][2][3]. Можно также говорить о каркасном подходе[3] как о подходе к построению программ, где любая конфигурация программы строится из двух частей:
Постоянная часть — каркас, не меняющийся от конфигурации к конфигурации и несущий в себе гнёзда, в которых размещается вторая, переменная часть;
Сменные модули (или точки расширения).
И я даже не говорю, что надо на исключениях делать обработку ошибок. Элементарный raii сильно упрощает жизнь. В libh2o, я так понял, он как-то эмулируется.
Но в С даже сконкатенировать строки уже проблема - или за границу стекового буфера улетишь, или надо следить за аллокациями.
А корутины - это другое. Тут вот тоже предлагают из в питоне использовать.
Постоянная часть — каркас, не меняющийся от конфигурации к конфигурации и несущий в себе гнёзда, в которых размещается вторая, переменная часть; Сменные модули (или точки расширения).
По поводу апреля что тебя не устраивает? Мне кто квітень или красавік надо было писать?
А чем тебя фреймворк не устраивает? Каркас – заимствование из французского, фреймворк – из английского, апрель – из латинского. Будь последователен и либо крестик сними, либо трусы надень.
а что тогда под анонимусом? сейчас кое что изменить решил, поэтмоу пока состояние так себе, закончу, выложу тут. пока в планах два сервиса. для прав доступа и авторизации, и второй для метаинформации.
Насчёт того, что арена быстрее - надо мерить
да, конечно, пока это предположение, пук так сказать. наверное в некоторых ситуациях так.
Но если пишешь на плюсах, то зачем С фреймворк?
на тот момент, это было супер. (где-то уже года два деполил сайты на плюсах, а потом появился boost.beast.)
Это одна строчка на asio
ну да. в asio на тот момент не было всего, что нужно. да вроде и сейчас нет. и там есть пара моментов, которые меня не очень устраивали.