@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 деплоями, но подозреваю оно не нужно вам, покрайней мне сейчас.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы