LINUX.ORG.RU
решено ФорумTalks

Сегодня рассмотрели троих кандидатов, и...

 , , ,


1

2

Шеф дал объявление на вакансию пыхера.
За вчера и сегодня пришло три решения тестового задания.

Надо было распарсить любую страницу любого сайта на наличие ссылок, и разделить их на три группы:

1) внутренние 2) внешние 3) находящиеся внутри тега <noindex> и/или имеющие атрибут rel со значением nofollow.

Это жесть, я вам скажу.
Первые два нагавнякали лапши.
Вся лапша работает ПО РАЗНОМУ, выпарсивает на разных сайтах разные наборы ссылок.

У третьего автора тоже лапша, но его лапша особенная — она заточена на парсинг ТОЛЬКО ОДНОГО сайта, по остальным говорит что ссылок нет ни одной.

Ааааааааааааааааааааааа!!!!!!!!! Хочу это все развидеть!

Я правда не видел сам текст вакансии.
Возможно в ней что-то (кеш|требования) слишком занижено, вот и попадаются такие «тимлиды»..

З.Ы.: Это не показуха илитарности. Это вопрошение: где искать вменяемых пыхеров?

Ответ на: комментарий от Zhbert

Не мешай человеку показывать свою илитарность

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

При чем тут илитарность? Где пыхера то нормального взять? Почему вот такие то попадаются?

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

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

buddhist ★★★★★ ()
Ответ на: комментарий от deep-purple

При чем тут илитарность?

Первые два нагавнякали лапши.

вот при этом

next_time ★★★★★ ()
Ответ на: комментарий от deep-purple

Пыхеров нормальных уже всех нашли, что осталось, то осталось.

backburner ()
Ответ на: комментарий от deep-purple

я в пыхе не шарю, но покажите, а то у всякого своё представление о лапшовости

next_time ★★★★★ ()

она заточена на парсинг ТОЛЬКО ОДНОГО сайта,

Интересно как?

if ($hostname eq "my-super.site") {
   extract_links();
}

Reset ★★★★★ ()
Ответ на: комментарий от deep-purple

[Hh][Rr][Ee][Ff]

Молодец, учитывает возможную разницу в регистре. Видишь же — старался.

i-rinat ★★★★★ ()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от Reset

За счет кривых регулярок, т.к. тестировалось, насколько судить, только на одном ))

deep-purple ★★★★★ ()

Тестовые задания годятся только для студентов и новичков. Собственно, они к вам и идут.

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

mono ★★★★★ ()

Взять тех, что есть на испытательный срок, выбрать из них наиболее обучаемого. Через годик подтянется на реальных задачах.

Sadler ★★★ ()

потому что агрономы не в чести. недавно 3 месяца (sic!) убили на то, чтобы закрыть одну единственную вакансию QA-автоматизатора с Java, тоже насмотрелся на клоунов.

vostrik ★★★☆ ()
Ответ на: комментарий от deep-purple

типичная перловая регулярка. лично мне крупных регулярок, до сих пор, удавалось избегать, но в чужом коде видел такие 100 раз.

next_time ★★★★★ ()

Эм, а чего сложного? Качаем страницу, прогоняем через tidy (выправляем битый (sic!) html в валидный), проходимся по DOM дереву. И это я просто на вскидку, на пыхе уже лет 7 не писал ничего серьезного.

ncrmnt ★★★★★ ()
Последнее исправление: ncrmnt (всего исправлений: 1)
Ответ на: комментарий от Reset
function extract_links(){
  return array("my-super.site/link1", "my-super.site/link2",...)
}

if ($hostname eq "my-super.site") {
   extract_links();
}

pi11 ★★★★★ ()

Вылаживай исходники

И что там за вакансия?

JN ()
Последнее исправление: JN (всего исправлений: 1)

вменяемых пыхеров?

Нет, только не это.

outtaspace ★★★ ()

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

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

Не знаю что за вакансия и какое описание к ней. Надо спрашивать у шефа.

deep-purple ★★★★★ ()

ну, они погромисты, и поставленную задачу выполнили. попробуйте в тестовом задании написать: НИКАКОЙ ЛАПШИ В КОДЕ.

м?

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

Эрзент же не может в толксы, так то да, был бы к месту ))

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

ну, код вы моего сайта видели, наверное, там точно такая же лапша.

нет, я не умею в классы.

Spoofing ★★★★★ ()
Ответ на: комментарий от deep-purple

Где пыхера то нормального взять?

Нигде, нормальный человек не будет связываться с PHP.

Почему вот такие то попадаются?

Потому что они лепят лапшу на других языках, а PHP к этому больше всего располагает ввиду низкого порога вхождения.

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

А ты посмотри внимательнее что там рыгулируется и как )) И это только одна макаронинка.

deep-purple ★★★★★ ()
Ответ на: комментарий от next_time

типичная перловая регулярка

То есть, ты таки считаешь, что парсить HTML регулярками — это нормально?

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

Без классов тоже можно, главное чтобы корректно собирались ссылки.

deep-purple ★★★★★ ()
Ответ на: комментарий от INFOMAN

Ни разу в жизни мне не приходилось вручную парсить HTML, не знаю.

next_time ★★★★★ ()

Это вопрошение: где искать вменяемых пыхеров?

Денег-то сколько насыпаете?

На hh.ru искать и снизить требования. Язык особого значения не имеет.

Vit ★★★★★ ()

Какая замечательная идея, под видом поиска работника получать разные реализации для своих нужд:) (сложнее даже можно задачи ставить)

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

Эмм, я не могу сейчас сказать что за вакансия т.к. не знаю где она висит. Но, требования.. Мне чот кажется что они там и так низкие. Ну или вилка.

deep-purple ★★★★★ ()
Ответ на: комментарий от Frost

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

deep-purple ★★★★★ ()
Ответ на: комментарий от Sadler

Да, ожидалось что будет почти так, там же еще доп условия есть. А они все на кривых рыгулярках намакаронили.

deep-purple ★★★★★ ()

Перефразируя анекдот:

пыхеры генерируют странички, а не парсят их

Так что вот...

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

Попробуй взять какой нидь фреймворк и под него переделать свой форум, разберешься в две секунды с классами. Даже интересно жить станет.

Frost ★★★ ()
Последнее исправление: Frost (всего исправлений: 2)
Ответ на: комментарий от mono

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

Будет смотреть, не переломится, если зарплата и работа интересные. На входе полный рандом.

Vit ★★★★★ ()
Последнее исправление: Vit (всего исправлений: 1)
Ответ на: комментарий от deep-purple

Между прочим, сколько не использовал регулярки в своей работе, никогда не мог запомнить их мнемонику.

То есть, когда нужно беру книжку/справочник и отлаживаю что мне надо, когда отладил вроде все помню и могу писать что-то мощное. Проходит максимум неделя и практически ничего не помню. Общие принципы помню, конкретные вещи улетучиваются.

praseodim ★★★★ ()
Ответ на: комментарий от deep-purple

Может вилка на студентов. Тогда нормально.

Vit ★★★★★ ()
Ответ на: комментарий от i-rinat

Видишь же — старался

Этот, видимо, тоже старался:

/<a href="([^<http>].*?)"/s

Для Ъ: откр галка, буква a, ОДИН пробел с кодом 13, последовательность символов href=", подмаска в которой может ничего и не быть, но, там будет все что угодно кроме символов <http> в любом порядке, ну т.е. по этой логике, не h не t не p в ссылке тоже быть не может.

deep-purple ★★★★★ ()
Последнее исправление: deep-purple (всего исправлений: 1)

где искать вменяемых пыхеров?

Кстати, зачем вам пыхеры? Судя по коду, вы ищете знатока перловых регулярных выражений (а пых тут только обертка). Перловики нынче редкие и дорогие.

outtaspace ★★★ ()
Ответ на: комментарий от deep-purple

у пробела аски код 32, а 13 и 10 это CR и LF перенос строки.

извините, я не в тему, просто хотел блеснуть %) знаю аски коды символов наизусть, программёрская жысть заставила. =)

Spoofing ★★★★★ ()
Последнее исправление: Spoofing (всего исправлений: 1)
Ответ на: комментарий от deep-purple

Этот, видимо, тоже старался:

Конечно. Видишь «/s»? Он учёл, что в ссылке могут быть переводы строк. Его тоже надо похвалить.

ну т.е. по этой логике, не h не t не p в ссылке тоже быть не может.

Только первый символ.

Кстати, а в каком виде ты ждал решения? Регулярками?

i-rinat ★★★★★ ()
Последнее исправление: i-rinat (всего исправлений: 1)

нужно на C++ написать модуль к PHP, в нем использовать QtWebKit, из DOM честно получить все ноды-ссылки, и после обработки пульнуть обратно в PHP. Ну написать пул из webkit'ов, конечно. За день, наверное, не получится, неделю надо точно.

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