Блог

Высокие нагрузки у Эльдорадо

Я уже кажется писал про то, что с появлением iPad начал читать журнал Хакер в PDF формате и сейчас читаю вторую статью учебника по высоким нагрузкам. Я помню недавно в одном из предыдущих номеров читал интервью с одним из авторов этого цикла статей Олегом Буниным, бывшим сотрудником Mail.ru и удивился, как он легко делится своим хлебом.  

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

У нас используется не все, что описывал специалист из mail.ru, но базовые принципы используются. Мы очень много кэшируем и у нас это поставлено очень серьезно, поэтому сайт сваляется в пиковую нагрузку с приличным потоком пользователей. В пиковые часы у нас 100 тысяч пользователей выполняют операцию входа на сайт за час и рост базы составляет 10 тысяч пользователей в день. После этого они могут играть в игры, покупать товары на сайте и так далее. То есть активность на сайте приличная и со всем счастьем справляется один сервер базы данных и несколько (не буду говорить сколько серверов приложений). При этом загрузка на базе данных 20 часов в сутки не более 10% и в пиковые часы не более 40%. 

EntityFramework vs Dapper

Сегодня на работе собирались программистами и обсуждали, как будем жить дальше, что использовать. Все готовы использовать MVC 4, но что использовать для заднего плана? Мнения разделились поровну - EntityFramework и Dapper. Рад, что в компании половина программистов ценит скорость программ, умение писать SQL запросы и любят держать все под контролем. Хотелось бы больше. 

С другой стороны даже удивился, что нашлись те, кто любит бездушную машину EntityFramework. А что ты любишь использовать для доступа к базе данных - EntityFramework или что-то более низкоуровневое? Что именно? 

Магазин T-Mobile вызвал настольгию

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

BULK INSERT TMobileStore

TMobileStore выглядит прямо как Delphi класс. 

Лучшая РПГ для PSP

Закончил проходить God of War - Ghost of Sparta на PSP. Отличная игра. Вообще обе игры из серии God of War отличные и я прошел полностью Ghost of Sparta и Chains of Olympus. 

Сюжет отличные, бои достаточно интересные, графика просто великолепная, если учесть, что я играл на PSP Slim, которая невероятно старая и после нее уже вышло кажется три приставки с более мощными процессорами. До этого в PSP играли в основном сын и иногда жена, а тут вот я оторвался две игры полностью прошел. 

До этого я пытался найти хорошие РПГ-шки под PSP но постоянно попадалось фуфло. Я даже стал думать, что для портативной консоли невозможно создать что-то реально хорошее. 

Какой Web язык будет популярным

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

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

Хотел спросить ваше мнение насчет веб-программирования, какая веб-технология наиболее перспективна для зароботка в свободное время от работы на дядю, ближайшие 2-3 года? 

P.S.Сейчас пишу на плюсах, заком немного с дотнет технологией.

Какой язык программирования лучше

Читаешь новость с RSS или главной страницы? Открывай полную версию, чтобы видеть картинку. Я ее на главную вешать не стал, потому что слишком большая. 

Стрелка указывает на то, как программисты какого языка считают себя круче программистов другого языка. Интересно, что Java и Pascal программисты считают себя круче друг-друга. То же самое между программистами C++ и C#. 

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

DirectX или OpenGL

Это очередной халиварный и немного религиозный спор - что круче OpenGL или DirectX, а моя позиция как всегда заключается в том, что они оба хороши по своему.  

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

OpenGL доступна как на Windows, так и на набирающем популярность MacOS, постоянно постоянно сопротивляющемся, но как никогда перспективном Linux. А если говорить о мобильных платформах, то он доступен для iOS и Android. А это невероятно большой плюс.

Как заткнуть рот компилятору

Какой кайф от использования свойства Value? Уже не в первый раз у нас на работе укладывают разные части сайта тем, что используют что-то типа:

int? test = 1;

int test2 = test.Value;

Я спросил программиста, который написал подобного плана код - нафига ты использовал свойство Value? Я никогда это свойство не использовал (на самом деле использовал, интересно было узнать, что скажет программер на это), поэтому не понимаю смысла от его использования. Ответ программиста, который написал подобный код - я использовал Value, чтобы заткнуть компилятор. просто test2 не позволяет принимать нулевые значения, поэтому следующий код не скомпилируется:

Объявление переменных с помощью var

Когда впервые появилась возможность создавать в C# переменные без четкой привязки к типу во время создания, то я воспринял это с энтузиазмом. Иногда действительно var может оказаться удобным.  

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

Unit Тесты

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

Хорошо, что я для сервисов всегда пишу тесты. После рефакторинга запустил galileo и как-то спокойно на душе стало, что все существующие тесты прошли без ошибок. Возможно что-то не покрыто, но все равно, тестами проверен основной функционал и автоматическое тестирование сэкономило мне кучу времени. 

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне