?

Log in

"прошу прощения за эту функцию" - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

"прошу прощения за эту функцию" [сент. 19, 2001|12:27 am]
Anatoly Vorobey
Эта запись будет интересна, наверное, только программистам ;)

Вот описание одной функции, взятое прямо из исходников Живого Журнала:

# name: LJ::make_text_link
# des: The most pathetic function of them all. AOL's shitty mail
# reader interprets all incoming mail as HTML formatted, even if
# the content type says otherwise. And AOL users are all too often
# confused by a a URL that isn't clickable, so to make it easier on
# them (*sigh*) this function takes a URL and an email address, and
# if the address is @aol.com, then this function wraps the URL in
# an anchor tag to its own address. I'm sorry.

Ну что, господа программисты, знакомая ситуация? Кому не приходилось в то или иное время писать функции, за которые хотелось бы попросить прощения? ;)
СсылкаОтветить

Comments:
[User Picture]From: dmierkin
2001-09-18 02:36 pm
Да что функции, за цельные проекты надо прощения просить :-)
(Ответить) (Thread)
[User Picture]From: klvov
2001-09-18 02:40 pm
Хорошо было бы, если б ООП в школах и институтах преподавали по книге Гаммы, Хелма и др. "Объектно-ориентированное проектирование".
(Ответить) (Thread)
[User Picture]From: stas
2001-09-18 03:26 pm
Да что там АОЛ... У ОС, например, иногда такие интерфейсы встречаются - кино и немцы. Вот намедни работал с интерфейсом, который требует себе буфер для результатов, но какого размера - не говорит. Говорит только, хватило буфера или нет для результата, причем узнать, сколько надо, нельзя никак... :( Руки драть с корнем за такое.

А функция сама по себе не такая уж плохая. Я во многих форумах видел, что URLы в тексте там в линки превращаются. Довольно удобно. В мейле, правда, не очень надо - у меня при просмотре на экране линки и так распознаются :)
(Ответить) (Thread)
[User Picture]From: yan
2001-09-18 03:56 pm
Нет, не за что тут извиняться.
Программирование - обычно коммерческая деятельность; это означает постоянную готовность к компромиссу. Вы прежде всего должны сделать работоспособный в реальных условиях продукт, работоспособный и способный к эволюции. AOL и OCI (последний пример, с буфером, наверно, из OCI?) - это как климат, что на них сердиться. Вставь некрасивый кусок, прокомментируй и забудь.
О, сколько на свете генераторов постскрипта! И ваш интерпретатор обязан их вывод обработать и не пасть, сколько бы исключений ни пришлось при этом учитывать: вот самая емблема нашей жизни.
(Ответить) (Thread)
[User Picture]From: 37
2001-09-18 06:08 pm
Это отвратительно для небольшого автономного проекта, терпимо для большой системы и неизбежно для универсальных программ, обязанных в силу своего предназначения обеспечивать интерфейсы с самыми разнообразными средами, причем, увы, не только на этапе начального проектирования, когда это можно еще сделать поизящней, но и в течение всего жизненного цикла. В таком несчастном случае главное - прокомментировать пообстоятельнее не забыть, а то уже через месяц можно самому не понять, что за чудо нагородил.
(Ответить) (Thread)
[User Picture]From: anton
2001-09-19 01:24 am
Да ладно, не такая уж и страшная функция. Был бы программист русским, была бы очень высока вероятность появления в конце подобного коммента нескольких русских выражений в транслите по отношению к создателям AOL mail reader'а ;)

А насчет извинений - это, конечно, хорошо по отношению к тем, кто будет читать этот код после, но пользователям-то и вправду все-равно как выглядит исходник и работает их e-mail клиент - им важно чтобы линки выделялись...
(Ответить) (Thread)
[User Picture]From: some
2001-09-19 08:10 am

Простите за оффтопик, не знаю, куда еще вклиниться... :((

Но Вы, кажется, не читаете его, а там страшное сообщение всплыло:
http://www.livejournal.com/talkpost.bml?itemid=10976792
И - главное - не первый раз.
Как это может быть? И может ли, реально?
(Ответить) (Thread)