Как стать автором
Обновить
16
0
Вадим @veitmen

Пользователь

Отправить сообщение

Создание архитектуры программы или как проектировать табуретку

Время на прочтение25 мин
Количество просмотров681K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

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

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →
Всего голосов 88: ↑85 и ↓3+82
Комментарии45

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №182 (19 — 25 октября 2015)

Время на прочтение7 мин
Количество просмотров28K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →
Всего голосов 37: ↑32 и ↓5+27
Комментарии4

14 вопросов об индексах в SQL Server, которые вы стеснялись задать

Время на прочтение26 мин
Количество просмотров1.1M
Индексы — это первое, что необходимо хорошо понимать в работе SQL Server, но странным образом базовые вопросы не слишком часто задаются на форумах и получают не так уж много ответов.
Роб Шелдон отвечает на эти, вызывающие смущение в профессиональных кругах, вопросы об индексах в SQL Server: одни из них мы просто стесняемся задать, а прежде чем задать другие сначала подумаем дважды.


От переводчика
Данный пост является компиляцией двух статей Роба Шелдона:

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

Перейти к чтению
Всего голосов 40: ↑37 и ↓3+34
Комментарии44

Как мы озвучивали стадион «Спартака»

Время на прочтение11 мин
Количество просмотров76K

На стадионе «Открытие Арена» помещается 45 360 человек — это аудитория хорошего поста на Хабре. Фото на момент начала наших работ.

Примерно 9% пользователей во время матча заняты тем, что кричат кричалки, шумят шумелки и жгут фаеры. 90% по ТЗ внимательно слушают речь комментатора и рекламу, а оставшийся 1% – плюется и говорит, что сделал бы звук лучше.

Именно эти звуки (рекламы и речи) мы должны были донести до каждого зрителя так, чтобы у него, с одной стороны, не лопнули барабанные перепонки, а с другой — он слышал всё нормально и отчётливо. То есть нужно было обеспечить равномерное покрытие и высокую разборчивость речи для каждого.
Читать дальше →
Всего голосов 116: ↑111 и ↓5+106
Комментарии27

Перевод интерактивного учебника «Problem Solving with Algorithms and Data Structures»

Время на прочтение3 мин
Количество просмотров64K
imageПривет, Хабр!

Мы (@ali_aliev и avenat) с удовольствием представляем вашему вниманию перевод интерактивного учебника «Problem Solving with Algorithms and Data Structures» от Брэда Миллера (Brad Miller) и Дэвида Ранума (David Ranum) из Luther College, что в Айове, США.

О чём?

В учебнике подробно рассматриваются, объясняются и анализируются наиболее часто используемые структуры данных и алгоритмы. Изложение идёт от простого (что такое алгоритм, как оценить его производительность) к сложному (деревья, графы) с живыми примерами и кодом. В качестве языка программирования выбран Python, а для тех, кто с ним плохо знаком, в первой главе есть большой раздел с его концентрированным описанием.

Авторы рассказывают о таких структурах данных, как стеки, очереди (в том числе с приоритетом), деки, хэш-таблицы, списки, деревья и графы. Последним двум вообще посвящены весьма не маленькие главы. Изложение не просто описательное: для каждой структуры предлагается вариант (а иногда и не один) её реализации на Python. Упор, естественно, делается на объектно-ориентированное программирование: создаётся класс, к нему пишутся методы, некоторые из которых авторы оставляют читателям для самостоятельной доработки. Затем идут примеры использования рассмотренной структуры и описание алгоритмов с её участием.

Одна из глав учебника посвящена рекурсии, в том числе её графическому представлению (фракталы). Разбирается несколько известных рекурсивных задач, а в конце наглядно демонстрируется, что эта методика, несмотря на её элегантность, отнюдь не «серебряная пуля».

Не обделены вниманием и классические алгоритмы для сортировки и поиска. И, естественно, для каждого из них анализируются производительность и «подводные камни», а так же даются рекомендации по применению. В последних главах, посвящённых деревьям и графам, даётся много материала об их разновидностях и связанных с ними алгоритмах. Изложение тут становится более сжатым, многие моменты просто описываются с тем, чтобы после прочтения главы читатель реализовал их самостоятельно.
Читать дальше →
Всего голосов 48: ↑48 и ↓0+48
Комментарии19

Как использовать PivotViewer для Silverlight в реальном проекте (часть I)

Время на прочтение7 мин
Количество просмотров855
На Хабре уже несколько раз писали об элементе управления PivotViewer, предназначенном для визуализации и фильтрации больших объемов данных. Я хочу поделиться опытом использования этого крайне интересного элемента в реальном проекте.

Если вы просто хотите узнать, что это такое и может ли это как-то пригодится в хозяйстве — прочтите хороший Обзор элемента PivotViewer для Silverlight от xaoccps, этого описания и примеров будет вполне достаточно. Но если вы подумываете об интеграции PivotViewer в какой-то из ваших проектов — эта история поможет вам сэкономить немного времени.

К слову сказать, к написанию этого топика меня подтолкнул комментарий к одному из обзоров:
Что я не люблю в подобных «how to» ( во всяком случае для WPF и SL, возможно и для других фреймворков ситуация такая же) — то что они похожи на путешествия по нескольким хорошо освещенным асфальтированным дорожкам в глухом лесу. Пока ты не сворачиваешь никуда — все классно, здорово и просто элементарно. Но стоит тебе свернуть хотя бы на шаг — и ты получаешь от дремучего леса по полной.

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

Перед тем как отправиться в путь, пара полуфилософских мыслей об этом элементе (если вас интересует только реализация — смело их пропускайте).
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии3

Анонс аудио-трансляции Apple Tablet Event

Время на прочтение1 мин
Количество просмотров965


Осторожно! Если вам не нравится продукция Apple, советую вам не читать Хабрахабр, Твиттер и новостные блоги в ближайшие несколько дней. Сегодня вечером в 21:00 по Москве и в 20:00 по Киеву и Минску состоится Apple Event, который будет проходить под лозунгом: «Come see our latest creation» (приходите познакомиться с нашим новым творением). Предположительно там представят новый пакет iLife’10, прошивку 4.0 для iPhone и one more thing… долгожданный планшет от Apple.

Послушать


По этому поводу Дин, Арина и я решили провести аудио-трансляцию, тем более, что у нас уже есть подобный опыт в прошлом. Мы не претендуем на экспертное мнение, но будем освещать это событие с позиции простых маководов. Приходите, будет очень интересно. Для тех, кто не успеет на трансляцию, мы собираемся сделать запись вещания.
Читать дальше →
Всего голосов 117: ↑75 и ↓42+33
Комментарии133

TOP-10 Flash-игр

Время на прочтение2 мин
Количество просмотров5.6K

Сегодня уже можно :)



1. Robokill. Вы управляете роботом, который перемещается по локациям и убивает противников. В процессе игры Вы зарабатываете деньги и можете усовершенствовать своего робота, покупая ему новое оружие, боеприпасы и т.д. Всего 10 затягивающих миссий.
Оф. сайт (триальная версия): www.rocksolidarcade.com/games/robokill Полная версия: robokill.hotbox.ru
Читать дальше →
Всего голосов 125: ↑88 и ↓37+51
Комментарии114

Новая демо-версия игры Hammerfight

Время на прочтение1 мин
Количество просмотров1.5K
Вышла новая демо-версия потрясающей игры Hammerfight (ранее известной как Hammerfall). Игра была в разработке около 2-х лет, и вот долгожданное продолжение истории. Примечательна эта игра своим способом управления и физикой. Вам понадобится только мышка, можно даже без кнопок ;)
image
Читать дальше →
Всего голосов 75: ↑56 и ↓19+37
Комментарии58

Google Wave Dev Preview

Время на прочтение2 мин
Количество просмотров890
Google Wave LogoКак посетителю трансляции Google I/O выдали мне доступ к девелоперскому превью Google Wave.
Впечатления, вкратце, такие: штука полезная и прикольная, но недоделанная, что, в принципе, и нормально для превью.
Подробнее
Всего голосов 48: ↑47 и ↓1+46
Комментарии26

Glimmer – jQuery-эффекты для вашего сайта за несколько минут

Время на прочтение2 мин
Количество просмотров2.3K
image
Сегодня я вам расскажу о замечательном WPF приложении, которое сильно упростит вам создание популярных jQuery-эффектов!
Читать дальше
Всего голосов 71: ↑46 и ↓25+21
Комментарии76

Scrolling в web slices или как впихать невпихуемое

Время на прочтение3 мин
Количество просмотров682
image Одна из новых возможностей IE 8 — это web slices, фрагменты веб-страниц, которые можно просматривать браузером не открывая всю страницу целиком.

И все бы хорошо, вот только одна неприятная мелочь — в preview окне для web slice нет автоматической прокрутки (scrolling). Если один и тот же html просто открыть в браузере и он там не помещается — полоса прокрутки появится, если в preview окне для web slices — прокрутки нет.

Для некоторых web slices это не играет никакой роли. Например, для лотов с eBuy, которые так любят приводить в пример. Один лот можно комфортно разместить в окошке размером 320 x 240 (размер preview окна по умолчанию). Однако часто web slices представляют собой какие-нибудь списки — последние новости, анонсы, комментарии, да мало ли. Попробуйте открыть страницу valuta.online.ua и добавьте web slice с курсами валют. А теперь откройте его в preview окне. Что, тоже пробуете крутить колесико мышки чтобы просмотреть содержимое, как и я?

image

В принципе, пользователь может растянуть окно до какого-то предела. Но не факт, что все поместится даже в этом случае да и управлять размерами окна сами вы никак не сможете. А изначально оно открывается размером 320 x 240 и никак не подстраивается под размер отображаемого html.

Конечно, что-то можно сделать и в этом случае. Например, ограничить количество элементов списка (первые 5) и выводить не более 100 символов в каждом элементе. Но тогда web slice может потерять свое главное преимущество и вместо информации, которую можно быстро просмотреть, превращается в обычный баннер типа «Эй, посмотри, что у нас есть! Хочешь посмотреть — заходи на сайт!».

Так что можно попробовать добавить прокрутку самому. Это будет выглядеть примерно так:

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Заголовок web slice</title>
    <style type="text/css">
      html { height: 100% }
      body { padding: 0px; margin: 0px; height: 100% !important; overflow: hidden; }
      #outer { overflow-x: hidden; overflow-y: auto; height: 100% }
      #inner { padding: 10px; }
    </style>
  </head>
  <body>
    <div id="outer">
      <div id="inner">
         <!-- Тут у нас размещен html нашего web slice -->
      </div>
    </div>
  </body>
</html>

В результате мы получим web slice, окруженный 10px отступами от краев preview окна. Если содержимое html не будет помещаться — появиться вертикальная прокрутка. Аттрибуты «overflow-x» и «overflow-y» уникальны для IE, но и сами web slices тоже уникальны для IE, так что проблему это не создаст.

Как будет выглядеть такая прокрутка можно посмотреть на примере online результатов футбольных матчей.

image

Есть еще один момент, на который нужно обратить внимание. Так как мы должны отдавать специально сформированный html для preview окна, простейший способ создания web slices при помощи 2-3 аттрибутов нас не устроит. Мы будем использовать «alternative display source» — возможность указать url, возвращающий html для preview. Для этого:

Создаем страницу, которая будет формировать нужный нам html. Допустим, это будет /webslices.php (/webslices.aspx — для .NET-чиков и просто /webslices для SEO оптимизаторов :)

Добавляем к коду web slice указатель на этот html:

<div class="hslice" id="slice">
  <span class="entry-title">Заголовок web slice</span>
  <a rel="entry-content" href="/webslice.php" style="display:none;"></a>
</div>

Более длинное описание вы сможете найти в моем посте "Web Slices для IE 8". Ну и конечно никакая статья не заменит документации по Web Slice в MSDN. Удачи вам в разработке!
Всего голосов 31: ↑30 и ↓1+29
Комментарии20

Волшебство из подвижных картинок и Audi Q5

Время на прочтение1 мин
Количество просмотров511
Ogilvy Johannesburg вспомнило об излюбленном детском способе создания волшебства в рекламе Audi Q5.
По-английски это называется flip book, в русском нет такого емкого слова, но едва ли не каждый из нас развлекался, рисуя на тетрадных листочках какого-нибудь персонажа в разных позах, а затем заставляя его двигаться быстро-быстро пролистывая страницы. Такие простые «мультики» — это такое наивное волшебство.
Audi Q5 и Ogilvy, совместно с продакшеном Egg Films, режиссером Kim Geldenhuys и пост-продакшеном Black Ginger, довели эту магию до совершенства, искусно соединив в ролике «Flip Book» движение из книг с фотографиями и реальную жизнь.
Потрясающие оптические иллюзии, созданные «вживую», отражают суть глобальной коммуникационной стратегии автомобильного концерна — «Идеально синхронизированный инжиниринг».
Всего голосов 12: ↑11 и ↓1+10
Комментарии6

Интервью в прямом эфире с Евгением Касперским (Лаборатория Касперского)

Время на прочтение1 мин
Количество просмотров1.3K
imageПривет. Сегодня у нас несколько неожиданная, но безусловно приятная новость. Дело в том, что небезызвестный клуб «Бизнес в стиле .RU» при нашей информационной поддержке устраивает интервью с Евгением Касперским — бессменным руководителем всемирно известной группы компаний «Лаборатория Касперского». Интервью, что важно, будет проходить в прямом эфире!

Беседа с Евгением, если все будет тип-топ, состоится уже сегодня, 23 марта, приблизительно в 16:00 по московскому времени. До этого момента мы, как водится, ждем ваших вопросов прямо в комментариях. Кроме того, вопросы принимаются по джабберу (Jid: styleru@jaim.at) и в конференции styleru@conference.jaim.at.

UPD: Всем спасибо, было интересно :) Запись эфира будет доступна тут же, но позже.
Всего голосов 49: ↑44 и ↓5+39
Комментарии111

Твиттер, музыка и непослушные медведи

Время на прочтение1 мин
Количество просмотров577
Первая муз. группа у которой есть твиттер @padlabearoutfit?

«Печальные и смешные тексты. Цепляет раз и навсегда.
Даже если по описанию вам покажется, что это всё лажа, то все равно скачайте и послушайте. Убедитесь сами или разубедитесь.» community.livejournal.com/i_am_rare/744020.html



««Пэдла Бер» родился и вырос в г. Ленинграде, в конце восьмидесятых, в интеллигентной семье. Музыкой начал увлекаться с шести лет, с интересом слушая записи А. Вертинского, Б. Окуджавы и, так называемых, «джаз» и «рок» ансамблей.» www.afisha.ru/blogcomments/3921

Скачать Padla Bear Outfit — hipster

Вот так вот твиттер и свободное распространение альбомов вполне привычно для современных артистов. Вы ещё считаете, что кому-то нужен продюссер?
Всего голосов 30: ↑11 и ↓19-8
Комментарии9

Podgames Weekly #21

Время на прочтение1 мин
Количество просмотров398
image
Подкаст начинает жить новой жизнью: 4 ведущих, новая структура подкаста. Начинается новая борьба за качество звучания. В ближайшие выпуски будем самосовершенствоваться, как в плане дикции так и в плане звучания, хотя уже сейчас PW выглядит гораздо лучше чем раньше, в первую очередь из-за разнообразия. Также теперь по просьбам слушаталей будет уделено время и ретро играм.
  • Mass Effect 2
  • Resident Evil 5
  • Bioshock 2 (сайт оригинала с артами, скриншотами Папочек и Сестричек)
  • Star Wars: The Old Republic
  • A Vampyre Story, вампирский квест на русском
  • Ретро квесты. Full Throttle, Larry 7, Curse of Monkey Island, Петька, Дракула 2. Сайт квестомании

Сайт подкаста — Podgames.ru
Партнёр подкаста — сайт Oboffsem.ru
Всего голосов 6: ↑2 и ↓4-2
Комментарии6

Gmail Labs — новые возможности

Время на прочтение1 мин
Количество просмотров666
Почта сегодня с утра поприветствовала радостным жёлтеньким «New stuff in Labs!». Любимый почтовый клиент обрастает новым функционалом, а именно:

Предпросмотр для YouTube, Picasa, Flickr и Yelp
Вместо обычных ссылок, смотрите превью фотографий, видеоклипов и отзывов (Yelp — это зарубежный сервис отзывов, «что — круто, а что — не круто») прямо в ваших письмах.

Отмена отправки
Ой, поспешили нажать «Отправить»? Теперь у вас есть возможность отменить отправку в течение нескольких секунд, и отредактировать письмо перед последующим отправлением.

Ежедневник на мобильном
Чтобы иметь при себе ваш список дел, где бы вы ни были — просто наберите адрес gmail.com/tasks в браузере вашего сотового телефона.

Offline
Пусть Gmail работает даже когда вы не в интернете! (Да, эта возможность уже была анонсирована ранее и о ней писали на Хабре, но, тем не менее, у гугла она держится в 'What's new').
Всего голосов 66: ↑53 и ↓13+40
Комментарии40

Первый взгляд на Google Voice. Видео и скриншоты

Время на прочтение2 мин
Количество просмотров10K
image
На прошлой неделе Google запустил Google Voice, новый сервис, который создает единый телефонный номер и ящик входящих сообщений для управления всеми вашими телефонами, переводит в текст голосовую почту и многое другое. Сервис пока в стадии бета тестирования, но мы можем подсмотреть.

Если вы помните, Google Voice это бывший GrandCentral, который Google приобрела в прошлом году. Google Voice может похвастаться многим из того, что делал GrandCentral, но у сервиса есть и свои интересные функции. Если вы уже являетесь пользователем GrandCentral, вы сможете присоединиться к Google Voice (если еще не сделали). Давайте взглянем.
Читать дальше →
Всего голосов 95: ↑91 и ↓4+87
Комментарии85

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность