Новые книги

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

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

Примеры я буду приводить на языке Object Pascal. В основном я работаю на нём, пишу на Delphi. Предвидя нападки со стороны поклонников C-подобных языков, скажу два тезиса:
Издание представляет собой самое полное и подробное руководство по поисковой оптимизации (SEO) от практикующих специалистов данной области.

Из книги вы узнаете основы SEO – алгоритмы, цели, принципы, особенности оптимизации. Отдельные главы посвящены специалистам, всем, кто желает построить собственную компанию и организовать, а также клиентам, использующим данный вид сервиса.

В приведенных интервью своим опытом делятся известные в интернет — сфере личности, эксперты в области SEO: Сергей Людкевич (Корпорация РБС), Алексей Жуков (UnMedia), Илья Зябрев (AlterTrader Research Ltd.), Роман Клевцов (Optimism), Елизавета Трибунская (SearchEngines.ru), Леонид Гроховский (ТопЭксперт).

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

12+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436 — ФЗ.)

FAQ Part 4

Visual C++ / FAQ Part 4

Как убрать кнопку с TaskBar'а?
С помощью Win32 API это можно сделать с помощью функции CreateWindowEx(), указав флаг WS_EX_TOOLWINDOW.

Как определить позицию курсора в консоли Win32?

  CONSOLE_SCREEN_BUFFER_INFO bi;
  GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), bi);
  // bi.dwCursorPosition - кооpдинаты куpсоpа
Как очистить экран в консоли Win32?
Можно использовать функцию ScrollConsoleScreenBuffer или следующий код:

  COORD c;
  c.X = 0;
  c.Y = 0;
  CONSOLE_SCREEN_BUFFER_INFO bi;
  DWORD written;
  GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), bi);
  FillConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE), ' ',
bi.dwSize.X*bi.dwSize.Y, c, written);
  FillConsoleOutputAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED |
FOREGROUND_GREEN | FOREGRUND_BLUE /*цвет*/, bi.dwSize.X*bi.dwSize.Y, c,written);
Как узнать количество элементов и размер корзины? Как очистить корзину?

//Очищает корзину на указанном диске
SHSTDAPI SHEmptyRecycleBin(
    HWND hwnd,
    LPCTSTR pszRootPath,
    DWORD dwFlags);

//Получает размер и количество элементов в корзине
SHSTDAPI SHQueryRecycleBin(
    LPCTSTR pszRootPath,
    LPSHQUERYRBINFO pSHQueryRBInfo);
Как получить список все запущенных процессов и потоков?
Для Windows 9x используйте CreateToolhelp32Snapsot/ Process32First(Process32Next)/ Thread32First(Thread32Next).
Для WinNT NTQuerySystemInformation. А можно так: получаете список окон в системе (каким угодно способом, если нужны только процессы - можно ограничиться top-level), далее - GetWindowTreadProcessID - получаете ID процесса (и нити). OpenProcess - дает handle процесса.

Какие существуют функции для работы с COM-портом напрямую под Win9x?
Посмотрите функции:

BuildCommDCB
BuildCommDCBAndTimeouts
ClearCommBreak
ClearCommError
CommConfigDialog
EscapeCommFunction
GetCommConfig
GetCommMask
GetCommModemStatus
GetCommProperties
GetCommState
GetCommTimeouts
GetDefaultCommConfig
PurgeComm
SetCommBreak
SetCommConfig
SetCommMask
SetCommState
SetCommTimeouts
SetDefaultCommConfig
SetupComm
TransmitCommChar
WaitCommEvent
Как завесить Windows?
1. Сделать файл system.ini больше, чем 64К. Вешается при загрузке.
2. Вызвать код:
cli
jmp $

Как получить hInstance консольного приложения?
GetModuleHandle(NULL) ;

Чем отличается PID от hInstance?
PID - уникальный идентификатор объекта ядра - процесса
Inst - (упрощенно) указатель на область памяти, куда загружен экземпляр модуля (экзешника, dll-ки)

Как установить обои на Рабочий Стол?
SystemParametrsInfo(SPI_SETDESKWALLPAPER,0,'обои.bmp',SPIF_UPDATEINIFILE);
Prev. Part Оглавление Next Part