Сохранен 14
https://2ch.hk/pr/res/398376.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Серверное программирование?

 оп OP 24/10/14 Птн 12:19:58 #1 №398376 
14141387982280.png
В общем, есть сайт. Портфолио одному фоторафу, решил для практики сделать ей. На сайте должна быть возможность принятия заказов и добавления новых фоток в портфолио. То есть, нужна админка. Я никогда не писал ничего подобного. Знаю, что раньше был популярен PHP, по нему есть куча туториалов. С другой стороны, я знаю JS, а уже довольно давно на Node можно делать сервер-сайд, но я опять-таки не знаю как, не делал этого никогда.

Хотелось бы закончить проект через несколько дней. Я уже почти сверстал, остался только сервер-сайд.

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

Вот мои варианты:
- PHP, который я не знаю совсем, но который вроде как простой и популярный,
- JS, с которым я хорошо знаком, но в душе не чаю как писать серверные приложения.

Что мне больше пригодится в будущем? Может, стоит пожертвовать дедлайном проекта (который я придумал себе сам, лол), но разобраться таки с нодом? Или пхп для общей эрудиции тоже будет полезен, да и напишу я на нем быстрее? Может быть, ты, Анон, хочешь предложить свой вариант? Feel free to comment.
Аноним 24/10/14 Птн 12:37:38 #2 №398379 
Просто поставь wordpress.
Аноним 24/10/14 Птн 12:43:45 #3 №398380 

Править
ShortUrlВнутренняя ссылка

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

Можно банально придерживаться паттерна mvc и не погрязнуть в паутине спагетти-скриптов с сотнями инклюдов. Код будет хотя бы структурирован и изолирован локальными кучками говнеца. Это идеальное состояние, если большую часть рабочего времени вы добавляете в общую свалку новые, независимые друг от друга конвертики с тухлятиной.

Можно написать классы объектов, там где они необходимы и наполнить их методами. Опять же, всё ради структурирования кода, для вполне сносной и быстрой навигации по разрастающейся выгребной яме проекта.

Можно вооружиться профайлером, раскурить исходники ядра фреймворка, который вам предписало начальство, и частично переписать его, снизив время выполнения этого хитросплетения пиздеца на 80%. Вырезать конфиг веб-приложений, сделанный в xml. Уничтожить миллионы вызовов __call() и call_user_func(), от которых кровоточат глаза. Большинство макак знает, что обычное веб-приложение на похапэ инициализируется каждый раз с нуля. Поэтому уменьшить на 90% время инициализации - это очень хорошая идея.

Можно искать узкие места и куски рендерера, где хтмл генерится недостаточно быстро. Вооружиться memcached и реализовать грамотные схемы самообновляющегося блочного кеширования. Избавиться от пары дюжин лишних запросов к бд на каждый чих. Получить 80% страниц, выхлоп которых отрабатывает без запросов к бд вообще.

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

Можно навесить плюшки в виде аякса, где это уместно, и местами перенести генерацию контента вовсе на клиент, вместе с тем сэкономив десятки тяжёлых запросов на отрисовку страницы целиком.

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

Можно придти к мысли, что mysql с её слоупочными table locks и transactional safety и с её возможностью масштабирования только при помощи анальных расширителей не очень-то, собственно, и нужна в большинстве задач. Потратить 2 месяца и перенести огромную смердящую кучу наваленных друг на друга небольших пакетиков с говном на mongodb, на небольшой, но няшный кластер из нескольких replica sets по тройке лёгких машин. Ощутить невесомое изящество, с которой она похрустывает сотнями тысяч записей, прелесть schema-free и отсутствие дрожи в коленях, когда раньше ты запускал alter table на рабочей копии бд, глубокой ночью, потому что оно кладёт сервер на час-другой. А потом часами напролёт в умилении смотреть на графики munin, которые резко перебежали из погранично-красной зоны в самый низ зелёной. Финально включить eaccelerator и наслаждаться запасом в сотни запросов в секунду на отдельно взятом сервере начального уровня.

Можно дополнительно озаботиться настройкой nginx, убрать из конфига логгирование для файлопомойки, включить пяток жизненно-важных параметров, указать нормальные значения для буферов. Окончательно уничтожить апач, для которого был прописан reverse proxy для некоторых урлов. Выкинуть SATA-винты на помойку. Поставить дополнительно недорогих SSD и развернуть на них кэш для самой мелкой статики.

Только это всё не нужно. Ваш сайт, результат вашей работы никогда не получит хоть какой-то нагрузки. Когда на ресурс заходит 10 человек в день, а 90% хитов совершают боты гугла, можно хуярить страницы на 50, и даже на 150 SQL-запросов, ведь все таблицы бд влезают в оперативку, и страница даже на каком-нибудь позапрошлогоднем zend framework без твиков соберётся менее, чем за секунду. Да какой там фреймворк! Какой там MVC! Проще дёргать по необходимости разнородные готовые куски, часть кода бросить голодным доширак-макакам, и склеить всё воедино лишь-бы-работало спагетти-кодом. Ведь проект нужно было сдать ещё вчера, а завтра он будет навсегда забыт. И останется крутиться на задрипанном, надолго предоплаченном vps, в cron которому прописана ежедневная перезагрузка.

Я кончил.
Аноним 24/10/14 Птн 13:37:21 #4 №398394 
>>398376

используй готовое решение, с допиленной до нужного состояния мордой. Да, на PHP их дофига.
Аноним 24/10/14 Птн 13:40:49 #5 №398396 
14141436498560.gif
>>398379
Зачем? Сайт состоит из одной страницы и админки. Ради формы отправления заказа и загрузки фоток в портфолио нужно ставить тяжелую и неповоротливую CMS??
Аноним 24/10/14 Птн 13:43:13 #6 №398397 
>>398394
Ок, спасибо за мнение.
Аноним 24/10/14 Птн 13:45:27 #7 №398398 
На node можно сделать хороший динамический сайт, но это считается нестандартным подходом. Зато не придётся настраивать apache/nginx etc. Только node & npm.

Нода сильна пакетами из npm, там есть на любой случай. Для создания сайта тебе понадобится модуль Express, а также, вероятно, обвесы для него (раньше шли в комплекте, но теперь ставятся отдельно — в целях модульности и легковесности) типа Body-Parser & Cookie-Parser.
Аноним 24/10/14 Птн 13:50:39 #8 №398401 
Подход при создании веб-сайта (веб-сервиса) на node.js отличается от такового при использовании php.

php: .htaccess для перенаправления запросов (/article1488.html -> ?module=article&id=1488), серверная логика в .php-файлах, echo html-разметки на выходе.

node.js: за http-сервер отвечает модуль http (встроен в node), подключаешь к нему логику модуля express, в котором расписываешь логику своего сайта. В express выбираешь также предпочитаемый "движок шаблонов", отвечающий за связывание шаблонных страничек с твоими динамическими данными. Я предпочитаю ejs.
Аноним 24/10/14 Птн 13:54:28 #9 №398405 
14141444684750.jpg
>>398376
зачти этот гайд, мне лично он понравился http://www.nodebeginner.ru/

если ты можешь в jquery, то для тебя всё будет просто, иначе будет фейл
Аноним 24/10/14 Птн 13:55:08 #10 №398406 
>>398405
вот ещо антоны зачтите http://habrahabr.ru/post/151117/
Аноним 24/10/14 Птн 13:59:03 #11 №398408 
14141447439320.jpg
>>398406
вангую нужно пиарить эту технологию
Аноним 24/10/14 Птн 14:03:17 #12 №398409 
>>398398

Ты перечислил лишь модули, реализующие веб-сервер. Это очень далеко от «любой случай» и я не понимаю, какую выгоду ты получаешь заменив уже готовый и зачастую установленный на хостинге Апач на самопоальный сервер.

>>398401

> .htaccess для перенаправления запросов
Твои знания устарели лет на 15. Я никогда htaccess не использовал, а использовал роутинг в приложении

> echo html-разметки
стереотипы-стереотипчики

PHP программист берет готовый движок с готовйо админкой и меняет шаблон дизайна.

Node.JS программист делает npm install express body-parser (гораздо быстрее чем php-программист скачает и установит движок) и идет в кофешоп сидеть в твиттере.

> ejs
Отстой же. Его разработчики не учли опыт разработчиков PHP:

> <% } %>
Вот это вот кошмар. Twig (клон jinja) и встроенный в PHP шаблонизатор используют endif/endfor и т.д.

В JS кстати тоже есть клон jinja и twig под странным названием swig. Все остальные шаблонизаторы (microtemplating и клоны, mustache) отличаются каким-то самобытным неудобным синтаксисом, видимо их авторы не захотели изучать опыт других разработчиков, а захотели написать велосипед.


Аноним 24/10/14 Птн 14:07:21 #13 №398410 
>>398396

Ради экономии твоего времени (и увеличения отношения прибыль/затраченное время).

Часто быстрее подключить костыльный кеш страниц на memcache к wordpress, чем писать свое. И то это в том случае если хостинг дохлый или десятки тысяч посещений в день, если меньше то не надо.
Аноним 24/10/14 Птн 14:41:29 #14 №398419 
>>398396
>Ради формы отправления заказа и загрузки фоток в портфолио нужно ставить тяжелую и неповоротливую CMS??
Судя по твоему объему знаний осилить ноду или php-фреймворк и написать на этом хоть что-то работающее у тебя получится не раньше чем через месяц. Еще месяц ты это деплоить будешь, сервер настраивать, и в итоге получится хуже чем на вордпрессе.

К вордпрессу, как уже сказали, можно прикрутить кэширующий плагин, который будет сразу статику отдавать.
comments powered by Disqus