LINUX.ORG.RU

На чём сварганить прототип?

 , , , ,


1

3

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

Что бы такое взять в качестве инструментов? Много лет писал на PHP, но после нормальных языков, откровенно, хочется блевать от него. JS из той же оперы, плохо входит.

Говорят, Рельсы хороши для быстрого прототипирования? Нужно ли специально уделять время их изучению или можно в процессе проникнуться? А в случае с Django? Ни ruby, ни python толком не использовал, хотя и пробовал.

Из баз выбор такой: MySQL, Postgres, MongoDB. Пока все не начали рекомендовать Postgres, отмечу, что опыта с ним тоже нет никакого.

Ответ на: комментарий от amomymous

На языке, который мне хорошо знаком и приятен в общении, к сожалению, пока не всё хорошо с готовностью (отсутствие вещей, являющихся базовыми в других фреймворках, типа CSRF и подобного). Кроме того, удручает уход титанов, на которых всё долгое время держалось. А нынешние суппортеры не внушают доверия. Да и активность какая-то вялая, все следят, но шарят и делают вклад единицы.

jenyadoe
() автор топика

Этот форум написан на java + postgres.

BattleCoder ★★★★★
()

Ни ruby, ни python толком не использовал, хотя и пробовал.

Бери питон, читабельность кода для прототипа наиболее приоритетна.

А в случае с Django?

В случае джанги проходишь 1 раз туториал и начинаешь писать прототип с готовой админой для сиюминутного тестирования ввода данных в БД.

Или поднимаешь прототип на Flask - поднимается очень быстро и без лишних зависимостей.

Нужно запилить сервис, требующий хитрых вычислений и несколько более сложной работы с БД

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

Сложная работа с БД - это тебе или SQLAlchemy, или RAW-запросами.

Siado ★★★★★
()

Python + Django. Хитрые вычисления - numpy. В бд можешь любые запросы писать.

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

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

А почему ты сравниваешь язык и фреймворк? Уверен, в популярных php фреймворках защита от CSRF-уязвимостей есть.

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

Что за язык-то? С ходу ничего не приходит на ум.

По сабжу: рельсы идеальны для прототипирования, но незнание их, да ещё незнание руби, существенно затруднит работу.

Apple-ch ★★
()
Ответ на: комментарий от xtraeft

Уверен, в популярных php фреймворках защита от CSRF-уязвимостей есть.

во всех популярных точно есть :) как и от SQL injection и прочего.

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

С тем же успехом можно говорить что в питоне CSRF нет, а в Yii есть :)

xtraeft ★★☆☆
()

Берешь python и flask, бд берешь любую(пг, мускул). К flask'у подключаешь flask-sqlAlchemy, дальше пишешь прототип.

ggrn ★★★★★
()

Много лет писал на PHP, но после нормальных языков, откровенно, хочется блевать от него.
Говорят, Рельсы хороши для быстрого прототипирования?

Зачем ты сравниваешь pure php с фреймфорками? У тебя похоже такая каша в голове что воспримать твои

кококо похапе говно

всерьёз не стоит.

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

Низко летишь. Для начала сваргань прототип «на бумаге». Очень рекомендую freemind (то бишь карты памяти). В новой верси даже совместная работа есть по TCP.

ziemin ★★
()

Кроме того, удручает уход титанов, на которых всё долгое время держалось. А нынешние суппортеры не внушают доверия. Да и активность какая-то вялая, все следят, но шарят и делают вклад единицы.

D?

JS из той же оперы

Судя по всему, ты не очень понимаешь архитектуру современных веб-приложений. Никто сейчас не генерит HTML на стороне сервера. Это безблагодатно. Если брать классику жанра — трёхзевенную архитектуру, то логика представления вынесена на сторону клиента. И в современных реалиях, «логика представления» не обязательно именно браузер.

Веб приложение состоит из «фронта» и «бэка». «Фронт» — это логика представления, и частично логика хранения. В конце-концов на стороне браузера можно хранить массу всего интересного и нужного.

«Бэк» — это бизнес-логика и логика хранения. «Нижняя часть бэка» — это самая обычная программа, либо HTTP-сервер, либо FastCGI-сервер. Причем реализация и того и того может достигать сколь угодно феерических масштабов убогости, как в смысле полноты и корректности, так в смысле архитектуры, потому что у нас есть...

«Верхняя часть бэка». Он же nginx, который: а) прикрывает нашу убогую реализацию от атак со стороны, как в смысле преобразования HTTP-запросов, так в смысле распределения нагрузки и кеширования; б) переписывает URLы для создания красивого REST-интерфейса; в) осуществляет аутентификацию юзеров, лучше всего по TLS-сертификатам; г) раздает статику.

Поэтому, на нижнем уровне твоя программа на твоем языке + nginx; браузер + AngularJS + Bootstrap — на верхнем. Взаимодействие между уровнями по REST-JSON, можешь по REST-XML. Для соврешенно упертых джедаев — по WebSocket.

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

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

Защита от CSRF на уровне языка? Но зачем? Есть куча активно разрабатываемых фреймворков, с которыми приятно «общаться».

Kilte ★★★★★
()

Бери Ruby/Ror. База Postgres поддерживается рельсовым AR оч.хорошо - hstore и прочее. Качественные батарейки для руби/рор есть на все случаи жизни. Желательно для начала пройти какой нибудь простенький туториал по созданию блога или что-то подобное. Подучить руби. Сначала в любом случае идеального кода у тебя не получится. установку можешь отсюда например начать https://gorails.com/setup/ubuntu/14.04

anonymous
()

MongoDB

Монга — это KV-хранилище с плюшками и тоннами пиара. Только конченный полудурок будет его использовать не в составе кластера. Это касается всех NoSQL. И вся их фишка в том, что они находятся на другом полюсе CAP-теоремы. Тебе же требуется только «C», а остальное — нафиг не сдалось. А это, практически по определению, РСУБД.

Никто не заставляет хранить данные в РСУБД в нормальной форме. Скорее наоборот. Меньше обмазывайся JOIN-ами, меньше старайся запихнуть всю логику на сервер, не бойся тыщщи неоптимальных запросов для одного (тривиального) действия... И будет всё то же NoSQL, только с SQL.

А распиаренный mapReduce в монге, во-первых, должен работать на кластере (вот ведь незадача), а во-вторых, конкретно сливает тому же MongoDB aggregation framework.

Короче говоря, монга с щенячей непосредственностью собирает все те шишки, которые собрали РСУБД...

Macil ★★★★★
()

Телепаты в отпуске

Входной инфы мало. Что за вычисления? Может тебе нужен оракл + pl/sql? А может тебе вообще надо Redis + C/C++?

P.S. Прототипы пишутся на том, что знаешь. Ибо, к моменту когда прототип покажет какую-то производительность будет точно ясно куда двигаться. Но если для тебя прототип === фундамент приложения, то будь готов писать к такому прототипу костыли :)

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 1)
Ответ на: Телепаты в отпуске от gh0stwizard

оракл + pl/sql

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

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

Ни ruby, ни python толком не использовал, хотя и пробовал.

Бери питон, читабельность кода для прототипа наиболее приоритетна.

Это ты сейчас сказал, что руби менее читабельный, чем питон? Сир, вы делаете мне смешно.

Od1n
()

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

Od1n
()

JS - от него не уйти, как бы ты не хотел, хотя бы на фронтенде. А на бекенде опционально Python, нормально прототипировать можно на Flask например

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

Это ты сейчас сказал, что руби менее читабельный, чем питон? Сир, вы делаете мне смешно.

VB-скриптеры обычно тоже беспричинно-позитивные.

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

А распиаренный mapReduce в монге, во-первых, должен работать на кластере (вот ведь незадача), а во-вторых, конкретно сливает тому же MongoDB aggregation framework.

Монга сливает монге.

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