какие то вы все злые...
дада... пишите код, блеать.
хватит уже спорить про ооп/не ооп.
программы - это то, что нужно брать и делать, чтобы они работали хорошо.
конечному пользователю плевать на архитектуры и ооп.
не бывает идеальных алгоритмов, архитектур, языков программирования, ровно как и не бывает одинаковых мозгов в головах присутствующих.
кому-то лень, а кто-то вкалывает. кто-то думает и делает, кто-то делает вместо того, чтобы думать, кто-то думает, вместо того, чтобы делать.
чем плох ооп? слишком много думаете, слишком мало делаете. ооп не для этого. если приходится много думать и мало делать и вас это напрягает - всегда есть решение попроще. кого-то устраивает функциональный подход, кому-то хочется ооп, а кого-то не устраивает ни то, ни другое и они идут учить lisp, или разрабатывают свою концепцию.
хочу сказать, что срачи на тему ооп круче или функции круче, этот язык божественный, а вот этот полное говно... это все полный тупизм.
истина - она всегда где-то в середине, и зависит от можества факторов (тип задачи, необходимая производительность, необходимое время разработки, наличие / отсутствие инструментов, библиотек, кадров, личных симпатий и внутреннего устройства головного мозга)
я давно понял, что меня не устраивают ни чисто функциональное программирование, ни ооп в том виде, в котором он сейчас имеется во множестве языков. где-то что-то лучше, но нигде нет всего того, что мне нужно. но если все, что мне нужно объединить - получится очень сложная система, еще навороченнее с++, но должна быть простота.
а путь к простоте длинный - от простого к сложному и обратно.
29 страниц для несуществующей проблемы :) (каюсь, прочитал только первую).
Кто-то как всегда применяет инструмент не по месту. Слабая связность - это хорошо. Но слабая связность нужна только между модулями. Текстура и контекст - это объекты одного модуля, между ними должна быть сильная связь. Контекст GL получив интерфейс ITexture может быть уверен, что это именно GL текстура, иначе можно просто кинуть ассерт и побить программиста по рукам, такого не должно быть в рамках архитектуры.
Не видитесь на посылы именитых прогеров, их код как правило довольно убог (неверующие могут заглянуть в код Doom3, Unreal engine или Cry engine).
winter
> То, что Торвальдс - абсолютный моральный урод, никак не меняет того факта, что
> его слова иногда заставляют задуматься (примерно та же ситуация, как с
> некоторыми людьми на этом форуме, не будем показывать пальцем, да?).
Святые, святые слова!
winter
Всю тему не читал, но непонимаю, в чем проблема - скрыть реализацию от пользователя или что? У тебя есть ITexture (интерфейс) и DX_Texture, GL_Texture (реализации), которые пользователь библиотеки вообще не видит, с ними делай что хочешь. GL_Context не должен "знать" DX_Texture, но GL_Texture знать как раз должен, через friend или, возможно, какой-то доп. интерфейс
Вобщем, как сказал Мизраэль, нужны один модуль - интерфейс, общий для DX и GL и 2 модуля реализаций
Aslan
> Всю тему не читал, но непонимаю, в чем проблема - скрыть реализацию от
> пользователя или что?
мне кажется что весь кипиш был из-за того что интерфейс ITexture приходится кастить в DX_Texture в методе например DX_Texture::Bind. Что теоретически допускает возможность передачи GL_Texture в DX_Texture. В любом случае без ООП будут те же яйца с if|else. А вообще соглашусь с высказыванием "пиши код блеать". Надо меньше философствовать и больше делать. Как раз в тему на хабре: "И пока сферические программисты в вакууме пишут идеальный проект с соблюдением DRY, KISS и множеством других красивых слов, конкуренты с доделанным прототипом из говнокода и палок отъедают свой кусок рынка."
Но остается вопрос со сложностью/ценой сопровождения. Можно и в машинном коде писать кто ж мешает, там тоже самое все будет.
Ravager
> Что теоретически допускает возможность передачи GL_Texture в DX_Texture
Надо проверять, тут никуда не денешся
> конкуренты с доделанным прототипом из говнокода и палок
полгода отлаживают свой говнокод, который "почти работает", а лучше спихивают коллегам, ибо заняты написанием нового говнокода
Aslan
> Надо проверять, тут никуда не денешся
меня лично это не смущает
> полгода отлаживают свой говнокод, который "почти работает", а лучше спихивают
> коллегам, ибо заняты написанием нового говнокода
и тем не менее компания выпускает продукты и саппорту есть чем заниматься. а другая делает "ждалкер", который в итоге выходит с не меньшим кол-вом багов, ибо начальство уже подгоняет и говорит что надо отработать хлеб и красную икру.
Ravager
Я говорю не об абстрактной компании, а о личном печальном опыте, в нескольких проектах. За говнокодерами в итоге надо переделывать полностью
Aslan
> Я говорю не об абстрактной компании, а о личном печальном опыте, в нескольких
> проектах.
а кто сказал что это абстрактная компания, может я тоже по своему опыту сужу. опыт он разный у всех. такого как у вас мне посчастливилось избежать ибо такого пичального говнокода я не видел :) на текущей работе код не идеал, обычный средний. работает, все переписывать не планируется хотя с точки зрения архитектуры философы ООП сказали бы говно.
Насчёт С++ могу сказать, что действительно существуют ситуации, где без него не обойтись. Ну а во всех остальных ситуациях вполне достаточно чистого Си.
Т.е. С++ следует рассматривать именно как инструмент, к которому прибегают именно тогда, когда средств обычного Си недостаточно. Это тем более легко сделать, что один язык вырос из другого. Надо просто отучить себя от вредной привычки инкапсулировать всё что движется. Потому что в противном случае программирование превращается в увлекательную забаву "кто красивей завернет" с нулевым выхлопом в оконцове.
А почему торвальдс моральный урод я не понял. Может он совершает какие-то противоестественные действия с беззащитными пингвинчиками или про русских плохо думает?
C++ столь крут и не тупо разнообразен, что множество языков можно назвать его диалектами... словно они - это по разному зауженные стандарты его...
но из такого ништяка вытекает и недостаток - это развитые слэнги...так один программист может разговаривать на совершенно ином С++ чем другой и понять им друг-друга будет не просто... и это даже прикольно в чем-то, развивает... и большинство его недостатков - такие интересные, что рука у демиургов не поднимается вытеснить их из стандарта...
а еще на С++ можно сделать любой язык программирования, а вот обратное утверждение - не верно в корне)))...
потому, что корни не совсем, но во многом - как раз начиная с С++ по настоящему и вымахали , и корнями - стали...
а тинусу ловальдсу спасибо за не умерший юникс... а про С++ не интересно пишет... как-то упадочно... переработал наверное...
g-cont
> А почему торвальдс моральный урод я не понял
потому что сейчас модно быть крутым небритым моральным уродом.
g-cont
> Насчёт С++ могу сказать, что действительно существуют ситуации, где без него не
> обойтись
а мне удобней их рассматривать как один стандарт... на чистом си, часто невольно пишут в объектном стиле, потому как это самая мощная парадигма снижения сложности и повышения надежности кода... поэтому чистого си - имхо, почти не бывает... это естественное человеческое желание - структуризации... там эти же объекты разбиты в отдельные строки, раскиданы через большие расстояния... и люди которое это увидели когда-то - и придумали опп, а C++ - это его сервисная реализация, виток удобства...
Тема в архиве.