LINUX.ORG.RU

Выбор «С» веб фреймворка для высоконагруженного проекта с сервисной архитекрурой

 , duda.io, , ,


0

6

На самом деле выбор между двух (потому что больше ничего вменяемого не нашёл) это kore.io и duda.io и тот и тот умеют в PostgreSQL/ssl/вебсокеты и прочие плюшки. kore.io очень мал про него говорить особо нечего, есть жизненно необходимый минимум, остальное для доработки, а вот кто работал с duda.io? Как он вам?

★★★★★

Последнее исправление: Dron (всего исправлений: 1)

А си тебе нахрена? При выполнении хттп заброса, 99,995% времени занимает запрос к базе данных и передача по сети, от си ты получишь то, что оверхед из-за меньшего рантайма будет чуток меньше, ну может жсон дробиться быстрее будет немного, не более.

nikolnik ★★★
()
Ответ на: комментарий от nikolnik

может жсон дробиться быстрее будет немного

В популярных скриптовых языках для этого есть нативные модули

annulen ★★★★★
()
Ответ на: комментарий от nikolnik

При выполнении хттп заброса, 99,995% времени занимает запрос к базе данных

Вебчик не ограничивается хттп, да и база данных не ограничивает sql-дерьмом.

передача по сети

Какое отношение это имеет к теме?

что оверхед из-за меньшего рантайма будет чуток меньше

Опять какая-то ахинея.

не более

Мир не заканчивается хелвордами. Чем больше логики - тем более проявляется ущербность недоязыков т.к. её уже не заменишь бингами на «нативные» готовые реализации.

anonymous
()
Ответ на: комментарий от annulen

В популярных скриптовых языках для этого есть нативные модули

От того это и будет «немного». Если бы это не учитывалось, то там было бы не «неамного», а много, очень много.

anonymous
()
Ответ на: комментарий от nikolnik

А си тебе нахрена?

А в чём проблема? Типа сложнее писать? Нет не сложнее, больший объём кода который трудно будет поддерживать? Нет не больший (в разумных пределах), нет не труднее. Меня устраивает этот язык, всю работу делают библиотеки,сторонние и свои, сам язык лишь описание логики работы.

Dron ★★★★★
() автор топика
Ответ на: комментарий от Dron

Если тебя устраивает уйма remote code execution на ровном месте и сегфолтов, а заодно раза в 3-4 более дорогая разработка — проблем нет.

x3al ★★★★★
()
Ответ на: комментарий от x3al

уйма remote code execution

Ну, никто не застрахован, с kore такого не будет, по duda я не в курсе вот и спросил кто имел реальное дело с ним.

сегфолтов

Ну так надо просто тестировать код и исключать эти сегфолты, лучше если я допущу ошибку и она будет фатальна и я её исправлю, чем если она будет тихо проглочена скриптовым языком. Да и вообще, я не говорил что я пишу всё на Си, что то возможно на lua/php/python/bash то что не будет работать с сетью, какие то побочные действия всегда нужны.

Dron ★★★★★
() автор топика
Ответ на: комментарий от Dron

Типа сложнее писать?

Типа нет сотен готовых юиюлиотек/фреймворков/прочих приблуд, нет DSLей для описания типовых вещей вроде роутинга и т.д.

annulen ★★★★★
()
Ответ на: комментарий от x3al

а заодно раза в 3-4 более дорогая разработка

Это пишется не для кого-то, это не заказ, а свой проект, вопрос в деньгах не стоит, да, это долгострой, дороговизна в затратах времени будет в любом случае, хоть пиши на высокоуровневых яп хоть на си.

Dron ★★★★★
() автор топика
Ответ на: комментарий от annulen

Как нет и контейнер-сервелтной инфраструктуры, позволяющей тебе писать только приложение, и использовать его с одним из готовых серверов, коих может быть стопицот под разные хотелки режимы вроде префоркинг или стриминг, HTTP или FastCGI или uWSGI какой-нибудь, с поддержкой горячего обновления без остановки управляющего процесса и пр. ынтерпрайзом

annulen ★★★★★
()
Ответ на: комментарий от Dron

вопрос в деньгах не стоит, да, это долгострой, дороговизна в затратах времени будет в любом случае

Тогда делай с нуля, по крайней мере не придется изучать чужой г-код и ловить в нем баги, бороться с архитектурными решениями, которые сразу не заметил, а переписывать уже поздно, и т.д.

annulen ★★★★★
()
Ответ на: комментарий от Dron

Это пишется не для кого-то, это не заказ, а свой проект, вопрос в деньгах не стоит, да, это долгострой, дороговизна в затратах времени будет в любом случае, хоть пиши на высокоуровневых яп хоть на си.

Так бы сразу говорил) Я бы начал писать на kore.

itn ★★★
()
Ответ на: комментарий от x3al

Если тебя устраивает уйма remote code execution

Поподробнее об этом. Ты случайно там не перепутал? REC это про мейнтсрим, а не про сишку.

anonymous
()
Ответ на: комментарий от annulen

Да как то сыкотно прям вообще с нуля ::) По крайней мере я не тороплюсь, присматриваюсь ко всем вариантам

Dron ★★★★★
() автор топика
Ответ на: комментарий от itn

Так бы сразу говорил) Я бы начал писать на kore.

Да вот пока больше вариантов и не вижу, он прозрачен и прост, если уж чего не будет проблем под себя подогнать мелочи. Я просто думал тут про дудку кто знает, она всё же пожирнее и побольше может, но от этого есть неуверенность в надёжности =)

Dron ★★★★★
() автор топика
Ответ на: комментарий от Dron

Да как то сыкотно прям вообще с нуля

естественно, http-парсер взять готовый, и event loop если нужен то не изобретать

annulen ★★★★★
()
Ответ на: комментарий от annulen

Ну, глянем, пока что буду пробовать с корами или дудами работать, а там увижу все за и против уже в процессе, тут хотел просто узнать вдруг с дудой кто работал и что ни будь интересное скажут )

Dron ★★★★★
() автор топика
Ответ на: комментарий от Dron

Роутинг можно попробовать на re2c сделать, благо что в 1.0 завезли захватывающие скобки. Будет весьма декларативно и очень быстро :)

annulen ★★★★★
()
Ответ на: комментарий от x3al

Схерали гости понаехали?

На С писать проще, чем на любом ЯП. Очень хороший и удобный язык. А чтобы сегфолтов не было, нужно проверять код, да и использовать обертки.

Всякие цепепе здесь нафиг не втарахтелись: не нужна ООПщина в данном случае. А уж говно вроде пхытонов пусть предлагатели себе в задницу обратно засунут!

anonymous
()
Ответ на: комментарий от anonymous

На С писать проще, чем на любом ЯП

Битики подвигать да. А в вебе - о чем может быть речь с языком, в котором даже нативного строкового типа нет? Пффф.

annulen ★★★★★
()
Ответ на: комментарий от anonymous

На С писать проще, чем на любом ЯП.

Нет. И писать код без ошибок — сложнее, с этим не справляются и в крупных компаниях, способных оплатить неплохих кодеров.

Выставлять сложный код на сях (и плюсах) в веб без песочницы — безумие. Исключение — только очень простые и проверенные вещи, но проверка сильно нетривиальна.

x3al ★★★★★
()
Ответ на: комментарий от Deleted

А что, есть сомнения, что кроме КОИ8-Р кириллице ничего и не нужно?

Насчет С в вебе — я не встречал ничего более удобного. Не пыхпых же!

anonymous
()
Ответ на: комментарий от slapin

На пхытоне или цепепе ошибиться значительно проще, чем на С. Потому как чем проще язык, тем проще на нем что-то писать.

anonymous
()
Ответ на: комментарий от nikolnik

Зато можно на лорчике понтоваться перед задротами.

Deleted
()
Ответ на: комментарий от slapin

Как будто это зависит от языка программирования :)

В C эти ошибки приводят к более серьёзным последствиям. C и плюсы называются «небезопасными» не просто так.

x3al ★★★★★
()
Ответ на: комментарий от anonymous

С пятью звездами путать царя с Эдиком?

Не волнуйся, он не может перепутать - жопа помнит. Подобные крысы помнят субъект изобличающий их никчёмность.

Анону за тебя стыдно.

Наличие меня не отменяет эдика, а наличие эдика меня.

anonymous
()
Ответ на: комментарий от anonymous

Выбор «С» веб фреймворка для высоконагруженного проекта с сервисной архитекрурой (комментарий)

Да ладно, это не Эдика лексикон, он хоть и эксцентричный, но культурный.

А этот как всегда истерит :-)

Twissel ★★★★★
()
Ответ на: комментарий от anonymous

Да, любезный, лечить тебя бесполезно.

Вечная ты лалка, хотя уже ходячий мем ЛОРа.

Twissel ★★★★★
()
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от anonymous

Вебчик не ограничивается хттп, да и база данных не ограничивает sql-дерьмом.

вероятно, не дерьмо - это какое-нибудь mongoDB?

dzidzitop ★★
()
Ответ на: комментарий от cherry_boy

Разработать сервис, насколько я знаю подобного не существует, хотя очень много привычных, «альтернативных» аналогов, который в теории может может быть полезен людям, а следовательно принести мне материальный доход. Своё дело короче. Суть проекта естественно я не скажу ::) Но если выстрелит нагрузки будут очень большие. А если не выстрелит, ну что поделать, значит не выстрелит )

Dron ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Будто горожане с их метафорами про метро или иное шибко лучше ::) Какая разница на чём основана метафора? Если суть одна и та же?

Dron ★★★★★
() автор топика
Ответ на: комментарий от dzidzitop

вероятно, не дерьмо - это какое-нибудь mongoDB?

Действительно, это меньшее дерьмо. Но на этом мир не заканчивается.

anonymous
()
Ответ на: комментарий от Dron

Но если выстрелит нагрузки будут очень большие.

Поэтому C? Чем выбор обусловлен? То, что умеет kore.io, точно так же умеет и golang из коробки, и куча альтернатив есть.

cherry_boy
()
Ответ на: комментарий от Dron

Нет, он просто мне удобен.

Дело хозяйское, но если уже о нагрузках думаешь, то подумай и будущей команде разработчиков.

cherry_boy
()
Ответ на: комментарий от cherry_boy

то подумай и будущей команде разработчиков.

Ты перепутал мартышек и разработчиков. Такое бывает. Частно. Не делай так в следующий раз. Да и это противоречит «о нагрузках думаешь» т.к. мартышки об этом думать не могут.

anonymous
()
Ответ на: комментарий от anonymous

mongoDB не транзакционная база данных. Как с ней работать в кроме как с hashtable без возможной потери данных - решительно непонятно.

И с индексами там хрень какая-то.

dzidzitop ★★
()
Ответ на: комментарий от dzidzitop

mongoDB не транзакционная база данных. Как с ней работать в кроме как с hashtable без возможной потери данных - решительно непонятно.

В в рамках этой реальности у тебя есть два выбора - жрать что дают, либо не жрать. Но тогда тебе никто и ничего не даст. Выбирай. Отсутствие у тебя халявного выбора ничего не значит, да и все эти рассуждения про консистентность в 95% случаев - только рассуждения и не более. Алёшам сказали, что оно им нужно - оно используют, а даёт это что-то, либо ничего и правильно ли они используют - это никому не интересно.

Это как рассуждения про in-memory. Каждый васян тебе расскажет про бигдату, делая поделку для локалхоста с БД в пару сотен мегабайт.

Тебе никто не говорит - кидай всё и бери что-то другое, нет. Тебе лишь констатируют факт. sql - параша. А есть ли у тебя выбор, либо его нет, либо ты думаешь, что его нет - это ничего не меняет и не отменяет. Это не является аргументацией.

Основной смысл в том, что не во всех, а вернее даже почти во всех, юзкейсах - не нужно всё то добро, что «даёт» sql(естественно, даёт это не сам sql). Всё остальное либо реализовано, либо реализуется. Это так же принципиальное отличие, что логику уже реализуется поверх хранения, а не вместе с ним как в sql.

Понимания это - у тебя не будет никаких проблем. Хочешь как в sql - для тебя есть скул, а иное - это свои, отдельные парадигмы и если ты не понимаешь зачем оно надо и какие там правила - оно тебе не надо.

anonymous
()
Ответ на: комментарий от slapin

похоже, ещё как зависит.

например, на питоне/пхп нельзя сделать целые классы ошибок которые можно на си: сегфолт, переполнение стека.. да вагон их на самом деле.

можно сделать целкую кучу, но эта куча заведомо меньше чем та которую можн сделать на си. Но есть потеря в скорости. Правда если брать php (про питон не скажу, много на нём не писал), то там можно делать некоторые удивительные ошибки, которые нельзя сделать в си, например new MyGlass() вполне может спокойно быть в коде пока в эту ветку не зайдёт юзер и не выяснияснится что никакого MyGlass в природе не существует. Но статически типизированные языки этой проблемы не имеют.



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

языки типа хаскеля/окалма убирают ещё больший класс ошибок, правда требуют лучшей подготовки от программиста , ну и рантайм/компилятор

языки вроде agda/idris позволяют делать совсем интересные вещи. например, если описать типы вот так, то на этапе компиляции компилятор сможет доказать что в программе нигде не вызывается bind к неоткрытому сокету и т.п. (т.е. что все вызовы функций типа bind, open, close гарантировано не вызовут ошибку потому что вызваны к сокету в неверном состоянии, без рантайм оверхеда!) но эти языки ещё более требовательны к программисту. и понятное дело имеют компилятор который умеет доказывать (т.е. требует немало труда сам по себе)

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от AndreyKl

например, на питоне/пхп нельзя сделать целые классы ошибок которые можно на си: сегфолт, переполнение стека.. да вагон их на самом деле.

Комнатные манипуляции. Если на пистоне/пхп делать реализации того же порядка, что на си, то они, угадай? Делаются на си. Что в пистоне, что в пхп.

А сравнивать жопу с пальцам всякие ламерки с помойки любят, только толку с этого? Давай попроще, а то вдруг ты слишком одарённый чтобы понять то, о чём я тебе толкую. Есть си и есть то, что на нем пишут с определёнными свойствами, а вот изваяния на пистоне/пхп никакого отношения к тому, что пишут на си и к их свойствам не имеют. Поэтому это не взаимозаменямые вещи.

Давай ещё проще. Нельзя выдавать тупой нож за решение проблем связанных с остротой ножа.

Но есть потеря в скорости.

Есть потери в днк. Пхп и подобное дерьмо обладает теми дырами, что ещё хуже сегфолта - это отсутствие грани между кодом и данными. Весь вебчик этим болеет. И тут не нужно никакое переполнение стека.

Да и потеря скорости/предсказуемости - это не мистическая потеря хрен пойми чего, а потеря возможностей к реализации целого класса задач.

языки типа хаскеля/окалма убирают ещё больший класс ошибок, правда требуют лучшей подготовки от программиста , ну и рантайм/компилятор

Никакой хацкель никуда ничего не убирает. И никакой лучшей подготовки они не требуют. Это миф. Любую обезьяну посади за хацкель - она будет ваять это дерьмо. И чем тупее обезьяна - тем успешнее. Хотя в мире хацкеля нет такого понятия, как «успешность» по умолчанию.

языки вроде agda/idris позволяют делать совсем интересные вещи. например, если описать типы вот так, то на этапе компиляции компилятор сможет доказать что в программе нигде не вызывается bind к неоткрытому сокету и т.п.

Маркетинговый булшит для мамкиных хацкелистов с помойки. Доказательство подобного в принципе невозможно без тысяч ограничений, а с этими ограничения твоя поделка никому не нужна, кроме подобного авторам мусора.

Да и сама постановка задачи не имеет смысла. Очередная лаба, хотя это уже и по наличию хацкеля ясно.

(т.е. что все вызовы функций типа bind, open, close гарантировано не вызовут ошибку потому что вызваны к сокету в неверном состоянии, без рантайм оверхеда!)

Ты сам-то распарсить сможешь эту ахинею?

но эти языки ещё более требовательны к программисту.

В параллельной вселенной.

и понятное дело имеют компилятор который умеет доказывать (т.е. требует немало труда сам по себе)

Кусок бесполезного дерьма, который кое как выполняет бесполезное дерьмо - не может называться компилятором по определению.

Как всегда. Хацкелята не осилили написать себе вменяемый компилятор - их недоязык валяется на помойке и даже с жабаскриптом не может конкурировать. Я уж не говорю о том, что этот мусор полностью обделался с функциональщиной и всё больше и больше тащит в своё дерьмо пхп, а за примерами далеко ходить не надо:

("Matching " ++ show (topx, topy) ++
                 " in " ++ show env ++
                 "\nHoles: " ++ show (holes ps)
                  ++ "\n"
                  ++ "\n" ++ show (getProofTerm (pterm ps)) ++ "\n\n"
                 ) 

Поэтому естественно, что мамкины эксперты так и будут ваять свои лабы, вместо решения основных и фундаментальных задач. А подобные потуги с помойки слышаться каждый год.

anonymous
()
Ответ на: комментарий от AndreyKl

Не надо чушь нести!

Если погромист имеет руки из жопы, то ему выбор языка не поможет. А если же человек знает С, то пусть на С и пишет, зачем ему всякое говно вроде пхытонов-пыхпыхов-го учить?

anonymous
()
Ответ на: комментарий от anonymous

Какие нафиг парадигмы, если эти nosql поделки не обеспечивают целостности данных и предлагают подождать вечность на сложных выборках? Можно сказать - пофиг на целостность, и не делай сложных выборок. Но при этом бизнесу нужны отчёты и не нужно разбираться с испорченными данными, особенно финансовыми.

Для кэша или какой-нибудь MMO эти nosql, вероятно, помогают. Для работы с данными использовать их нельзя.

Если мне поставят задачу использовать nosql, то я предупрежу, что целостность данных я обеспечить не смогу по причине отсутствия поддержки транзакций в конкретной nosql базе. Если заказчику, проектному менеджеру нормально - то напишу как смогу, сглаживая отсутствие транзакционности в коде или организацией структуры данных в этой базе.

А если бы ты изучал и осилил теорию реляционных баз данных, то «sql - параша» не говорил бы.

dzidzitop ★★
()
Последнее исправление: dzidzitop (всего исправлений: 3)
Ответ на: комментарий от cherry_boy

Если отдельные элементы данных («документы») не зависят друг от друга - то можно. Останутся проблемы с индексацией, но это уже отдельная история.

dzidzitop ★★
()
Ответ на: комментарий от anonymous

Комнатные манипуляции. Если на пистоне/пхп делать реализации того же порядка, что на си, то они, угадай? Делаются на си. Что в пистоне, что в пхп.

Если на си сделать манипуляции того же порядка что и в машинных кодах то они, угадай? Делаются в машинных кодах. Что в пистоне, что в пхп, что в си. Выходит у тебя что разницы то нет. Ну тебе с этим жить, я чё.

AndreyKl ★★★★★
()
Ответ на: комментарий от AndreyKl

С — простой язык. В нем очень удобно писать код. Вероятность напортачить есть в любом ЯП, так что, пофиг: быдлокод можно даже на баше сварганить.

Ну и какой смысл менять простой и удобный С на какое-нибудь дикое дерьмо, где даже типов данных нет, а группировка операндов осуществляется отступами?

anonymous
()
Ответ на: комментарий от anonymous

простой и удобный С

Да, как раз этому посвящены некоторые темы в Top 10 на главной %)

anonymous
()
Ответ на: комментарий от anonymous

быдлокод можно даже на баше сварганить

А вот что-то нормальное и поддерживаемое на баше написать практически нереально, кроме самой примитивной логики

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.