LINUX.ORG.RU

Уже вчера нужен прототип web-проекта


0

2

Приветствую!

Нужен прототип проекта буквально уже вчера, а опыта работы с готовыми фреймворками - кот наплакал, все чаще велосипедостроение на PHP+MySQL, Python и даже Lua с собственной исплементацией SCGI.

Есть какие-то варианты, чтобы без долгого погружения, à la «сел и поехал», да чтобы не совсем убого?


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

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

Стремитесь к простоте - пишите на чистом PHP.

Оксюморон.



Фреймворки на PHP обычно и пишут, как раз, чтобы обеспечить максимальную простоту.

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

Фреймворки на PHP обычно и пишут, как раз, чтобы обеспечить максимальную простоту.

Ага, а потом выходит для создания простой визитки с коментариями приходится городить MVC, с ORM, и какимнить JSON-RPC если захочется не перезагружать страницу, это не говоря о том что там будет на клиентской стороне.

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

Фреймверки пишут на PHP но не для обеспечения простоты а как раз наоборот - для обеспечения ООПических извращений.

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

но не для обеспечения простоты а как раз наоборот

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

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

Не вижу связи. Надо быстро создать быдлокод => юзай фремверк; хочешь всё продумать, оптимизировать, обеспечить максимальную надёжность => медленно и аккуратно пиши на чистом PHP стремясь к максимально простой системе. Т.к. при усложнении системы кол-во багов всегда увеличивается причём не прямо пропорционально а в несколько раз быстрее. Да, для современных тенденций набыдлокодить дырявую фигню типа гитхаба конечно медленно и аккуратно писать на PHP - не вариант.

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

Не вижу связи

Потому что ты уже ушёл от исходной формулировки «не для обеспечения простоты а как раз наоборот»

Надо быстро создать быдлокод => юзай фремверк; хочешь всё продумать, оптимизировать, обеспечить максимальную надёжность => медленно и аккуратно пиши на чистом PHP

И первое будет много проще второго.

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

Вот только сложные системы в итоге почему-то оказываются куда надёжнее примитивных :) Например, хотя бы потому, что ты не зевнёшь однажды SQL-инъекцию, забыв заэкранировать параметры, так как за тебя это всё автоматом будет делать ORM и т.п.

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

Joomla лучше всего.

Главное, контактов там своих не оставлять. Чтобы тот, кому придётся это поддерживать не навёл порчу по емэйлу

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

что ты не зевнёшь однажды SQL-инъекцию, забыв заэкранировать параметры, так как за тебя это всё автоматом будет делать ORM и т.п.

А что сразу ORM? Достаточно простейшей ф-ции типа

$db->q('SELECT ... FROM ... WHERE id = :id:', array('id' => $_GET['id']));

Я ещё и перед этим обычно проверяю $_GET['id'] regexp'ом '#^\\d{1,20}$#D'. А ещё я разработал простую и эффективную систему тестирования которая проходится по PHP файлам, находит $_GET, $_POST, $_COOKIE и пишет сама тесты со всевозможными комбинациями данных. Всяческие тормознутые рельсовые тесты (которые надо самому писать) и близко не стояли по эффективности и простоте. Таким образом можете быть уверены - с валидацией ввода пользователя в моих программах всё 100% безопасно.

ORM создан исключительно для удовлетворения извращённых ООПических вкусов. В коде любой ORM библиотеки найдётся в +inf больше багов чем в простой ф-ции решающей проблемы SQL injection. Для сложных SELECT c JOIN'ами всё равно приходится писать SQL (да и какая разница написать User.find(:all).where(...) или $db->q(«SELECT ... WHERE...») - к чему изобретать бесполезные ф-ции дублирующие простой и понятный SQL). Для операции же выборки создавать новый объект каждый раз можно даже средствами самого PHP - mysql_select_object() на пример. Хотя мне больше нравятся ассоциативные массивы, но разница минимальна опять же - написать $user['username'] или $user->username. Проверять же поля формы должен код формы а не DB т.к. при вводе через разные формы критерии валидации могут быть совершенно разными. ORM только в теории красивая вещь а на практике начинаются костыли типа проверка поля пароля + подверждения пароля при регистрации юзера, при редактировании юзера, и т.д.

psp13
()

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

amomymous ★★★
()

Есть какие-то варианты, чтобы без долгого погружения, à la «сел и поехал», да чтобы не совсем убого?

Возьми CMS'ку какую-нибудь, их навалом же.

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

Ага, а потом выходит для создания простой визитки с коментариями приходится городить MVC, с ORM, и какимнить JSON-RPC если захочется не перезагружать страницу, это не говоря о том что там будет на клиентской стороне.

У каждого инструмента, есть своё применение. Зачем забивать гвозди микроскопом?

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

Фреймверки пишут на PHP но не для обеспечения простоты а как раз наоборот - для обеспечения ООПических извращений.

Ну приведи какие-нибудь доводы что-ли? Примеры? Откуда такое умозаключение?

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

Не вижу связи. Надо быстро создать быдлокод => юзай фремверк; хочешь всё продумать, оптимизировать, обеспечить максимальную надёжность => медленно и аккуратно пиши на чистом PHP

Понятно, тролль.

Санитары! Этого можно выводить.

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

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

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

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

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

Клепать быдлокод на конвейере конечно быстрее с фремверком.

Санитары! Этого можно выводить.

Не вам решать кого выводить. Если вы не принимаете чьё то мнение и даже если и большинство не принимает - это вовсе не значит что оно не имеет места. Большинство вообще очень часто оказывается неправо на самом деле.

Ну приведи какие-нибудь доводы что-ли? Примеры? Откуда такое умозаключение?

Прочти пост выше. Там рассказывается и про ORM и про то что валидация ввода - задача кода формы ввода.

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

особо регексп порадовал

Чем же он так порадовал? Если полученное значение не имеет формат корректного ID незачем нагружать DB. Тем более учитывая что в эту переменную можно послать строку большой длины, regexp её сразу отсеет.

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

Клепать быдлокод на конвейере конечно быстрее с фремверком.

Обоснуй.

Не вам решать кого выводить. Если вы не принимаете чьё то мнение и даже если и большинство не принимает - это вовсе не значит что оно не имеет места. Большинство вообще очень часто оказывается неправо на самом деле.

К сожалению в нашей вселенной (в вашей параллельной, может и не так) решают как раз адекватные личности, сажать больных в дурку или не сажать.

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

$var = filter_var($_GET['id'], FILTER_VALIDATE_INT);

И чем это лучше RegExp'а? А вы учли то что на 32 битных архитектурах эта ф-ция вернёт FALSE для числа длинее 10 цифр?

К сожалению в нашей вселенной (в вашей параллельной, может и не так) решают как раз адекватные личности, сажать больных в дурку или не сажать.

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

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

psp13 - хороший, VirRaa - плохой. Подеритесь!

Test11
() автор топика
Ответ на: комментарий от VirRaa

Откуда такое умозаключение?

Чтобы делать умозаключения, ум нужно иметь. А это не умозаключение, а хорошая полная нерасплесканная чушь :)

KRoN73 ★★★★★
()

А что за web-проект? Если ничего особенного, то возьми drupal и закастомизируй как надо.

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

валидация ввода - задача кода формы ввода

Какой такой формы?

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

Ага, а потом выходит для создания простой визитки с коментариями приходится городить MVC, с ORM

Или примерно пятнадцать строчек на bottle.py.

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

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

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

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

Без ORM, без SQL-injection, с изкоробочной валидацией интов и по регекспам, без костылей .htaccess для роутов.

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

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