Seven Habits of Highly Effective Programmers

Много букв про эффективное программирование. Всё правда.

http://gamasutra.com/blogs/PhilChu/20121212/183405/Seven_Habits_of_Highly_Effective_Programmers.php

Моё любимое -- "Life is full of wonderful mysteries, but your code is not the place for them" Smile

Последняя правка: ср, 19/12/2012 - 23:14
Submitted by BLK Dragon on

Комментарии

Интересная статья, я например вчера дописал курсовой (3 дня работы). 3х мерная игра, с нуля, первый опыт в 3д. Проблема была в том, чтобы уложиться в сроки (конец недели), и написать работающее что-то похожее на игру. В итоге получилось неплохо, причем оказывается я следовал большинству принципов из начала статьи: установить требования, ранние билды, релиз билды иногда (например, в дебаг версии кнокбэк от фаербола рассчитывался адекватно изза маленького фпс, в релиз версии же актор улетал за край карты, тк зависимости в рассчете расстояния и уменьшения силы были разные - линейная и нелинейная), понимание кода - комменты на ключевых или трудных моментах, стиль, ну и копипаст, куда же без него - например, рассчет анимаций, передвижения актора и камеры я копипастил из сэмпла, но подгонял под себя. Писал на стандартных вещах, както Ogre+CEGUI+OIS си плюсы

Submitted by Nort on

Я вот вообще не догоняю, зачем работать с дебаг-билдом. В смысле постоянно, ну т.е. его нужно собирать иногда — Purify / Intel Inspector какой-нить запустить; а так это другой код совсем  — смысла его отлаживать нету никакого, юзерам то отдаваться будет как раз "релиз". 

Submitted by BLK Dragon on
BLK Dragon wrote:

Я вот вообще не догоняю, зачем работать с дебаг-билдом. В смысле постоянно, ну т.е. его нужно собирать иногда — Purify / Intel Inspector какой-нить запустить; а так это другой код совсем  — смысла его отлаживать нету никакого, юзерам то отдаваться будет как раз "релиз". 

Согласен с данным высказыванием. Имели печальный опыт прямо на финешной прямой - запускали дебаг, отлаживали - все круто, игра готова, собираем билд (релиз) - на утро "КРЭШ!!!" ну и в шею получаем Smile Код на самом деле выходит другой в релизе, что ведет к узким местам, которые в дебаге ну в жизнь не  найдешь. Да и работает в релизе быстрее Smile

Submitted by MaxImuS on
Quote:

Да и работает в релизе быстрее

Ну собсно да, профайлить то дебуг-билд бессмысленно, а профайлю я на порядок чаще чем дебужу.

На одном PSP-проекте дебуг-билд вообще неработоспособен был — игрологика не работала на фпс ниже 15, персонаж тупо вперёд не шёл при зажатой кнопке (тут нужно припомнить всякими словами оригинальных разработчегов); да и вот сейчас если включить все проверки мем.манагера, физики и Луа, то оно небыстро всё будет.

Всякие штуки типа непроиничиненных переменных (причина 99% фантастических крашей) отлично показываются компилером (-W4) и lint. Потому собирать дебаг реально нужно нечасто — прогнать через проверялку памяти типа Intel Inspector, ну или для реально хардорного дебага.

Что забавно, в реально сложных случаях отладчик чаще мешает, чем помогает — если поломан стек или хитро перезатёрта память (GPU, другой процессор, whatever), отладчик может показывать неправильные симтомы.

Submitted by BLK Dragon on
BLK Dragon wrote:

Я вот вообще не догоняю, зачем работать с дебаг-билдом. В смысле постоянно, ну т.е. его нужно собирать иногда — Purify / Intel Inspector какой-нить запустить; а так это другой код совсем  — смысла его отлаживать нету никакого, юзерам то отдаваться будет как раз "релиз". 

Quote:

Всякие штуки типа непроиничиненных переменных (причина 99% фантастических крашей) отлично показываются компилером (-W4) и lint. Потому собирать дебаг реально нужно нечасто — прогнать через проверялку памяти типа Intel Inspector, ну или для реально хардорного дебага.

я слаб и делаю ребилд почти после каждого изменения, а дебаг билд делается намного быстрее релиза. Ворнинги стоят на -в1 т.к. огр 1.8 версия почемуто сыпет сотнями ворнингов каждый раз

Да и всякими левыми тулами пользоваться не умею

Submitted by Nort on
Quote:

я слаб и делаю ребилд почти после каждого изменения, а дебаг билд делается намного быстрее релиза. Ворнинги стоят на -в1 т.к. огр 1.8 версия почемуто сыпет сотнями ворнингов каждый раз

Да и всякими левыми тулами пользоваться не умею

Ну, можно посочувствовать. Статья как бы про highly effective programming, ага.

Всякие левые библиотеки, которые без варнингов не могут собираться, можно очень локально подправить чтобы во всей своей кодобазе не понижать уровень предупреждений.

"Всякие левые" тулзы на самом деле аццки экономят время -- куча ошибок находится и правится ещё до запуска программы.

Submitted by BLK Dragon on

офк посмотрю в их сторону

Submitted by Nort on

По поводу всяких левых тулзов. Ктонить пробовал юзать связку Clang+LLVM. А то пишут что много плюшек вкусных в планах, а вот только насколько это уже юзабельно в качестве компилятора?

Submitted by Victor on
Victor wrote:

По поводу всяких левых тулзов. Ктонить пробовал юзать связку Clang+LLVM. А то пишут что много плюшек вкусных в планах, а вот только насколько это уже юзабельно в качестве компилятора?

Clang прикольно было бы поюзать для стат.анализа кода и нормального редактора С++ кода (типа SourceInsight или SlickEdit), но в реальном проекте это всё использовать стрёмно; через год-два оно наверное будет юзабельно на практике, а пока выглядит баловством (а моё баловство в последние годы сместилось в облать гейм-дизайна :).

Submitted by BLK Dragon on

GameDev.by