Home

Путь программиста

Рассуждаю о культуре программирования

New main avatar

Обзор продуктов Atlassian для командной разработки

В рамках уникальной акции, любой из продуктов Atlassian можно приобрести всего за 10$, это прекрасная возможность решить все организационные проблемы небольшой команды (до 10 человек) удобными и функциональными инструментами командной разработки. Чем грозит переход инфраструктуры проекта под управление Atlassian?

Read more... )

New main avatar

Скрытые возможности С++

Хотите ли вы открыть ящик Пандоры с неплохим наборчиком крючков? Добро пожаловать под кат.Read more... )
Теги: ,

New main avatar

Что нужно знать разработчику про Windows 7

windows 7Доведенная до ума Vista, получившая в итоге новое название "Windows 7", не имеет революционных изменений и очень дружественно относится к унаследованному софту. Программы работающие на Vista, c 99% вероятностью будут работать и на 7, однако чтобы в полной мере воспользоваться новыми возможностями, необходимо по меньшей мере о них знать.
Read more... )
Теги: ,

New main avatar

Долгожданный релиз и конкурс code7

fanvista_logo.jpgУ программиста, фанатеющего от своей работы, обязательно должен быть небольшой (или большой) хобби-проект, которым он занимается в свободное от основной работы время. Не помню, где я это слышал, но у таких проектов есть очень точное название "midnight project". Обычно это некоммерческая программа, возможно open source, часто всего лишь just for fun, однако позволяющая разработчику изучить новую технологию, среду, платформу, систему, язык и т.д. Работа над прогой ведется исключительно ночью и в редкие выходные, поэтому сроки релиза могут растягиваться на долгие годы. Сегодня я горд тем, что состоялся наконец-то релиз моего midnight project, который имеет громкое название FanVista.

Read more... )
Теги: , ,

New main avatar

Модульное тестирование на С/С++: от мотивации до реализации

UnitTestDevFlow.pngМногие ошибочно полагают, что модульное тестирование, как механизм написания тестов самими разработчиками, является малоэффективным. Да и сами разработчики не сильно любят обременять свой код лишним балластом в виде наборов тестов, которые еще и приходится править при каждом изменении функциональности. Между тем, модульное тестирование - это одна из главных составляющих написания надежного и поддерживаемого кода, которая, по меньшей мере, не окажется лишней, а в большинстве случаев на порядок увеличит качество ПО.

Read more... )

New main avatar

О незаурядных людях

"Лучше быть незаурядным обычным человеком, чем заурядным гением"

New main avatar

Nullable типы в C#

Полезных фишек, облегчающих жизнь, в C# предостаточно. С удивлением для себя обнаружил еще одну очень полезную особенность: "Nullable типы" - типы, включающие весь диапазон значений базового типа + null. В С++ часто возникает необходимость помимо численно результата вычислений возвращать еще и результат выполнения самой функции, т.е. удачно ли прошла операция, валидно ли вычисленное значение. Хорошо, если заранее известно, что результат вычисления не может быть равен нулю или не может быть отрицательным, тогда ошибку будут сигнализировать именно запрещенные значения результата. Однако когда результат покрывает все значения типа, приходится вводить дополнительные параметры к функции, специально сигнализирующие об ошибке. В C# эту проблему решают Nullable типы.Read more... )
Теги:

New main avatar

Топ 10 убийственных ошибок в С++

Есть такие ошибки надо которыми можно сидеть часами и днями в дебагере, ведрами поглощая кофе, наспех вспоминая шаманские танцы, надеясь, что хоть они помогут. Это убийственные ошибки, берегитесь их!Read more... )

New main avatar

ForEach(Action action) альтернатива foreach в C#

Так получается, и наверно я не одинок, что в C# пользуюсь циклом foreach намного чаще, чем for. foreach - это удобно, компактно и наглядно, однако бытует мнение, что производительность этого цикла уступает производительности for. Желающий успокоить свою паранойю могут применить альтернативное решение и использовать метод List.ForEach(Action action) вместо оператора foreach, сохраняя все преимущества последнего. Дело в том, что метод ForEach реализуется циклом for, а значит сторонники производительности останутся довольны.Read more... )
Теги:

New main avatar

explicit конструктор в C++

C++ изобилует темными местами, которые в целом не вызывают сложностей в понимании, однако малоизвестны из-за своей редкой употребимости. Например ключевое слово explicit, мало кому известно, на практике лично я им пользовался ровно 0 раз, тем не менее полезно хотя бы иметь в виду что оно делает.Read more... )
Теги:

New main avatar

Автоматические свойства в C#

В С# есть очень удобный механизм доступа к данным объекта, называется "свойства". При помощи "свойств" можно открыть доступ к данным не выдумывая интерфейсных методов типа "put" и "get", в тоже время сохранить преимущество дополнительного уровня косвенности. Объявление свойств в обычном виде не отличается компактностью, однако C# 3.0 позволяет сделать код более сжатым с использованием упрощенной записи. Read more... )
Теги:

New main avatar

От искусственности к естественности

1241095203-6.jpegНа заре компьютерной эры человечество и не подозревало, насколько умные машины вольются в нашу повседневную жизнь и изменят быт обычных людей. Сегодня персональный компьютер является обязательным спутником любого человека, однако кое-что сохранилось с тех самых пор, когда удовольствие пощелкать по клавиатуре было уделом избранных. Так называемые устройства ввода информации, в примитивном случае это привычные мышки и клавиатуры, дошли до наших дней почти в неизменном состоянии. Конечно, изменилась форма и эргономика, добавилось n-ое количество кнопок, однако суть все та же, и. в конечном счете, сводится к поиску и нажатию нужной кнопки. Не в этом ли кроется основной сдерживающий фактор, препятствующий дальнейшей интеграции человека и компьютера? Барьер искусственности, появившийся во времена ограниченных технических возможностей, сохраняет свою силу и не спешит открыть двери в мир естественных интерфейсов.

Read more... )

New main avatar

Заметки с конференции Agile Labs 2009

logo_agile.JPGНа волне огромного интереса к модной в последнее время теме гибких методологий, состоялась первая узкоспециализированная конференция Agile Labs. C учетом новизны и спорности рассматриваемой темы, собралось немалое количество специалистов, интересующихся или просто переживающих за судьбу Agile в России. Обдумывая план посещения секций, прежде всего задавался целью развеять для себя все сомнения по поводу Agile и понять в конце концов границы ее применимости. Как оказалось в последствие, цель была достигнута, но с точностью наоборот. Сомнений не только не убавилось, но ко всему прочему возникли фундаментальные вопросы, напрочь подрывающие мои представления об Agile, как о стройной методологии. С пониманием важности практического применения красивых теоретических выкладок и первыми попытками их использования, наступает некоторое отрезвление, которое не всегда приносит "fun", как заявляет методология.

Read more... )

New main avatar

О вечном

"То, что вечно, длится не более, чем век"

New main avatar

Шаблоны объектно-ориентированного проектирования GRASP

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

Read more... )

New main avatar

О плохих вампирах

"Плохому вампиру мешают зубы"


New main avatar

Что такое ACE

Библиотека ACE (ADAPTIVE Communication Environment) не слишком широко известна особенно среди русской аудитории, между тем это довольно интересное решение для разработчиков сетевых приложений на С++. Как известно, сетевое программирование особенно на низком уровне является не простой задачей. Непосредственное использование системного API делает программу непереносимой, кроме того, возникает совершенно ненужная сложность, связанная с изучением тонкостей работы с сокетами на разных платформах. Само по себе использование socket API является лишь частью общей задачи создания сетевого приложения, в которую также входит управление потоками (процессами), синхронизация, сериализация данных и т.д. Идеальным помощником для С++ программистов любого профиля является популярная кроссплатформенная библиотека boost, однако в области сетевого программирования ACE может составить ей очень серьезную конкуренцию.

Read more... )

New main avatar

План прогрессивного разработчика

logo_pl.jpg4-5 декабря состоится самая крупная российская конференция Microsoft - Платформа 2009. Попасть на это событие крайне сложно и дело здесь не только в высокой стоимости входных билетов, но и в том, что эти самые билеты раскупаются за несколько недель после начала регистрации. Счастливчики, купивший билеты, а среди них будет только элита: директора, топ-менеджеры и гуру разработчики - смогут своими ушами послушать 60 докладов, поучаствовать в мастер классах и просто пообщаться друг с другом. Все-таки кризис на дворе, и не каждая компания смогла выделить средства на посещение столь крупного мероприятия, однако любой желающий абсолютно бесплатно имеет возможность смотреть онлайн-трансляцию конференции (заргистрироваться можно здесь). А посмотреть будет на что, в двухдневном расписании присутствуют очень интересные темы. Большое количество докладов естественно требует распараллеливания по залам - на платформе 2009 их будет целых 5. В связи с этим возникает необходимость формирования собственной программы просмотра конференции, плана или среза, предназначенного для определенной целевой группы. Microsoft предложила составить планы и вынести их на суд общественности. Цель ясна - представляю "план прогрессивного разработчика".

Read more... )

New main avatar

Отчет о конференции SECR 2008, и немного о финансовом кризисе

"Когда я слышу во время гонки об аварии на трассе,
то нажимаю газ, потому что все остальные в этот момент жмут на тормоз"
(Цитата из к.ф. "Гран-При")

003_resize.jpgПобывал на конференции SERC 2008 - Software Engineering Conference (Russia). Конференция ставила перед собой достаточно амбициозную цель по консолидации локальных сообществ разработчиков и интеграции их в международные сообщества. Среди основных тем обсуждались современные технологии методики по эффективному решению задач в различных областях программной инженерии. В конференции принял участие эксперты из Армении, Беларуси, Казахстана, России, Украины и других государств СНГ, стран Балтии, Европы и США. Кроме того, присутствовали гуру мирового масштаба: Эрих Гамма и Стив Меллор. Лично для меня это была первая конференция подобного масштаба, поэтому впечатления остались самые приятные.

Read more... )

New main avatar

Отчет о конференции HighLoad++ 2008 (часть 2)

Я слышу и забываю.
Я вижу и запоминаю.
Я делаю и понимаю.
(Конфуций)

0_22f9c_e270facf_L.jpeg… закончился второй день. Теоретическая часть конференции подошла к концу, мастер классы, намеченные на среду, пройдут без меня. Степень загрузки информацией едва не превысила допустимый лимит организма. Темы докладов во второй день были не сильно интереснее, чем в первый, кроме того, были организационные проблемы. Впечатление от конференции в общем и целом немного смазалось, но были и положительные моменты.

Read more... )

New main avatar [info]hitfounder