Уроки разработки 64-битных приложений на языке Си/Си++
От: Евгений Рыжков Россия www.viva64.com
Дата: 02.02.10 09:35
Оценка: 141 (21)
На сайте www.viva64.com выложен курс "Уроки разработки 64-битных приложений на языке Си/Си++" на русском языке. Авторами курса являются: к.ф.-м.н. Карпов Андрей Николаевич и к.т.н. Рыжков Евгений Александрович. Авторы занимаются вопросами обеспечения качества 64-битных приложений и участвуют в разработке статического анализатора кода PVS-Studio для верификации кода ресурсоемких приложений. Ниже будет — полное описание курса и ссылка на уроки. А поскольку я являюсь одним из авторов, в комментариях к сообшению можно пообщаться .


Описание курса "Уроки разработки 64-битных приложений на языке Си/Си++"
Курс посвящен созданию 64-битных приложений на языке Си/Си++ и ориентирован на разработчиков, использующих среду Visual Studio 2005/2008. Разработчики для других 64-битных операционных систем также узнают много интересного. В курсе будут рассмотрены все этапы, позволяющие создать новое надежное 64-битное приложение или выполнить миграцию существующего 32-битного кода на 64-битную систему.

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

Авторами курса являются: к.ф.-м.н. Карпов Андрей Николаевич и к.т.н. Рыжков Евгений Александрович. Авторы занимаются вопросами обеспечения качества 64-битных приложений и участвуют в разработке статического анализатора кода PVS-Studio для верификации кода ресурсоемких приложений.

Правообладателем курса является ООО "Системы программной верификации". Сайт компании: http://www.viva64.com. Контактная информация: e-mail: support@viva64.com, 300027, г. Тула, а/я 1800.

Содержание курса:

Урок 01. Что такое 64-битные системы.
Урок 02. Поддержка 32-битных приложений.
Урок 03. Перенос кода на 64-битные системы. За и против.
Урок 04. Создание 64-битной конфигурации.
Урок 05. Сборка 64-битного приложения.
Урок 06. Ошибки в 64-битном коде.
Урок 07. Проблемы выявления 64-битных ошибок.
Урок 08. Статический анализ для выявления 64-битных ошибок.
Урок 09. Паттерн 01. Магические числа.
Урок 10. Паттерн 02. Функции с переменным количеством аргументов.
Урок 11. Паттерн 03. Операции сдвига.
Урок 12. Паттерн 04. Виртуальные функции.
Урок 13. Паттерн 05. Адресная арифметика.
Урок 14. Паттерн 06. Изменение типа массива.
Урок 15. Паттерн 07. Упаковка указателей.
Урок 16. Паттерн 08. Memsize-типы в объединениях.
Урок 17. Паттерн 09. Смешанная арифметика.
Урок 18. Паттерн 10. Хранение в double целочисленных значений.
Урок 19. Паттерн 11. Сериализация и обмен данными.
Урок 20. Паттерн 12. Исключения.
Урок 21. Паттерн 13. Выравнивание данных.
Урок 22. Паттерн 14. Перегруженные функции.
Урок 23. Паттерн 15. Рост размеров структур.
Урок 24. Фантомные ошибки.
Урок 25. Практическое знакомство с паттернами 64-битных ошибок.
Урок 26. Оптимизация 64-битных программ.
Урок 27. Особенности создания инсталляторов для 64-битного окружения.
Урок 28. Оценка стоимости процесса 64-битной миграции Си/Си++ приложений.

Объем курса: курс предполагает самостоятельное знакомство с каждым из 28 уроков в течение 20-40 минут. Общее время изучения материала составляет примерно 18 часов.
Евгений Рыжков
ООО "СиПроВер"
Re: Уроки разработки 64-битных приложений на языке Си/Си++
От: Lande  
Дата: 02.02.10 10:10
Оценка:
Здравствуйте, Евгений Рыжков, Вы писали:

ЕР>Урок 20. Паттерн 12. Исключения.


...
Но иногда все-таки приходится работать с менее качественным кодом, таким как показано ниже:

char *ptr1;
char *ptr2;
try {
  try {
    throw ptr2 - ptr1;
  }
  catch (int) {
    std::cout << "catch 1: on x86" << std::endl;
  }
}
catch (ptrdiff_t) {
  std::cout << "catch 2: on x64" << std::endl;
}


Жесть. Вам реально приходится работать с таким кодом? Имхо, это больше рекламный трюк ("Есть урок про исключения!"), т.к. исключения ведь по сути здесь непричем...
Re[2]: Уроки разработки 64-битных приложений на языке Си/Си+
От: Analytic2007 Россия https://www.viva64.com/ru/pvs-studio/
Дата: 02.02.10 11:26
Оценка:
Все относительно, причем или нет. Мы можем вообще все в несколько формул свернуть. Такая попытка, правда не до конца, была проделана здесь. Вот только толку от такого описания нет. Очень кратко, универсально и СОВЕРШЕННО невозможно для чтения. Здесь исключения выделили в отдельный урок. Возможно этот урок несколько натянут, но зато хорошо логически отделен.

А качество кода оно разное бывает. И подобные странные ошибки бывают. Просто когда их очищаешь и упрощаешь, то они кажутся дикими и невозможными в нормальном коде. Но в реальных приложениях все бывает гораздо запутаннее и замаскированнее.
Re: Уроки разработки 64-битных приложений на языке Си/Си++
От: kvasya  
Дата: 02.02.10 11:41
Оценка:
Здравствуйте, Евгений Рыжков, Вы писали:

ЕР>Объем курса: курс предполагает самостоятельное знакомство с каждым из 28 уроков в течение 20-40 минут. Общее время изучения материала составляет примерно 18 часов.


А одним файлом можно выкачать? В спокойной обстановке почитать
Re[2]: Уроки разработки 64-битных приложений на языке Си/Си+
От: Евгений Рыжков Россия www.viva64.com
Дата: 02.02.10 12:02
Оценка:
Здравствуйте, kvasya, Вы писали:

K>Здравствуйте, Евгений Рыжков, Вы писали:


ЕР>>Объем курса: курс предполагает самостоятельное знакомство с каждым из 28 уроков в течение 20-40 минут. Общее время изучения материала составляет примерно 18 часов.


K>А одним файлом можно выкачать? В спокойной обстановке почитать


Пока так не делали, поскольку читать от начала и до конца разом — никаких сил не хватит . То есть как бы не очевидна польза одного файла. Можете пояснить, чем один файл лучше нескольких? Сразу скажу, что рекламы на сайте никакой нет и не будет, так что большое количество просмотров уж точно не было целью разделения на отдельные уроки.
Евгений Рыжков
ООО "СиПроВер"
Re[3]: Уроки разработки 64-битных приложений на языке Си/Си+
От: Kh_Oleg  
Дата: 02.02.10 12:23
Оценка: 1 (1)
Здравствуйте, Евгений Рыжков, Вы писали:

ЕР>Можете пояснить, чем один файл лучше нескольких?

Тем, что его можно скачать и читать на КПК в метро, к примеру.
Re[4]: Уроки разработки 64-битных приложений на языке Си/Си+
От: ArtemUdovichenko  
Дата: 02.02.10 14:34
Оценка: +1
Присоединяюсь к Kh_Oleg.
Мне бы тоже удобен был бы pdf со всем курсом.
В транспорте удобно читать с ebooka.
Re: Уроки разработки 64-битных приложений на языке Си/Си++
От: Skipy Rich Россия  
Дата: 05.02.10 19:23
Оценка:
Здравствуйте, Евгений Рыжков, Вы писали:

ЕР>На сайте www.viva64.com выложен курс


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

Самой очевидной, но и самой непреодолимой, может стать проблема отсутствия 64-битного компилятора. Когда пишется этот текст (2009 год), все еще нет 64-битного компилятора C++ Builder от Embarcadero. Его выпуск ожидается только к концу этого года. Невозможно обойти подобную проблему, если конечно не переписать весь проект, например, с использованием Microsoft Visual Studio.


ё-маё... и Вы хотите кого-то чему-то учить с таким-то умолчальным компилятором?
Re[2]: Уроки разработки 64-битных приложений на языке Си/Си+
От: Евгений Рыжков Россия www.viva64.com
Дата: 08.02.10 04:42
Оценка:
Здравствуйте, Skipy Rich, Вы писали:

SR>ё-маё... и Вы хотите кого-то чему-то учить с таким-то умолчальным компилятором?


Попробуйте, пожалуйста, развить мысль.
Евгений Рыжков
ООО "СиПроВер"
йй
Re[3]: Уроки разработки 64-битных приложений на языке Си/Си+
От: Skipy Rich Россия  
Дата: 08.02.10 04:57
Оценка: 1 (1) +2 :)
Здравствуйте, Евгений Рыжков, Вы писали:

ЕР>Попробуйте, пожалуйста, развить мысль.


Кривость компилятора и кодогенератора билдера стала притчей во языцех, и отсутствие новых версий скорее благо, чем проблема, и это ваше "придётся переписывать под студию" должно звучать как "давно пора".
Re: Уроки разработки 64-битных приложений на языке Си/Си++
От: Евгений Рыжков Россия www.viva64.com
Дата: 11.02.10 12:59
Оценка:
Здравствуйте, Евгений Рыжков, Вы писали:

ЕР>Описание курса "Уроки разработки 64-битных приложений на языке Си/Си++"


По ссылке www.viva64.com/lessons-x64/all_rus.html доступны все уроки в виде единого HTML-файла. В том числе есть также версия для печати (без картинок сайта), которую желающие могут распечатать с помощью pdf-принтера в pdf.
Евгений Рыжков
ООО "СиПроВер"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.