Пятница, 26 Апреля 2024, 06:20

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Записи участника » NancyWithoutSid [23]
Результаты поиска
NancyWithoutSidДата: Четверг, 22 Августа 2013, 22:09 | Сообщение # 1 | Тема: Какой выбрать?
был не раз
Сейчас нет на сайте
Цитата (Archido)
Поржал. Неудивительно, что не устроились.

Уже была устроена в другом месте, как в прочем и до сих пор.
Цитата (Archido)
Оу, надо же, а я столько лет жил в неведении.

Зачем тогда коментить?
Цитата (Archido)
В конторе этот движок уже используют и поддерживают много лет, штат сотрудников (особенно художники) приучены к его тулсету, а вы (какая власть то у программистов ) просто пойдете и смените движок? И заплатите за него тоже сами? Валяюсь. О чем с вами можно говорить?

Я тоже не знаю о чем с вами можно говорить. Ведь я не занимаюсь разработкой Игорей. И играю только в AAA проекты, и то очень редко. Open source софт вы использовать не хотите. Платить тоже не хотите. Если "контора" делает продукт на неудобных для этой задачи, или устаревших инструментах, то это исключительно ее проблемы, а не программистов.
Если вы хотите знать, то я занимаюсь программированием enterprise систем на java. И часто встречаюсь с legacy софтом. И есть большая разница между тем, что необходимо поддерживать продукт на legacy технологии и между тем, чтобы запилить новую систему на изжившем себя стеке технологий. Второе я считаю идиотизмом(не дальновидностью если хотите) руководства. Почему, думаю сами догадаетесь.

А началось все с того, что я отписала, что типа "алгоритмы не важны", но вы обламались прочесть пост целиком, а выдрали из контекста кусок.
1)Либо у вас с анализом плохо
2)Либо вы делаете это умышленно
Цитата (Archido)
И правильно, грустно когда читать не умеешь.

Ты такой няш, правда. Надо ли говорить, что хочу от тебя детей?
Цитата (PBPROG)
С чего вы взяли?
Код драйвера компилируется из IDE парой кликов мышки и никаких танцев с бубном с батниками или командной строкой. Даже больше скажу, создать драйвер не сложнее чем обычное приложение.

Ну это очень круто. Я рада что все так просто(не сарказм). Подобный драйвер можно написать хоть на ассемблере. Главное правильно указать точку входа в бинарник. Как я понимаю в любом случае происходит вызов DriverEntry, и не важно с помощью чего был получен ее ассемблерный код, главное чтобы имя было DriverEntry и формат PE. И все таки как насчет простенького модуля для linux? Мне правда интересно просто


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Четверг, 22 Августа 2013, 20:32 | Сообщение # 2 | Тема: Какой выбрать?
был не раз
Сейчас нет на сайте
Цитата (AlexRabbit)
NancyWithoutSid, я даже не знаю как сказать.. в изливаемом Вами потоке сознания такое количество ошибок и просто явного незнания того "как оно на самом деле есть", что складывается впечатления, что Вы просто перечитали журнал "Хакер" и теперь транслируете это на форум. Практически на каждый абзац Вашего текста можно написать по пол страницы опровержения с разъяснениями. Но меня уже настолько достало разбирать этот недетский бред в других темах, что я, пожалуй, воздержусь.

Очень "тонко", но вы все-таки попробуйте. В посте есть ошибка да. Kernel driver + libc. Это реальный косяк. Проблема в структуре предложения. libc относилась к демону. Если не отпишите все мои "ужасные промахи", то тоже буду минусовать.
Цитата (Archido)
Вы в курсе, что в конторах у разработчиков движки либо самописные, либо покупные и которые в последствии дописываются под свои нужды

Пол года назад хотела устроиться разработчиком игр. Так вот, вы в курсе что для серьезных проектов не используют самописные движки?
Цитата (Archido)
Опен сорс там часто не используют по объективным причинам.

Есть Unity, Unreal, Cry . И мелких навалом. Не хотите open source, не берите.
Цитата (Archido)
Вам поставят задачу дописать рендер indoor сцен, которые раньше движок не поддерживал. И что дальше?

возьму другой движок. Выбор есть благо дело.
Цитата (Archido)
Зато я считаю, что вы не умеете читать и осознать мысль того поста.

Я даже прослезилась :3
Цитата (PBPROG)
Вот такие.
Это драйвер перехватывает функции ядра и предотвращает завершение программы.

Эм, ну ок, допустим. Только теперь вопрос. А стоило ли так мучиться? biggrin
Жду модуль ядра на PB, который пишет в syslog. Pure Basic это ведь настоящий кросплатформенный язык с мощной стандартной библиотекой, которая позволяет делать переносимые окна.

Добавлено (22.08.2013, 20:32)
---------------------------------------------

Цитата (Archido)
Мы на форуме разработчиков игр как бе или это для вас новость?

Render от английского "воспроизводить". А воспроизводить можно много чего, используя ЭВМ. Дальше, я думаю, вы сами справитесь


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Четверг, 22 Августа 2013, 14:44 | Сообщение # 3 | Тема: Какой выбрать?
был не раз
Сейчас нет на сайте
PBPROG,
Цитата (PBPROG)
Вы не правы.
Для примера Винда платная, а Линь халявная, но тем не менее, большинство предпочитает юзать винду. Так и здесь. То что инструмент платный, не означает что он не может конкурировать с бесплатными инструментами.

Парень, ты мне просто взрываешь мозг. Какие нафиг драйверы на Pure Basic? Ты DDK читал? http://habrahabr.ru/post/40466/
Под линь рассказать как написать драйвер? Он же модуль. Мало того что вы без libc тут нихрена не сделаете(даже демона не напишите, не то что драйвер), так еще и в ko файл вы каким хреном собирать будете ваш "программу" ?

Ты знаешь что Red Hat enterprise стоит столько, сколько и не снилось некоторым за "халявный" и бесплатный linux. Windows предустановлена на 99% ноутбуках и готовых ПК. И никто ее нахрен не покупает(может только те, кто с пробитой головой). Тупо качают с торрента, либо юзают хоме васик, или зверя еще страшнее типа стартер, который был типа запилен еще на заводе, вместе с кучей всякого мусора типа McAffee. Хотя я могу пользовать только Ultimate/ Pro редакции, ибо остальное просто УЖАС. Linux не продукт для домохозяек, которые станут ныть если из коробки все не заработает. Linux это вообще ядро.Есть куча бесплатных дистрибутивов со своими достоинствами и недостатками, однако есть и платные.

Короче, парень, ты так больше не шути. До инфаркта еще доведешь меня.


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Четверг, 22 Августа 2013, 13:50 | Сообщение # 4 | Тема: Какой выбрать?
был не раз
Сейчас нет на сайте
Цитата (PBPROG)
79 евро это копейки они быстро окупаются.

Комерческие продукты будете писать на этом? Игры чтоли? biggrin Эта вещь должна быть бесплатной, а так как она не бесплатна, то не выдерживает конкуренции с другим софтом вообще. Как-то так. Для сравнения вам lua / love / eclipse. Тоже игры можно делать, и все абсолютно бесплатно.


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Четверг, 22 Августа 2013, 13:38 | Сообщение # 5 | Тема: Какой выбрать?
был не раз
Сейчас нет на сайте
Цитата (PBPROG)
Выше упоминал про PureBasic. Вот он дружит с окошечками не только под виндой, но и линукс и макос. И к тому же не нуждается в .NET Framework.

* бесплатная демоверсия ограничивает рамер кода 800 строками.
Полная версия 79 евро.
79 евро это совсем перебор даже за такую вот IDE и набор типа кросплатформенных либ.
Да, можно скачать с рутрекера, а стоит ли?
Когда-то давно я писала на Borland C++ Builder 6(в целях обучения). Он конечно был пиратским. Затем я перешла на полностью бесплатный софт, начиная от OS кончая IDE, собственно чего и всем советую.


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Четверг, 22 Августа 2013, 13:29 | Сообщение # 6 | Тема: Какой выбрать?
был не раз
Сейчас нет на сайте
Цитата (Archido)
Это вы о ком сейчас говорите? Если надо будет систему рендера написать, где брать будете?

Не поняла вопроса. Что вам рендерить надо? Или это "очередная абстрактная никому не нужная система, определенно своя и самая крутая"
Batch операции над изоображениями? ImageMagic/gimp. Повертеть на сцене что-то? Blender и куча других движков, в том числе 2D. Рендерить что-то в вебе - html/css/js - хоть png/jpg/pdf. Возможно web-kit если вам надо без x-server. Вы правда считаете что ничего нет? Мне вас жаль.
Цитата (Archido)
Это у вас такая основная задача? Быстро осваивать очередную библиотеку? И ваши мега алгоритмы никому не нужны? Ок, пусть тогда это и останется вашей тайной =)

Сегодня один проект - завтра другой. Сегодня одни задачи и интструменты - завтра другие. Если будете тормозить и пытаться решать новые задачи "старыми уютными" способами, которые абсолютно не подходят, то вы никому не нужны как нормальный программист. Будете годами сидеть 40 часовую неделю перед монитором в качестве input девайса у менеджера и архитектора.

Цитата (Archido)
Другие диалекты бейсика? Не, не слышал.

Дорогой, расскажи мне диалект, кроме VB где можно рисовать окошечки под вендой, а еще желательно berkley sockets happy Без этого, я считаю нереально писать современные программы.

Добавлено (22.08.2013, 13:29)
---------------------------------------------

Цитата (PBPROG)
Начни с простого и современного языка, например, с PureBasic.
Не слушай других советчиков, ведь они предлагают то, что вовсе не подходит для начинающих. Им бы только похоливарить!

Зачем он нужен? Хочется играться, возьмите JS. Хочется консоль и все по-взрослому - берите nodejs. Порисовать ui - учите css3 html5. Это реально ПОЛЕЗНЫЕ навыки, которые в определенный момент вам окупятся 1000 кратно.

Цитата (Dmi7ry)
возможно, что я просто так привык писать на си-подобных языках. и, скорее всего, у нас разные задачи.

На Си использую команды препроцессора в хвост и гриву, там без них абсолютно никак, если нужно собрать что-то более менее годное/переносимое и настраиваемое при компиляции. На Java как-то не знаю wacko Реально нет нужды. Скорее всего именно поэтому в стандарте до сих пор их нет и не предвидется. Больше не хватает в Java unsigned типов данных. Я только один раз пыталась писать "низкоуровневый" код на java, с тех пор я этого не делаю вообще, а сразу беру C.
Цитата (Dmi7ry)
Была небольшая заминка, когда начал изучать C++ (литературы не было, не сразу понял идею ООП, однако более опытные коллеги помогли разобраться).


честно говоря в С++ ООП не вызывает каких-то проблем особых. Мои любимые грабли это ссылки vs указатели vs по значению / темплейты / stl - убийственная и зубодробильная вещь. boost даже не трогала. RTTI мать его. Всякие веселухи типа protected наследования. До С++11 еще даже не добралась, а там уже closure/ forEach/ list initializers.В общем, я настроена осилить все это, но не сейчас biggrin
Цитата (Dmi7ry)
Я видел этот код. Но его очевидность, на мой взгляд, весьма низка. Он не выглядит как управляющая конструкция, он выглядит именно как код - с такой записью работать тяжелее. При записи же #define всё сразу хорошо видно.

Не буду спорить, тут вы правы на все 100%. Но лично мне такого добра писать не доводилось

С вами приятно спорить smile Истина где-то рядом - пора завязывать. В целом мне остается только выразить респект, и пожелать удачи в разработке игр *beer*


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Среда, 21 Августа 2013, 22:30 | Сообщение # 7 | Тема: Какой выбрать?
был не раз
Сейчас нет на сайте
Цитата (Dmi7ry)
Если бы там был включен второй уровень сборки, то скриншоты затирались бы сразу же. У меня в движке игры при удалении спрайтов и других изображений память освобождается почти моментально.

А не заставит ли это GC совершать целую кучу минорных сборок, тормозя ваше приложение?

Цитата (Dmi7ry)
Конечно. Естественно, что при использовании систем сборок они возьмут на себя бОльшую часть работы, но используются они далеко не всегда. Иногда гораздо проще воткнуть #define.

Любой мало мальский проект на Java это maven или ant, где все это есть. Обычно все настраивается через xml. Если вам серьезно надо коцать код в зависимости от ситуации, то byte code instrumentation в руки (javssist/ cglib). За 3 года ни разу в java коде не понадобился #define или #ifdef, я что-то делаю не так
Цитата (Dmi7ry)
10 тут, 10 там, 10 ещё где-то. А в сумме всё равно время экономится и усилия. Многие вещи в эволюции программирования - это что-то, что позволяет делать то же самое, что уже было, только проще.

рационально, тут не поспоришь. Но это делает 2 злые вещи
1)программистов тупыми, глядишь и слово Thread забудут biggrin
2)Опять же дает стрелять в ногу, и загораживает "понимание процесса"
Цитата (Dmi7ry)
примерно полутора миллиардам владельцам ПК - несомненно.

А что им нужно? Калькулятор/видео плеер, и ms office. The end? Сейчас все переезжает в веб и на мобилки, и этот процесс необратим. Корпоративный софт тоже на вебе. Наверное и так очевидно почему.

Добавлено (21.08.2013, 22:30)
---------------------------------------------

Код
ну если сильно хочется
public class CompileConfig{
    public static final boolean useThat = true;
}
public class MyDefine{
  public void foo(){
        if(useThat){} else {}
  }
}

ветки else в байт коде не будет. Принципиальной разницы не вижу. Разве что #ifdef более ванилен и сишен.


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Среда, 21 Августа 2013, 20:04 | Сообщение # 8 | Тема: Какой выбрать?
был не раз
Сейчас нет на сайте
Цитата (Deswing)
"В области программирования для сети Интернет PHP — один из популярных сценарных языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.
Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений[8]. Основные из них:
автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);
автоматизированная отправка HTTP-заголовков;
работа с HTTP-авторизацией;
работа с cookies и сессиями;
работа с локальными и удалёнными файлами, сокетами;
обработка файлов, загружаемых на сервер;
работа с XForms.
В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в июне 2013 года PHP находился на 5 месте среди языков программирования.[6] К крупнейшим сайтам, использующим PHP, относятся Facebook, Wikipedia и др."

Либо пост 2001 года, либо я НЕ ДОГОНЯТЬ ЭТОТ ПОЕЗД happy


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Среда, 21 Августа 2013, 19:53 | Сообщение # 9 | Тема: Какой выбрать?
был не раз
Сейчас нет на сайте
Цитата (AlexRabbit)
Сначала изучаются обычные языки без всякого ООП: это Basic или Pascal.
Лично я отдаю предпочтение Basic, но это сугубо вопрос личных предпочтений (как вопрос "что лучше - синий или зелёный").
Очень неплохо освоить оба: программист, знающий 1 или 2 языка - это несчастье а не программист.
Потом желательно обучить человеку основам ассемблера. Да, вкратце, но он должен знать что это такое.
И на базе всего этого разбирать с ним простейшие алгоритмы.
Потом человеку можно дать Си.

Вы шутите? Ассемблер после бейсика это полный абзац. После того как с вами сюсюкают по поводу ввода с клавиатуры, спустится до машинных команд. Что вы в современной ОС напишите на ASM? Да ничего, прерывания в винде выпилили(в лине можно да, int 80h пока живо). Поэтому даже для простого ввода-вывода вы будете использоваться winAPI. После basic это реально? А как насчет стека, передачи параметров в процедуры? Да банально после бейсика "суметь" запустить линковщик отдельно от ассемблера, это уже заслуга. Да даже просто "осознать" регистры и команды типа lea, dword ptr и так далее, уже непосильная задача для basic программиста. После этого он скорее будет писать на PHP, при чем в том же стиле.
Цитата (AlexRabbit)
Ребята, Вы сами то в состоянии написать на Бейсике коммерческий продукт? Или Вы считаете, что круче уметь писать "Hello, World" на С++ - это делает Вас программистами?

Опять же. О чем вы? Какие коммерческие продукты на basic? Да проще на березе повеситься. Даже если это будет васик, то это будут чистые вызовы .Net framework. Это уже некрофилия реально, как и паскалец.

Начинать надо с Си(если вам не 12 лет). А если вы еще не адекватны в силу возраста, то берите пейтон, или JS + HTML. Ассемблер ТОЛЬКО после си. При чем по началу inline, чтобы совсем не было травмы мозга.
Цитата (AlexRabbit)
(Альтернативный вариант предполагает Python-PHP-JavaScript-Java, но это не программистский вариант, а скорее курс рассчитанный для вебмастеров, которым сейчас не обойтись без программирования. Там не идет речь о сложной алгоритмике и скорее речь о программировании интерфейсов. Там такой подход простителен.)

Какие "сложные" алгоритмы вы имеете в виду, которые есть на C/C++/C# , которых нет на Java/Python? Открою для вас страшную тайну, но основная задача программиста сегодня, это быстро осваивать инструмент. То бишь очередную новую библиотеку/фреймворк. Ваши мега алгоритмы никому не нужны. Ибо уже давно все написано,надо лишь знать где взять. И у вас ровно 3 варианта

1)Делать продукт быстро и качественно и использованием стороннего софта. В данном случае важно, открыт ли код к библиотекам(как там дела с .net?).
Уже давно есть байнды в Java/Python вагона сишных либ с мега алгоритмами.
2)Писать свой говнокод. А потом бегать и "подтирать" утечки памяти, вдруг забытые файловые дескрипторы, вдруг ловить сегфолты, вдруг бороться с многопоточностью и так далее.
3)Писать свой инструмент. Свою библиотеку, решающую ограниченую задачу качественно. Но это уже совсем другой уровень. Тут можно и Кнута с полки достать.

Сегодня it сфера очень скоротечна. И нужно быть на коне, умея писать на многих языках, и умея освоить за неделю новую технологию.
Писать нужно на всем подряд, и все подряд. Сначала будет криво косо(это неизбежно), но со временем все придет в норму. Главное хотеть писать хороший код.

Цитата (Dmi7ry)
условная компиляция тоже есть
Поподробнее - каким образом? Через костыли?


#ifdef #define нужны в кроссплатформеном языке? Остальное решается в рантайме через сборщик(maven/ant) либо переменные окружения/настройки сервера приложений.
Цитата (Dmi7ry)
Нет, я про очень удобный async, введённый в пятой версии.


Ну самим не смешно? 10 строчек что на Java что на C#. Это в стиле "скрытых" геттеров и сеттеров, которые безусловно дают очень большое приемущество.
Цитата (Dmi7ry)
Также не нужно забывать, что винда (по информации от Net Applications, на июль 2013 года) - это 91,5% всех компьютеров. И я думаю, что ТС - не исключение.

Кому-то сегодня нужны десктопные приложения?
Цитата (Dmi7ry)
Ограничить можно, например, через SetProcessWorkingSetSize. И подчищать мусор можно в разных режимах - можно и почаще, можно и пореже. А можно и чуть ли не ручками.

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


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Суббота, 03 Августа 2013, 20:06 | Сообщение # 10 | Тема: Как удалить Объект в Java
был не раз
Сейчас нет на сайте
Цитата (Fade)
for (int a = 0; a < object.size(); a++) {
object.remove(a);
}

ConcurrentModificationException получите
Цитата (wawe)
for (int i = 0; i < entities.size(); i++) {
    Entity e = entities.get(i);
    if (e.destroyed) entities.remove(i--);
}

И вы тоже. Но вам еще design error. За метод, который "постоянно вызывается"
Цитата (Fade)
Можно еще явно вызвать сборщик мусора System.gc()

явный вызов сборщика мусор приводит к явным тормозам. Не трогайте его без надобности пожалуйста happy

Цитата (wawe)
JavaSE Game Developer

really?
Всем добра smile


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Пятница, 02 Августа 2013, 15:25 | Сообщение # 11 | Тема: Создание онлайн игр для чайников - Live
был не раз
Сейчас нет на сайте
Цитата (NancyWithoutSid)
NancyWithoutSid, Зато я отличные UI делаю

Да я же пошутила, друг smile
Цитата (afrokick)
isPersistence{  
    return id != 0;  
   } 

тут все правильно. Я имела в виду вариант, где ты textBox мучил.

Цитата (afrokick)
ЗЫ после вашего поста хочется тесней заняться NHibernate)

Hibernate прекрасная и востребованая вещь, думаю что NHibernate тоже. Удачи в этом начинании happy


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Четверг, 01 Августа 2013, 21:27 | Сообщение # 12 | Тема: Создание онлайн игр для чайников - Live
был не раз
Сейчас нет на сайте
Цитата (NancyWithoutSid)
Я влюбился.


Код
#include <iostream>
using namespace std;
void array_function(char** array){
      cout<<"hello, ";
}
void array_function(char array[10][10]){
      cout<<"bro"<<endl;
}
int  main(){
   char array[10][10];
   array_function((char **)array);
   array_function(array);
   return 0;
}

Не встречаюсь с теми, кто не может объяснить разницу между void array_function(char** array) и void array_function(char array[10][10]) happy


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...

Сообщение отредактировал NancyWithoutSid - Четверг, 01 Августа 2013, 21:29
NancyWithoutSidДата: Четверг, 01 Августа 2013, 20:38 | Сообщение # 13 | Тема: Создание онлайн игр для чайников - Live
был не раз
Сейчас нет на сайте
Здравствуйте afrokick
Сразу скажу. Вам не повезло - в треде оказался разработчик Hibernate xD
Я посмотрела ваше видео. Ну для начала о хорошем. Оно действительно несколько снижает порог вхождения в технологию. И возможно начинающим будет просто. Однако я рекомендую хотябы вот эту статью http://nhforge.org/wikis/howtonh/your-first-nhibernate-based-application.aspx
Есть вагон чего на хабре

И не надо говорить что она на английском - все дела. Перевести можно и гугл транслейтом при желании.

Приведу минимальный конфиг на Java. Но примерно то же самое должно было быть на C#
Код
public interface Persistense{
  public boolean isPersistence();
}

@MappedSuperclass
public class AbstractEntity implements Persistence{

  @id
  @GeneratedValue(generation=GenerationType.Identity) //auto increment
  public long id;

  @Override
  isPersistence{
   return id == 0 ? false : true;
  }

}

@Entity
public class Message extends AbstractEntity{
  //id уже здесь

  //Hibernate сам создаст varchar 255
  //при желании можно указать имя столбца
  @Column(name="msg")
  public String message;

  @OneToMany(mappedBy="parentMessage")
  List<Tag> tags;
}

@Entity
public class Tag extends AbstractEntity{

  public String name;
  @ManyToOne()
  @JoinColumn(name="message_id")
  public Message parentMessage;

}

Мне кажется это несколько проще и нагляднее чем Fluent. В любом случае для начинающих я бы привела конфиг в xml(ибо аттрибуты как я понимаю в C# + Hibernate не прижились - очень жаль)

Добавлено (01.08.2013, 20:38)
---------------------------------------------
А теперь давайте серьезно.
1)Code-style: везде ставите парные скобки где надо и не надо/ отвергаете тернарные операторы

2)В целом начали объяснять очень странно. Гибернейт прекрасен тем, что если вы не специалист по субд(а вы нет, тем более ваша аудитория)
то он сможет создать вам довольно правильную схему БД. Не только с первичными ключами cry Но так же и с внешними. Чтобы ваша база не пришла в противоречивое состояние. Даже если вы считате что ваш код идеален. Проверки на стороне субд обязательны, ибо баги и злые юзеры есть всегда.

Вы же открыли PhpMyAdmin и сделали ОЧЕНЬ некорректную схему БД biggrin Еще и научили этому людей.

3)Про mapping я уже сказала. Но в целом процесс разметки был очень странно описан. Я сходу ничего не поняла что происходит cry

4)Коллекции. Ни слова о коллекциях. Что есть основная фича гибернейта. Вместо того чтобы сделать тупо List тегов(как это сделала я tongue ), вы зафигарили тупо связующее поле, а затем вероломно запилили квери(селект же е мае surprised ). А потом еще запилили nothingOrSingle(или как-то так). И могли вполне схватить по щам, ибо никто вам не запрещает вставить в базу еще одну строку-копию.

5)отношение Сообщение - Тег не является один ко многу. Оно в нормальной жизни много ко многу. Но собственно это не важно. Про связи вы даже не попытались рассказать.

6)Транзакции. Я не услышала нормального определения слово "транзакция", и зачем они вообще нужны happy Я не увидела readOnly транзакций даже в те моменты, когда вы просто делали выборки без insert/update

7)Ни слова о SQL. Ни слова о том как вся эта магия работает. Зачем все поля в message virtual? Или не в курсе что Hibernate использует Proxy. Хорошо хоть singleton разъяснили. Я сидела и прямо уж не думала что чудо случиться wink
8)Не поняла зачем OpenServer
9)Запилили индекс, и даже не поделились тем что это такое

В общем, я надеюсь вы сочтете эту критику конструктивной angry Советую вам сделать минимум 3 статьи на эти темы плюс 3 часовых видеоурока.
1)Субд MySQL. Как завести не root пользователя cry . SQL и что это такое. Ключи. Связи. Хотябы самые простые CRUD операции через SQL
2)xml-mapping/ fluent. Коллекции/ связи
3)КАК ОНО РАБОТАЕТ angry Proxy/ SessionFactory. Показать наконец людям тот же самый SQL, который он генерит
Тогда это может и будеть стоить денег.

Я считаю что такой урок, пусть от которого и взорвется мозг у неподготовленного юзера гораздо более полезен чем "потыкали на кнопочки"
Когда человек не умеет и не хочет мыслить, а тупо хватается за ДЕЛАТЬ ИГРЫ(а такие вот видеоуроки как раз), то ему не стать нормальным программистом никогда.
В общем, удачи вам в ваших начинаниях, afrokick. Помните, что тот кто "учит" берет на себя очень большую ответственность.


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Четверг, 02 Мая 2013, 12:30 | Сообщение # 14 | Тема: Почему в С++ нет массивов?
был не раз
Сейчас нет на сайте
толстый вброс, а все захавали cry

Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Суббота, 19 Января 2013, 09:12 | Сообщение # 15 | Тема: Написать меню, позволяющее осуществить проверку всех методов
был не раз
Сейчас нет на сайте
зачем тебе в сортировках getItems понадобился? Бери алгоритм из вики и перекладывай на Java. В чем проблема то, я не понимаю

Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Пятница, 18 Января 2013, 19:44 | Сообщение # 16 | Тема: Написать меню, позволяющее осуществить проверку всех методов
был не раз
Сейчас нет на сайте
Нет, это не нормально biggrin
Мой код был тестирован и работал. После твоего патча поспались NPE. Это нормальная ситуация. Когда ты меняешь код, то его нужно тестировать. Потому что только Линус Торвальдс способен компилять и дебажить в голове cry


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Пятница, 18 Января 2013, 19:18 | Сообщение # 17 | Тема: Написать меню, позволяющее осуществить проверку всех методов
был не раз
Сейчас нет на сайте
ну так он ждет твой команды biggrin
Вот это лолушки. Ты же хотел меню.
пишешь "sort ctn1" - он тебе отсортирует первый контейнер


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Пятница, 18 Января 2013, 14:45 | Сообщение # 18 | Тема: Написать меню, позволяющее осуществить проверку всех методов
был не раз
Сейчас нет на сайте
Код

import java.util.List;

public abstract class AbstractContainer<T extends Comparable<T>>{
     
   protected List<T> list;

   public abstract void sort();
   public abstract void forEach();

   public AbstractContainer(List<T> list) {
    this.list = list;
   }
     
   @Override
   public String toString(){
    return list.toString();
   }
}

Код

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ChooseSortContainer extends AbstractContainer<Float>{

  public ChooseSortContainer(List<Float> list) {
   super(list);
  }

  @Override
  public void sort() {
   // здесь должна быть сортировка выбором
   Collections.sort(list);
    
  }

  @Override
  public void forEach() {
   List<Float> newList = new ArrayList<Float>();
   for(Float var : list){
    newList.add((float) Math.log(var));
   }
   list = newList;
  }
   
}

Код

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class BubbleContainer extends AbstractContainer<Float> {

   public BubbleContainer(List<Float> list) {
    super(list);
   }

   @Override
   public void sort() {
    //тут должна быть сортировка пузырьком
    Collections.sort(list);
      
   }

   @Override
   public void forEach() {
    List<Float> newList = new ArrayList<Float>();
    for(Float var : list){
     newList.add((float) Math.sqrt(var));
    }
    list = newList;
   }

}


Код

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class EntryPoint {

   /**
    * @param args
    */
   public static void main(String[] args) {
    List<Float> testList1 = new ArrayList<Float>();
    List<Float> testList2 = new ArrayList<Float>();
    for (int i = 0; i < 10; i++) {
     testList1.add((float) i);
     testList2.add((float) i);
    }

    ChooseSortContainer ctn1 = new ChooseSortContainer(testList1);
    BubbleContainer ctn2 = new BubbleContainer(testList2);

    Scanner sc = new Scanner(System.in);
    String cmd;
      
    System.out.println("Enter command\n" +
      "Avail:\n" +
      "sort ctn1 - sort ChooseSortContainer\n"+
      "sort ctn2 - sort BubbleSortContainer\n"+
      "each ctn1 - each BubbleSortContainer\n"+
      "each ctn2 - each BubbleSortContainer\n");

    while (true) {
     cmd = sc.nextLine();
     AbstractContainer last;

     if (cmd.equals("sort ctn1")) {
      ctn1.sort();
      last = ctn1;
     } else if (cmd.equals("sort ctn2")) {
      ctn2.sort();
      last = ctn2;
     } else if (cmd.equals("each ctn1")) {
      ctn1.forEach();
      last = ctn1;
     } else if (cmd.equals("each ctn2")) {
      ctn2.forEach();
      last = ctn2;
     } else if (cmd.equals("exit"))
      break;
     else {
      System.out.println("Unknown command");
      continue;
     }

     System.out.println("After perform: " + last.toString());

    }

   }

}

Теперь давайте разберемся со всем этим. Интерфесов тут нет, так как вместо них мы используем абстрактные классы. При чем лишь абстрактный контейнер у нас generic. А Реальные контейнеры уже идут типизированые. Их мы не можем сделать шаблонными, так как математические операции не терпят шаблонов.


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...

Сообщение отредактировал NancyWithoutSid - Пятница, 18 Января 2013, 15:25
NancyWithoutSidДата: Пятница, 18 Января 2013, 12:48 | Сообщение # 19 | Тема: Написать меню, позволяющее осуществить проверку всех методов
был не раз
Сейчас нет на сайте
Оу. 158 строчек ярости angry
Ну правда задание несколько неадекватно. Последнее предложение явно противоречит всем предыдущим.
Делается это очень легко и просто
Код

public abstract class Container{
      public void sort();
      public void forEach();
}
public class BubbleContainer extends Container{
     @Override
     public void sort(){
     }
     @Override
     public void forEach(){
     }
}
//Аналогично со вставками

Вы же там навернули такую жесть, что черт ногу сломит. И самое смешное, что оно неоправдано ВООБЩЕ! А вашему преподователю надо навернуть говна(да именно так,я сегодня злая). И какбы чего вы хотите вообще от меню? чем switch/case не устраивает?


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
NancyWithoutSidДата: Понедельник, 14 Января 2013, 20:55 | Сообщение # 20 | Тема: Node.JS, Java Script и все что с этим связано.
был не раз
Сейчас нет на сайте
Цитата (AGENTX001)
Это не Array, это Object.

Оу shades Неосилила парсинг твоего кода под вечер. До типов еще надо добраться, они не лежат на виду как в языках со строгой типизацией. Мысль пошла из общих соображений "как оно по идее должно быть". Я лично думала, что этот код родился ночью после 3х банок пива. Все же контейнеры для своих данных надо использовать подходящие, а не толкать котэ в бутылку smile


Если вы считаете, что женщина не умеет программировать, то вам стоит попробовать JProfiler или valgrind...
Форум игроделов » Записи участника » NancyWithoutSid [23]
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг