Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Hed-kun

Программирование, т. 3

Рекомендованные сообщения

Игры свои писать не пробуй.

со всем кроме этого согласен

Как-нибудь аргументируешь? )

да вот скорее мне хотелось бы услышать аргументацию, почему игры принципиально не стоит писать

это как по мне просто отчлиный способ попрактиковаться в составлении алгоритмов, просчитывании логики, в ООП плюс добавить знания каких-нибудь технологий, которые там могут применяться

Нерациональная трата времени.

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

А что бы нормально писать игру тут книги особо не помогут - нужна практика.

После фэйлов эдак 3+ - ты уже сможешь сделать что-либо не кривое.И это только после изучения теоретической базы.

Незачем пытаться реализовать, допустим, какую-либо одну модель разбиения пространства, если достаточно знать преимущества разных вариантов, где их достать, и как это присобачить к твоему куску кода, что бы оно работало.

Поделиться сообщением


Ссылка на сообщение

я не говорю про игры чтобы большие и сразу, но с чего-то стоит же начинать

сначала поверхносно и примитив, потом изучать глубже и делать что-то серьёзнее

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

Поделиться сообщением


Ссылка на сообщение

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


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение
(изменено)

сегодня разбирал легаси код на с++ и пришел к выводу, что кресты - идеальный язык для того, чтобы писать самый уебанский код. изобилие парадигм препроцессора вроде 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 строчек можно полностью изменить поведение всей библиотеки.

Здесь с точки реюзабилити с++ более гибкий чем жава-шарп (имхо офк. все только со своего опыта) .

 

ну да что тебе говорить то. я вообще придерживаюсь взгляда что человек, который не писал на плюсах хотя бы года серьезно не может понять их преимуществ. После "нормально высокоуровневого языка" очевидно ты будешь плеваться пару месяцев, но когда поработаешь пару месяцев, то я не уверен что ты будешь такого же мнения. :)


Изменено пользователем Tinplz

Поделиться сообщением


Ссылка на сообщение

^ вся суть плюсов

 

Самое смешное, что стена текста начинается после слов "не буду спорить"

Поделиться сообщением


Ссылка на сообщение

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


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение
(изменено)

ну с точки зрения читаемости кода - это пиздец полный. не знаю чем его можно оправдать. ну вот мне сегодня пришлось пройти по 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. там есть подсветка и окошко с типами. если так уж все плохо - то поможет


Изменено пользователем Tinplz

Поделиться сообщением


Ссылка на сообщение

мне не надо писать на плюсах. ну и I обычно помечают интерфейсы в си шарпе даже не смотря на то, что там есть интерфейсы, а вот реализацию с I никогда не называют. ну и на с++ тоже есть IoC контейнеры. ну и синтаксис наследования какой-то дикий. соня блейд оценил бы


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение
(изменено)

мне не надо писать на плюсах. ну и 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;

 

то будет только один объект класса А.

 

ну это и есть то место, из которого все так исходят ненавистью к множественному наследованию

такая вот шняга.


Изменено пользователем Tinplz

Поделиться сообщением


Ссылка на сообщение

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

Ну так, поинтересоваться: Тебе для чего это? И какая у тебя база вообще математическая, ну и логическая(тупой или нет в смысле)

в дальнейшем с этим профессию хочу связывать, с математикой\логикой все ок, учусь в элитном физ-мат лицее :buba:

Видели таких элитных )) Что-то сложнее 2х2 отходящее от общей программы - и сразу нихуя не могут.

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

Базовое знание архитектуры компа, управления памятью и прочей подобной хуеты просто необходимо.

Пробуй C# / Java в порядке ознакомления, потом уже сам решишь к чему клонит. Думаю лучше С#, но в принципе и то и то говно.

На веб положи хуй. В сторону питонов и руби не смотри, что бы тебе эти любители извращений не говорили.

Читай алгоритмы и литературу по техникам программирования.

Игры свои писать не пробуй. Языки программирования тоже.

Ну вроде все.

спасибо огромное, займусь C#, только какую литературу посоветуешь? (или не принципиально?)

Поделиться сообщением


Ссылка на сообщение
Гость 2poy_nyasha
(изменено)

Тинпиз конечно еще тот чсвшный кодер, но почему нельзя смотртеть в веб, и почему нельзя писать свои велосипеды так и не пояснил.

 

 

Пацаны, как вы организуеете свой код? Точнее как вы пришли к тому что, вот классы надо называть так, шаблоны так, раскидывать их по папкам так, и так далее?


Изменено пользователем KachoOk

Поделиться сообщением


Ссылка на сообщение

Пацаны, как вы организуеете свой код? Точнее как вы пришли к тому что, вот классы надо называть так, шаблоны так, раскидывать их по папкам так, и так далее?

когда невозможно найти то, что ищешь

Поделиться сообщением


Ссылка на сообщение
Гость 2poy_nyasha
(изменено)

хуевый ответ, даю еще попытку

 

 

 

вот я думаю, как называть папку классы сlasses или class

как назвать файцлы классов class.User.php или User.class.php или user.class.php

разносить ли контроллеры по разным файлам, если они у меня настолько простые что влазят в 50 строк в индексном файле

 

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

 

можно ли ваще использовать хоть немного логики в шаблонах, окромя if else foreach

 

и т.л. и т.п.


Изменено пользователем KachoOk

Поделиться сообщением


Ссылка на сообщение

а теперь поставь рельсы, перепиши проект на них и перестанешь задавать такие глупые вопросы

Поделиться сообщением


Ссылка на сообщение
(изменено)

Тинпиз конечно еще тот чсвшный кодер, но почему нельзя смотртеть в веб, и почему нельзя писать свои велосипеды так и не пояснил.

 

 

Пацаны, как вы организуеете свой код? Точнее как вы пришли к тому что, вот классы надо называть так, шаблоны так, раскидывать их по папкам так, и так далее?

 

 

 

 

чаще всего вендор предлагает code conventions для своих технологий. майкрософт так делает по крайней мере

 

тяжело придумать что-то тупее, чем называть папку с классами classes


Изменено пользователем KachoOk

Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение
Гость 2poy_nyasha
(изменено)

Да я понимаю, что рельсы очень ограниченные, и там не получится писать как-то иначе кроме того как задумали разработчики. В пхп тоже есть всякие YII, но эти фреймворки мне явно не по душе, потому что я не особо осознаю чем руководствовались разработчики. Почему чтобы что-то использовать, мне надо самому прийти к тому, к чему пришли другие люди создающие это по. Для этого я и пишу велосипеды.

 

 

 

Тинпиз конечно еще тот чсвшный кодер, но почему нельзя смотртеть в веб, и почему нельзя писать свои велосипеды так и не пояснил.

 

 

Пацаны, как вы организуеете свой код? Точнее как вы пришли к тому что, вот классы надо называть так, шаблоны так, раскидывать их по папкам так, и так далее?

 

 

 

 

чаще всего вендор предлагает code conventions для своих технологий. майкрософт так делает по крайней мере

 

тяжело придумать что-то тупее, чем называть папку с классами classes

ну я читал чо-то про дзен пхп, даже чо-то подчерпнул себе. Но почему так? И как к этому прийти?

 

Я вот раньше называл папку с классами class а потом где-то на хабре увидел что кто-то назвает ее classes

 

 

 

Конечно я понимаю, что нет абсолютных методов. Но ведь есть методы которые, к примеру, в итоге сильно тормозят масштабируемость из-за неправильного расположения папок. Как такого избегать?

 

И еще, что из себя ваще представляют автоматические тесты в вебе?

Как их писать, и зачем они нужны?

 

десу~~~~


Изменено пользователем KachoOk

Поделиться сообщением


Ссылка на сообщение
Гость 2poy_nyasha

ну алё, скажите мне

можно ли писать так в шаблонах

 

<? include 'head.php' ?>

<? $posts = Post::get_posts(10);

foreach($posts ....):

?>

 

 

или лучше писать так

 

Template::load_full('page.php', ['posts' => Post::get_posts(10)]);

 

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

 

десу~~~~

Поделиться сообщением


Ссылка на сообщение

<? include 'head.php' ?>

<? $posts = Post::get_posts(10);

foreach($posts ....):

?>

4131C46A594A6E69C38927B4B0A3AE30.jpg

Поделиться сообщением


Ссылка на сообщение
Гость 2poy_nyasha

ну комментируй шарпоблядь

 

десу~~~~

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...