Блог

Статья: рефакторинг – необходимость или мода

Вот тут писал про совершенный код и вспомнил, что была у меня статья про рефакторинг, а он относится у полировке, т.е. к улучшению существующего кода. Покапавшись в архивах я нашел эту статью и выкладываю для всеобщего юзания. Она будет интересна программистам, пишущим на любых языках и на сколько я помню, в статье будут примеры с Delphi, Visual Studio и JBuilder.

Что такое рефакторинг? Я видел достаточно много определений этому понятию, но все они сводяться к улучшению существующего кода. Если ты пишешь только идеальный код, который нужно улучшать только в тех случаях, когда он не работает, то сильно заблуждаешся. Улучшения нужны даже тогда, когда код работает вполне корректно. Для чего, когда и как нужно улучшать мы поговорим в этой статье.

Что можно улучшать в коде, который и так уже работает и выполняет возложенные на него функции? Если программу не планируется улучшать и добавлять новые возможности, то можно больше уже ничего не улучшать. Лучше даже удалить исходники, дабы не тытаться разбираться в бардаке или использовать его в будущем. Но если программа нужна не один день, то рефакторинг необходим.

Читать статью полностью: Рефакторинг – необходимость или мода?

Статья по DirectSound

Ты когда-нибудь задумывался, как воспроизводится звук? Нет, не на уровне железа. Все мы прекрасно знаем, что звуковая это преобразователь цифры в аналог и тут все достаточно просто. А вот что происходит на уровне софта? Давай рассмотрим самую перспективную библиотеку воспроизведения звука – DirectSound.

Звуковые карты бывают разные и возможности у них отличаются очень сильно. Так ESS может с приемлемым качеством воспроизводить и записывать звук, а Creative Sound Blaster Live 256 уже поддерживает полноценный четырех канальный звук с множеством эффектов, фильтров и 3D. Если написать прогу, которая будет воспроизводить звук через ESS, то она будет работать практически везде. Но если задействовать уникальные возможности определенного железа то где гарантия, что она будет работать и с другой железкой? Конечно же, гарантии нет, и проблем может быть по самый дисковод :). Именно поэтому должна быть какая-то библиотека, которая позволит использовать максимальное количество возможностей различных звуковух.

Читать статью полностью: Все, что необходимо знать про DirectSound

Новая статья: Репликация баз данных

Репликация – это не просто новомодное слово, это совершенно удобный и мощный инструмент в правильно отшлифованных руках. Некоторые считают, что репликация – это синоним синхронизации. Если заглянуть в ABBYY Lingvo, то среди возможных переводов слова replication ты не увидишь синхронизации, зато будут такие слова как: эхо, отражение, дублирование, повторение, размножение... Эти слова хорошо отражают данную технологию и то, что мы будем рассматривать сегодня.

Чаще всего репликацию связывают с базами данных и мы в основном будем говорить о базах данных на примере MS SQL Server. Причем не только с классическими базами, но и такими специализированными, как Active Directory. Но на этом мир не перевернулся, репликацию можно удачно использовать и для простых файлов, главное правильный подход.

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

Планирование дискового пространства для баз данных

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

Задумываетесь ли вы о чем-то, когда создаете новую базу данных? Я думаю, что большинство скажет, что нет (если будет отвечать честно), потому что все мы используем параметры по умолчанию, а ведь они далеки от оптимальных. Одних только дисковых настроек целое море, а ведь они реально позволяют повысить надежность и производительность системы. Нет, мы не будем говорить, что для надежности данных в файловой системе нужно использовать NTFS, хотя имена эта файловая система позволяет MS SQL Server использовать диск максимально эффективно. Нас ждет более интересный и конкретный разговор.

Если не хватает ресурсов и что-то начинает работать медленно, то первое, что приходит в голову – наращивание ресурсов и апгрейд. Но ведь это необходимо далеко не всегда. Можно же обойтись и тюнингом, хотя этим нужно заниматься еще до того, как сервер начал тормозить, а на этапе проектирования и установки. Не надо дожидаться, когда грянет гром, чтобы креститься, ведь все можно сделать заранее.

Читать статью полностью Планирование дискового пространства для баз данных

Новая статья: Windows Presentation Foundation (WPF)

Графическая система Windows долгое время основывалась на простейших возможностях GDI, которая плохо использует возможности оборудования и ограничивалась простыми функциями рисования. Из-за этих скудных возможностей и элементы управления были серыми, не в смысле цвета, а просто по жизни. Если использовать только стандартные возможности, то интерфейс получается скучным, а для чего-то более серьезного приходиться разрабатывать элементы управления самостоятельно. Исправить положение дел должен WPF (Windows Presentation Foundation), ранее известный как Avalon.

WPF (Windows Presentation Foundation) - это графическая подсистема нового поколения, которая появилась в составе .NET Framework и основана на XAML. Не смотря на то, что .NET создавалась независимой от платформы и должна бы работать на любой системе, WPF скорей всего не сможет жить в любой среде. Может, мы ошибаемся, но слишком сильно прослеживается связь с Windows и DirectX. Уже сейчас есть ограничения на используемую версию ОС Windows - Минимальным требованием является Windows XP SP2. В Windows XP и Windows 2003 требуется отдельная установка, в то время как в Windows Vista данная подсистема уже предоставлена.

Новая графическая система Windows Presentation Foundation позиционируется для создания пользовательских интерфейсов, 2D и 3D графики и т. д. Мощь WPF заключается в том, что 2D графика строится в векторном виде, а это значит, что интерфейсы будут максимально независимы от разрешения экрана и размера окна. Они будут легко масштабироваться без потери качества и быстро работать благодаря максимальному использованию возможностей современных графических ускорителей.

Ошибка в статье про будущее Delphi

Громадно извиняюсь за все, что написано про Delphi 64. Я даже не обратил внимание на дату поста на блоге, который комментирвал, и спасибо тому, что заметил мою лажу. Дело в том, что отрывок про Delphi 64 был написан на основе заметки с чужого блога, а эта заметка была опубликована 1-го апреля. Я не знаю, шутка это или нет, но я на всякий случай убрал из статьи отрывок по Delphi 64. Еще раз извиняюсь. Впредь постараюсь быть внимательнее. Давно я так не попадался на первоапрельские шутки.

Введение в язык программирования C

Сегодня выложил еще одну статью из своей класики, написанную уже давно и даже превращавшуюся в одну из частей книги. В ней я даю начальные знания о программировании на С/С++.

В этой статье я хотел бы дать вам базовые знания о программировании Win32 приложений на языке С/С++ в среде Visual Studio 2005. Описанный пример будет прекрасно работать и в более старых или новых версиях Visual Studio, но снимки окон, которые будут даны в статье сделаны именно в Visual Studio 2005.

Если у вас есть Visual Studio, то желательно запустить его, чтобы видеть результат собственными глазами. Итак, откройте проект CTest и посмотрите с правой стороны на панель Solution Explorer. Здесь расположено дерево, в котором по разделам разложено всё, что входит в проект. Моё дерево вы можете увидеть на рисунке выше, и у вас должно быть что-то подобное.

User Account Control на страже системы

Наиболее сильно недооцененной и не понятой функцией в Windows Vista является User Account Control (UAC). А зря, это очень важная и полезная функция. Долгие годы пользователи были богами в своих системах и работали от имени учетной записи администратора. Так было в Windows 95, 98, ME и даже в 2000 и XP, когда все предупреждают, что это опасно для системы. В конкурирующих системах, например в ОС Linux, запрещено входить в графическую оболочку от имени администратора (root). Если необходимо выполнить действия от имени администратора, пользователь должен переключиться в консоли на учетную запись администратора, но запускать целую оболочку от администратора не нужно.

Компания Microsoft не стала вводить такой категорический запрет ради удобства пользователей и ради большого количества программ, которые могут потребовать выполнения привилегированных операций, но безопасность важнее, поэтому в Windows Vista для нашей защиты была внедрена User Account Control. Не советую ее отключать, ибо это реальная защита, и если какая-то программа не работает корректно с UAC, то это не Windows плохой, это программа не умеет работать в безопасном окружении и я бы не стал работать с такой программой ради собственной безопасности. Такое отношение есть в любой безопасной системе и теперь так есть и скорей всего будет в Windows.

Как обеспечить безопасность данных

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

Во время установки MS SQL Server 7.0 и младше имя администратора по умолчанию выбиралось sa (System Administrator). Пароль можно было не указывать, и система абсолютно без проблем хавала что угодно. В этом MS как всегда выделялась, хотя на каждом углу весят плакаты, что нельзя устанавливать пустые пароли, особенно админским учетным записям.

Начиная с MS SQL Server 2000, установщик уже предупреждает о возможных проблемах, если не указать пароль. Наконец-то кто-то увидел надпись на заборе, что нельзя выбирать простые пароли, а пустой пароль это вообще пробоина в безопасности, как дыра в корпусе Титаника. С такими паролями тонут в первые же дни плаванья.

Читать полный вариант статьи Падение черного ястреба или как обеспечить безопасность данных

Избавься от MFC ради размера

Следующий способ уменьшить размер программы заключается в ответе на вопрос: "Из-за чего программа, созданная в Visual C++, получается большой? " Ответ очень прост, С++ является объектным языком. В нем каждый элемент выглядит как объект, который обладает своими свойствами, методами и событиями. Любой объект вполне автономен и многое умеет делать без ваших указаний. Это значит, что вам нужно только подключить его к своей форме, изменить нужным образом свойства, и приложение готово! И оно будет работать без какого-либо прописывания его деятельности.

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

О блоге

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

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

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

Пишите мне