forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Когда кода много (http://forum.boolean.name/showthread.php?t=13706)

pepel 12.11.2010 20:28

Когда кода много
 
Интересно как работают опытные программисты с большим колличеством кода, насколько быстро вы можете найти нужную функцию или изменить нужный параметр? делаете это на автомате или приходится напргать мозг? :rolleyes:
Просто допустим в 3д максе я могу отключить мозг и работать тупо на автомате.
Конечно много завит от структуры кода, сейчас пытаюсь его оптимизировать под себя, но когда куча кода мой мозг работает как пентиум 1 :-D :SOS:

Reks888 12.11.2010 20:34

Ответ: Когда кода много
 
Продвинутые IDE имеют такие полезные вещи, как "Поиск по всем файлам", "Закладки" и список всех функций/типов/констант/глобалов/локалов в текущем проекте.
Пользуемся IDEal или Protean, господа.

pepel 12.11.2010 20:44

Ответ: Когда кода много
 
не ну закладки то понятно.. я немного про другое

DeeJex 12.11.2010 20:50

Ответ: Когда кода много
 
Большой код профи не допустит, он разобьет код на инклуды.

Program23 12.11.2010 21:06

Ответ: Когда кода много
 
Инклуды же,ужаснейшая вещь,по крайней мере,мне. Намного удобнее будет пролистать код,или воспользоваться поиском,чем переключаться между инклудами. А еще,когда изменил чо-то, в зависимом от главного,инклуде,по привычке его и компилишь.Это так раздражает.
Может быть,и есть IDE,которые всегда запускают только установленный Main-код.Уверен в Protean это есть,чем я не пользуюсь.

den 12.11.2010 21:11

Ответ: Когда кода много
 
Зато можно создать инклуд с различными глобальными переменными, и с функциями. А потом в главном коде работать просто оболденно;)

Dzirt 12.11.2010 21:13

Ответ: Когда кода много
 
Цитата:

А еще,когда изменил чо-то, в зависимом от главного,инклуде,по привычке его и компилишь.Это так раздражает.
Есть горячая клавиша которая компилит твой мейн файл.(Ideal)

Плюс если все правильно организовать,то работать с инклудами одно удовольствие....єкономит массу времени.

Morganolla 12.11.2010 21:16

Ответ: Когда кода много
 
Я потому и перешел с Блица на С++, что мой проект стал разрастаться как снежный ком, и я в нем утонул. Инклуды в блице очень ограничены!
В C++ есть отличные фичи которые позволяют делать большие пректы -
- ООП
- модульность (раздельная компиляция модулей и сборка линковщиком)
- библиотеки...
- и т.д и т.п.

Одно только ООП решает половину проблем...)

IGR 12.11.2010 21:17

Ответ: Когда кода много
 
при реализации относительно большого проекта который требует написания большого объема кода главное структуризация и иерархия !! Сначало нужно выполнить структуризацию на уровне логики !!
Не нужно все сваливать все в один супер алгоритм под названием ИГРА (допустим мы про игры говорим, да) !! Нужно все разделить - боты, итемы, магия, статика и т.д. !!
Сделать один глобальный (статический) объект/класс который будет управлять чем то одним !!
Помимо управления он должен обмениватся инфой с другими такими же глобальными объектами как он !! Это сильно упрощяет дело !! Основной программе остается лишь сделать взаемодействие между ними !! Все будет работать как одно целое и независимо !!
Еще плюс в том что это способствует переносимости кода в другие проекты и тд !!
Что касается реалищации:
Нужно стратся разделять по файлам, давать им внятные названия !!
Мало отличающиеся части кода лучше вынести в функцию но добавить параметр !!
Задавать константы а не хардкодить какоето значение в коде а потом искать его полчаса во всех местах !!
Очень важно называть все своими именами (что содержит переменная, что выполняет функция) !! И тд.. И еще много чего что неудобно писать с телефона !! :) Это конечно мое имхо которое мне помогает !! У каждого свои подходы !! Делитесь !!

Dzirt 12.11.2010 21:21

Ответ: Когда кода много
 
Цитата:

Сообщение от IGR (Сообщение 168361)
при реализации относительно большого проекта который требует написания большого объема кода главное структуризация и иерархия !! Сначало нужно выполнить структуризацию на уровне логики !!
Не нужно все сваливать все в один супер алгоритм под названием ИГРА (допустим мы про игры говорим, да) !! Нужно все разделить - боты, итемы, магия, статика и т.д. !!
Сделать один глобальный (статический) объект/класс который будет управлять чем то одним !!
Помимо управления он должен обмениватся инфой с другими такими же глобальными объектами как он !! Это сильно упрощяет дело !! Основной программе остается лишь сделать взаемодействие между ними !! Все будет работать как одно целое и независимо !!
Еще плюс в том что это способствует переносимости кода в другие проекты и тд !!
Что касается реалищации:
Нужно стратся разделять по файлам, давать им внятные названия !!
Мало отличающиеся части кода лучше вынести в функцию но добавить параметр !!
Задавать константы а не хардкодить какоето значение в коде а потом искать его полчаса во всех местах !!
Очень важно называть все своими именами (что содержит переменная, что выполняет функция) !! И тд.. И еще много чего что неудобно писать с телефона !! :) Это конечно мое имхо которое мне помогает !! У каждого свои подходы !! Делитесь !!

Аминь. :)

Gector 12.11.2010 21:32

Ответ: Когда кода много
 
О вкусах не спорят).

pepel 12.11.2010 21:55

Ответ: Когда кода много
 
Цитата:

Сообщение от IGR (Сообщение 168361)
Сделать один глобальный (статический) объект/класс который будет управлять чем то одним

это как?

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

реально чем больше разростается проект тем больше времени уходит на вспоминание где что лежит

ABTOMAT 12.11.2010 22:07

Ответ: Когда кода много
 
Когда делал РПГ на блице у меня были инклуды:
NPC - поведение персонажей и игрока
Inventory - инфентарь и предметы
Dialogs - диалоги персонажей
Venicles - колёсные средства передвижения, залезание/вылезни, багажники
Physics - всё что относится к загрузке физических объектов из собственного формата (и его загрузчик) и к регдоллу
Math - математические функции типа теоремы Пифагора и т.д.
Vegetation - всё что относится к росту травы/деревьев/плодов
Pathfind - зачатки путенаха
И ещё с пяток, что уже не вспомнить.
Использовал Visual Blitz
Справа список типов, функций, глобалов и констант.
Сворачивание тел функций и типов.
По-моему, удобно, вполне.

pepel 12.11.2010 22:18

Ответ: Когда кода много
 
ABTOMAT я кстати тож использую visual blitz удобная чтука
Вот только сейчас начал пользоваться списком справа , раньше приходилось листать на нужную функию вручную )
Плюс добавил основные точки с помощью labels :
основные настройки
загрузка уровня
цикл
обновление Действий
renderworld
список функций

Кстати сворачивания типов у меня почемуто нету =\

Я пока использую инклуд с глобальными переменными и инклуд с главным меню, но похоже зря это сделал, т.к. теперь незнаю как сделать возвращение в главное меню из игры =\

impersonalis 12.11.2010 22:22

Ответ: Когда кода много
 
Цитата:

Сообщение от Program23 (Сообщение 168357)
Инклуды же,ужаснейшая вещь,по крайней мере,мне. Намного удобнее будет пролистать код,или воспользоваться поиском,чем переключаться между инклудами. А еще,когда изменил чо-то, в зависимом от главного,инклуде,по привычке его и компилишь.Это так раздражает.
Может быть,и есть IDE,которые всегда запускают только установленный Main-код.Уверен в Protean это есть,чем я не пользуюсь.

это диагноз и приговор


Часовой пояс GMT +4, время: 04:03.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot