вторник, 14 сентября 2010 г.

Внутри stackoverflow: первые впечатления

Я уже упоминал, что недавно зарегистрировался на stackoverflow. Хочу поделиться первыми впечатлениями использования этого сайта.


Первым делом, отмечу, что вопросы я сам пока не задавал, только отвечал. Как правило, у меня банально не хватает терпения дождаться хорошего ответа. Работа авральная, решения нужны быстрые. Если хорошего решения не находится сразу, в течение получасового поиска в гугле - использую какой-нибудь workaround. Но не все такие, как я. И помогая людям, которые задают вопросы, я и сам многому могу научиться.


Как, наверное, и на любом популярном ресурсе, на stackoverflow очень развитая система рейтинга и привилегий. Набираешь рейтинг, если твои ответы или вопросы апают (т.е. голосуют за них), а также если отмечают их как решение. Еще, есть такая интересная фишка, "bounty questions", это вопросы, за которые спрашивающий может дополнительно "приплачивать" собственным рейтингом. Набирая определенное количество рейтинга, получаешь новую привилегию...

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

Вопросов пруд пруди. Причем, несмотря на то, что по SharePoint'у там комьюнити не очень большое, всё равно не отвеченных вопросов сотни. Можно сидеть бесконечно долго, и отвечать, отвечать, отвечать. Между прочим, часто в процессе поиска вопросов, и в процессе написания ответов, находишь для себя что-то новое, интересное. SharePoint большой, вот мы например уже полгода на работе 2010-ю версию используем, а как выясняется, о многих новых фишках - даже не догадываемся...

Но знания о новинках - это еще далеко не весь профит, который можно получить на stackoverflow.

Во-первых, здесь запросто можно найти некоторых интересных людей. Их легко заметить - они грамотно и активно отвечают на вопросы, и задают свои - очень нетривиальные. У каждого есть профиль - а в профиле есть сайт/блог, на котором, как правило, много всего можно найти.

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

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

Наконец, английский тоже нужно импрувить. Кто знает, может, когда-нибудь сорвусь, уеду. А то детей ведь жалко, в такой бандитской стране их растить не слишком хочется...

Но, вернемся... Есть некоторые минусы, есть некоторые неудобства и несоответствия. К примеру, даже если ты ответил на вопрос правильно - никакого профита (в виде +рейтинга) не получишь, пока кто-нибудь не апнет ответ, или автор не отметит вопрос как правильно решенный. А авторы вопросов про это регулярно забывают. Да, и в вопросы, у которых один или более ответов, народ с большим рейтингом заглядывает весьма редко.

Кроме того, встречаются отвечающие, которые в погоне за рейтингом действуют "на грани фола". К примеру, отвечают также, как ты, но переформулируют, или скриншот какой-нибудь добавляют и т.п. Автор не смотрит на дату ответа, и вполне может принять ответ от такого человека. И ведь придраться не к чему, ответы вроде как немного различаются... :)


Есть еще система флагов, то есть можно сообщить модераторам, о том, что вопрос, ответ, или комментарий являются спамом или не содержат смысла, содержат рекламу, содержат нецензурные выражения и прочее. Поскольку на stackoverflow я пока еще не сталкивался с откровенно некрасивыми постами, надо думать, система флагов работает неплохо.

Вообще, признаюсь честно, сайт stackoverflow мне очень понравился. Главным образом, отменным юзабилити и весьма продуманной системой. Всегда казалось, что всё-таки, пальму первенства держат MSDN-овские форумы. Ан нет!

Сайт сделан на C#, ASP.Net MVC, и с MS SQL Server в качестве СУБД. Большой плюс в наш дотнетовский огород :). При этом, кстати, сайт очень быстрый. Меня поразил у них один интересный прием. Оказывается, ВСЕ картинки, которые вы видите на сайте (кроме баннеров), на самом деле хранятся в одной единственной, sprites.png :)

Регистрация на сайте максимально простая. Удобные кнопочки для OpenID-провайдеров, к примеру, я там зарегился через свой гугловский аккаунт - буквально, двумя кликами. Для аватарок используется gravatar. Пришлось региться, но с другой стороны, глобальное хранилище аватаров - не такая уж и плохая идея. По закачке скриншотов никаких видимых ограничений нет, скриншоты закачиваются легко и удобно. Разметка кода именно такая, какая хочется - в цветах Visual Studio, привычная и понятная. Вообще, редактор для отсылки вопросов/ответов весьма удобный, и при этом быстрый и безглючный. Ребята решили не париться с браузерозависимым и очень тяжелым WISYWIG, вместо этого подкрутив под textarea предпросмотр в реальном времени.

Вот такие вот первые впечатления.

4 комментария:

  1. А чем не нравится этот форум - http://social.msdn.microsoft.com/Forums/en-us/category/sharepoint2010 ?

    ОтветитьУдалить
  2. я и на MSDN зареган, ага. там тоже есть свои фишки и интересности. на мой взгляд, нормальных вопросников вообще всего два - стаковерфлоу и форумы мсдн.
    но... юзабилити на мсдн похуже, дизайн тоже похуже, и система, мне кажется, тоже менее продумана.
    просто реально, несколько постов видел, где модераторы не особо разбираясь помечают ответ как правильный (причем, иногда даже СВОЙ собственный ответ), а в итоге оказывается что это нифига не так...

    ОтветитьУдалить
  3. привет монстряга... ;)

    >>> Меня поразил у них один интересный прием. Оказывается, ВСЕ картинки, которые вы видите на сайте (кроме баннеров), на самом деле хранятся в одной единственной, sprites.png :)


    вообще это хорошая практика сокращения количества roundtrip-ов на сервер, если посмотришь на google, yandex, у них также как и у множества других ресурсов точно такая же практика...

    тоже самое касается сборки js-файлов в один, например, если в asp.net используются ajaxcontroltooltit это приводит к куче обращений к scriptresourcehandler.ashx за js-ресурсами...чтобы сократить количество таких вызовов применяют практику клмбинирования скриптов, описанную здесь:
    http://www.hanselman.com/blog/ASPNETAjaxScriptCombiningAndMovingScriptResourceaxdsToStaticScripts.aspx

    По некоторым другим вопросам оптимизации, в том числе и по использованию спрайтов, рекомендую посмотреть здесь:
    http://www.uxbooth.com/blog/how-to-minimize-load-time-for-fast-user-experiences/

    ОтветитьУдалить
  4. ого, Хансельман и в js наследил, круто.
    ну кстати он как раз ярый поклонник и видимо даже немного соучастник StackOverflow, т.к. это самый большой проект, написанный на ASP.Net MVC :)

    да, с axd оч. интересно, щас почитаю. в шарике полно проблем с производительностью)

    ОтветитьУдалить

Внимание! Реклама и прочий спам будут беспощадно удаляться.