LINUX.ORG.RU

Dive into web-development

 ,


2

4

Здравствуйте, господа!
Так сложилась жизнь, что мне, до недавнего времени имевшему дело с десктоп-приложениями, придется столкнуться с веб-разработкой. HTML и CSS на базовом уровне знаю, в качестве фреймворка решил выбрать Ruby on Rails (потому что Ruby нравится). Наверняка тут есть те, кто подобно мне столкнулся с веб-разработкой, не будучи веб-программистом. Прошу поделиться опытом и рассказать об основных нюансах. Или просто дать дельный совет.

★★

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

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

MVC? Это единственный паттерн, используемый в web-development?

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

+ проверять всё и вся, что идёт от пользователя.

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

Я не mvc имел в виду. Это обычный working flow работы сайта. А какими способами ты его будешь реализовывать - твое дело. MVC просто помогает разделить логически части, это очень удобно. Хотя можно и просто вставлять куски кода в хтмл (или наоборот ;-).

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

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

rikardoac ()
Последнее исправление: rikardoac (всего исправлений: 1)
Ответ на: комментарий от rikardoac

Хотя можно и просто вставлять куски кода в хтмл (или наоборот ;-).

Я не хочу молотком по пальцам.

какой-нибудь легкий фреймворк

bottle.py?

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

я пхпшник ;-) поэтому по питону не могу ничего особо посоветовать, хотя bottle выглядит симпатично.

Но если начал с рельс, почему бы их хоть в какой-то степени и не попробовать? разруливание путей, шаблонизатор, какой-нибудь уровень абстракции к бд и пр.

rikardoac ()

Или просто дать дельный совет.

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

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

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

A propos, для чего полезен Node.js?

Для bower. Если очень хочется обойтись без Node.js, то некоторые альтернативы bower'y рассматривались здесь, в «How do you manage vendor assets in Rails?».

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

Я имел ввиду, при разработке своих приложений.

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

Я имел ввиду, при разработке своих приложений.

Пардон, не очень понял вопрос. Нужно больше конкретики.

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

В каких случаях можно сказать «вот тут точно node.js использовать надо»? Если я хочу сделать максимально производительное приложение? Или для какого круга задач можно использовать node.js?

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

Дисклеймер: я ничего не писал на node.js, кроме несерьезного баловства с node-webkit.

В каких случаях можно сказать «вот тут точно node.js использовать надо»?

Если есть legacy на node.js, которое нужно майтейнить.

Если я хочу сделать максимально производительное приложение?

Производительное в каком случае? В веб-приложениях ведь есть множество мест, которые от node.js никак не зависят.

Или для какого круга задач можно использовать node.js?

Для самого широкого. Но только в том случае, если вы готовы использовать «event-driven»-подход для всего.

Anatolik ★★ ()
Последнее исправление: Anatolik (всего исправлений: 1)
Ответ на: комментарий от netcat

У лора есть фича: после редактирования поста касты не работают.

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

bottle.py?

Sinatra или Scorched, если Ruby нравится. Это насчет «легких» фреймворков.

theNamelessOne ★★★★★ ()
Последнее исправление: theNamelessOne (всего исправлений: 1)
Ответ на: комментарий от netcat

MVC? Это единственный паттерн, используемый в web-development?

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

VirRaa ★★★ ()

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

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

И привыкнуть к «получились запрос с параметрами, нашли нужные данные, сформировали ответ».

Alve ★★★★★ ()

HTML и CSS на базовом уровне знаю

Нет, не знаешь. И это будет самой большой проблемой, гг.

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

И привыкнуть к «получились запрос с параметрами, нашли нужные данные, сформировали ответ».

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

netcat ★★ ()

У меня основное было - боязнь JS. Решение: прочитай хорошую книжку, узнай основные паттерны. Причем не на уровне построений выпадающей менюшечки, а именно написания бизнес логики с использованием KnockoutJS/AngularJS. В вебе убегать от JS и прятаться от него за фреймворками, которые его генерят - очень плохая идея. JS победил и из него и HTML5 доступны все веб-стандарты: Canvas, WebGL, WebRTC, Video, local storage, HTML5 Offline

И еще полное незнание СSS и верстки. Решение в 60% случаев: Twitter Bootstrap. 40% - пусть верстает кто-то другой ;)

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

Единственная платформа, в которой силой заставили всех разработчиков написать библиотеки в асинхронном стиле. Таким образом любой вменяемый код на ноде не имеет блокирующих операций

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

Если я хочу сделать максимально производительное приложение?

В современных реалиях Java

В каких случаях можно сказать «вот тут точно node.js использовать надо»?

Или для какого круга задач можно использовать node.js?

Асинхронность нужна для большого количества пользователей, которые могут висеть подолгу на соединениях. При этом ты хочешь чтобы жрало мало памяти в отличии от Java. Есть хостинги строго 256 или 512 МБ. Жабе можеть быть тесновато.

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

два чая в студию.

По теме, сядь да напиши что угодно + htmlbook.ru по jquery мне помогло jquery.page2page.ru

ggrn ★★★★★ ()

потому что Ruby нравится

ты хотел сказать, потому что Ruby модный

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

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

А если серьезно, то тонны модулей в pip, чего нет — напишешь сам и конпельнешь cython'ом. При примерно одинаковой скорости выполнения кода, скорость написания и развертывания у питона выше, русская дока http://djbook.ru, Макбук покупать не обязательно. И, что немаловажно, все тебя считают натуралом.

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

При наличии Flask-Admin, нужность джанги стала весьма сомнительной. Монолитная какашка.

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

Если бы кое-кто не убедил меня в том, что джанга - говно, я бы ее и выбрал.

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

Как это вписать в MVC?

В MVC надо вписывать то, что вписывается в MVC. Остальное просто надо делать подходящими для этого методами.

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

То есть, то, о чем я говорю, не вписывается в MVC? Просто на первый взгляд это можно реализовать в модели.

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

Сказал, что работал с джангой и что внутри она состоит из костылей.

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

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

Т.е., грубо говоря, отдельный бот будет постоянно стучаться на другой сайт? Тогда и делай его отдельным демоном, а взаимодействие с сайтом делай через единую БД.

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

Т.е., грубо говоря, отдельный бот будет постоянно стучаться на другой сайт?

Совершенно верно.

netcat ★★ ()

ну так как ты уже «программист», то вебе очень важна связка html+css+js, заостряй внимание на ней, а не на бекенде, тогда как-то все «проще» по крайней мере мне уж точно :)

а что там на бекенде рульсы джанга или пэхапэ - разницы никто не увидит

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

вебе очень важна связка html+css+js, заостряй внимание на ней, а не на бекенде, тогда как-то все «проще»

Выбор вакансий существенно шире будет. Чистые бэкэндщики мало кому нужны, как это не печально.

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

Думаю, что вполне подходящий вариант, даже учитывая ещё, что у тебя не такая ресурмоёмкая задача.

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

сейчас на фронтенде работы больше в рамках «одной» вакансии, а чистых бекендеров держут в каких-то мега проектах с мега-задачами

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

отвыкнуть от модели ПО, используемой для десктопных приложений
запустились, запустили бесконечный цикл ожидания, ждём событий, ..., дождались - что-то сделали, опять ждём

Это ты сейчас веб-сервер описал? Если писать на node.js, golang, LUVIT и т.п. (всё, что не cgi like) с нуля, то где-то так оно и будет выглядеть.

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

JS победил и из него и HTML5 доступны все веб-стандарты: Canvas, WebGL, WebRTC, Video, local storage, HTML5 Offline

Думается мне, эти веб-стандарты закапывают JS. Когда браузеры будут нативно уметь все, что предоставляет сейчас polymer.js, JS просто перестанет быть необходим — для большинства задач будет достаточно HTML.

Судя по последней I/O и недавно вышедшей адаптации Angular для Dart, Google видит будущее именно так.

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