forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Полезные ссылки (http://forum.boolean.name/forumdisplay.php?f=47)
-   -   Блиц против ООП ;-))) (http://forum.boolean.name/showthread.php?t=6215)

SBJoker 15.01.2009 10:28

Ответ: Блиц против ООП ;-)))
 
Незнаю о чём тут спорить, ООП это следующая стадия абстракции в программировании.

Быть против ООП это как быть против эволюции и развития.

Без ООП написать большой проект сложно. ООП позволяет разбить программу на небольшие самодостаточные блоки. А при грамотной реализации транспортировать эти блоки (классы) в другие проекты без изменения самих классов.

impersonalis 15.01.2009 11:50

Ответ: Блиц против ООП ;-)))
 
Цитата:

-Плохая читаемость
-Сложен дебаг
зависит от прямоты рук
Цитата:

+хорошая читаемость
+лёгкость освоения
-не универсальность кода(именно типов)
зависит от прямоты рук
Цитата:

+чёткий контроль за исполнением программы(лёгкий дебаг)
точно такую же (+ более глубокий анализ) чёткость обеспечивает дебаггер IDE MSVC (даже аналогичные кнупочки есть), а как вам возможность узнать файл и строку в нём места креша для скомпиленного ехе? На деле же - "лёгкий" превращается в "примитивный".
Цитата:

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

ffinder 15.01.2009 14:00

Ответ: Блиц против ООП ;-)))
 
Цитата:

Сообщение от SBJoker (Сообщение 94793)
Незнаю о чём тут спорить, ООП это следующая стадия абстракции в программировании.

Быть против ООП это как быть против эволюции и развития.

Без ООП написать большой проект сложно. ООП позволяет разбить программу на небольшие самодостаточные блоки. А при грамотной реализации транспортировать эти блоки (классы) в другие проекты без изменения самих классов.

дадададада.... ну надо же, раскопали мою старую тему:-D

модульность и ООП - разные понятия. общее у них - только интерфейсы.
(пример: в TurboPascal 6.0 были модули, но не было объектов.)
code reuse тоже никак не зависит от ООП.
(пример: DLL имеют процедурные инфтерфейсы).

ffinder 15.01.2009 14:12

Ответ: Блиц против ООП ;-)))
 
Цитата:

Сообщение от Randomize (Сообщение 94790)
Проектирование классов — задача куда более сложная, чем их использование.

если классы спроектированы идиотами - то утверждение меняем на обратное.
прим.: "идиоты" - программисты которые пишут код не соответствующий предметной области.

Цитата:

Сообщение от Randomize (Сообщение 94790)
Лично я даже не знаю что лучше но ООП это чертовски удобно, скужу так: Оно ближе всех пододвигает программиста к реализации идеального движка, заточеного под всё.

лучший движок заточенный под все - это пустой файл.
в реальном мире есть только частные задачи (с)IronPeter (не слово в слово, но смысл именно этот).
Цитата:

Сообщение от Randomize (Сообщение 94790)
Но Microsoft и прочие товарищи двумя руками за ооп.

Майкрософт - это КУЧА проектных команд, часто мало контактирующих между собой. У Майкрософта есть F#, так что не надо.

Randomize 15.01.2009 21:41

Ответ: Блиц против ООП ;-)))
 
Был у меня забавный случай изучения сорца некого товарища, котрый настолько любил ООП что чули TType там небыло))) Ну уж настолько всё было ужасно. Дерево обьектов имело ветки длиной около 40 вложений(зы ответвлений). Сорец был на C Sharp. Эх был бы он у меня... Вместе бы посмеялись. ООП это сила но переусертствовать не надо.
А вобще кто сказал что на блице3д нельза делать ооп.
Скажем добавить в каждый тип параметр Parent в котором хэндл на тип владелец. Или жосткую типизацию без хэндла, это менее гибко.
В довешеннее вышесказаному скажу что я всёже за ООП но не за переусердствование. Классов и наследников не должно быть слижком много. Вобще при должном подходе можно обойтись и вобще без типов но это тоже самое что и молотком делать тунель в скале нежели взять динамит.
Был на памяти один знакомый, который вместо:

Type TBot
field HP
field MaxHP
field x,y,z
field bottype, ent
EndType

Писал:

Dim BotHP(9999)
Dim BotMaxHP(9999)
Dim BotX(9999)
Dim BotY(9999)
Dim BotZ(9999)
Dim BotType(9999)
Dim BotEnt(9999)
BotCount=0

Но так нельзя.
Я его спросил:
Я: Что будет если убивают одного из ботов?
Он: BotCount-1
Я: А если убьют допустим третьего а всего их 10?
Он: Ну у меня проверка по BotEnt(i) есть если он пуст то цикл идёт дальше

Ерунда налицо. Игру он делал типа Сrimsonland и получается что после убийства 500 ботов игра будет сильнейшим образом тормозить. При попытке пустить его в нужное русло и обратить взгляд его на типы он очень сильно ругался и говорил что типы это бездарно. В общем каждый прогает как умеет и грабли у всех свои.

HolyDel 15.01.2009 21:49

Ответ: Блиц против ООП ;-)))
 
у меня в варче боты - тоже массивом.
если юнита убивают - то он замещается последним из списка и кол-во юнитов уменьшается на 1.
работает очень быстро.

ffinder 15.01.2009 22:08

Ответ: Блиц против ООП ;-)))
 
Цитата:

Сообщение от Randomize (Сообщение 94868)
Дерево обьектов имело ветки длиной около 40 вложений(зы ответвлений). Сорец был на C Sharp. Эх был бы он у меня... Вместе бы посмеялись. ООП это сила но переусертствовать не надо.

ну ты не сказал про сложность задачи - в некоторых случаях и не такое оправдано.
Цитата:

Сообщение от Randomize (Сообщение 94868)
А вобще кто сказал что на блице3д нельза делать ооп.

все сказали, в том числе и я. можно делать _подобие_ ООП. т.е. самостоятельно выполнять работу компилятора.
ты похоже путаешь древовидные структуры и ООП. это совсем никаким боком не связанные вещи.
ООП (классовое, есть еще прототипное) это:
1. инкапсуляция
- к внутренним переменным и методам нельзя обратится извне (иначе компилятор не пущает) - в Блице3д только следить самому
- объединение кода и данных в одном месте - этого тоже напрочь нет, а вместо есть аналог сишного struct. и все бы ничего можно было бы в структуру напихать указателей на функции класса - но вот указателей на функции тоже не выдали.
2. наследование - без комментариев, его не может быть как описано выше.
3. полиморфизм - нету, так как нету наследования
[/quote]

Цитата:

Сообщение от Randomize (Сообщение 94868)
Классов и наследников не должно быть слижком много.

точно, их должно быть ровно столько чтобы решить поставленную задачу.
Цитата:

Сообщение от Randomize (Сообщение 94868)
Он: Ну у меня проверка по BotEnt(i) есть если он пуст то цикл идёт дальше

и такое бывает. хоть на нулл проверяет - уже хорошо.
Цитата:

Сообщение от Randomize (Сообщение 94868)
типы это бездарно.

твой знакомый ну просто петросян. улыбнуло:)
Цитата:

Сообщение от Randomize (Сообщение 94868)
В общем каждый прогает как умеет и грабли у всех свои.

скорее "сам себе злобный буратино"


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

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