LINUX.ORG.RU

На чём лучше писать CRM-систему?

 , , ,


0

2

Время пришло, понадобилась CRM-система. Готовые ненужны.

Для бэкенда два варианта:

1. Python/Django. Здесь я спокоен. Куча проверенных временем батареек. Всё работает в промышленных масштабах.

2. JS/Node.js. Тут всё меняется так быстро, что уже опять новый форк node.js пилят. А я всё хочу полностью на js перейти. И среди нас есть такие waker.

И так, что же выбрать? Вот только не надо шуточек за 300, что нода только для чатиков.

P.S.: Может у кого-то был опыт, делать что-то подобное на node.js. Стоит оно того или нет? Или не заниматься фигнёй, бросать все эти модные штуки и брать проверенный временем инструмент.

UPD: Создатель Node.js: «Это далеко не лучшая система(node.js) для серверного софта.». В общем, если уж создатель на неё плюнул, то и мне нестоит это трогать. А свой выбор я уже сделал и это Rust. Да, я люблю приключения ;) Python/Django.

★★★★★

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

Проблема node.js даже не новизна, а его основа - javascript, он и так ущербен, а написание на нем простых вещей превращается в мороку изза асинхронности. Если для браузера както прокатит, то писать серверную часть это жесть

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

Как не завезли, недалеча пробовал. Хотя конечно если брать абстракцию типа signalr, то да, еще не готова.
M2M есть, нужно создавать промежуточную сущность, это просто неудобно. Там целый тред с нытьем на джихабе висит, а разработчики только недавно её закинули в road map.
Райдер сам жду, но меня в принципе и студия устраивает 😄
С релизом .NET Standard 2.0 все вообще кучеряво стало. Появилась куча API, которые сдерживали многие проекты от миграции. Сам вот TransactionScope тоже ждал.

ritsufag ★★★★★
()

странно что не упомянули Ruby. ок, буду первым - Rails || sinatra - в зависимости от масштабов.

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

потому-что crm не делает ничего про «перфоманс», вообще.

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

Ну я слушал презентацию SignalR Core, вроде как обещает быть конфеткой, но когда? Насчет M2M, его как раз не осиливает 90% ормок, которых я знаю, м2м было сильной стороной именно энтитифреймворка. Майкрасофт слишком медленно чухается, в той же скале, есть плей фреймворк, в котором есть вебсокеты и даже socket.io, где это все работает на акке, ормок для скалы дохренище. Энтитифрейморк 7 еще не вылечился от элементарных детских болезней, например, если положить модель в отдельную сборку, то с ней не работают миграции, хорошо, что я нигде миграции не использовал никогда.

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

Я могу этот дотнет нормально использовать на линукс машине ? Каждый год делаю несколько подходов к дотнету, но пока для линукс он жутко сырой. Пробовал и MONO и DotNetCore. MONO возможно годится только чтобы под ним на Unity писать.

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

Смотря что тебе надо. Гуй и десктоп - моно, asp.net - .net core

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

И то и то уже отлично работают.
Правда IDE пока нормального нет. Ну как, есть райдер, который еще пилить и есть vscode и monodevelop дабы поржать.

ritsufag ★★★★★
()

Выбор очевиден

1. Python/Django. Здесь я спокоен. Куча проверенных временем батареек. Всё работает в промышленных масштабах.

Не слушайте фанатеков Python. У него масса проблем, в том числе - очень кривая асинхронщина и никакой работы с рилтайм. Зачем вам этот кактус? Чтобы героически решать проблемы, которых нет или перепиливать то, что и так можно было бы сделать нормально без боли? Не верите? Просто - сделайте что-нибудь выходящее за рамки Django. Она хорошая для построения монолитов и блогов. Причем монолитов строко стандартных. А батарейки... где их сейчас мало? Даже хаскель обзовелся веб-фрмворками и кучей либ.

2. JS/Node.js. Тут всё меняется так быстро, что уже опять новый форк node.js пилят. А я всё хочу полностью на js перейти.

Отличный выбор. Событийная асинхронность. Есть такие замечательные вещи как тот же socket.io и meteor.js. С их помощью пилить real-time просто сказка.

P.S.: Может у кого-то был опыт, делать что-то подобное на node.js. Стоит оно того или нет? Или не заниматься фигнёй, бросать все эти модные штуки и брать проверенный временем инструмент.

У меня опыт. Я бывший python-программист. Писал системы как на PHP, Python, C#, так и на NodeJS. Основной инструмент сейчас - NodeJS/TSC. База - MongoDB. Даже в конторе куча религиозных фанатиков Python. Знаете, что смешно? Решения на Python работают хуже, чем на сраном JS. Просто потому что Python/Django кондовый инструмент. Жесткий в самом плохом понимании. NodeJS - гибкий, удобный, куча батареек. Проверенный временем? Эти ваши питоны - моложе. Это факт. Прототип CRM на метеоре будет уже через месяц. Вполне рабочий и функциональный. А дальше допилка. В чем NodeJS/ES6 сложен: g

  • он требует понимание языка. Без него будет лютый говнокод
  • он требует понимание паттернов и парадигм. Язык не бьет по рукам. Он просто дает инструменты для реализации того, что нужно вам. И не важно, что вы хотите наркоманию. Это ваше право.
  • он требует понимать асинхронность. Без нее ваш код будет забагован и лапшевидный.
  • он треубет проектировать, а потом реализовывать. Иначе опять будет говнокод.
  • он требует знать стандарт. Там много хорошего. Но мало кто этим пользуется.
  • он терубет знать библиотеки. Тысячи их. И они отличаются реально друг от друга. Хотя бы Koa от Express очень серьезно отличается.
silver-bullet-bfg ★★
()
Ответ на: комментарий от abc

Как минимум 20.

Как минимум? Тогда наше фсё лиспы, фортраны. На них предлагаете?

А NodeJS сейчас всего 8 лет, за которые уже прошел один раскол сообщества (IO.JS vs NodeJS)

Они снова объединились

и сейчас идет 2 (Ayo vs NodeJS).

В чем профиты первой? Отличия от второй? Не слышал

Это как бы стабильностью назвать никак нельзя.

Python не стабильный. У него куча ВМ. Скажу пацанам, а то они не знают.

Но даже при этом я не рекомендую писать на чистом JS, берите TypeScript хотябы. Дабы избежать детских ошибок вида

Ну да. Зачем знать стандарт и язык. Проще обмазаться сахором. С ног до головы.

Без 100% покрытия тестами конечно никуда вы не уедите с NodeJS.

А где поедите? Если серьезно.

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

А может не ставить то, что скачали полтораивана? Качество библиотек я бы и в Python не назвал хорошим.

А если прямо, то берите Python / PHP / Ruby (и если есть много времени то конечно Java) и пишите свою CRM. Ведь CRM по большей части это CRUD операции. Да в современном мире CRM сейчас это SPA приложение, но это как бы не жесткое требование. У нас какие-то страницы построены как SPA, какие-то как и раньше рендерим на сервере. Тут не надо фанатеть, надо смотреть как решить задачу эффективно.

Рили? Пайтон? Этот недоязык, без нормальной типизации, никакой асинхронщины и кривым ООП? Мсье, вы знаете толк в извращениях. PHP? Посмотрите на код vTiger. И закопайте обратно. Java - да, Хорошо. Ынтерпрайзно.

Если конечно у вас там лютый стартап и через 2 недели вы выкинете ваш проект, то пишите на чем угодно.[/qoute]

Может с этого и надо было начинать

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

Пачку упорина этому сеньёру. Прототип на питоне - тот же говнокод, только в профиль

Попытайся хотя бы мало мальски аргументировать =) Знаем мы это ваше хипстерское нодэжс с которого все в итоге плюются и бегут

Siado ★★★★★
()
Ответ на: комментарий от silver-bullet-bfg

В чем профиты первой? Отличия от второй? Не слышал

Ни в чем. Поссорились «мальчики».

Python не стабильный

Очень громкое заявление. Интересуют факты, чем же. Особенно про 3 версию хочу послушать, т.к. используем ее как основную с 2012 года и проблем не возникает совсем.

Рили? Пайтон? Этот недоязык, без нормальной типизации, никакой асинхронщины и кривым ООП? Мсье, вы знаете толк в извращениях. PHP? Посмотрите на код vTiger. И закопайте обратно. Java - да, Хорошо. Ынтерпрайзно.

Окей. А нормальная типизация где ? AsyncIO вполне себе работает хорошо. ООП у Python своеобразный. А если вы ищите идеальный ООП, то он только у Smalltalk.

Как минимум? Тогда наше фсё лиспы, фортраны. На них предлагаете?

Я говорю про языки массового применения.

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

ООП у Python своеобразный.

Что же в нём своеобразного?

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

т.к. используем ее как основную с 2012 года и проблем не возникает совсем.

Сочувствую. Скорее всего не лечится уже. Ну - ООП нет (оно не своеобразное, его просто нет), нет нормальной типизации, нет приватных методов и переменных, нет нормальной поддержки ФП, жутко черепашья скорость.... Тысячи недостатков, проще сказать, что в питоне не плохо сделано. Документация няшна, это да.

Окей. А нормальная типизация где ? AsyncIO вполне себе работает хорошо. ООП у Python своеобразный. А если вы ищите идеальный ООП, то он только у Smalltalk.

Асинк - костыль. Для тех, кто не осилил Golang (который тоже еще тот набор фикалий). ООП нет на питоне и не было никогда

silver-bullet-bfg ★★
()
Ответ на: комментарий от Siado

Знаю, что плюются. Кто не осилил. JS/ES сложнее питонов на самом деле, требует больше включать мозг (тебя не ведут за ручку как дебила по единственно правильному решению)

silver-bullet-bfg ★★
()
Ответ на: комментарий от silver-bullet-bfg

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

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

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

nikolnik ★★★
()

Набросы про Go особенно смешны, в свете недавнего вывода одного регистранта, который попробовал переписать приложение с питона на го и кода получилось в 11 раз больше.
Но так как он работал он тоже в 11 раз быстрее, то работодатель с удовольствием наймёт в 10 раз больше погромистов

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

на го и кода получилось в 11 раз больше
наймёт в 10 раз больше погромистов

Нужно было писать на Java. Тогда ещё больше кода, ещё больше программистов!

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

C#/ASP идеальный вариант, особенно после выхода net.core 2.0 . Проблема только в том что у всех стереотип что дотнет это шиндошс и скульсервак, а думать и читать никто не хочет.

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

И приходим к тому, что нужно писать на Rust :)

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

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

Ты не знаешь ни питона, не го и тем более, не знаешь жс.

Ну да, ну да.

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

Не редкое ныне заболевание, питон головного мозга

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

Конечно python убогий, но он не требует знать теорию и позволяет говнокодить. А JS требует понимать, что делаешь, ибо описанная в стандарте система преобразования типова не дает расслабиться ни на минуту твоему мозгу.

Fixed. Не благодари

silver-bullet-bfg ★★
()
Ответ на: Выбор очевиден от silver-bullet-bfg

Отличный выбор. Событийная асинхронность. Есть такие замечательные вещи как тот же socket.io и meteor.js. С их помощью пилить real-time просто сказка.

А тут вот создатель Node.js, так не считает:

Создатель Node.js: «Для серверов я не могу представить другой язык кроме Go. Ну реально, это далеко не лучшая система(node.js) для серверного софта.»

https://habrahabr.ru/post/337098/

th3m3 ★★★★★
() автор топика
Последнее исправление: th3m3 (всего исправлений: 1)
Ответ на: комментарий от silver-bullet-bfg

Слушай, ну зачем так троллить, а ?

Если уж копать глубже, то что NodeJS, что AsyncIO из Python все базируются на одной и той же сишной библиотеке libuv. Поэтому я не вижу причин чем EventLoop в NodeJS лучше того же по сути EventLoop (AsyncIO) в Python.

И если спорить дальше то с достаточным количеством опыта о языках программирования спорить смысла нет. Каждый для своей задачи.

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

Такая Хабра, посмотрел оригинал - переводил либо фонатег Golang, либо просто желтая пресса)

silver-bullet-bfg ★★
()
Ответ на: комментарий от th3m3

Шучу. Конечно же Python/Django. А на Rust можно скрасить узкие места, если будет необходимость.

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

Питон это не только django.

В подавляющем большинстве случаев. Python и Django - это как Ruby и Rails. Только в последнем случае язык вполне себе годный есть.

Питон релизнулся в 1991

Давайте будем отделять версию языка для школоло (применяемую в обучении) и версию языка для школоло, которую быдлокодеры потащили в продакшн... По факту - это разные языки, тот пидон от современного пидон3 отличается существенно.

silver-bullet-bfg ★★
()
Ответ на: комментарий от silver-bullet-bfg

Вообще ни разу. В асинхронщене используется asyncio, tornado, twisted, gevent etc, но никак не django. Область использования питона вообще вебом не ограничивается.

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

разные языки

Ну, например, оригинальный bittorent был написан на python 1.6 и он вполне работает под 2.x, я его модифицировал и использовал в одном проекте.

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

Вообще ни разу. В асинхронщене используется asyncio, tornado, twisted, gevent etc, но никак не django.

Рили? Пацаны не знали. Пойду скажу)))

Область использования питона вообще вебом не ограничивается.

У него одна область применения - говнокод.

Ну, например, оригинальный bittorent был написан на python 1.6 и он вполне работает под 2.x, я его модифицировал и использовал в одном проекте.

И что? C++ тоже ест PureC, хоть и не всегда... Это ни о чем не говорит

silver-bullet-bfg ★★
()
Ответ на: комментарий от th3m3

Чего же ты про php думаешь? Давай, порви шаблон)

Седьмая версия вполне не плоха. Сам был в шоке

silver-bullet-bfg ★★
()
20 декабря 2017 г.
Ответ на: комментарий от KennyMinigun

Ай маладца!!!

Дай я тя пАцАлую!!! )))))) Твой коммент сделал мой день! А то спорят тут, чей ИЗЫК поговнокодистей...

anonymous
()

лично я бы писал CRM на Java/Spring. Питон проигрывает в секурности, многопоточности, многозадачности. Пробовал я и под Node.JS писать и на Go. Кто тебе скажет что они пригодны для больших проэктов можешь смело бить ногой в е*ло. Разве что разбивать по модулям/сервисам, но за*шся.

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