1.
5 сообщений
#16 лет назад
Я сам не являюсь программистом, я заказчик. Сейчас для меня разрабатывается сайт. И вот возникли пара спорных с разработчиком вопросов.

1. Есть корзина. Обычная, ничего особенного. Как и во многих магазинах в корзине есть поле "Количество товара". В этом поле можно изменить кол-во, после чего нажать кнопку "Пересчитать" и сумма пересчитается согласно новому кол-ву товаров. Так вот, имеет место такой баг - заходим в корзину, в корзине 1 товар, в поле "Кол-во" стоит цифра 1 - то есть, кол-во 1 штука. Но! Если перегрузить страницу в броузере, то кол-во становится 2, еще раз -3, еще - 4.... разработчик утверждает, что пофиксить это Мегасложно. Подскажите, так ли это!?

2. В той же корзине есть форма с персональными данными клиента. Внизу страницы кнопка "Продолжить", после нажатия на которую открывается страница для проверки введенной информации. Внизу этой страницы 2 кнопки - "Вернуться к редактированию" и "Закончить оформление заказа". Когда мы нажимаем "Вернуться к редактированию", то попадаем снова на первую страницу с формой личной информации. Но! Вся введенная инфа УДАЛЯЕТСЯ! Все поля снова пустые. Видел не раз, что можно сделать, чтобы вся инфа в полях сохранялась при возврате. разработчик также утверждает, что это огромная проблема.:huh:

Прокомментируйте, плиз, просто больше не от кого получить совета. Заранее всем благодарен.
Владислав П.
1 сообщение
#16 лет назад
Да Вы правы такого не должно быть. Если программист говорит, что пофиксить это мега сложно, то задайтесь вопросом он или не является прямым разработчиком движка или он не достаточно компетентен в этом вопросе. Возможно изначально была не верно выбрана платформа разработки и реально проще все переписать заново, чем править то, что уже написано. Виноваты немного Вы, т.к. все Ваши пожелания, изначально должны были закреплены в ТЗ. Попробуйте договориться , ведь Вы заказываете музыку .
Андрей Л.
457 сообщений
#16 лет назад
Gabber, на чем сайт пишется? если на PHP то это не сложно сделать.И 1 и 2-й пункт! (могу даже аргументировать если нужно)
Андрей М.
386 сообщений
#16 лет назад
В принципе подобные ошибки исправляются элементарно, если только разработчик не совсем новичёк в этой области.
Вадим Т.
3240 сообщений
#16 лет назад
Gabber, программист Вас вводит в заблуждение, решать такие задачи - 10-20 минут для опытного специалиста, или 1-2 часа для новичка.
 1.
5 сообщений
#16 лет назад
To ADI
to tvv

Спасибо за помощь! С разработчиком практически не удается найти общий язык. Разработчик с пеной у рта доказывает, что исправление пункта 1. (то есть, фиксинг кол-ва товаров в корзине) повлечет целиковое переписывание функционала корзины. Заявляет, что это глобальная работа и связана с тем, что такую функцию нужно писать на Ajax (простите, если неправильно написал). Я согласен с Вами и тоже считаю, что работы не большая, но....получить результат от разработчика думаю вряд ли удастся. Он мне саму корзину с элементарным функционалом 2 недели делал. Хотя, как мне кажется, там работы на 2 часа.


P.S. Скажите, а в готовой корзине может этот баг поправить другой программист?! Просто осталось одно желание, забрать то что есть и пойти к другим программистам...
Bweb B.
316 сообщений
#16 лет назад
Цитата:
1. Есть корзина. Обычная, ничего особенного. Как и во многих магазинах в корзине есть поле "Количество товара". В этом поле можно изменить кол-во, после чего нажать кнопку "Пересчитать" и сумма пересчитается согласно новому кол-ву товаров. Так вот, имеет место такой баг - заходим в корзину, в корзине 1 товар, в поле "Кол-во" стоит цифра 1 - то есть, кол-во 1 штука. Но! Если перегрузить страницу в броузере, то кол-во становится 2, еще раз -3, еще - 4.... разработчик утверждает, что пофиксить это Мегасложно. Подскажите, так ли это!?

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

По второму, сделать легче легкого. Надо вписать переременные что были переданы срипту в поля формы в параметр value=""

Ваш программер ламер, либо просто сопротивляется дополнительной работе, выдавая каку за конфетку.
 1.
5 сообщений
#16 лет назад
BeautyWeb

Спасибо за комментарий! Попробую надавить на программера...Хотя, там не просто программист, типа студия...<_<
Новик Роман
697 сообщений
#16 лет назад
Gabber, ИМХО, в корне не верный изначальный подход в проекте и пути выхода из сложившейся ситуации.
Создание электронного магазина не уникальная задача. Оптимальным решением была-бы покупка уже готового изделия, после самостаятельного обзора или с привлечением консультанта, с последующим наймом соответствующего-их специалиста-ов для адаптации типового решения под Ваши индивидуальные нужды. Не знаю, кто теперь возьмётся переделывать "то что есть", учитывая вамиописанные проблемы юзабельности - проще с нуля сделать.
И ещё. Раз уж затронули тему электронных магазинов. Есть дополнительная проблема при покупке готовых изделий - их сложность, вызванная универсальностью. В таком случае при найме "недалёкого" исполнителя по тюнингу, возникают трудности с их адаптацией, вплоть до проблем описанных Gabber.
Алексей Ц.
292 сообщения
#16 лет назад
Gabber, пфффффф. Скажите ему пусть при нажатии на добавить или т.п. кидается на страницу чисто для добавления, а потом редиректит на саму корзину. А Ajax тут совсем не причем. :blink:
Новик Роман
697 сообщений
#16 лет назад
Tchokurov, Вы сами поняли, что сказали?
Алексей Ц.
292 сообщения
#16 лет назад
Novick, да. Только я не знаю, как это лучше объяснить :unsure:
One Choosen
183 сообщения
#16 лет назад
Gabber,
если ваш разработчик пишет на ПХП, то:
- по первому вопросу, дайте ему подсказку вида: header("location: /blablabla.php";
- по второму вопросу, дайте ему подсказку вида: session_start(), $_SESSION.
Вадим Т.
3240 сообщений
#16 лет назад
По первому пункту. Тогда уж я попробую объяснить. Тут есть такие способы.

1. Обычный, простой, надежный и распространенный способ - после обработки данных формы (в случае с корзиной - сохранения измененных данных в сессии и/или БД) делать обычный редирект на страницу с этой же формой. При редиректе не производится повторной отправки данных формы методом POST. Недостаток - производится фактически два запроса с браузера пользователя. Первый запрос на изменение содержимого корзины, второй - на то чтобы вывести содержимое. Это делается за 10-20 минут.

2. Витиеватый способ с вьюстейтом. Идея позаимствована из ASP.NET, и лишена недостатка первого способа. При этом формируется так называемый вьюстейт, некоторый закодированный массив, хранящийся в хидден поле формы. Вьюстейт имеет свою версию (таймстемп), которая ставится при формировании формы при обычном заходе на страницу. Таким образом, если форму засабмитить дважды, то серверная часть воспримет только первый сабмит, а последующие сабмиты, полученные например при рефреше формы, будут проигнорированы. Это делается где-то за 1-1.5 часа.

3. Лучший способ - использование AJAX. Для страниц корзины нет смысла учитывать SEO, так что именно такой способ максимально дружественен для пользователя, так как страница не перегружается целиком. Сделать корзину на AJAX - 1.5-2 дня. Но, как я понял, Gabber-у это не нужно, то есть вышестоящих способов достаточно. 99% всех корзин используют только первый способ с редиректом.
Александрович И.
8 сообщений
#16 лет назад
В обоих случаях исправить все проще простого. Единственное, что исполнитель, который уже занимался подобного рода работой, предусмотрел бы такие баги.
Сергей В.
244 сообщения
#16 лет назад
По первому пункту
Как уже описал tvv.
В hidden поле time записывается значение time();
После записи в корзину в сессию пишется это значение.
Если при повторном обновлении time() == $_SESSION то ничего не пишется, то есть пропускается

По второму пункту
На странице которая выводит проверку нужно записать присланные данные в сессию.
Если пользователь решил вернутся назад и отредактировать, то данные вытаскиваются из сессии и заполняются поля.

На самом деле работы вообще никакой, более того вы заказчик, вы и заказываете музыку.
В ТЗ все до мелочей сложно продумать, и разработчик должен сам эти баги предусмотреть.
Этим он не только поднимет свой уровень но и оставит о себе хорошее мнение.

Я скажу только одно, насколько я понимаю то поддержки вы вряд ли от него дождетесь потом и еще намучаетесь
Николай С.
710 сообщений
#16 лет назад
Gabber, насчет первого - это баг (и не важно, описана данная ситуация в ТЗ или нет).
Насчет второго - это уже по ТЗ. Но вообще решается проблема и не мегасложно.
Сергей В.
244 сообщения
#16 лет назад
SolNikolay, ну не обязательно по ТЗ, я лично стараюсь делать свои продукты качественно, заранее продумать все ньюансы.
И если делать что то, то так как для себя, а не так что если заказчик не заметил и ладно.
Пускай это займет это больше времени, но зато избавит заказчика потом от головной боли и поиска программиста.

Приведу пример.
Например выпадающий список выбора года выдачи паспорта.
Я сталкивался что многие заполняют мало что в вручную 100 <option> так и делают последний год например сегодняшний 2007.
Почему бы не заполнить динамически, до текущего года включительно. Заказчику не прийдется потом просить чтобы ему вставили еще один <option>.

Эту ситуацию тоже не описывают в ТЗ, но программист на то и программист чтобы продумать все заранее.
Николай С.
710 сообщений
#16 лет назад
VistaSolutions, каждому удобнее по своему работать
Повторюсь: первый пункт - это баг (ибо выдаёт неверную информацию).
Второй пункт тоже можно отнести к багам, т.к. надпись вводит пользователя в заблуждение. А можно отнести к недоработкам в ТЗ.
Сергей В.
244 сообщения
#16 лет назад
Цитата ("SolNikolay"):
VistaSolutions, каждому удобнее по своему работать
Повторюсь: первый пункт - это баг (ибо выдаёт неверную информацию).
Второй пункт тоже можно отнести к багам, т.к. надпись вводит пользователя в заблуждение. А можно отнести к недоработкам в ТЗ.


Вроде во втором пункте разговор о пустых полях а не о надписи

Ну естественно это на усмотрение программиста что и говорит о его проффесионализме