Re[4]: А задача гласила... )))
От: xobotik Россия  
Дата: 30.06.10 15:57
Оценка:
Здравствуйте, lost_guadelenn, Вы писали:

_>Здравствуйте, xobotik.


_>Вообще, Мыщъх описал как-то все уж сильно абстрактно и общо.

_>А у тебя схема, конечно, красивая, но отражает постановку задачи, а не реализацию. (тебе в менеджеры надо )

Ага, в топ менеджеры стажеры=)))))))))))

_>На практике у каждого сайта будет свой неповторимый набор прайсов.


Только этот неповторимый набор не по прямым ссылкам парсируется)

_>Вряд ли требуется обрабатывать больше десятка-двух сайтов (иначе совсем другой разговор, но, судя по описанию, фирма не того полета).

_>Для каждого прайса придется писать свою разбиралку (точнее, свою маленькую часть внутри общей разбиралки),

Да это понятно, тут сложнее написать под каждый сайт забиралку этих прайс листов) Везде забиралки будут разные ибо все сайты по разному их раздают)

_>Разбиралка делится на crawler, который выкачивает файлы, и на парсилку, которая их пихает в БД.


Вот эта забиралка загвоздка.

_>Все это вешается в шедулер.

_>Прикручивается веб-морда, если надо.
_>1с или вытягивает данные готовые из БД, или после парсилки они туда запихиваются — тут я хз как 1с устроен.
_>На сайте страничка с даннными из БД, один-в-один почти.

X>>Интерпретатор в мыслях был (но блин реализовать его — пипец). Дали бы год на систему, не включаю проектирование, составление ТЗ и так далее, я бы решил в лучшем виде.


_>Если оценивать сроки на все, то это порядка недели-двух.


Ага, конечно)) АОП + Индусское программирование в одном классе MainForm + Длина методов в каждом обработчике событий от 1000 строк)) Я уже так умею писать =)))) А вообще ищу работы не ради денег, на деньги как-то пофиг, я за курсачи и проги студентам получу все равно больше)

Спасибо)
С уважением!
Re[4]: А задача гласила... )))
От: xobotik Россия  
Дата: 30.06.10 16:08
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>Здравствуйте, xobotik, Вы писали:


М>>>1) есть K форматов прайс-листов;

X>>Забыли про N сайтов, где могут быть M прайс листов.
М>какая разница сколько _листов_ ? у нас должна болеть голова только о входных форматах. ну и, возможно, за автодетект формата (если требуется).

М>с точки зрения декомпозиции это выглядит примерно так:

М>1) создаем список урлов прайс-листов (вручную или гуглом или еще как -- не суть);
М>2) wget'им эти прайс-листы, или получаем их по почте и вытаскиваем атач;
М>3) выдираем контент с учетом формата документа;
М>4) выдираем из контента набор поле-значение с учетом формата представления контента;
М>5) ...

>> И не факт, что на каждом сайте будет один прайс лист.

М>ну вот покажите где в приведенной мной схеме (а ей можно доверять) пересекаются сайты с кол-вом прайсов? на втором шаге у нас есть задача скачать урлы. и все! мы вообще не в курсе один это сайт или несколько (ну разве что для оптимизации не авторизоваться каждый раз и разбить сайты на группы, но это уже микроуровень).

X>>И если их больше одного, то надо синхронизировать эти прайс листы на одном сайте и выбрать самый полный и новый.

М>самый полный И самый новый это как? я думал, что всякий новый прайс отменяет старый. или тут какая-то хитрая логика их объединения? например, в старом были трубы медные и чугунные, а в новом только пластиковые. что делать будем? первый прайс более полный, второй — более новый. (я ж не знаю специфики этих прайс-листов. там могут публиковаться и одни новинки. и у прайса может быть задано когда он expired, а может и нет. и даже если expired не задано, но прайс уже год как не обновлялся это так же нужно предусмотреть, но это по любому очень низкий уровень бизнес-логики. на высоком все укладывается в извлечение поле-значение. а у поля есть атрибуты. что за атрибуты? ооо... ну вот время мы уже упомянули. еще бы неплохо вести rank достоверности, а то ведь есть и нечестные на руку товарищи, а еще полезен флаг "скрытый" — чтобы не отображать, флаг "прошел проверку и подтвержден"... ну в общем атрибутов может быть много)

Во во что-то типа этого))

X>>С сайтов надо еще загрузить (возможно на сайт понадобится авторизация, а возможно и нет),

X>>а это может происходить по средствам сайта (запрос какой -то службе сделать) или тупо в ручную по ссылке, или
X>>на сайте нужно с генерировать прайс лист.
М>верно, но с точки зрения декомпозиции "харвестр", собирающий прайсы, ничего не знает за их внутренний формат. он даже не интересуется pdf это или html, а вот на следующем уровне мы не интересуемся откуда эти прайсы были собраны.

М>>>I) контент-экстрактор, который берет HTML, PDF, XML, ZIP или что у нас там...

X>>В этом определенности нет, везде могут быть разные форматы.
М>в практическом плане это значит, что нам надо поддерживать до хвоста фильтров. одни архиваторы чего стоят. там же и rar может быть. а внутри rar — ms word.

А внутри rar'а еще rar это будет жесть просто)

X>>Бизнес логику прорабатывать программисту тут надо. Её так таковой нет в форме ТЗ или хотя бы в форме документа.

М>замечательно. впрочем, чего еще ждать? формализация бизнес-логики -- это больше, чем половина задачи.

Формализация бизнес логики и написание ТЗ 50% ))

X>>Интерпретатор в мыслях был (но блин реализовать его — пипец).

М>все не так страшно. если нам нужно писать парсер для двух-трех очень разнотипных форматов, то быстрее это сделать на C#, если же нам нужно парсить с десяток вариаций табличного представления, то свой "язык" рулит.

X>>В любом случае отказался от вакансии. Не вижу будущего. Спасибо=)

М>я бы тоже отказался. люди сами не знают, что им нужно. с такими трудно.

Вот вот, ибо если работать с ними, по ходу работы это может проявляться)

X>>P.S. Не NP ?


NP полная система?) Помоему да.
Если учесть что форматы не вечные и сайты могут по разному отдавать прайс листы (что-то поменяли взяли и все пипец).

Спасибо огромное)

Пользуясь моментом, хочу поблагодарить вас за ваши книги, а именно "Компьютерные вирусы. Изнутри и снаружи", "Восстановление данных. Практическое руководство". Очень любил их читать в школе на уроках информатики)
Спасибо еще раз)) Всех успехов и удачи вам=)
С уважением!
Re: А задача гласила... )))
От: novako  
Дата: 30.06.10 16:44
Оценка:
X>Выводы сделал =)
X>P.S. Жизнь классная штука
X>P.S.S. Название фирмы не разглашаю в целях не найти в почтовом ящике повестку на суд. =)
X>P.S.S.S. Старался написать, чтобы было смешно, если я не прав в рамках этого сообщения, не ставьте минусы плиз.

Был случай и у меня аналогичный, в 2003 году, месяц провозился с разбором того что у них к чему, при чем главным образом они между собой обсуждали. Суть была такой оставлять им учет в экселе в котором колонок не хватало или писать софт с нуля под их задачи. Задачи по учету продаж на большом таком базаре 140 футбольных полей, у них аж 20 точек было. Так вот за один день последний который я у них был, они 4 или 5 раз передумали эксел или программа. после этого я плюнул на все эту кашу и больше их не видел. мораль такова если нет конкретики лучше не связываться в принципе а то потом сам еще будешь виноват или денег не получишь.
Re[8]: А задача гласила... )))
От: Ромашка Украина  
Дата: 30.06.10 18:42
Оценка: +2
Здравствуйте, xobotik:
> Согласен полностью)

А зря. В реальной жизни один черт не работает. Книги и прочие
паттерны от BulatZiganshin все равно начинаешь понимать только после
наступания на грабли.
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[9]: А задача гласила... )))
От: BulatZiganshin  
Дата: 30.06.10 20:49
Оценка: 6 (1)
Здравствуйте, Ромашка, Вы писали:

Р>А зря. В реальной жизни один черт не работает. Книги и прочие

Р>паттерны от BulatZiganshin все равно начинаешь понимать только после
Р>наступания на грабли.

даю разъяснения

1. человек учится только на своём опыте. поскольку человек — это такое же животное, как и все, и никаких книжек у животных не существовало. единственный способ научиться — это попробовать самому и на своём собственном опыте ощутить что такое хорошо и что такое плохо

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

это верно для обучения в любой области человеческой деятельности
Люди, я люблю вас! Будьте бдительны!!!
Re[4]: А задача гласила... )))
От: nebotan27 Россия  
Дата: 30.06.10 20:58
Оценка:
Здравствуйте, мыщъх, Вы писали:

X>>Интерпретатор в мыслях был (но блин реализовать его — пипец).

М>все не так страшно. если нам нужно писать парсер для двух-трех очень разнотипных форматов, то быстрее это сделать на C#, если же нам нужно парсить с десяток вариаций табличного представления, то свой "язык" рулит.

Главное, не преизобрести в итоге shell, awk, perl, Unix crontab, конвеейрную обработку через '|' (обмен данными между скриптами) и даже консольного unix клиента аля Putty.

Как-то довелось переводить плохо написанную и ужасно многословную Java конвертилку на скрипты. Support team был очень признателен, ибо они могли сами делать быстрые фиксы без моего участия.

P.S. Думается, что формат этих прайс листов будет в большинстве случаев тривиален и awk хватит за глаза.
Re[10]: А задача гласила... )))
От: s.ts  
Дата: 30.06.10 21:13
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

Добавлю только, что этап осознания неправильности решения д.быть как можно раньше.
Это и обеспечивают старшие товарисчи.
Т.е. можно конечно развивать свою тему годами, пока не взорвется.
Но если те самые товарисчи тебе объяснят, что на это годы тратить не нужно, то экономия времени налицо.
Re[5]: А задача гласила... )))
От: мыщъх США http://nezumi-lab.org
Дата: 30.06.10 22:30
Оценка:
Здравствуйте, nebotan27, Вы писали:

N>Здравствуйте, мыщъх, Вы писали:


X>>>Интерпретатор в мыслях был (но блин реализовать его — пипец).

М>>все не так страшно. если нам нужно писать парсер для двух-трех очень разнотипных форматов, то быстрее это сделать на C#, если же нам нужно парсить с десяток вариаций табличного представления, то свой "язык" рулит.

N> Главное, не преизобрести в итоге shell, awk, perl, Unix crontab, конвеейрную обработку через '|'

...
N> P.S. Думается, что формат этих прайс листов будет в большинстве случаев тривиален и awk хватит за глаза.
там ключевое слово было (не отквочено) "естественный", то есть такой, который можно будет освоить и секретарше (ага, сферической в безвоздушном пространстве). но ведь и в самом деле! тут все зависит от того хотим ли мы и дальше сидеть на поддержке этого продукта до пенсии или же предоставляет коллегам возможность работать с ним самостоятельно.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[9]: А задача гласила... )))
От: xobotik Россия  
Дата: 01.07.10 00:08
Оценка:
Здравствуйте, Ромашка, Вы писали:

Короче книги грубо говоря — теория. Практика — это решение задач. И как бы классно паттерн проектирования или еще что-то не излагался в книге (или еще в каком-нибудь материале), сразу сесть и использовать паттерн или еще что-то после только прочтения и изучения , ну не возможно (сугубо личный опыт). Пока ты не решишь N задач, которые как-то склоняются к этому паттерну или еще чему нибудь ты этот паттерн или еще что-то не поймешь)

Пример!

Понял всю теорию связанную с интегрированием, пока не решил два задачника (Тот самый Демидович и еще один, какой не помню автора).
Понял, но сейчас наверно забыл все, помню только часть ибо давно этим не занимался.

Вывод!

Даже если ты понял паттерны или еще что-то посредством решения N задач, все равно нужно поддерживать эти знания и решать еще какое-то M задач постоянно, чтобы не упустить из головы)

P.S. Сегодня друг с армии пришел, выпил ... =) Извините заранее, если несу бред) Но все таки это не с неба взято, личный опыт только.
С уважением!
Re[4]: А задача гласила... )))
От: Unhandled_Exception Россия  
Дата: 01.07.10 08:30
Оценка: 1 (1)
Здравствуйте, Evgolas, Вы писали:

E>Программирование — такая вещь, которую можно только самому своим опытом изучить и понять.


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

совместная работа действительно может сильно обогащать. совместные code review, обсуждение подходов, как лучше сделать то-то и то-то, как делать не надо, и почему так делать не надо. для готового слушать новичка это может быть бесценно.
Re[10]: А задача гласила... )))
От: Ромашка Украина  
Дата: 01.07.10 08:38
Оценка:
Здравствуйте, BulatZiganshin:
> даю разъяснения

Согласен. Теперь это выглядит не как обезьянничание (простое
повторение), а как осмысленная человеческая деятельность.
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[5]: А задача гласила... )))
От: lost_guadelenn  
Дата: 01.07.10 08:49
Оценка:
Здравствуйте, xobotik.

_>>На практике у каждого сайта будет свой неповторимый набор прайсов.

X>Только этот неповторимый набор не по прямым ссылкам парсируется)
Набор сайтов заранее известен?

_>>Вряд ли требуется обрабатывать больше десятка-двух сайтов (иначе совсем другой разговор, но, судя по описанию, фирма не того полета).

_>>Для каждого прайса придется писать свою разбиралку (точнее, свою маленькую часть внутри общей разбиралки),
X>Да это понятно, тут сложнее написать под каждый сайт забиралку этих прайс листов) Везде забиралки будут разные ибо все сайты по разному их раздают)
А что там сложного?
Не скажу про C#, но на скриптовых языках залогиниться, пройти по нескольким ссылкам, вытянуть из кода странички какие-то данные... ну не несколько строк, ну пару десятков.
А из виденных в жизни сайтов, экселька с прайслистом лежит, как правило, по прямой ссылке.

_>>Если оценивать сроки на все, то это порядка недели-двух.

X>Ага, конечно)) АОП + Индусское программирование в одном классе MainForm + Длина методов в каждом обработчике событий от 1000 строк))
Качество кода зависит не от задачи, а от программиста. -)
Если ты настолько джуниор, то умножь мою оценку на какую-нибудь константу > 1
Re[4]: А задача гласила... )))
От: __kot2  
Дата: 01.07.10 11:44
Оценка: +1
Здравствуйте, Evgolas, Вы писали:
E>Программирование — такая вещь, которую можно только самому своим опытом изучить и понять.
я могу по себе сказать, что наибольший опыт я получил именно от совместной работы с мощными людьми. мы могли с ними может быть и обмениваться всего пятиминутным разговором в день, но когда пишешь совместный код и когда твой руководитель уже нестолько опытен, что ужасно ленив и с радостью сваливает на тебя всю работу, то можно очень быстро освоить такие вещи, которые в одиночку ты не поймешь и тем более с нуля не сделаешь никогда сам.
Re[5]: А задача гласила... )))
От: Ромашка Украина  
Дата: 01.07.10 13:52
Оценка:
Здравствуйте, __kot2:
> я могу по себе сказать, что наибольший опыт я получил именно от
> совместной работы с мощными людьми.

Это не значит, что это единственный (верный, лучший, самый быстрый)
путь. Ну или, по крайней мере, требует серьезных аргументов и/или
доказательств.

> мы могли с ними может быть и

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

Тут логическая ошибка — кто-то до этих вещей сначала в одиночку
додумался, понял и сделал.
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[11]: А задача гласила... )))
От: BulatZiganshin  
Дата: 02.07.10 06:21
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Согласен. Теперь это выглядит не как обезьянничание (простое

Р>повторение), а как осмысленная человеческая деятельность.

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

и если ты не претендуешь на лавры Рошаля или Кея, на собеседовании у тебя будут спрашивать не сколько новых велосипедов ты изобрёл, а сколько чужих освоил
Люди, я люблю вас! Будьте бдительны!!!
Re: А задача гласила... )))
От: mylogin Россия  
Дата: 04.07.10 06:59
Оценка:
Здравствуйте, xobotik, Вы писали:

X>Расскажу небольшую историю про моё первое собеседование в жизни, которое кстати было недавно.

X>"...Мда. И до чего людей кризис доводит."

X> На сайте выложил свое резюме (программист-стажер C#). Позвонили, назначили собеседование (отклики я этой фирме не отсылал) ну все пока, что идет классически. На собеседовании собеседовал один человек, этот человек в дальнейшем оказался директором этой фирмы. Вопросов по языку не было вообще, что весьма насторожило, да и вообще по программированию как таковому не было вопросов.

X> Его разговор начался: "...У нас есть задача...". Задачу обсудили, потом пришли еще два сотрудника, один кидался умными фразами, сам того не понимаю, что они значат, другой молчал, он был сис. админом (ну не знаю наверно не по этому молчал). Говорили долго, в конечном итоге устал я говорить взял листочке в прямоугольниках им нарисовал и подписал, что они хотели. ни обрадовались и сказали: "Да это так. То что надо". Собственно схема выглядела следующим образом:
X>
X>Задача гласила в текстовом варианте:
X>1) Есть набор ссылок;
X>2) По ним качаются файлы — прайс листы (в exel формате или в других). Файлы представляют из себя структуру описания товаров, везде эти структуры разные;
X>3) Потом вся информация из этих файлов добавляется в единую БД по фильтру, то есть добавляется только то, что нужно (пример: id, описание, цена, где товар?)
X>4) Эта информация синхронизируется с сайтом одним. У него другая структура.
X>5) БД должна поддерживать обмен информацией с 1C Предприятием.
X>Ну в принципе вот такая задача была сказана на собеседовании.
X> Назначали на следующий день еще одно собеседование, ну там с юристом и так далее. Приехал сел, подготовил четкое, со многими диаграммами эту задачу, расписал её по максимуму и т.д.
X>Посмотрели, "...Ну не совсем..."
X> Разговор уточнения этого "не совсем" длился очень долго, время не засекал, но курить жутко хотелось. Понял что они хотят минут 40 назад, написал схему (извините что не такую красивую как первую):
X>
X> Мего такую систему написать =) Ну это только бизнес-логика, GUI они хотели такой, чтобы можно было всем управлять, а так же ставить на автомат и не управлять. И система должна работать по расписанию, а именно под каждое обновление прайс листа.
X> Еще хотел добавить, сначала оговаривалось, что время испытательного срока будет неделя, но во второе собеседование стало известно что два месяца.
X> Зарплата 12 000 р. в месяц! Ну не знаю. Помимо разработки такой системы надо будет еще решать какой — то набор задачек, которые автоматизировали какие-либо процессы, ну и в 1С Предприятие (документооборот поставлен на это у них) вносить изменения какие -то.
X> Отказался! Славу богу ничего не подписал, не люблю подписывать! Причем сроки были поставлены на систему минимальные ибо без этой системы они потихонечку теряют клиентов.

X>Выводы сделал =)

X>P.S. Жизнь классная штука
X>P.S.S. Название фирмы не разглашаю в целях не найти в почтовом ящике повестку на суд. =)
X>P.S.S.S. Старался написать, чтобы было смешно, если я не прав в рамках этого сообщения, не ставьте минусы плиз.

X>Всем удачи и побольше
Re[2]: А задача гласила... )))
От: mylogin Россия  
Дата: 04.07.10 07:04
Оценка:
Целых 12000р за ЭТО? В Москве?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.