![]() |
Показать все 53 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Флуд (https://hlfx.ru/forum/forumdisplay.php?forumid=11)
-- Грамотность кода (https://hlfx.ru/forum/showthread.php?threadid=5351)
KiQ ты движок-то свой доделал, например?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша он у меня в вечном WIP, потому что на нем я обучаюсь чему-то новому) но, например, я выделил в отдельную независимую либу UI от него, которую можно юзать в OpenGL, в частности там подгрузка ttf шрифтов и в принципе менеджер ресурсов, удобная работа со строками, плюс разные полезные утилиты. Правда в итоге я понял, что все это и так есть в libGDX, но лично для меня выхлоп разработки этого движка - а я напомню, что это путь от прототипа на J2ME (проще говоря на мобилках) до текущего прогресса - весьма и весьма значительный. Я научился писать грамотный код, изучил основы 2D и 3D графики, GLSL, различные архитектуры, научился грамотно использовать third party решения в сочетании со своим кодом и т.д. Сейчас вот начал делать что-то типа VHE для libGDX. Ну а в планах RPG с оригинальным сеттингом, который я разрабатываю уже лет пять. Хотя вообще, я изначально, да и сейчас хотел ее делать на ксаше, но маппер и моделлер из меня так себе. Больше по кодингу и концепту (не такому концепту, который из трех слов типа "Вот хочу примерно так", а именно по точному, проработанному, ибо я параллельно развиваю свою космогонию в рассказах, а игра планировалась как раз в этом сеттинге)
__________________
-Brain is dead-
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
http://www.moddb.com/mods/monorail-quest
__________________
-Brain is dead-
KiQ
__________________
http://www.moddb.com/mods/monorail-quest
__________________
-Brain is dead-
Грамотный код вообще хорошее определение. Я бы наверное воздержался от оценки. Это потом уже спустя поколения потомки оценят.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Максимально грамотный код - это его отсутствие.
Чем меньше кода - тем меньше багов, тем быстрее сборка, и тем больше тестов проходит. Кайф же!
__________________
Дядя Миша это относительное определение, т.е. я сравниваю тот код, что писал раньшы и который пишу сейчас
__________________
-Brain is dead-
Никогда не понимал этих заморочек, нечитабельные места можно всегда разжевать комментариями. А красивый код работает обычно где то в сферическом вакууме, в действительности обязательно будут какие то исключения из ситуации которые придётся подпирать костылями. Так же чисто по моему ИМХО на наведение этой красоты уходит слишком много времени, а гибкость как мне кажется такого кода уменьшается.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro ты если с этим кодом месяца три не поработаешь, ты уже напрочь забудешь что там и как было. Так что это в первую очередь для себя, чтобы можно было продолжать работу, а не гадать что я там прошлый раз такого написал. Ну и красота понятие относительное. Для меня красота кода в первую очередь это отсутствие лишних движений, избыточности.
Потому что типичная ситуация: написан код под определённые условия. Дальше надо добавить новый функционал. Этот функционал в виде новых условий и вызовов распихивается по быстрому везде, лишь бы работало. Потом, когда заработает это всё надо отрефакторить. Вот на это обычно забивают и читабельность постепенно падает. В идеале надо писать так, чтобы потом не надо было ничего добавлять, но это редкость. Заранее никогда не знаешь, что потом понадобится.
Добавлено 13-09-2019 в 09:06:
ЗЫ. у этой медали есть и обратная сторона - некоторые товарищи стараются писать код таким образом, чтобы он потом вообще под любые условия подходил. Тогда он становится нечитабельным по дефолту, вот как раз из-за своей универсальности. И ЧСХ, универсальность там обычно мнимая.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Всех с тематическим праздником!
nemyax
По такому случаю - отдельная тема:
https://hlfx.ru/forum/showthread.php?s=&threadid=5352
__________________
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro
Так он за границей работал, а там паспорта отбирают.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
К несчастью, теперь уже в прошлом
Татьяниных глаз бирюза.
Она умерла оттого, что
Я редко смотрел ей в глаза!
Ну што. Я теперь про mutable знаю. Раньше как-то не использовал её.
Да и Ксерокс наверно тоже. Он традиционно любит модификатор volatile.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
mutable штука хорошая, но в 99% никак не применимая.
А volatile в, извиняюсь за каламбур, Volatile, используется ровно пять раз. И каждый раз тому есть очень веская причина.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
На собеседовании, как ещё Мастер, емнип, писал, могут спросить и про то, можно ли написать
int i[10] = { 0 }; printf( "%i", 2[i] + 4[i] ); |
__________________
XaeroX
Вроде и первое и второе можно. В тех полутора книжках, что я читал, было про оба случая, кажется. Буит ноль.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Ну почему же? Далее следует вопрос "а почему?"
И тут уже можно понять, понимает ли человек принципы адресации, рожь, овёс, вот это всё.
__________________
XaeroX
Первое — инициализация всех элементов массива указанным значением, если вбит размер. Второе — смещение[указатель] вместо указатель[смещение] (потому что компилятору пливать, *(указатель + смещение) или *(смещение + указатель)).
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
XaeroX ага, все компиляторы на 100% соответствуют стандартам?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Если уж рассуждать за всякое. Меня вот например такие вещи прикалывают
tw->openLeafNumbers[ tw->numOpenLeafs ] = node & ~(3 << 30); |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
минус явным образом убирать.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
http://www.moddb.com/mods/monorail-quest
1 | class foo |
2 | { |
3 | my_class *base; |
4 | void Init( const my_class *base ) |
5 | { |
6 | base = base; |
7 | } |
8 | }; |
static void EntityApplyTransform( mapent_t *src, mapent_t *dst, bool brushentity, bool external_map, vec_t yaw_offset = 0.0 ) |
EntityApplyTransform( mapent, mapent, true, false -90.0 ); |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
nemyax
Неявное приведение от более общего типа к менее общему — это прямо таки какая-то синтаксическая феерия.
__________________
http://www.moddb.com/mods/monorail-quest
thambs
Тут не совсем оно. Скорее, интересные особенности неявного приведения булевого типа.
__________________
XaeroX
Так ведь два раза же, не? bool -> int -> bool, первое при вычитании, корректная операция, приводим тип выше по иерархии абстракций; а вот дальше получается, что "теряем точность" (в кавычках). ЕМНИП, а там разве нет флага компилятору что бы такое неявное приведение сверху-вниз запретить?
__________________
http://www.moddb.com/mods/monorail-quest
в крестах false это не макрос, а встроенное слово языка.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
thambs
В С/С++ сужение типа неявно не делается. Результат вычитания дабла из була всегда будет иметь тип дабл. А затем - согласно стандарту - полученный дабл преобразуется в бул. Это нельзя запретить, т.к. этот каст очень важен для поддержки всяких if-конструкций. В которых, как ты понимаешь, можно не только булы проверять на истинность.
__________________
В тему грамотности кода, я просто оставлю это здесь.
__________________
http://www.moddb.com/mods/monorail-quest
__________________
XaeroX а по астрономии, те которые прогнозируют положение небесных тел на определённый год?
Crystallize
Да вон, даже в ПО нового "Боинга" баги нашли (после того как оно два самолёта, полных пассажиров, уронило). Чего уж говорить о python-скриптах, которые вычисляют химические параметры?
__________________
nemyax
Список файлов же не инпут или аутпут. На входе адрес (и маунтпоинт фс), на выходе — сортированный массив адресов. Идентичен вход — идентичен и выход.
__________________
http://www.moddb.com/mods/monorail-quest
Создали файл, удолили другой — на входе не то. Волатильненько.
Временная зона GMT. Текущее время 17:15. | Показать все 53 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024