Jump to content
Калькуляторы

Вопрос по программированию для любителей давать советы =)

Коллеги,диспозиция такова:

Есть желание начать новый проект, в котором 80% это программирование.

Ресуров своих программеров и надежных фрилансеров не хватит. И временных ресурсов и где-то знаний технологий.

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

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

ПОследний раз что-то прикладное я программировал еще по ДОС (на С++)

В приннципе сейчас могу читать код ан С# и даже дорабатывать его. Но с нуля приложение не напишу.

Хорошо знаю TSQL и вообще теорию по базам данных.

 

Собственно вопрос заключается в том, какой язык программирования осваивать ?

Задачи:

1.1. Написание собсвенного АПИ и взаимодействия с чужим документированном апи. Протокол HTTP.

1.2. ГОСТовская криптография (использование готовых модулей/библиотек для шифрования, и подписи как блоков данных, так и трафика)

Есть желание писать под LINUX

2. И еще, как отдельное направление - WEB программирование.

PHP для меня китайская грамота. Знаю что он самый распространенный язык программирования под WEB, но...

- он самый распространенный потому, что самый старый или знать его must have ? С учетом того что в WEBе будет разрабатываться только frontend, вся логика будет либо в хранимых процедурах SQLной БД, либо в каких-то модулях на C# (или чем-то еще, что посоветуете по задаче 1)

Из актуальны

3. ПОдскажите какую CMS выбрать.

В принципе все почти проекты написаны на WP и есть хороший WEB разработчик, который ее знает как свои 5 пальцев. Поэтому она ОЧЕНЬ предпочтительна. Но поскольку у меня самого знаний любой CMS ровно ноль, то может вы посоветуете что-то более правильное.

Да начнется срач! ) Поехали ))

Share this post


Link to post
Share on other sites

Я вот не понял для чего вам cms в веб части ?

Вытягивать данные из бд и публиковать народу - напишите сами набор нужных файлов вывода. Зачем лишний функционал той или иной cms ?

Share this post


Link to post
Share on other sites

Почитайте про golang, он весьма интересен, правда наверное для веб-сервисов, с нуля писать - сложновато, по сравнению с php.

Share this post


Link to post
Share on other sites

Я вот не понял для чего вам cms в веб части ?

Вытягивать данные из бд и публиковать народу - напишите сами набор нужных файлов вывода. Зачем лишний функционал той или иной cms ?

Для любого сайта кроме логики нужна еще верстка дизайна. Верста в голом HTML+CSS это отдельная специализация и изучать этот объем я, наверное, не имею времени. Для этих целуй хочестя использовать CMS и, возможно, готовые шаблоны сайтов.

 

nuclearcat

Спасибо. Почитаю.

 

Кстати, что касается программирования под линукс - немного поичтал сегодня.

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

Share this post


Link to post
Share on other sites

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

Frontend: Laravel(PHP Framework)+Bootstrap

Backend: Imho к этому прикрутить еще Golang+gRPC или Golang+SOAP (кому что нравится) в контексте микросервисов.

Share this post


Link to post
Share on other sites

С таким успехом можно и битрикс взять и к нему прикручивать хотелки. Если вами веб частью заниматься не будете, то разработчиков битрикса пруд пруди

Share this post


Link to post
Share on other sites

Из энтерпрайзного тут не так давно обсуждали nodejs -vs- erlang и

как я понял оба прекрасно масштабируются и заточены для клиент-серверных фишек.

Из минусов второго - он более экзотичен. Но более заточен под операторские задачи (т.к. разрабатывается Эриксоном)

 

Сервис сильно нагружен будет? если не очень то и php потянет.

 

В общем если это не сильно большая задача с высокой нагрузкой то оптимально делать как посоветовал saaremaa. Но я бы предложил Вам рассмотреть еще варианты с С++, например С++ + gRPC. Но только если Вы действительно его хорошо знаете.

Share this post


Link to post
Share on other sites

Под линукс, на C, сетевые протоколы... Нет, ничего особо не изменилось за 20 лет.

 

PS Мои первые web-приложения 20+ лет назад я начинал писать на Паскале. Потом перешел на C. Протоколы и API достаточно удобно реализовать на нем. Конечно, с учетом наработанных библиотек. Хотя, для этого и сторонних навалом.

Share this post


Link to post
Share on other sites

Фронтенд проще сразу делать на чистом аваскрипте, особенно если хочется one page site, а там уж выбирать что больше знает/умеет разработчик что под рукой. Angular, React, Ember, у нас вон вообще Dojo на некоторых продуктах.

 

Бэкенд - тоже на том, что лучше умеете, и с чем гостовские библиотеки сможете состыковать, они ж еще небось сертифицированные должны быть ... Судя по тому, что про высокую производительность разговора не идет, можно и на php или python. Лучше смотрите на то, кого легче найти будет ... Как, помнится, Бобук из Яндекса говорил, "я даю согласие писать на любом языке, если программист найдет в команде еще двух девелоперов, кто согласятся на этом писать". Разве что я только бы еще отклонил разную относительную маргинальщину типа эрланга или кложура. Вообще сейчас модно микросервисы на go делать, но не все могут ужиться с его идеологией. Яваскриптеры конечно выберут nodejs.

 

p.s. Могу сразу еще одну тему для срачика подкинуть :) MySQL vs Postgres vs Mongo ;)

 

С таким успехом можно и битрикс взять и к нему прикручивать хотелки. Если вами веб частью заниматься не будете, то разработчиков битрикса пруд пруди

 

Я бы сказал что нужно найти очень веские доводы, чтобы что-то делать на Битриксе :)

Share this post


Link to post
Share on other sites

с чем гостовские библиотеки сможете состыковать, они ж еще небось сертифицированные должны быть

openssl сертифицирован же.

понятное дело, что конкретные версии, но именно с этой стороны никаких проблем не ожидается

http://vitus-wagner.livejournal.com/219526.html

http://www.cryptocom.ru/products/cryptopacket.html

Share this post


Link to post
Share on other sites

- он самый распространенный потому, что самый старый или знать его must have ?

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

 

ну и да, готовую CMS стоит брать только если надо типовые задачи под которые есть типовые модули. если 80% писать с нуля - CMS становится адовым балластом, потому что многие вещи реализованы через анус т.к. заточены под специфичные задачи, и их надо выпиливать нафиг и переписывать с нуля (хотел бы я, к примеру, посмотреть на весельчака, решившего запилить на вордпрессе биллинг или CRM систему).

 

под проект с нуля обычно выбирается какой-то MVC фреймворк со своим шаблонизатором, и под него все пишется. из популярных - RoR или django к примеру. ну или действительно, какой-нить React + REST framework (которому, прочем, MVC опять-же не помеха), хотя client-side rendering как по мне оооочень тормознутый.

Share this post


Link to post
Share on other sites

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

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

Если конкретнее:

-Получение данных из HTTP(S) запроса, передав ему параметры POSTом

-Обратная задача (слушать 80(433)порт и полученные POST запросы передавать в хранимую процедуру MySQL (а точнее - MariaBD)

Share this post


Link to post
Share on other sites

И, кстати, есть пониманик как развернуть и настроить OpenSSL c ГОСТом, но нет понимания как его использовать в своем приложении.

Share this post


Link to post
Share on other sites

ну и да, готовую CMS стоит брать только если надо типовые задачи под которые есть типовые модули. если 80% писать с нуля - CMS становится адовым балластом, потому что многие вещи реализованы через анус т.к. заточены под специфичные задачи, и их надо выпиливать нафиг и переписывать с нуля (хотел бы я, к примеру, посмотреть на весельчака, решившего запилить на вордпрессе биллинг или CRM систему).

+1

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

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

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

А потом обновляется CMS и все (или) большинство этих костылей отваливаются и приходится писать многое заново.

 

И, кстати, есть пониманик как развернуть и настроить OpenSSL c ГОСТом, но нет понимания как его использовать в своем приложении.

А все также. Указываете предпочтительные протоколы шифрования и все)))

Вопрос только в том, что бы новая, с ГОСТом заменила системную, т.к. все к ней обращаются.

Share this post


Link to post
Share on other sites

В php ничего сложного нету. Если обычный говнокодинг, то осваивается за пару дней. Если ООП, то тут посложнее. Сам себе биллинг на нём написал, после глючного тупейшего UTM.

Share this post


Link to post
Share on other sites

ну и да, готовую CMS стоит брать только если надо типовые задачи под которые есть типовые модули. если 80% писать с нуля - CMS становится адовым балластом, потому что многие вещи реализованы через анус т.к. заточены под специфичные задачи, и их надо выпиливать нафиг и переписывать с нуля

 

+100

Share this post


Link to post
Share on other sites

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

Если конкретнее:

-Получение данных из HTTP(S) запроса, передав ему параметры POSTом

 

Теория даже не знаю, где. Практика - библиотеки, тот же curl все делает, что надо.

 

-Обратная задача (слушать 80(433)порт и полученные POST запросы передавать в хранимую процедуру MySQL (а точнее - MariaBD)

 

Тут проще CGI.

Share this post


Link to post
Share on other sites

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

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

Если конкретнее:

-Получение данных из HTTP(S) запроса, передав ему параметры POSTом

-Обратная задача (слушать 80(433)порт и полученные POST запросы передавать в хранимую процедуру MySQL (а точнее - MariaBD)

Вот для этого PHP и оптимален, кстати.

 

Именно галопом по Европам - проще ничего не найдете.

Примеров - вагон. Все данные от сервера разобраны автомагически, включая GET, POST, FILE и прочее.

Модулем к http серверу, что экономит ресурсы по сравнению с CGI.

Если основная логика в БД, а интерфейса на JS, то задачи PHP - переложить данные из скрипта в БД и из БД в данные для JS.

В этом случае производительность PHP не имеет значения.

Share this post


Link to post
Share on other sites

Вот для этого PHP и оптимален, кстати.

таки нет. если не стоит задача изобрести очередной ржавый велосипед на коленке.

http://codehandbook.org/flask-restful-api-using-python-mysql/ - куда проще получается. в несколько десятков строк, да.

 

Модулем к http серверу, что экономит ресурсы по сравнению с CGI.

а что, cgi еще где-то кроме перла/шеллскриптов/прочего подобного юзается?...

 

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

Share this post


Link to post
Share on other sites
к слову, апачевский пхп модуль - отвратное поделие, память течет дико

Што? Может вы его с mpm_worker или mpm_event пытались завести, да ещё и под bsd? В случае 2.4/mpm_prefork под линухами - по опыту ничего нигде не течёт, даже если долго не прибивать обработчики.

Ни в 5.2, ни в 5.3, ни в ... вплоть до 7.1. У меня все хостинг-платформы на 2.4/prefork+mpm_itk/модуле php. Примерно по тысяче low load хостов на 6-гиговую VM. Ничего таки не протекает.

Share this post


Link to post
Share on other sites

В случае 2.4/mpm_prefork под линухами - по опыту ничего нигде не течёт, даже если долго не прибивать обработчики.

mpm_prefork на ура отжирается в памяти на 2.2 апаче, по 600+ метров процесс. потому как пхп не считает нужным освобождать память по окончании выполнения скрипта. и при серьезной нагрузке случается ООМ.

 

в свое время, на одном говнокодистом портале на джумле, переход на nginx + php-fpm снизил потребление памяти вдвое. и нагрузку на проц тоже существенно снизил...

Share this post


Link to post
Share on other sites

Да начнется срач! ) Поехали ))

 

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

должен владеть full stack на высоком уровне, иначе не стоит даже начинать, это будет медленное и унылое прозябание с перерывами на дообучение и плохим исходом.

Share this post


Link to post
Share on other sites
пхп не считает нужным освобождать память по окончании выполнения скрипта

простите, но бред

 

из практики - hugepages=on иногда такой эффект дает. и не только с пхп

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this