Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
 
bodrich
98 / 88 / 2
Регистрация: 20.06.2010
Сообщений: 961
Записей в блоге: 16
Завершенные тесты: 1
#1

Что можно сделать с проектом ? - C++

11.10.2015, 23:38. Просмотров 354. Ответов 17
Метки нет (Все метки)

В данный момент поддерживаю одну старую игру (игра полностью некоммерческая, код открыт, онлайн примерно 50-60 человек, написан на си/c++, поддерживать есть необходимость только серверную часть). Что имеется.
1) Много кода (200к+ строк кода, для меня это очень много)
2) Некоторые участки кода не обновлялись с !1991 года!
3) За это время над кодом успело поработать очень много людей, которые далеки от программирования, что привело к огромному количество быдлокода (например, функции, никем не комментируемые и части которых разбросаны по множеству файлов)
4) Документации никакой естественно нет.
5) К проекту подключен boost и активно там юзается
6) К проекту подключен python.

В связи с этим возникает несколько вопросов
1) Есть какие-нибудь инструменты для рефакторинга кода, дабы немного улучшить ситуацию
2) Есть ли какие-нибудь инструменты, которые позволят обернуть (опять же, автоматически или в полуавтоматическом варианте) си++ функции для питона ? (дабы из питона их можно было потом дергать)

Не по теме:

Чисто для интереса, сколько будет стоить перевод всего этого с плюсов на какой-нибудь скриптовый язык типа питона ?

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2015, 23:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что можно сделать с проектом ? (C++):

Как можно сделать такое? (Автоматическое нажатие клавиш и все что с этим связанно) - C++
У меня возник вопрос как можно сделать чтоб программа автоматически нажимала на определенные клавиши? Например в игре GTA SAMP: Чтоб...

Можно ли узнать, что в функцию передается именно элемент перечисления? - C++
Добрый вечер всем. Возможно глупый вопрос, тем не менее: как грамотно организовать проверку входного параметра, если допустимые варианты...

IdHTTP и все, что только можно с ним сделать! - C++ Builder
Здравствуйте! Заранее предупреждаю просмотрел не мало тем на форуме(понимаю что вопросы касаемо этого компонента ни раз поднимались),...

можно сделать так чтоб можно было использовать ifstream? - C++ Builder
void __fastcall TForm1::Button1Click(TObject *Sender) можно как то сделать так чтоб обработке кнопки можно было использовать ifstream...

Как сделать что бы я навел на пиксель и он что-нибуть сделал - C++ Builder
Как сделать например что бы я навел на пиксель(находящийся 100x100) и он че нить сделал?

Работа с проектом - C++ Builder
Привет всем! Дайте, пожалуйста, найти какой-нибудь сайт, или лекции. Вот у меня курсовая работа: Разработка обучающего модуля по С++...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Fulcrum_013
718 / 743 / 73
Регистрация: 14.12.2014
Сообщений: 5,842
Завершенные тесты: 3
11.10.2015, 23:48 #2
Цитата Сообщение от bodrich Посмотреть сообщение
Есть какие-нибудь инструменты для рефакторинга кода, дабы немного улучшить ситуацию
1) я так думаю переписать с нуля будет проще чем рефакторить. Не, вообще просто интересно чем там занимаются аж 200k+ кода в серверной части.
2)Наверное это участки очень хорошего кода.
3) Вот эту часть скорее всего и надо выкинуть а потом сделать с нуля. Я так думаю что при таких раскладах 80% а то и больше кода делают 10% функциональности
4) Ну это понятно. Я так думаю что если бы не 3 то код бы был лучше документации.
5) Мода.
6) А это еще зачем? А ну да, тоже мода.

Не по теме:

Цитата Сообщение от bodrich Посмотреть сообщение
Чисто для интереса, сколько будет стоить перевод всего этого с плюсов на какой-нибудь скриптовый язык типа питона ?
Я так думаю дорого. Особенно в плане роста потребной мощности сервера.

0
bodrich
12.10.2015, 02:44  [ТС]
  #3

Не по теме:

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Я так думаю дорого. Особенно в плане роста потребной мощности сервера.
Не проблема. Сейчас сервер крутится на VPS стоимостью в полтысячи рублей и пожирает 10-20% cpu и столько же озу.

0
Fulcrum_013
718 / 743 / 73
Регистрация: 14.12.2014
Сообщений: 5,842
Завершенные тесты: 3
12.10.2015, 02:58 #4

Не по теме:

Цитата Сообщение от bodrich Посмотреть сообщение
Не проблема. Сейчас сервер крутится на VPS стоимостью в полтысячи рублей и пожирает 10-20% cpu и столько же озу.
Это в среднем. А в пике? И какой смысл делать на скриптах если ек подразумевается кросс-платформенность, при этом оставлять большую часть нативной?


Краем глаза можно взглянуть что там за проект? Просто интересно что можно раздуть до 200k строк серверной части.
И еще вопрос - как строки считали? Если это та цифра которая показывается при компиляции, то это далеко не тот объем кода который лежит в файлах. Это количество строк как в обработанных препроцессором ваших фалах + количество строк в обработанных хидерах подключаемых библиотек, в случае библиотек шаблонов - в развернутых шаблонах. Для сравнения современные фрэймверки на пустой форме показывают 1,7 млн строк.
0
bodrich
98 / 88 / 2
Регистрация: 20.06.2010
Сообщений: 961
Записей в блоге: 16
Завершенные тесты: 1
12.10.2015, 08:44  [ТС] #5
И еще вопрос - как строки считали?
cat *.cpp *.hpp .h | wc -l
А в пике?
Немногим больше. Сервер очень мало кушает. На этом vps ещё крутится полноценная копия + все это дело собирается.
И какой смысл делать на скриптах если ек подразумевается кросс-платформенность, при этом оставлять большую часть нативной
Скорость разработки. Хочется много чего закодить, но мне тупо времени не хватает, с учётом того, что я плюсы знаю плохо (изучал на первом курсе универа, после этого перешёл на шарп и питон).
Ссылка на репозиторий https://bitbucket.org/bylins/mud
0
Fulcrum_013
718 / 743 / 73
Регистрация: 14.12.2014
Сообщений: 5,842
Завершенные тесты: 3
12.10.2015, 09:01 #6
Ужасть... она даже не ООП-ная... да и по коду... там 90% как минимум захардкожено. При выносе всего этого в датапак код должен сократится катастрофически.
0
bodrich
12.10.2015, 11:35  [ТС]
  #7

Не по теме:

Так сколько примерно будет стоит перевод всего этого ужаса на питон ? И как я понимаю, стоимость приведение всего этого в божеский вид на тех же плюсах, обойдется еще дороже ?

0
Avazart
Эксперт С++
7188 / 5362 / 280
Регистрация: 10.12.2010
Сообщений: 23,664
Записей в блоге: 17
12.10.2015, 11:58 #8
Цитата Сообщение от bodrich Посмотреть сообщение
Так сколько примерно будет стоит перевод всего этого ужаса на питон ? И как я понимаю, стоимость приведение всего этого в божеский вид на тех же плюсах, обойдется еще дороже ?
А смысл все переводить на питон?
Как я понимаю все что можно было уже вынесено на питон.
Думаю причесать плюсовый код логичнее, хотя сомневаюсь что такое можно доверять фрилансеру, хотя конечно смотря какому...
Т.е я имею ввиду что если каждый раз и за каждую доработку/правку будет браться другой фрилансер нет гарантий что не получите тот самый хардкор.
Так что лучше что бы проектом занимался один человек и желательно заинтересованный человек, а не просто как "сезонный" работник.

Не по теме:

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ужасть... она даже не ООП-ная...
При чем тут это ...



Добавлено через 5 минут
Цитата Сообщение от bodrich Посмотреть сообщение
1) Есть какие-нибудь инструменты для рефакторинга кода, дабы немного улучшить ситуацию
Некоторые среды разработки уже включают средства для рефакторинга, например QtCreator
0
bodrich
98 / 88 / 2
Регистрация: 20.06.2010
Сообщений: 961
Записей в блоге: 16
Завершенные тесты: 1
12.10.2015, 12:08  [ТС] #9
Цитата Сообщение от Avazart Посмотреть сообщение
А смысл все переводить на питон?
Скорость разработки
Цитата Сообщение от Avazart Посмотреть сообщение
Как я понимаю все что можно было уже вынесено на питон.
К сожалению, нет. Только небольшая часть базового функционала.
0
Avazart
Эксперт С++
7188 / 5362 / 280
Регистрация: 10.12.2010
Сообщений: 23,664
Записей в блоге: 17
12.10.2015, 12:24 #10
Цитата Сообщение от bodrich Посмотреть сообщение
Скорость разработки
А снижение скорости из за "скриптовости" ?
Скорость разработки больше зависит от квалификации разработчика и точного видения конечной цели, а не от языка.

Цитата Сообщение от bodrich Посмотреть сообщение
К сожалению, нет. Только небольшая часть базового функционала.
Ну так что мешает продолжить выносить?
Выносят как правило "часто изменяемое поведение" описание комнат,шмоток итп а не полностью "все".
1
bodrich
98 / 88 / 2
Регистрация: 20.06.2010
Сообщений: 961
Записей в блоге: 16
Завершенные тесты: 1
12.10.2015, 13:12  [ТС] #11
Цитата Сообщение от Avazart Посмотреть сообщение
А снижение скорости из за "скриптовости" ?
Производительность в данном случае не так важна, даже если упадет раз в 10.
Цитата Сообщение от Avazart Посмотреть сообщение
Скорость разработки больше зависит от квалификации разработчика и точного видения конечной цели, а не от языка.
Хорошо квалифицированные разработчики C++ не имеются. Когда я начинаю писать под этот проект что-то, я начинаю думать, как легко и лаконично это писалось бы на питоне, и как тяжело и нудно пишется на плюсах. Да, я не могу особо в плюсы, и никто из текущей администрации проекта особо не могет. Согласитесь, на скриптовых языках такие вещи писать легче и быстрее, если, конечно же, вы до этого не писали на плюсах десяток лет.
Цитата Сообщение от Avazart Посмотреть сообщение
Ну так что мешает продолжить выносить?
Тут такая дилемма. Для 90% создания игрового мира хватает встроенного скриптового языка (да, там есть еще один встроенный язык, очень простой, чем-то похож на паскаль). А для оставшихся 10% есть плюсы. Вручную все оборачивать у меня сил не хватит, а если оборачивать по степени необходимости, то придется прыгать между плюсами. Я бы хотел примерно как здесь https://www.openhub.net/p/anaria/factoids (скилы, перки, спелы - вся механика на питоне).
0
Avazart
Эксперт С++
7188 / 5362 / 280
Регистрация: 10.12.2010
Сообщений: 23,664
Записей в блоге: 17
12.10.2015, 13:42 #12
Цитата Сообщение от bodrich Посмотреть сообщение
Согласитесь, на скриптовых языках такие вещи писать легче и быстрее, если, конечно же, вы до этого не писали на плюсах десяток лет.
Не соглашусь.
Я пишу на плюсах, а когда пишу на питоне думаю как бы это легко было на плюсах... это вопрос привычки умений и мышления.

Добавлено через 3 минуты
Цитата Сообщение от bodrich Посмотреть сообщение
встроенного скриптового языка (да, там есть еще один встроенный язык, очень простой, чем-то похож на паскаль).
Lua ?
0
alkagolik
Заблокирован
12.10.2015, 19:12 #13
Цитата Сообщение от Avazart Посмотреть сообщение
Lua ?
DSL
bodrich, см ЛС
0
ct0r
Игогошка!
1773 / 675 / 42
Регистрация: 19.08.2012
Сообщений: 1,287
Завершенные тесты: 1
12.10.2015, 19:22 #14
Цитата Сообщение от bodrich Посмотреть сообщение
Есть какие-нибудь инструменты для рефакторинга кода, дабы немного улучшить ситуацию
А в чем конкретно проблемы с такой ситуацией? Ты их пока не перечислил. Вижу тольку личную хотелку вида "я не хочу писать на плюсах, а хочу на питоне".
0
Fulcrum_013
718 / 743 / 73
Регистрация: 14.12.2014
Сообщений: 5,842
Завершенные тесты: 3
12.10.2015, 20:59 #15
Цитата Сообщение от bodrich Посмотреть сообщение
скилы, перки, спелы - вся механика на питоне
Ну не знаю как спелы на 100%, но по моему скилы и особенно перки на 100% должны быть в датапаке.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2015, 20:59
Привет! Вот еще темы с ответами:

Загрузить CPU проектом на полную - C++ Builder
Медленно выполняются расчеты, затраты процессора 12%, видимо занято одно ядро. Как загрузить все ядра? C++ Builder 2007

Проблемы с проектом использующим alphacontrols - C++ Builder
Прошу помощи... Возникла серьезная проблема с с проектом использующим alphacontrols опишу всю ситуацию: Был с++ builder 2009 2 года...

Как сделать что бы в listbox было типа заголовков, а в ValueListEditor содержание(что то типа бд) - C++ Builder
Как сделать что бы в listbox было типа заголовков, а в ValueListEditor содержание?

Можно ли сделать индикатор загрузки проектом системы? - LabVIEW
Чтобы на фронт панел отображалось текущее использование ОЗУ и загрузка ЦП


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.10.2015, 20:59
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru