1 | |
Что можно сделать с проектом ?11.10.2015, 23:38. Показов 762. Ответов 17
Метки нет (Все метки)
В данный момент поддерживаю одну старую игру (игра полностью некоммерческая, код открыт, онлайн примерно 50-60 человек, написан на си/c++, поддерживать есть необходимость только серверную часть). Что имеется.
1) Много кода (200к+ строк кода, для меня это очень много) 2) Некоторые участки кода не обновлялись с !1991 года! 3) За это время над кодом успело поработать очень много людей, которые далеки от программирования, что привело к огромному количество быдлокода (например, функции, никем не комментируемые и части которых разбросаны по множеству файлов) 4) Документации никакой естественно нет. 5) К проекту подключен boost и активно там юзается 6) К проекту подключен python. В связи с этим возникает несколько вопросов 1) Есть какие-нибудь инструменты для рефакторинга кода, дабы немного улучшить ситуацию 2) Есть ли какие-нибудь инструменты, которые позволят обернуть (опять же, автоматически или в полуавтоматическом варианте) си++ функции для питона ? (дабы из питона их можно было потом дергать) Не по теме: Чисто для интереса, сколько будет стоить перевод всего этого с плюсов на какой-нибудь скриптовый язык типа питона ?
0
|
11.10.2015, 23:38 | |
Ответы с готовыми решениями:
17
Можно ли сделать индикатор загрузки проектом системы? Можно ли сделать ,что бы запрос можно было запустить через кнопку на Форме? Можно ли сделать так, что сквозь форму можно было бы тыкать мышью по файлам? Можно ли сделать так что бы в Java-приложения можно было играть на своем сайте, не скачивая их? |
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
11.10.2015, 23:48 | 2 |
1) я так думаю переписать с нуля будет проще чем рефакторить. Не, вообще просто интересно чем там занимаются аж 200k+ кода в серверной части.
2)Наверное это участки очень хорошего кода. 3) Вот эту часть скорее всего и надо выкинуть а потом сделать с нуля. Я так думаю что при таких раскладах 80% а то и больше кода делают 10% функциональности 4) Ну это понятно. Я так думаю что если бы не 3 то код бы был лучше документации. 5) Мода. 6) А это еще зачем? А ну да, тоже мода.
0
|
bodrich
|
12.10.2015, 02:44
[ТС]
#3
|
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
12.10.2015, 02:58 | 4 |
Не по теме: Это в среднем. А в пике? И какой смысл делать на скриптах если ек подразумевается кросс-платформенность, при этом оставлять большую часть нативной? Краем глаза можно взглянуть что там за проект? Просто интересно что можно раздуть до 200k строк серверной части. И еще вопрос - как строки считали? Если это та цифра которая показывается при компиляции, то это далеко не тот объем кода который лежит в файлах. Это количество строк как в обработанных препроцессором ваших фалах + количество строк в обработанных хидерах подключаемых библиотек, в случае библиотек шаблонов - в развернутых шаблонах. Для сравнения современные фрэймверки на пустой форме показывают 1,7 млн строк.
0
|
12.10.2015, 08:44 [ТС] | 5 |
Ссылка на репозиторий https://bitbucket.org/bylins/mud
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
12.10.2015, 09:01 | 6 |
Ужасть... она даже не ООП-ная... да и по коду... там 90% как минимум захардкожено. При выносе всего этого в датапак код должен сократится катастрофически.
0
|
bodrich
|
12.10.2015, 11:35
[ТС]
#7
|
Не по теме: Так сколько примерно будет стоит перевод всего этого ужаса на питон ? И как я понимаю, стоимость приведение всего этого в божеский вид на тех же плюсах, обойдется еще дороже ?
0
|
12.10.2015, 11:58 | 8 |
А смысл все переводить на питон?
Как я понимаю все что можно было уже вынесено на питон. Думаю причесать плюсовый код логичнее, хотя сомневаюсь что такое можно доверять фрилансеру, хотя конечно смотря какому... Т.е я имею ввиду что если каждый раз и за каждую доработку/правку будет браться другой фрилансер нет гарантий что не получите тот самый хардкор. Так что лучше что бы проектом занимался один человек и желательно заинтересованный человек, а не просто как "сезонный" работник. Добавлено через 5 минут Некоторые среды разработки уже включают средства для рефакторинга, например QtCreator
0
|
12.10.2015, 12:24 | 10 |
А снижение скорости из за "скриптовости" ?
Скорость разработки больше зависит от квалификации разработчика и точного видения конечной цели, а не от языка. Ну так что мешает продолжить выносить? Выносят как правило "часто изменяемое поведение" описание комнат,шмоток итп а не полностью "все".
1
|
12.10.2015, 13:12 [ТС] | 11 |
Производительность в данном случае не так важна, даже если упадет раз в 10.
Хорошо квалифицированные разработчики C++ не имеются. Когда я начинаю писать под этот проект что-то, я начинаю думать, как легко и лаконично это писалось бы на питоне, и как тяжело и нудно пишется на плюсах. Да, я не могу особо в плюсы, и никто из текущей администрации проекта особо не могет. Согласитесь, на скриптовых языках такие вещи писать легче и быстрее, если, конечно же, вы до этого не писали на плюсах десяток лет. Тут такая дилемма. Для 90% создания игрового мира хватает встроенного скриптового языка (да, там есть еще один встроенный язык, очень простой, чем-то похож на паскаль). А для оставшихся 10% есть плюсы. Вручную все оборачивать у меня сил не хватит, а если оборачивать по степени необходимости, то придется прыгать между плюсами. Я бы хотел примерно как здесь https://www.openhub.net/p/anaria/factoids (скилы, перки, спелы - вся механика на питоне).
0
|
12.10.2015, 13:42 | 12 |
Не соглашусь.
Я пишу на плюсах, а когда пишу на питоне думаю как бы это легко было на плюсах... это вопрос привычки умений и мышления. Добавлено через 3 минуты Lua ?
0
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
12.10.2015, 19:22 | 14 |
А в чем конкретно проблемы с такой ситуацией? Ты их пока не перечислил. Вижу тольку личную хотелку вида "я не хочу писать на плюсах, а хочу на питоне".
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
12.10.2015, 20:59 | 15 |
Ну не знаю как спелы на 100%, но по моему скилы и особенно перки на 100% должны быть в датапаке.
0
|
13.10.2015, 05:10 [ТС] | 16 |
Неа, язык разрабатывался под движок. Из возможностей там только переменные, операции над ними и блок if-else
Это все наследие 94 года, как тогда ядро сделали, так сейчас примерно и осталось.
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
13.10.2015, 05:34 | 17 |
переход есть? ну в смысле goto? если есть то язык Тьюринг-полный и обеспечивает возможность любых вычислений.
0
|
13.10.2015, 06:29 [ТС] | 18 |
Goto есть. Но нету к примеру массивов, нельзя создавать свои функции/процедуры.
0
|
13.10.2015, 06:29 | |
13.10.2015, 06:29 | |
Помогаю со студенческими работами здесь
18
Факс думает, что застрял документ. Что можно сделать? Что можно сделать, что бы конструктор вызывался один раз при агрегировании? Что можно сделать на языке C++, но нельзя сделать на C# Оптимизация кода, структуры базы, или что еще можно сделать что бы быстрее работало!? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |