IP, кастомный User-Agent (Kiosk), уникальная кука для вашего магазина, например md5(адресс вашего магазина). Вы какие-то странные вопросы задаете, если честно.
Можно зарегать отдельного юзера под посетителей магазина, например "Гость" и лить все заказы туда. После оформления заказа на самом сервере проверять if user == "Гость" (или по ID) то куки чистим сразу, а ещё можно на странице checkout/success POP UP подгрузить с кнопкой "Приступить к покупкам" после нажатия на которую создается новая сессия/чистятся куки.
Автозаполнение форм можно легко убрать в настройках браузера.
Доступ к сайтам блокируется на уровне файрволла роутера/пк.
Есть ещё Greasemonkey, который может перенести серверные проверки на клиент, ну и сделать кнопку position:fixed которая будет летать за пользователем, где будет кнопка для очистки сессий.
Только 5 секунд на запрос - это жесть какая-то. Очередь быстро набьется на 5 секундах. Максимум 1 секунда, и то на всяких отчетах и прочих и очень редких выборках. Основные запросы должны выполнятся не дольше 0.25 сек.
Как вы определили, что тормозит сервис баз данных? То, что он 12% cpu жрет?
Что значит "не хочет качать"? Страница грузится долго? Или пустая страница? Ссылку на пример можете дать?
Тут все просто, http://prntscr.com/ebsgnu
Даже курлом можно, думаю.
Если бы вы мне сказали это раньше, я бы написал по другому.
Да нет, как раз таки в основном на нем и пишу. Вот что было написано в начале, после чего я решил, что задание же на краткость кода, и, закомментировав данный участок, пошел писать внизу процедурщину))
Не без php.net.
Оправдываться не хочу, но я написал этот костыль за минут 35-40, посреди ночи, видимо это и стало причиной, что я не прочитал ТЗ. А точнее прочитал его между строк. Более того, с Spl* библиотекой плохо знаком, потому что пишу код под PHP 5.2 (полу-энтерпрайз), где в требованиях указано использование только встроенных массивов, ведь PHP может быть скомпилирован без Spl (если не изменяет память, то до версии 5.3 точно). А ещё по этой же причине пишу без неймспейсов, closure и прочих фишек (кстати, код должен работать от 5.2 до 7.1 включительно). Но если бы я знал что на мой код скажут "несолидный" и "плохоструктурированный", а ещё что "критериев и нет собственно", я бы не поленился, и написал нормальный ООП класс итераторами и с несколькими режимами работы, а ещё бенчмарками прогнал, тогда бы хоть удовольствие получил)
Вообще, идея этих мини-хакатонов мне нравится, и я ещё месяца три назад думал создать тему с задачками для программистов, но потом что-то вялая была неделя, и я подумал, что никто кроме меня на такие хакатоны ходить не будет, поэтому и похоронил эту идею. А милторг молодец, все таки сделал, хотя задания у него бестолковые и скучные, взять битву регулярок: ничьи проблемы не решает, пользы - ноль.
mendel, если честно, я как-то упустил ТЗ мимо глаз. Сейчас перечитал: да, есть у меня косяки. Но! Считаю, что критерии должны быть указаны явно. Если мы боремся за краткость, то тогда претензии по код ревью не принимаются. Если мы пишем на правильность и с использованием Best Practices - могу переписать под ООП. Солидный код не может быть коротким.
Для меня тоже AMD где-то в 2000-х умер, потому что Intel начал выдавать совершенно несоизмеримую производительность. Сейчас сложно будет завоевать себе рынок. Думаю, только низкие цены помогут вернуть покупателей. Если бы собирал бюджетное решение - взял бы может AMD, через годик, когда камни свою надежность подтвердят.
Сейчас сижу на этом http://prntscr.com/eaqw77 + SSD Evo 850 Pro.
Дома тоже оставил подобный конфиг родителям, только там 8ГБ оперативки и тоже SSD старенький (OCZ Vertex), который кстати вполне себе работает уже около 5 лет. Ненавижу когда ПК тормозит, сразу начинаю закипать и злиться.
Все просто: нужно с минимальным бюджетом сделать и похоронить пару проектов. В основе любого успешного проекта лежит проблема и её решение. Для начала нужно определить: какие из существующих проблем (желательно чтобы эти проблемы были вашими) ещё не решены. Затем придумать максимально эффективное решение этой проблемы, с максимальной маржой. Без всего этого даже нету смысла что-то делать: все равно не взлетит.
Вообще, для начала около недели записывайте все ваши идеи куда-то в блокнот. Каждый раз ставьте оценку своей идеи как только вы её придумали. Затем, спустя неделю, ставьте ещё одну оценку. Если оценка не падает спустя время, значит эта идея вам запала, и скорее всего это то что вам нужно. Выберите несколько таких идей, и начните их реализовывать с минимальным бюджетом, скорее всего эти идеи будут обречены на провал, потому что понимание бизнеса приходит с практикой. Когда похороните пару проектов, над которыми корпели пол года, тогда и научитесь находить специалистов, писать ТЗ, и вообще будете знать все, что нужно знать для создания проекта, возможно даже научитесь делать мелкие фиксы по верстке, JS, PHP. Вам останется только найти достойную идею.
mendel, а что с присвоением в условии не так? Ну, понятно, что крутые дядьки так не делают, но если переменная используется в рамках конструкции, в которой она объявлена, то почему нет? В Go такая конструкция считается нормой:
func pow(x, n, lim float64) float64 { if v := math.Pow(x, n); v < lim { return v // v существует только здесь, в пределах { ... } } return lim }
При этом область видимости v заключена в блок {}
Если брать за условие стандарты PSR, то тогда ещё можно говорить об объективности, и о краткости кода, в противном случае все могут писать в одну строку и экономить как это сделал я. Вообще, я более чем уверен что тот код, что я написал, можно ещё сократить, причем значительно. Намного интересней проводить олимпиады на скорость работы, а ещё - поработать коллективно над чем-то полезным, OpenSource, например.