Возрождение SA-MP SDK for PHP
#21

Quote:
Originally Posted by -Stranger-
View Post
Stepashka, ну хоть кто-то поддержал.
therainycat, Скока я не писал на ООП, в то-же яве, от него тока одни беды, особенно когда 50 классов наследуют друг друга. И потом ищи где реализация данного метода..
Вообще в сампе ООП применить можно в. по пальцам пересчитать можно. Система аккаунтов, дома\тачки.. всё. Ну разве что ещё небольшие утилитные классы, хотя выше сказали про фломастеры.

У меня в моде порядка 75к строк, но в PWN файле всего 7481 строка, и в ней реализованна вся логика сервера. Всё остальное вынесено в порядка 50 инклудов, однозначно говорящие для чего они. И я свой мод знаю так, что мне достаточно просто сказать что найти и я сразу покажу этот участок кода.. Да и думаю любой прогер в своём коде хорошо разбирается.

Ну нету преимущества ООП в сампе, как вы это не можете понять? Можно к запорожцу прицепить двигатель от бугатти, тока в чём понт? запорожец порвёт на 4 части при первом разгоне.

И на русском форуме любят объективно подходить к вопросу, в не по первому порыву что-то делать.
Quote:

Скока я не писал на ООП, в то-же яве, от него тока одни беды, особенно когда 50 классов наследуют друг друга. И потом ищи где реализация данного метода..

От чего угодно в руках незнающего человека одни беды.
Как по мне, эта фраза звучит смешно в наше время, когда речь идет об ООП. Правильно построенная система исключений не делает проблем в отладке приложений - можно спокойно вывести backtrace, узнать файл и номер сторки, не устанавливая никаких для этого костылей в виде плагинов (nativechecker, crashdetect).

Quote:

Ну нету преимущества ООП в сампе, как вы это не можете понять?

Почему же я тогда нашел их? Вы не задумывались, что понять как раз вы не можете? Или не хотите?



В общем, я понял, что многие считают здесь себя эталонными программистами.
И любят побросать всякие словечки, на ряду с вашими
Quote:

" Можно к запорожцу прицепить двигатель от бугатти, тока в чём понт? запорожец порвёт на 4 части при первом разгоне."

что я даже не хочу комментировать, дабы никого не обидеть.

Ребята. Большая просьба.
Если вы не видите в ООП ничего хорошего - не пишите в эту тему.
Я не буду жалеть, если вы не захотите помочь в этом деле, так как мало что потеряю.

Создайте себе тему, соберите однодумцев - и пожалуйста, общайтесь на здоровье.
Я здесь ищу трезвых людей, понимающих.
Reply
#22

Начинать нужно было вообще с опроса, нужен ли кому SDK для PHP. Вероятнее всего, в русском раздели вы не найдёте того, кому оно нужно, кроме вас конечно же. Можно так же устроить голосование на форумах "профессиональных" скриптеров. Но мне кажется, что вы там, кроме как "спиногрызов", никого не найдёте.
Reply
#23

Научитесь читать и понимать, я уже это говорил.
Где я сказал что в ООП нету ничего хорошего? Я сказал что в сампе нету преимущества от ООП.
Приведите любой тривиальный пример, где-бы использование объектов было-бы удобнее?

И я не считаю себя эталонным программистом. Я постоянно изучаю новое и совершенствую старое.

Есть программисты которые рационально смотрят на вещи и рационально используют ресурсы, а есть те, которым плевать на ресурсы и которые штампуют тока на том что знают. Вот Вы относитесь ко второй категории. Я однажды общался с одним человеком, который делает сайты, и он и интернет магазин и сайт-визитку делает на джумле, которая способна просадить любой сервер.
Reply
#24

Quote:
Originally Posted by -Stranger-
View Post
Научитесь читать и понимать, я уже это говорил.
Где я сказал что в ООП нету ничего хорошего? Я сказал что в сампе нету преимущества от ООП.
Приведите любой тривиальный пример, где-бы использование объектов было-бы удобнее?

И я не считаю себя эталонным программистом. Я постоянно изучаю новое и совершенствую старое.

Есть программисты которые рационально смотрят на вещи и рационально используют ресурсы, а есть те, которым плевать на ресурсы и которые штампуют тока на том что знают. Вот Вы относитесь ко второй категории. Я однажды общался с одним человеком, который делает сайты, и он и интернет магазин и сайт-визитку делает на джумле, которая способна просадить любой сервер.
Окей, вот краткий список, где можно использовать ООП (объекты и классы):
- Игрок
- Транспорт
- Дома
- Квестовые персонажи
- Квесты
- Работы
- Предметы
- Графический интерфейс
- Любого рода модули
...

Если я уделю время этому списку, то здесь будет весь функционал сервера, потому что обычно ООП - это единое целое.
Я вечно удивляюсь - каждый раз кто-то пытается хоть как-то сделать PAWN похожим на ООП (хуки на callback'и, пространства имен с
#define NS:: MyNamespace_...
какие-то менеджеры, структуры...), но каждый раз тупо повторяют, что это не ООП, и что ООП нам не надо.

Вернусь к последнему своему сообщению - если вы ничего не планируете делать с плагином, не пишите в тему.
Это не место для обсуждения ООП в случае с SA-MP.
Reply
#25

Я попросил предоставить пример тривиальной задачи, а не список чего можно сделать на объектах....
Reply
#26

Quote:
Originally Posted by -Stranger-
View Post
Я попросил предоставить пример тривиальной задачи, а не список чего можно сделать на объектах....
Мда.
Ну ладно, расскажу подробнее.

Например, у меня на сервере с помощью PAWN реализована система инвентаря.
Каждая вещь имеет два значения - ID вещи и его параметр.
Иногда для вещей вовсе не нужен параметр (например, бинт - он просто бинт).
В частности, возьмем оружие - каждое оружие имеет 16 флагов, обозначающих, установлено на оружии улучшение, или нет, и еще 16 бит, которые устанавливают степень потрепанности оружия (0 - 65535).
Как видно, у нас здесь достаточно узкое место - мы работаем с одним типом ресурсов - вещами, но потребности у них разные. Чтобы вещи можно было использовать нормально, они должны подходить под один шаблон - для бинтов этого шаблона много, для оружия в этом шаблоне слишком тесно (например, нужно будет добавить возможность игрокам переименовывать оружие, или делать на нем "засечку" каждый раз, когда из него кого-то убили - куда его записывать?).

Если вещей сотни, и почти для каждого надо свои параметры (но чтобы их можно было положить в инвентарь на ряду с другими, и беспрепятственно с ними работать), то грядет или же ограниченность в возможностях, или же переизбыток ресурсов.

В случае с PHP, каждая вещь - это объект, и можно спокойно добавить ему параметры, сколько угодно.
А для использования в инвентаре на ряду с другими объектами - отнаследовать интерфейс вещи.

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

[/php]
Reply
#27

Quote:
Originally Posted by White_116
View Post
Начинать нужно было вообще с опроса, нужен ли кому SDK для PHP. Вероятнее всего, в русском раздели вы не найдёте того, кому оно нужно, кроме вас конечно же. Можно так же устроить голосование на форумах "профессиональных" скриптеров. Но мне кажется, что вы там, кроме как "спиногрызов", никого не найдёте.
Я не стремлюсь набрать толпу желающих использовать этот SDK, я просто сделал попытку найти хоть одного человека, которого это заинтересует.
Reply
#28

Повторю 4 раз. Предоставьте мне реализацию любой тривиальной задачи на псевдокоде с использованием ООП и её аналог на обычном PAWN.
Reply
#29

Вам надо - Вы и реализовывайте, с нами можете не делится т.к. нам оно не надо
Если такая мания сокращённого кода - юзайте инклуды
А так полностью согласен с окстайлом, если ничего нового не добавит то зачем оно?
Читал пример с классами и параметрами, это как то губительно сказывается на работе вашего сервера? Если нет, то я считаю эту работу пустой тратой времени
Reply
#30

Quote:
Originally Posted by -Stranger-
View Post
Повторю 4 раз. Предоставьте мне реализацию любой тривиальной задачи на псевдокоде с использованием ООП и её аналог на обычном PAWN.
Та что ж здесь не понятно-то?
PAWN
PHP Code:
// Для оружия надо так
enum e_Weapon {
  
ID,
  
DURABILITY,
  
MODS,
  
NAME[32],
  
KILLS,
  ...
}
var 
weapon[e_Weapon ];
// Для брони надо так
enum e_Armour {
  
ID,
  
DURABILITY,
  
MODS,
  
NAME[32],
  
HITS_TAKEN,
  ...
}
var 
armour[e_Armour];
// Чтобы достать список модов, надо
for (new i=0i!=MAX_MODSi++) {
  new 
modId armour[MODS] & (<< (31 i);
  if (
modId != INVALID_MOD) {
    
// Установлен мод modId
  
}
}
// И еще кучу всякой фигни 
PHP

PHP Code:
// Гибко!!
$obj->id // ID вещи
$obj->param // Параметр
$obj->durability // Параметр
$obj->getMods // Массив модов
... 
Я уже устал вам объяснять, чем ООП лучше чем "всевкучу" в нагруженных проектах.
Вы будете всю жизнь писать свой мод в одиночку, потому что больше никто не знает структуру файлов вашего мода, и всех костылей, которые там понатыканы, чтобы получить от PAWN хоть какое-то удобство.
В случае ООП хоть сотня человек может одновременно работать над разными классами, даже не думая, что где-то там в глобальном пространстве уже есть половина переменных с теми названиями, что он использовал в функциях.

Автозагрузка классов, и никаких "#include <>" разбросанных по разным файлам. Не?

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

Неограниченное количество пространств имен в соотношении с тввумя пространствами PAWN. Не?

Удобное управление callback'ами, создание менеджеров коллбеков, в отличии от сомнительных хуков с дефайнами имен коллбеков (очередь из 10-ти callback'ов, которая падает из-за какого-то инклюда). Не?

Встроенные библиотеки для работы с базой данных, кодировками, xml, ini, еще куча подключаемых модулей в виде того же dll в соотношении со скудным набором нестабильных плагинов для сервера, и кучи инклюдов, которые тормозят как черт. Не?

Нормальная работа с типами данных, а не непонятные свистелки и куча ненужных функций (да-да, в pawn числа с плавающей точкой сделаны через какой-то костыль). Не?

Мод через плагин работает во многих случаях в разы быстрее, чем просто написанный на PAWN. Не?
Читайте результаты бенчмарков автора.

Не надо компилировать каждый раз мод. Не?

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

Тогда вам PAWN в самый раз, у вас мозг не воспринимает ничего нового.
Reply
#31

То, что Вы "... не работал в Visual C++, и понятия не имею ..." Это просто отмаза, по типу "мне лень разбираться".

Мне нужно были разобраться в программировании под 16-битный микроконтроллер PIC24FJ256GB106 и переделать эти исходники под свои нужды PIC24 Web Server Demo(USB) V1.0.zip. И по началу как Вы побежал на форум, но в итоге открыл ман и через неделю перебрал и перекомпилировал и сейчас этот микроконтроллер замечательно работает на VoIP шлюзе для радиолюбителей.

Так что.....
Reply
#32

Если не ошибаюсь, то Варп свой проект на том GDK (C++) делал.

P.S. Все приведённые примеры в пользу PHP говорят лишь об отсутствии умения использования встроенного функционала PAWN. "Проще" и "удобнее" - определяется конкретным программистом.
Reply
#33

Quote:
Originally Posted by -Stranger-
View Post
То, что Вы "... не работал в Visual C++, и понятия не имею ..." Это просто отмаза, по типу "мне лень разбираться".

Мне нужно были разобраться в программировании под 16-битный микроконтроллер PIC24FJ256GB106 и переделать эти исходники под свои нужды PIC24 Web Server Demo(USB) V1.0.zip. И по началу как Вы побежал на форум, но в итоге открыл ман и через неделю перебрал и перекомпилировал и сейчас этот микроконтроллер замечательно работает на VoIP шлюзе для радиолюбителей.

Так что.....
Поздравляю, выежнулся.
Reply
#34

Quote:
Originally Posted by OKStyle
View Post
Если не ошибаюсь, то Варп свой проект на том GDK (C++) делал.

P.S. Все приведённые примеры в пользу PHP говорят лишь об отсутствии умения использования встроенного функционала PAWN. "Проще" и "удобнее" - определяется конкретным программистом.
Ребята, за границами этого форума, а в частности русского раздела, тоже есть мир, в котором есть программисты. То, что у вас здесь своя религия у всех, меня не волнует - но сколько можно толдычить о своем превосходстве? Вы меня толпой не возьмете, можете завязывать с доказательствами своей правоты.

Кстати, я как-то раз затрагивал подобные темы, и знаете, как ваши однодумцы решили мое мнение оспорить?
Да-да, толпой.
Пусть вас хоть миллион здесь будет один за другим повторять, на мое мнение это не повлияет.

На этом слове предлагаю закончить этот треп не по теме, а то оно только отвлекает.

Если кто-то усомнен в моих знаниях - пишите лично, я не желаю что-то объяснять всей толпе сразу.
Reply
#35

А раз считаете, что есть мир за форумом, вот и .. ступайте с миров в этот иной мир, а навязывание своей идеи тут не пройдёт.
Да и чего это вы не хотите на толпу говорить? Застеснялись возможных, неграмотных, ошибок допустить и испортить себе 'безупречную' репутацию?
Reply
#36

Quote:
Originally Posted by -Stranger-
View Post
А раз считаете, что есть мир за форумом, вот и .. ступайте с миров в этот иной мир, а навязывание своей идеи тут не пройдёт.
Да и чего это вы не хотите на толпу говорить? Застеснялись возможных, неграмотных, ошибок допустить и испортить себе 'безупречную' репутацию?
Разговор окончен.
Reply
#37

Точно, аргументы кончились, остались эмоции, а на эмоциях далеко не уйдёшь. Смотрите, монитор слюной не забрызгайте

Да и заткнуть тут меня может не каждый, тока старожилы, которых не так много, но к которым я прислушиваюсь, в отличии от выскочек, вроде Вас.
Reply
#38

Quote:
Originally Posted by -Stranger-
View Post
Точно, аргументы кончились, остались эмоции, а на эмоциях далеко не уйдёшь. Смотрите, монитор слюной не забрызгайте

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

therainycat, можете не пытаться вбить им в головы вашу идею. Здесь сидят приверженцы фразы "Если чего-то нет, то оно и не нужно.". Особенно про ООП.
Reply
#40

Quote:
Originally Posted by SDraw
View Post
therainycat, можете не пытаться вбить им в головы вашу идею. Здесь сидят приверженцы фразы "Если чего-то нет, то оно и не нужно.". Особенно про ООП.
Ну чтож вы так резко. Мне, например, нравится в Project Shoebill (Java SDK) ковыряться на досуге.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)