Tinplz #641 28 января 2013 Игры свои писать не пробуй.со всем кроме этого согласенКак-нибудь аргументируешь? )да вот скорее мне хотелось бы услышать аргументацию, почему игры принципиально не стоит писатьэто как по мне просто отчлиный способ попрактиковаться в составлении алгоритмов, просчитывании логики, в ООП плюс добавить знания каких-нибудь технологий, которые там могут применятьсяНерациональная трата времени.Слишком большой объем сразу. Пока молодой - будет хотеть все сделать быстрее, следовательно изучать будет поверхностно, хотя нужно концентрироваться на общей концепции, и уже с пониманием изучать отдельные аспекты досконально, что увеличит скорость обучения в разы.А что бы нормально писать игру тут книги особо не помогут - нужна практика. После фэйлов эдак 3+ - ты уже сможешь сделать что-либо не кривое.И это только после изучения теоретической базы.Незачем пытаться реализовать, допустим, какую-либо одну модель разбиения пространства, если достаточно знать преимущества разных вариантов, где их достать, и как это присобачить к твоему куску кода, что бы оно работало. Поделиться сообщением Ссылка на сообщение
TheDeadSkin #642 28 января 2013 я не говорю про игры чтобы большие и сразу, но с чего-то стоит же начинатьсначала поверхносно и примитив, потом изучать глубже и делать что-то серьёзнеену и офк это не должно быть первым проектом новичка, просто откладывать до "никогда" именно игры я не вижу смысла Поделиться сообщением Ссылка на сообщение
rubish #643 28 января 2013 сегодня разбирал легаси код на с++ и пришел к выводу, что кресты - идеальный язык для того, чтобы писать самый уебанский код. изобилие парадигм препроцессора вроде typedef этому очень здорово способствуют Колы я выросту - то хочу буты такым як я годные смайлы Поделиться сообщением Ссылка на сообщение
Tinplz #644 28 января 2013 (изменено) сегодня разбирал легаси код на с++ и пришел к выводу, что кресты - идеальный язык для того, чтобы писать самый уебанский код. изобилие парадигм препроцессора вроде typedef этому очень здорово способствуютНе буду спорить ))Существует каста девелоперов, которые применяют возможности языка там где надо, и там где не надо ))У меня на работе есть один такой, для обычного вектора тайпдефит все итераторы, а потом сам в них путается. в принципе, тайпдефы удобны для быстрой замены одного типа объектов на другой, без особого ебалова.допустим у тебя есть какой-либо типизированный контейнер, ты тайпдефишь его и его итераторы. В итоге получаешь к примеру typedef vector<std::tr1::shared_ptr<A> > AContainer;typedef AContainer::iterator AIterator; используешь с помощью общих контейнерных функций. там уже надо на компилятор полагаться, оптимизирует он это или нет.void foo(AContainer& container){for (AIterator iter = container.begin(); iter != container.end(); iter++)iter->get()->value *= 2;} потом тебе нужно поменять его тип, что бы реализовать новый функционал, который будет лучше работать, если этот вектор будет либо листом, либо очередью - меняешь только тайпдеф: typedef list<std::tr1::shared_ptr<A> > AContainer;typedef deque<std::tr1::shared_ptr<A> > AContainer; и вуаля - у тебя другой контейнер, и ты можешь его оптимально использовать с точки зрения листа.ну это самое обычное применение, в любом нормальном языке ты сможешь это сделать либо чуть медленне, либо быстрее - зависит от конкретного случая.ну и можешь сделать вместо А - темплейтовый T, без всяких выебонов с указыванием обязательно поддеживаемых интерфейсов. Потом уже с компилятором разбираешься, если напортачил. Но если писать нормально, то напортачить очень сложно. но когда дело доходит до темплэйтного метапрограммирования - тогда уже тайпдеф и начинает сильно помогать.темплейты вообще крайне полезная вещь, не имеющая аналогов. генериксы это жалкое подобие, которое по сути является Очень Сильно урезанными темплейтами. Думаю не стоит указывать преимущества компайл тайм определения типов против рантайм тайм. ( в принципе недостатки тоже есть, можно лохануться с виртуальными функциями и т д ) при правильно написанном коде при поможи 10 строчек можно полностью изменить поведение всей библиотеки.Здесь с точки реюзабилити с++ более гибкий чем жава-шарп (имхо офк. все только со своего опыта) . ну да что тебе говорить то. я вообще придерживаюсь взгляда что человек, который не писал на плюсах хотя бы года серьезно не может понять их преимуществ. После "нормально высокоуровневого языка" очевидно ты будешь плеваться пару месяцев, но когда поработаешь пару месяцев, то я не уверен что ты будешь такого же мнения. :) Изменено 28 января 2013 пользователем Tinplz Поделиться сообщением Ссылка на сообщение
Vizakenjack #645 28 января 2013 ^ вся суть плюсов Самое смешное, что стена текста начинается после слов "не буду спорить" Канал про крипту Поделиться сообщением Ссылка на сообщение
rubish #646 28 января 2013 ну с точки зрения читаемости кода - это пиздец полный. не знаю чем его можно оправдать. ну вот мне сегодня пришлось пройти по 5 тайпдефам чтобы понять что это за хуета такая. в нормальных языках для этого используется DI. используешь только интерфейсы и абстрактные классы, а конкретную реализацию определяет IoC контейнер. надо поменять реализацию - поправил конфиг, надо заменить в каком-то конкретном случае - опять же подправил конфиг. При этом взглянув на код можно понять что там вообще происходит и что это за зверь такой Колы я выросту - то хочу буты такым як я годные смайлы Поделиться сообщением Ссылка на сообщение
Tinplz #647 28 января 2013 (изменено) ну с точки зрения читаемости кода - это пиздец полный. не знаю чем его можно оправдать. ну вот мне сегодня пришлось пройти по 5 тайпдефам чтобы понять что это за хуета такая. в нормальных языках для этого используется DI. используешь только интерфейсы и абстрактные классы, а конкретную реализацию определяет IoC контейнер. надо поменять реализацию - поправил конфиг, надо заменить в каком-то конкретном случае - опять же подправил конфиг. При этом взглянув на код можно понять что там вообще происходит и что это за зверь такой ну с точки зрения плюсов, интерфейс: class ICustomInterface {public:virtual void foo() = 0;virtual void bar() = 0;}; а поверхностные возможности реализации такие class ICustomImplementation : public virtual ICustomInterface {// both methods must be implemented}; class A {int z;int v; virtual int foo() = 0; void aaa() {} }; // насчет виртуально функции не уверен, не компайлилclass B : private A {// inherits only implementation.// only aaa() visible.} P.S. поставь Visual assist X. там есть подсветка и окошко с типами. если так уж все плохо - то поможет Изменено 28 января 2013 пользователем Tinplz Поделиться сообщением Ссылка на сообщение
rubish #648 28 января 2013 мне не надо писать на плюсах. ну и I обычно помечают интерфейсы в си шарпе даже не смотря на то, что там есть интерфейсы, а вот реализацию с I никогда не называют. ну и на с++ тоже есть IoC контейнеры. ну и синтаксис наследования какой-то дикий. соня блейд оценил бы Колы я выросту - то хочу буты такым як я годные смайлы Поделиться сообщением Ссылка на сообщение
Tinplz #649 28 января 2013 (изменено) мне не надо писать на плюсах. ну и I обычно помечают интерфейсы в си шарпе даже не смотря на то, что там есть интерфейсы, а вот реализацию с I никогда не называют. ну и на с++ тоже есть IoC контейнеры. ну и синтаксис наследования какой-то дикий. соня блейд оценил быну я нечаянно I поставил, бывает, спешил когда писал.ну синтаксис наследования стандартный. если наследуешь через паблик, то наследуешь интерфейс, если через приват то имплементацию.виртуал полезен только при множнственном наследовании, по привычке, опять же, написал.с помощью его определяется какое поле будет в объекте C при иерархиях типа:class A;class B : A;class C : A;class D : B, C; если без virtual то будет 2 объекта А, соответственно обращаться к ним через: B::A и C::A.если же будет сделано как: class A;class B : virtual A;class C : virtual A;class D : virtual B, virtual C; то будет только один объект класса А. ну это и есть то место, из которого все так исходят ненавистью к множественному наследованиютакая вот шняга. Изменено 28 января 2013 пользователем Tinplz Поделиться сообщением Ссылка на сообщение
Rand0m #650 29 января 2013 посаны, решил заняться программированием, делфи или с++? или какие языки сейчас вообще актуально учить? и на каких прогах происходит само действиеНу так, поинтересоваться: Тебе для чего это? И какая у тебя база вообще математическая, ну и логическая(тупой или нет в смысле)в дальнейшем с этим профессию хочу связывать, с математикой\логикой все ок, учусь в элитном физ-мат лицее Видели таких элитных )) Что-то сложнее 2х2 отходящее от общей программы - и сразу нихуя не могут.С++ слишком сложный язык что бы учить его просто так. Там надо себя ему буквально посвящать на несколько лет, что бы хоть что-то нормальное делать. Дельфи хуйня бесполезная.Базовое знание архитектуры компа, управления памятью и прочей подобной хуеты просто необходимо.Пробуй C# / Java в порядке ознакомления, потом уже сам решишь к чему клонит. Думаю лучше С#, но в принципе и то и то говно.На веб положи хуй. В сторону питонов и руби не смотри, что бы тебе эти любители извращений не говорили.Читай алгоритмы и литературу по техникам программирования.Игры свои писать не пробуй. Языки программирования тоже.Ну вроде все.спасибо огромное, займусь C#, только какую литературу посоветуешь? (или не принципиально?) Поделиться сообщением Ссылка на сообщение
Гость 2poy_nyasha #652 29 января 2013 (изменено) Тинпиз конечно еще тот чсвшный кодер, но почему нельзя смотртеть в веб, и почему нельзя писать свои велосипеды так и не пояснил. Пацаны, как вы организуеете свой код? Точнее как вы пришли к тому что, вот классы надо называть так, шаблоны так, раскидывать их по папкам так, и так далее? Изменено 29 января 2013 пользователем KachoOk Поделиться сообщением Ссылка на сообщение
TheDeadSkin #653 29 января 2013 Пацаны, как вы организуеете свой код? Точнее как вы пришли к тому что, вот классы надо называть так, шаблоны так, раскидывать их по папкам так, и так далее?когда невозможно найти то, что ищешь Поделиться сообщением Ссылка на сообщение
Гость 2poy_nyasha #654 29 января 2013 (изменено) хуевый ответ, даю еще попытку вот я думаю, как называть папку классы сlasses или classкак назвать файцлы классов class.User.php или User.class.php или user.class.phpразносить ли контроллеры по разным файлам, если они у меня настолько простые что влазят в 50 строк в индексном файле можно ли в шаблонах обращаться к классам для получения данных, или надо один раз все передавать шаблонам можно ли ваще использовать хоть немного логики в шаблонах, окромя if else foreach и т.л. и т.п. Изменено 29 января 2013 пользователем KachoOk Поделиться сообщением Ссылка на сообщение
Vizakenjack #655 29 января 2013 а теперь поставь рельсы, перепиши проект на них и перестанешь задавать такие глупые вопросы Канал про крипту Поделиться сообщением Ссылка на сообщение
rubish #656 29 января 2013 (изменено) Тинпиз конечно еще тот чсвшный кодер, но почему нельзя смотртеть в веб, и почему нельзя писать свои велосипеды так и не пояснил. Пацаны, как вы организуеете свой код? Точнее как вы пришли к тому что, вот классы надо называть так, шаблоны так, раскидывать их по папкам так, и так далее? чаще всего вендор предлагает code conventions для своих технологий. майкрософт так делает по крайней мере тяжело придумать что-то тупее, чем называть папку с классами classes Изменено 29 января 2013 пользователем KachoOk Колы я выросту - то хочу буты такым як я годные смайлы Поделиться сообщением Ссылка на сообщение
Гость 2poy_nyasha #657 29 января 2013 (изменено) Да я понимаю, что рельсы очень ограниченные, и там не получится писать как-то иначе кроме того как задумали разработчики. В пхп тоже есть всякие YII, но эти фреймворки мне явно не по душе, потому что я не особо осознаю чем руководствовались разработчики. Почему чтобы что-то использовать, мне надо самому прийти к тому, к чему пришли другие люди создающие это по. Для этого я и пишу велосипеды. Тинпиз конечно еще тот чсвшный кодер, но почему нельзя смотртеть в веб, и почему нельзя писать свои велосипеды так и не пояснил. Пацаны, как вы организуеете свой код? Точнее как вы пришли к тому что, вот классы надо называть так, шаблоны так, раскидывать их по папкам так, и так далее? чаще всего вендор предлагает code conventions для своих технологий. майкрософт так делает по крайней мере тяжело придумать что-то тупее, чем называть папку с классами classesну я читал чо-то про дзен пхп, даже чо-то подчерпнул себе. Но почему так? И как к этому прийти? Я вот раньше называл папку с классами class а потом где-то на хабре увидел что кто-то назвает ее classes Конечно я понимаю, что нет абсолютных методов. Но ведь есть методы которые, к примеру, в итоге сильно тормозят масштабируемость из-за неправильного расположения папок. Как такого избегать? И еще, что из себя ваще представляют автоматические тесты в вебе?Как их писать, и зачем они нужны? десу~~~~ Изменено 29 января 2013 пользователем KachoOk Поделиться сообщением Ссылка на сообщение
Гость 2poy_nyasha #658 29 января 2013 ну алё, скажите мнеможно ли писать так в шаблонах <? include 'head.php' ?><? $posts = Post::get_posts(10); foreach($posts ....):?> или лучше писать так Template::load_full('page.php', ['posts' => Post::get_posts(10)]); то есть где заканчивается права кода в шаблонах? десу~~~~ Поделиться сообщением Ссылка на сообщение
TheDeadSkin #659 29 января 2013 <? include 'head.php' ?><? $posts = Post::get_posts(10); foreach($posts ....):?> Поделиться сообщением Ссылка на сообщение
Гость 2poy_nyasha #660 29 января 2013 ну комментируй шарпоблядь десу~~~~ Поделиться сообщением Ссылка на сообщение