Страуструп

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

В проекте кроме OpenGL графики проявляются дополнительные направления работы - базы данных, сетевые технологии и неблокирующие соединения, шифрование связи. Надо со всем этим разбираться.

В процессе изучения С++

Работа с книгой Страуструпа растянулась по времени намного дольше, чем я ожидал. По стилю изложения руководство по Си от Кернигана и Ритчи сильно отличается от Страуструпа - у них более академичный стиль, материал подается ровно и последовательно. А Страуструп часто "забегает вперед" и использует примеры кода, работа которого непонятна из-за того что в нем применяются методики, описанные гораздо дальше по тексту. Это сильно тормозит процесс, так как заставляет по нескольку раз возвращаться назад и перепрыгивать вперед вслед за автором.

Об изучении С++

Как все-таки изучать С++? Мой личный опыт говорит что работать надо в таком порядке:

1. Вначале следует изучить С по руководству от K&R. Пусть у Страуструпа и написано, что знать С при обучении С++ не обязательно, но это знание добавляет больше понимания и уменьшает количество вопросов при изучении базовых типов и разборе примеров работы со строками и массивами.

Страуструп

Около месяца у меня ушло на работу с книгой "K&R". Читал, изучал, делал примеры. Но как-то скучно все казалось. Да - основательно, да - просто, но как то однообразно. Это действительно системный язык низкого уровня - и этим все сказано.

Дофамин

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

Библиотека GLM

Широко описываемые в различных учебниках по OpenGL библиотечные функции GLU - такие как glRotate, glFrustum или gluLookAt считаются устаревшими. В современных графических приложениях для работы с новыми версиями OpenGL рекомендуется вместо них использовать функции из написанной на C++ библиотеки GLM (OpenGL Математика). В документации к ней сказано, что GLM стремится использовать те же соглашения, что применяются в GLSL. Это обеспечивает более удобную работу при работе с матрицами и шейдерми.

Tags: 

сИмообразование

Как написано в 3-м издании пособия "Язык программирования Си" (Б. Керниган, Д. Ритчи): "Наряду с 'goto' указатели когда-то были объявлены лучшим средством для написания малопонятных программ". Это и определило мое устойчивое отношение к Си. Всегда считал, что этот язык не для меня. Тем более, что в нем и goto - тоже есть!

Памятка С/С++

Несколько полезных правил, которых следует придерживаться при разработке программ на C/C++:
  • Советами нужно пользоваться там, где они применимы. Не существует замены здравому смыслу.
  • Не забывайте в конце своих функций добавлять "return выражение", потому что в противном случае функция обязательно выдаст "мусор".
  • Программа на Си - это много "маленьких функций" и процедур, а не мало больших.
  • Разбивайте сложные выражения на более простые.
  • Уменьшайте набор потенциальных зависимостей (в области видимости) до набора реальных.
Tags: 

Удачный день

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

Во-вторых, пришло поздравление с Хабра:

"Поздравляем! Теперь вам доступен значок «Захабренный». Вы можете увидеть его в своем профиле, пройдя по ссылке ...".

Разработка под OpenGL

В современных графических приложениях широко используется OpenGL. Успех технологии обеспечивает мультиплатформенность, открытость, доступность информации, обширное сообщество специалистов разного уровня. В Сети можно свободно найти необходимое количество материалов для начала работы с этой технологией. Кроме того, для разработки проектов на основе OpenGL существует множество готовых библиотек ([Free]Glut, GLFW, SDL2, GLEW, GLM и т.д.), которые активно помогают в работе над проектом.

Tags: 

Страницы

Подписка на TRICKRIG RSS