LINUX.ORG.RU

WEB приложение. с чего начать

 


0

2

Здравствуйте,
Этот пост не преследует цель разжигания религиозных войн :)
Имеющийся опыт:
Программирование на dot NET (C#), реализовано несколько больших проектов.В общим сложности 7 лет опыта разработки.
На данный момент изучаю (неспешно) С++ QT (но это так для души).
Очень хочется писать web приложения, но не сайты, а именно приложения с динамическим UI.
В то время как с декстопным программированием все ясно, берешь компилятор, ide, ui-framework, куришь документацию и погнал... Для web не могу разобраться вплоть до того, на каком языке стоит писать...
Сначала взялся за php, потом насоветовали java ee, пока на лоре подбирал ui для java ee, открыл для себя Angular.
В общем в голове каша.
Подскажите какой правильный путь для разработки web приложений с ui выбрать. Какая IDE в данном «пути» будет актуально какой язык программирования выбрать, на чем писать ui
И что вообще на рынке web приложений сейчас актуально. Спасибо.


Если тебе задачу какую решить, то бери ASP.NET коли C# знаешь. Там в процессе немного JS/CSS/HTML подучишь и сможешь дальше погружаться в веб помойку осознанно. Если просто поизучать, то TypeScript + Angular2 или JS/TS + React для SPA. Если бек, то вообще все равно: хоть известный тебе C#, хоть Python/Go/PHP/Scala/Java/etc.

anonymous ()

В то время как с декстопным программированием все ясно, берешь компилятор, ide, ui-framework, куришь документацию и погнал... Для web не могу разобраться в плоть до того, на каком языке стоит писать...

2017 скоро, уже браузеры пишут на веб-фреймворках, граница стирается :)

А так - да много их. Наиболее популярен JS-выводок (node, express, angular, react, backbone, jquery и вот пока я пишу этот пост, кто-то релизит n+1ый фреймворк). В целом, фронтенд почти целиком держится на JS. Бэкенд - да почти любой язык из гугла по запросу «top10 github language».

В плане IDE - на любой более-менее популярный язык есть или софтина от JetBrains, или плагин на софтину от JetBrains :)

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

Для web не могу разобраться в плоть до того, на каком языке стоит писать...

Для начала, может, стоит с русским разобраться? «В плоть», блин.

Был бы готов Red - посоветовал бы его.

А пока что бери последнюю ноду 7.x, любой понравившийся фреймворк, попутно изучаешь докер 1.12+ и вперёд.

IDE

Вот уж что ненужно - так это так называемые IDE. Нормальный код на нормальном языке позволяет и без них обойтись. Если тебе нужны эти костыли - ты что-то делаешь не так. В том числе и Angular, да.

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

Для начала, может, стоит с русским разобраться? «В плоть», блин.

Очень стыдно... поправил.

А пока что бери последнюю ноду 7.x, любой понравившийся фреймворк, попутно изучаешь докер 1.12+ и вперёд.

Не совсем вам понял, можете поподробнее пожалуйста.

farex ()

И что вообще на рынке web приложений сейчас актуально. Спасибо.

на фронте актуален react, angular объективно говно, а с angular 2 пока не понятно как оно. язык на фронте пока что один это js и лучше сразу учи es6, еще есть вариант дождаться WebAssembly но там еще даже не альфа.

для бекэнда можно брать все что угодно, тебе от него потребуется только какое нибудь json апи.

потом насоветовали java ee

Это уже лет 20 не актуально, да и по сути никогда не было актуально.

TDrive ★★★★★ ()

Если изучаешь C++ то https://www.webtoolkit.eu/wt/ru

Но для начала, чтобы это было действительно «динамическое приложение» то однозначно Javascript - других языков в браузере тупо нет. Всякие Dart-шмарт и тому подобные Clojure транслируются в Javascript и если прийдется решать какую либо проблему во фронтэнде js знать надо.
Затем надо выбрать фрэймворк. Наиболее популярный и живой https://angularjs.org и его надстройка http://ionicframework.com

Составь подробный план, который отвечает на вопросы:

1. Какую задачу решает приложение
2. Какая входящая информация требуется для решения задачи
3. Какая исходящая информация служит признаком того что задача решена

Возьми карандаш и блокнот и накидай wireframe предполагаемых экранов. Не пытайся на первых этапах раздувать задачу «хотелками» ну вроде, а вот тут я вставлю аватарку, потому что на других сайтах она есть. Сначала сухой функционал.

Составь драфт ERD (entity relationship diagramm), опиши каждую сущность (entity), связи между ними. Они еще поменяются, но у тебя будет представление о том какие модели тебе нужны в бэкэнде и фронтэнде.

Выбери бэкэнд. Тебе не понадобится монстр для создания целых сайтов, тебе нужен лишь REST API сервер. Язык может быть любой, вот тупо что на душу ляжет, но обязательно побенч. Большинство REST фреймворков идут с примерами - попускай какой нибудь hello world, померяй расход памяти, скорость отзыва и наибольшее кол-во одновременных подключений.

Все, можешь приступать к «давлению батонов» ;)

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

Поподробнее - правильно комментатор ниже сказал, нужен REST API-сервер. Для облегчения маршрутизации и обработки запросов в NodeJS используются различные фреймворки (Express - самый популярный вроде). Это вот то, что я пытался донести.

Но на самом деле, имея бэкэнд в виде Docker и входной шлюз в виде nginx, всю маршрутизацию можно разруливать средствами nginx, направляя запросы на контейнеры с, в принципе, чем угодно, что умеет слушать порты. Ну или даже не на контейнеры, а на что угодно, что умеет stdin/stdout, запущенное через fcgiwrap. И с такой конфигурацией бэкэндом может выступать вообще всё. Я, например, пишу API-роутер для старого ребола. Со стороны выглядит довольно омским, но работает.

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

На самом деле не обязательно REST, это вообще ортогонально.

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

ioway ()

Backend - asp.net или что там есть, совместимое с моно.
Фронтенд - typescript и второй angular.
Это я в контексте с чего начать при твоем опыте.

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

Ты какуюто хрень пишешь, есть два подхода rest и rpc. И каждый применяется для своих задач. С чего ты решил что для первой задачи тса подойдет именно рест?

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

Ты какуюто хрень пишешь, есть два подхода rest и rpc. И каждый применяется для своих задач. С чего ты решил что для первой задачи тса подойдет именно рест?

Что? rest и rpc - один и тот же паттерн. Выделяют два паттерна

REST он же RPC - работающих по принципу запрос/ответ причем инициатором выступает клиентская сторона. При этом состояние фронтенда диктуется бэкэндом, своего состояния у фронтенда нет.

и

Integration или событийный. Когда инициатором обмена выступают обе стороны. В отличие от REST есть состояние в виде сессии.

Второй однозначно сложнее для новичка.

ioway ()

7 лет опыта разработки.
В общем в голове каша.

попробуйте с этим разобраться для начала и для релакса изучить концепт hello world на C + CGI подняв пример прямо в командной строке

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

Теперь уже актуален vue.js

Новый хипстерский фреймворк входит в моду каждые две недели, а люди всё равно пишут:

  • на jquery если это бэкэндщики, добавляющие немного интерактивности статичным страницам
  • большинство фронтэндщиков — на angular1, остальные фреймворки даже не близко
  • чуть меньше энтерпрайза — на reactjs. Хипстеры тоже любят его.
  • ещё немного на emberjs
  • три с половиной хипстера на angular2
  • два хипстера на всём остальном. vuejs входит сюда.

Зрелых фронтэнд-фреймворков для крупных приложений — ровно три: angular1, reactjs (+ что-нибудь вроде redux/react-router...) и emberjs. vuejs сюда не входит.

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

Если мозгов нет, бери angular. Это чисто мое мнение, что для юзания ангулара мозгов не надо, там view берет данные прямо из базы данных. О какой архитектуре/структуре может вообще идти речь?

Если хочешь пердолиться до укольчиков, бери java стэк. Тут тебе и spring и hibernate и vaadin и нервные срывы от атупизма или в конец отсутствия документации на некоторые фичи. На стаковерфлоу начнешь ходить неиначе как с тазиком.

Если хочешь бытро сделать и забыть — php/ruby.

Но я тебе советую, не гейни хайп, грибуй на реверсе.

unt1tled ★★★★ ()

Зачем учить какую-то жаву, или, прости господи, пхп, на котором вообще сапы писать невозможно? Бери asp.net core, entity framework 7 и angular 1.6 на фронт. Говноедствовать и писать в блокноте на жаваскрипте на нодежс? лол. Возьми, как белый человек, комьюнити студию, накати решарпер, программируй на свободном кроссплатформенном С#, asp.net core, с открытым исходным кодом. Ангуляр, конечно, обладает своими недостатками, но по нему триллион уроков, документации и ответов на stackoverflow, для человека, которого не привлекает жаваскрипт и верстка - самое оно.

nikolnik ()

Сперва основы - HTML, CSS, JS + AJAX (для начала бери данные из статичных файлов). Потом осиль любой язык для backend, чтоб с помощью AJAX мог брать и запихивать динамичные данные. Советую сами основы PHP (в купе с MySQL) - стандарт и очень просто.

В принципе этого должно хватить для любого приложения в духе «я только учусь, но это реально работает!».

Уже дальше идёт детали: Frontend - JQuery, Twitter Bootstrap, прочие CSS, JS фрэймворки, которые, возможно, сильно упростит создание вида твоего приложения. Backend - что-то, что тебе приглянется. Обязательно разберись с хоть одним современным WEB фрэймворком, как с снаружи (документация) так и с внутри (код), чтоб разучить полезные шаблоны и их реализацию. Советую Zend Framework 3 (если решишь продолжить с PHP). Потом попробуй написать свой, чисто интереса ради, который реализует именно то, что тебе приглянулось.

anonymous ()

Если знаешь C#, то почему не ASP.NET Core? На нем довольно-таки просто развернуть Web API.
Есть еще nancy, но с приходом Core смысла в ней не вижу.

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

Давно читал, там скучно. vuejs — это буквально reactjs + mobx, но менее гибкий, без react-native, без экосистемы реакта и с ненужной возможностью пользовать шаблоны вместо jsx.

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

И чем он актуален? Пока я вижу, что в некоторых местах, некоторые комментаторы поднимают хайп, что сейчас якобы рулит vue.js. Но не видно проектов, кто на нём хоть что-то делает. Такое ощущение, что рулит он только в комментариях, а юзают все так же React с Redux.

th3m3 ★★★★ ()