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

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

 , , ,


1

2

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

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

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

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

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

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

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

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

★★★★★

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

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

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

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

next_time ★★★★★
()

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

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

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

Reset ★★★★★
()

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

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

mono ★★★★★
()

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

Sadler ★★★
()
Ответ на: комментарий от 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 ★★★★★
()

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

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

outtaspace ★★★
()

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

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

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

deep-purple ★★★★★
() автор топика

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

м?

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

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

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

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

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

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

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

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

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

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

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

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

next_time ★★★★★
()

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

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

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

Vit ★★★★★
()

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

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

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

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

Как-то так? http://stackoverflow.com/questions/4423272/how-to-extract-links-and-titles-fr... . Или требовалось ещё обязательно из js и прочих выдёргивать всё, что похоже на ссылки?

Sadler ★★★
()
Последнее исправление: Sadler (всего исправлений: 1)
Ответ на: комментарий от 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 ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.