@aningaaq

MySQL+PHP и компилируемый язык?

Приветствую.
Коллеги, прошу вашей консультации. Сейчас опишу какой будет функционал у ПО, а вы по своему опыту посоветуете компилируемый язык.
В общем будет БД MySQL. В ней где-то до 30 таблиц пока. Затем будет web-форма похожая как на скриншоте. По выбору некоторых параметров будет формироваться новая таблица в этой форме из разных таблиц БД. Проще говоря, сайт с аналитикой и логистикой из БД. Заполнять БД будут как и менеджеры через форму так и скармливать шаблонные Excel файлы. Со временем будет дорабатываться функционал и рости БД. А в будущем надо написать приложения для гаджетов и основную информацию выводить (синхронизировав) на них.

Как я это вижу. Сервер с Centos (Linux) на нём MySQL и web средствами php. Казалось бы вполне хватит. Но может нужно более серьёзную оболочку поверх БД, ну там Java или C++ и потом уже выводить в php? Просто нужно быстро и отказоустойчиво доставать все данные из БД. Работать будут пока человек 20, но активно. Хотелось бы предусмотреть рост функционала и нагрузку с годами на ПО. Плюс надо какие-то части информации выводить в приложения (для гаджетов). Может написать API?

Прошу совета какой компилируемый язык лучше применить и желательно причины рекомендации.5c4c4aed92290126551247.jpeg
  • Вопрос задан
  • 1200 просмотров
Решения вопроса 2
@stratosmi
Лучше всего годится тот язык под эту задачу, что лично вы (или нанятый вами человек) лучше всего знаете.

Для данной задачи важно не на каком языке.
Важно - как именно сделать, а не на чем.

В том числе и для:
Просто нужно быстро и отказоустойчиво доставать все данные из БД.

PHP годится.

"Отказоустойчиво доставать данные из БД" - это вообще реализуется кластером из нескольких серверов СУБД.
Язык тут не при чем.
;)

Работать будут пока человек 20, но активно. Хотелось бы предусмотреть рост функционала и нагрузку с годами на ПО.


Только ваше умение работы с СУБД.
Можно хоть на ассемблере сделать - но лучше от этого работать не будет.
Ибо нагрузка - это СУБД и корректный способ работы с ней (грамотные запросы, правильные индексы). А это от языка программирования вашего приложения не зависит. Это только SQL. А он будет всегда, независимо от того, на чем у вас приложение C++ или PHP или Haskell
Ответ написан
Комментировать
kotomyava
@kotomyava
Системный администратор
В вашей постановке задачи, проще всего сделать приложение с веб интерфейсом, можно и на том же php/java/python/что угодно. От того, компилируемый язык или нет используется, и какой, не зависит отказоустойчивость. Только от того как система спроектирована, и как продублированы точки отказа.

Если правильно спроектировать веб интерфейс, то с ним будет удобно работать, и работать это будет как на десктопе, так и на мобильных устройствах, и не понадобится никаких дополнительных приложений.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 9
402d
@402d
начинал с бейсика на УКНЦ в 1988
1C . И пусть меня все закидают тапками.
Сами Вы эту задачу будете писать до тех пор пока фирма не закроется.
А 1с решение заработает через 1-2 месяца . А вот потом , уже переписывать/модернизировать не спеша
Ответ написан
@grinat
Под 20 человек php хватит с головой. Да и обычно в таких системах слабое место это не php, а бд, потому что начинают писать очень жесткие запросы, без особого контроля, в итоге потом эти запросы выполняются по пару минут, или часов, если данных много.
Ответ написан
@spocher
Напишите на c# asp net core. И все вопросы сразу отпадут.
Ответ написан
@criminalist
Golang
Ответ написан
Комментировать
@Meled
1с, хотя мне чуется на скрине и так какая то 7ка или 8.2. 1с в плане сервера будет дорогим решением, в плане дальнейшего 'то' заказчику дешевле нанять 1с спеца чем поддерживать самопис
Ответ написан
@beduin01
dlang + https://github.com/dayllenger/atoll
Вот пример того как GUI выглядит:
paxiflvwvvvs3ppzox3899-wc3y.png

Вот исходники
Ответ написан
@aningaaq Автор вопроса
Всем спасибо за советы!
Остановлюсь как и планировал связке MySQL+PHP.
Ответ написан
Комментировать
@0x131315
Исходя из описания, будет большая БД и простенький клиент для неё.
Основные требования - именно к БД: распределенность, отказоустойчивость, расширяемость.
С первыми двумя всё просто: кластер.
А вот расширяемость напрямую зависит от архитектуры БД - над ней стоит поработать как следует, потом что-то исправить здесь будет очень сложно и дорого.
С кривой архитектурой не поможет ни кластер, ни оптимальный код клиента - БД будет тормозить всегда, проект придется свернуть.
Так что всё правильно сказали - язык не столь важен, как БД. Клиентов можно наделать сколько угодно, и на любых языках - клиенты примитивные.
А вот бизнес-логика, если она есть - её поддерживать на нескольких языках дорого. Если она есть - нужно под неё выбрать один язык, и писать всё на нем.
Сейчас для такого в ходу go, python и php. Выбирать лучше то, что знаешь - масштабировать под нагрузку всё это можно легко.
Для клиентов на этом языке делается api, за которым скрывается бизнес-логика.
В таком варианте код клиентов простой и дешёвый, логика поддерживается в одном варианте, и всегда согласованна со всеми клиентами.
Ответ написан
@metajiji
Отказоустойчивость для mysql это про galera кластер и балансировка (для начала остановитесь на failover) через haproxy. У percona есть неплохой рабочий вариант + ansible роль готовая для запуска кластера.
Как работать дальше с бд, дело вкуса, django или Битрикс или с нуля хоть на php. Тут отказоустойчивость уже никак не участвует :) разве что само приложение кластеризовать, например в докерах с zero-downtime деплоями, но подозреваю оно не нужно вам, покрайней мне сейчас.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
13 июл. 2024, в 16:58
10000 руб./за проект
13 июл. 2024, в 16:29
2000 руб./за проект
13 июл. 2024, в 15:53
500 руб./за проект