Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 01.09.2011, 14:29   #16
falcon
Разработчик
 
Аватар для falcon
 
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений
(для 470 пользователей)
Ответ: Классы

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

.Squid +1, насчёт "убер функций" и т.п., что это проблема самой организации работы и философии.
в зду твою философию)))
Этот этап пройден несколько лет назад. Сейчас с этим кодом можно только работать.
Код УЖЕ написан, и его никто не будет переписывать. Можно сколько угодно говорить о его не совершенстве, но отсутствие венгерской нотации в таком уже написанном коде усложнила бы работу на порядок.

Класс должен
выполнять конкретную задачу
Код с функциями во весь экран - есть зло.
НЕТ идеальных архитектур. НЕТ идеального кода.
Академическое мышление, что чему должно и кто кому чем обязан малоценны в ентерпрайзе. Решение далеко не всегда оказывается самым эффективным, а перерешивать никто и ничего не будет.
Алсо классы и функции выполняют весьма себе определённые задачи. Просто задачи эти весьма объёмны.

Есть такой замечательный дядька - Джоэл.
В его книге о программировании очень не плохо расписана ситуация по поводу совершенства кода:

Пишет программист код. Внезапно у очень многих появляется непреодолимое желание взять и переписать. Начать всё заного, сделать всё чище и лучше. Почему? Да потому что код заполонили всякие костыли, фиксы, да и вообще он стал громозким и запутанным.
Но переписывать такое НЕЛЬЗЯ НИ В КОЕМ СЛУЧАЕ.
почему? Потому что на этот код потрачено много сил и средств. Он уже отлажен и работает. И вся его громозкость - результат фиксов багов, добавления функционала ВНЕЗАПНО потребовавшегося заказчику и т.п.
Именно так ф-ции, классы и решения различных задачь и разростаются со временем.
Создать грамотную архитектуру с нуля не возможно. Так или иначе всегда придётся вносить коректироки.
В данном случае венгерская нотация позволяет максимально эффективно находить деффекты и вносить коректировки.
то что МОГЛИ БЫТЬ маленькие ф-ции, самодокументируемый код, куча однозначных спецификаций и ответственных руководителей - это бесспорно. А ещё каждый обидатель этого форума МОГ БЫ БЫТЬ миллиордером. Все эти "могло бы, должно, обязано" - фигня. Оно уже есть, оно работает и в этом надо разбираться. И венгерская нотация позволяет разбираться быстрее и эффективней.
И каждый раз, когда берёшься за проект, не можешь быть уверен, что он не разрастётся, не зальётся говнокодом и тупыми индускими конструкциями. Потому внесение таких нотационных подсказок весьма не плохое решение.

P.S. соре за объём.. на работе делать нех, пока рабочий девайс не прокачают...
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
SBJoker (01.09.2011)
Старый 01.09.2011, 14:37   #17
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Классы

Создать грамотную архитектуру с нуля не возможно.
согласен с этим.
Начать всё заного, сделать всё чище и лучше. Почему? Да потому что код заполонили всякие костыли, фиксы, да и вообще он стал громозким и запутанным.
Но переписывать такое НЕЛЬЗЯ НИ В КОЕМ СЛУЧАЕ.
а с этим нет.
когда я писал свой первый двиг и его заполнили костыли, фиксы и он стал громоздким и запутанным, я написал новый с нуля, и это очень даже окупилось. я просто понял все ошибки прошлого кода и постарался написать без них. я понимаю если проект, использующий код, подходит к концу - тогда можно добавлять костыли, это будет дешевле. в ином случае надо срочно всё переписывать, иначе эксплуатация кода будет каждодневной пыткой.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (01.09.2011)
Старый 01.09.2011, 14:51   #18
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Классы

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

А то что академические подходы не выживают в коммерции - с этим согласен. Только дополню: в школе, вас учат, и учитесь вы базируясь разным источникам, но не важнейшему - опыту. А лучший опыт, это коммерческий опыт.
Ты говоришь о проектах, с которыми тебе приходится работать, но они уже есть. Это не оправдание что так нужно теперь делать всё. Двигаться нужно вперёд, а не засиживаться на одном месте.
Да, в твоём случае, венгерская нотация, помогла бы, но это не оправдывает её. Т.к. она помогла бы для разбора ужасного кода. Получается что она применима для ужасного кода, и помогает там.
В хорошем и слаженном коде, таких проблем не возникает.

Другой момент, это "философия" и организация работ. И несмотря на твой комент "в зду..", ты потом как раз затрагиваешь эти моменты:
И вся его громозкость - результат фиксов багов, добавления функционала ВНЕЗАПНО потребовавшегося заказчику и т.п.
Проблема организации проекта. Такого не должно быть. Также, разработка кода с учётом его модульности и возможностей, никак не пострадает от "внезапных запросов", т.к. клиент не попросит писать конкретно вот такие строки, он лишь запросит клёвую фичу, которая потребует лишь дополнительную разработку на уровне бизнес логики, или даже фронт-енда, а это не влияет на сами классы никак, если они разработаны с умом..

Тут уже разговор перетекает в организацию проектов, и лид девелоперов, командную работу..
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (01.09.2011)
Старый 01.09.2011, 15:03   #19
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Классы

посмотрю как ты в объёмном чужом коде ковыряться будешь, не зная, что откуда берётся.
в нормально IDE если навести на переменую мышкой, появится подсказка, чем является данная переменная.
(Offline)
 
Ответить с цитированием
Старый 01.09.2011, 15:12   #20
falcon
Разработчик
 
Аватар для falcon
 
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений
(для 470 пользователей)
Ответ: Классы

а с этим нет.
ну если ты высказался против венгерской нотации как таковой, так не приводи в пример только свои небольшие наработки))
лично я сам свой движок переписывал, переписываю и ещё раз перепишу :D
но это потому, что я никому не обязан сдавать его. И потому что он сравнительно крохотный по объёму.
Когда разрабатываешь продукт для заказчика, и понимаешь что изначально сделал что то не так, придётся допиливать то, что есть. а вот В СЛЕДУЮЩИЙ РАЗ взявшись за такое, ты уже будешь знать как подойти грамотней. Так люди и качаются.
Вот только вне домашней кухни выбрасывать продукт и начинать заного - верх идиотизма.
С расчётом на будущее использование - рефакторинг
миня тут никто не слушает, и ничего рефакторить не собирается
я отчасти с командой конечно согласен.. быстрее б просто уже выпустить это всё г-но, и отделаться..

>>Проблема организации проекта.
это ПОФИГ. Ещё раз повторяю - оно УЖЕ организовано.
>>В хорошем и слаженном коде, таких проблем не возникает.
хороший код в энтерпрайзе - утопия.
нельзя заранее знать насколько удачной выйдет огромная система.
в определённый момент она запрасто может "поплыть", и превратиться в кашмар. Венгерская нотация МОЖЕТ пригодится если код свалится в унылое говно, потому отказываться от неё - весьма и весьма самоуверенно.
Такого не должно быть
если они разработаны с умом..
опять эти "должно" и "если".
венгерская нотация просто крутая страховка, на случай если система разработана неудачно. И быть её противником, оче не правильно.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
NitE (01.09.2011)
Старый 01.09.2011, 15:13   #21
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Классы

Сообщение от Den Посмотреть сообщение
в нормально IDE если навести на переменую мышкой, появится подсказка, чем является данная переменная.
Далее можно нажать F12 (почти во всех VS), отправит туда где объявлена переменная, функция, класс и т.п. Также есть удобные инструменты такие как Object Viewer или удобный поиск. Есть функции для глобального переименования переменной (F2 в VS). Авто генерируемая документация о функциях.
Да куча всего. Другое дело тут пойдёт уже речь о более сложных процессах, со всякими темплейтами, рефлекциями и т.п. Там вот уже без знаний и разного рода исследований по коду будет тяжко. Особенно в рефлекции..
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
falcon (01.09.2011)
Старый 01.09.2011, 15:32   #22
falcon
Разработчик
 
Аватар для falcon
 
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений
(для 470 пользователей)
Ответ: Классы

Я для себя открыл такую крутую штуку как Source Insight
но этого всего на самом деле не достаточно.
(Offline)
 
Ответить с цитированием
Старый 01.09.2011, 15:37   #23
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Классы

*взял попкорн*
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 01.09.2011, 20:07   #24
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Классы

falcon, так что, не будешь голословным, или пруфа не ждать ?

Проект с несколькими тысячами файлов исходников(минимум 2к) и весом в несколько гигов (минимум 2) на стол !
(Offline)
 
Ответить с цитированием
Старый 01.09.2011, 22:08   #25
falcon
Разработчик
 
Аватар для falcon
 
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений
(для 470 пользователей)
Ответ: Классы

NitE, ам.. ну да, как раз думал, чоб в свободный доступ исходники не выложить :D
ваще-то я NDA подписывал))

могу минимально нарушить, рассказав, что работаю с SIP телефонами компании Avaya (т.е. по сути эти объёмные исходники компилятся в небольшую бинарку, которая крутится под жутко кастрированным и допиленным линухом встроенным в эти самые агрегаты )
но это врядли удовлетворит твоё NitE любопытство.
Можешь засчитать это как слив, но исходники я тебе не предоставлю))
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (01.09.2011)
Старый 01.09.2011, 22:18   #26
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Классы

когда я писал свой первый двиг и его заполнили костыли, фиксы и он стал громоздким и запутанным, я написал новый с нуля, и это очень даже окупилось. я просто понял все ошибки прошлого кода и постарался написать без них. я понимаю если проект, использующий код, подходит к концу - тогда можно добавлять костыли, это будет дешевле. в ином случае надо срочно всё переписывать, иначе эксплуатация кода будет каждодневной пыткой.
брат!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (01.09.2011)
Старый 01.09.2011, 22:34   #27
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Классы

falcon, ))) мне не нужны исходники, достаточно будет скриншота с замазанными именами файлов, если надо, и открытым пропертисом где видно коль-во файлов и суммарный вес. И чтоб без читерства !
(Offline)
 
Ответить с цитированием
Старый 01.09.2011, 22:37   #28
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Классы

NDA.. - он уже его нарушил, так ещё я бы не советовал.
(Offline)
 
Ответить с цитированием
Старый 01.09.2011, 22:41   #29
falcon
Разработчик
 
Аватар для falcon
 
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений
(для 470 пользователей)
Ответ: Классы

Как то это глупо что ли.
Если это чото значит, окей, в понедельник всё будет

MoKa
ну блин, это же ТАК ВАЖНО чо..)))
МОЙ рабочий проект ЕСТЕСТВЕННО имеет решающее значение в венгерской нотации))
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо falcon за это полезное сообщение:
moka (02.09.2011), NitE (01.09.2011)
Старый 04.09.2011, 11:50   #30
Mind
ПроЭктировщик
 
Аватар для Mind
 
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений
(для 18 пользователей)
Ответ: Классы

У меня вопрос:
Если в функцию я передаю по ссылке класс, чтобы осуществить линейное преобразование(передвижение),хотя можно было бы обойтись ссылкой на матрицу.Сильно ли я теряю в производительности?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com