[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Задача на собеседовании.
Страницы: 1, 2
joy_killer
Друзья, дали такую задачу, раньше с этим не сталкивался, даже не знаю с чего начать,
Не понимаю, что за коды нужно возвращать.
Цитата
Требуется написать систему вывода рекламы. Класс, либо расширение для Yii

Имеется множество шаблонов html/js
Возьмем для примера superbanner.php с текстом:

<a id="banner-id-54447" href="/копеечка_в_копилку.html" target="_blank" class="underline">
<div>Кликни меня</div>
</a>

Требования к приложению:
- Приложение должно уметь подключать подобные шаблоны без указания типа файла, а только его имени, т.е "superbanner" ( возвращается код файла )
- Возможность задавать количество возвращаемых кодов ( подключаю "superbanner" 3 раза и т.д )
- Должен быть конфиг приложения для возможности задать кол-во возвращаемых кодов по умолчанию
- Возможность задавать процентное отображение количества кодов. Например в конфиге для баннера "superbanner" указано по умолчанию 50 шт. Вызывая приложение мы сообщаем что нам нужно 50% от указанного количества в конфиге и нам возвращается 25 кодов. При этом запоминается для этого типа остаточное число баннеров. Забрали 25. Осталось 25. При следующем запросе в % или кол-ве приложение уже будет расчитывать из остатка кодов. Т.е вызов на странице что то типа

echo  Banners::get("superbanner", '50%') // вернулось 25 кодов
// вызываем второй раз на странице
echo  Banners::get("superbanner", '20%') // вернулось 5 кодов и еще осталось 20

Доп. требование ( необязательно выполнять, но будет большим плюсом )
- В адресную строку передается спец. хештег, например #mybanner-*тут id баннера* Скролим страницу к указанному баннеру и обводим баннер красной рамкой

glock18
Думаю, что никто на свете не понимает, какие там 25/50 кодов имеются ввиду, и что вообще значит "вернуть 25 кодов файла".

Вот эта строчка
Цитата (joy_killer @ 25.06.2014 - 09:23)
echo  Banners::get("superbanner", '50%') // вернулось 25 кодов


убила наповал просто. В целом, по формулировкам возникает ощущение, что писал задание не программист даже
inpost
joy_killer
Код баннера имеется ввиду. для вставки на своём сайте.
Посчитал количество баннеров в БД, запомнил кое-где. Дальше вывел в процентном соотношении.
1 код = 1 строка в БД из таблицы "баннеры". Всего там 50 строк.

_______________

Разжевал, теперь ты можешь сам решить задачу, если умеешь. А если не умеешь, зачем тогда нам устраивать тебя к кому-то на фирму, когда ты не можешь справиться с элементарным условием? ph34r.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
glock18
Цитата (inpost @ 25.06.2014 - 11:51)
joy_killer
Код баннера имеется ввиду. для вставки на своём сайте.
Посчитал количество баннеров в БД, запомнил кое-где. Дальше вывел в процентном соотношении.
1 код = 1 строка в БД из таблицы "баннеры". Всего там 50 строк.

_______________

Разжевал, теперь ты можешь сам решить задачу, если умеешь. А если не умеешь, зачем тогда нам устраивать тебя к кому-то на фирму, когда ты не можешь справиться с элементарным условием? ph34r.gif

Что-то я там подтверждений этому не вижу. Как-то код примера файла говорит об обратном, по-моему.
joy_killer
Да, умеют же поставить в тупик формулировками.
Zzepish
Эт фигня. Я вчера ходил записывается на курсы (бесплатные) по java. Формулировка вопросов была такая, что сложней прочесть, чем ответить))) когда у меня спросили за результат, я сказал им это. Они сказали, что спецом так зделано, чтоб проверить работу мозга. Да и ощущение было, что не на курсы набирают, а на работу уровня мидла+
inpost
glock18
50 шаблонов. Пример кода - один из шаблонов. Правда шаблоны не в БД, видимо, а в файлах.
Так я понял задание, но что имел ввиду автор всего этого - не знаю. Может я ошибся, может я угадал его желание, не мне решать.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
glock18
Цитата (inpost @ 26.06.2014 - 11:46)
glock18
50 шаблонов. Пример кода - один из шаблонов. Правда шаблоны не в БД, видимо, а в файлах.
Так я понял задание, но что имел ввиду автор всего этого - не знаю. Может я ошибся, может я угадал его желание, не мне решать.

По-моему, ты недостаточно внимательно прочел задание.
inpost
glock18
А мне кажется, ты недостаточно внимательно прочел задание. laugh.gif
на этом можно закончить офф-топить ph34r.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
glock18
Ну, я лично не оффтопил. Тема как бы про эту формулировку. Что касается моих сомнений:

1. в задании нет ни слова о базе. Более того, нет даже намека на то, что она нужна. По сути, речь идет об одной маленькой функции, подключающей файл

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

3.
Цитата (joy_killer @ 25.06.2014 - 09:23)
- Приложение должно уметь подключать подобные шаблоны без указания типа файла, а только его имени, т.е "superbanner" ( возвращается код файла )

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

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

Ну и в целом, задание сформулировано на очень слабом проф. уровне. Формулировки уровня HR, к тому же смысла никакого адекватного не видно.
inpost
glock18
"Имеется множество шаблонов html/js"
Шаблоны где-то должны храниться. БД, файл, или генерироваться. Где-нибудь. Так как в задании не говорится ГДЕ, то можно хранение использовать своё.

Возьмем для примера superbanner.php с текстом:
Тут взят лишь пример, что может храниться шаблон в файле superbanner.php , но не говорится, что там он и должен быть. Снова же "для примера", могли бы взять пример и другой. Где-то хранить надо, я для себя расположил хранение в БД. + выше отписался: "Правда шаблоны не в БД, видимо, а в файлах. ". но разницы никакой где им лежать.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
joy_killer
А какой тогда возвращать код?
glock18
Цитата (inpost @ 26.06.2014 - 13:48)
"Имеется множество шаблонов html/js"
Шаблоны где-то должны храниться. БД, файл, или генерироваться. Где-нибудь. Так как в задании не говорится ГДЕ, то можно хранение использовать своё.


Хмм...

Цитата (inpost @ 26.06.2014 - 13:48)
Возьмем для примера superbanner.php с текстом:


Хмммммммм...
Цитата (inpost @ 26.06.2014 - 13:48)
Снова же "для примера", могли бы взять пример и другой


Хмм... Могли бы, да не взяли. Эдак вольно воспринимать задачи, это уметь надо!
Цитата (inpost @ 26.06.2014 - 13:48)
"Правда шаблоны не в БД, видимо, а в файлах. ". но разницы никакой где им лежать.


Очень даже видимо. В задании черным по белому сказано, что это файлы. Не знаю, каким образом superbanner.php мог даже натолкнуть на мысль, что там речь о чем-то другом. А разница есть по следующим причинам, и большая:

1. Заказчику (в данном случае, принимающему задание) важно, чтобы задание было выполнено с использованием озвученных средств. Может быть там вообще нет той либы или СУБД, под которые доблестный разработчик самостоятельно решит "улучшить" реализацию.

2. Работа может выполнять под уже готовое окружение, где уже есть 100500 файлов, и нужна только еще одна функция, которая будет с ними работать. Написать ее под mysql/postgre или любую другую базу просто трата своего и чужого времени.

Невнимательно прочитал задание, и в результате принял некорректное решение по реализации.
glock18
joy_killer
На вашем месте, я бы задал уточняющий вопрос, по поводу что за код это. Имеют ли они ввиду под этим содержимое файла, и как они представляют получение 50 кодов из файла. То ли там 50 ссылок, как в примере, то ли хз че. В любом случае, задача сформулирована очень плохо, я бы скорее удосужился бы им написать об этом и распрощаться, нежели уточнять что-то.

В целом вариантов, более-менее приближенных к написанному, и имеющих смысл, вижу два:
1. Более корректный:
в файле все переменные (айдишники, надписи и тп) заменены плейсхолдерами (типа %bannerId%) с целью замены их значениями из базы/свойствами объектов. Ни то, ни другое не было озвучено в задании.

2. Вариант тупой:
в файле элементы ссылок повторяются. Тупой потому-что, накладывает ограничение на html, поскольку все баннеры будут парситься одной регуляркой. Надо полагать, регуляркой. Этот более похож на описанное в задании, но в примере не хватает намека на то, что ссылок может быть больше одной.
inpost
glock18
Опять же. У тебя неадекватное восприятие. Тебе лишь бы докопаться до краюшка букв и наплевать на идею. Пусть решит человек с БД, или с файлами, какая разница?

Достать список из БД:
$links = array();
$res = mysqli->query();
while($row = $res->fetch_assoc()) {
$links[] = $row['link'];
}

Или из файла:
$temp = file_get_contents('superbanner.php');
$links = explode('|',$temp);

НИКАКОЙ РАЗНИЦЫ, задача на знание и умение работать в Yii + решение нестандартное как запоминание и вывод данных в процентном соотношении. Всё задание займет в 80-90 строчек кода. Ты прикопался к первым двум на выборку этих самых данных в массив. Глупо же ж!

Я перечитал 100 раз и я не вижу чёткой фразы о том, что перечень кодов лежат именно в одном файле, или в десятках файлов или в БД. В задании не говорится место, где лежат эти самые коды. Ты для себя выдумал в виду того, что не до конца обозначено задание. Но не пиши всех под одну гребёнку, тебе кажется это одним, а другие видят иное.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.