среда, декабря 27, 2006

Горшки обжигают не Боги.

В нашем мире очень мало какого-либо совершенства. Все что вас окружает - это далеко не совершенство. К примеру, возьмем самого богатого человека на земле (СБЧ-3) и его продукт Windows. Посмотрите на исходный код windows, разве это можно назвать совершенством? Такое ощущение, что писал какой-то бухой программер.
void RPC_ENTRY
NDRCContextMarshall ( // copy a context to a buffer

IN NDR_CCONTEXT hCC, // context to marshell
OUT void PAPI *pBuff // buffer to marshell to

// Copy the interal representation of a context into a buffer
) //-----------------------------------------------------------------------//
{
#define hCContext ((CCONTEXT PAPI *) hCC) // cast opeqe pointer to internal
Или, например, вот это.

А посмотрите на реализацию сервиса www.campfirenow.com. Для особо любопытных рекомендую там зарегаться, войти и посмотреть трафф фиддлером, а только потом читать дальше ;) Вы увидите, что этот мега-сервис юзает мега-модную технологию Ajax. При всей этой модности и мега-веб.2.0-дизайна за такую реализацию надо бить по яйцам. Браузер опрашивает сервер каждые 3 секунды (!) и проверяет есть ли какие адресованные вам сообщения или нет. При таком подходе вы жрете нормально трафа (учитывая, что один запрос не меньше 200-300 байт), грузите сервер и доставляете сообщения с задержкой.

А посмотрите на антивирус Касперского. Бог мой, это просто кусок прикола. Мало того, что после установки система начинает безбожно якорить, так они еще и добились того, чтобы Microsoft порекомендовала их деинсталлить :)

При всем при этом вышеизложенное не мешает зарабатывать бабки. Конечно, в случае с campfirenow парням придется туго когда у них будет много пользователей. И нагрузка может расти по экспоненте, поэтому придется скорее всего переделывать архитектуру. Но это будет потом, а пока - cash flow time ;)

Признаться и я часто себя ловлю на мысли, что использую быстрые решения. Например, есть какой-нибудь файл в котором данные записаны в определенном формате. Надо быстренько переконвертить это дело в другой формат и забить. Я не стараюсь писать сильно красивый код, т.к. на этом этапе есть только начало и конец. Начало - это исходный формат. Конец - выходной формат. Какая разница, красивый или уродливый код обрабатывает этот файл, если в конечном счете результат один и тот же?

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

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

Мы живем не в идеальном мире. И наверное поэтому никогда не будет идеальных вещей. Наверное поэтому мы никогда не будем такими идеальными какими бы нам хотелось быть. Но у нас есть возможность поступать рационально. Именно так и нужно делать.

Комментарии: 1:

Anonymous Анонимный сказал(а)...

Ха.. Я вот сколько пишу, все стараюсь приблизиться к идеалу. А через пару месяцев смотрю на свой код - и говорю себе: "бля, ну какую же хуйню я написал. и ведь народ на этом работает!"

Может они тоже так - только на пути к совершенству? ;)

PS. А преобразование входного формата в выходной должно в идеале выглядеть как XSLT ;)))

2:07 AM  

Отправить комментарий

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница