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

C++

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

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

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

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

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

Не по теме:

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

Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2015, 23:38     Что можно сделать с проектом ?
Посмотрите здесь:

Что можно сделать если не хватает памяти? - C++
При компиляции программы в ВС3.1 MS-DOS через интерфейсное меню Compile (Alt+F9) выходит сообщение, что недостаточно оперативной памяти...

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

Что можно сделать при помощи Shell Extensions? - C++
Здравствуйте! Я хочу в своей программе создать такую ветку дисков и папок: ...

Найти НОК и НОД , и что бы можно было ввести до 10 чисел , как это сделать на с++? - C++
Здравствуйте , мне нужно найти НОК и НОД , и что бы можно было ввести до 10 чисел , как это можно реализовать на языке С++?

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

Можно ли сделать так, что окно программы по умолчанию появлялось на втором мониторе (secondary display) - C++ WinAPI
Доброго времени суток. Есть ли возможность создать и показать окно сразу на втором мониторе, чтоб мышкой не перетаскивать? Естественно...

можно ли создать такой именованый пейп , что по нему можно было передавать данные по сети? - C++
можно ли создать такой именованый пейп , что по нему можно было передавать данные по сети? как он должен называтся и что для этого нужно?

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

Не по теме:

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

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

Не по теме:

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

Fulcrum_013
663 / 731 / 72
Регистрация: 14.12.2014
Сообщений: 5,699
Завершенные тесты: 3
12.10.2015, 02:58     Что можно сделать с проектом ? #4

Не по теме:

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


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

Не по теме:

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

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

Не по теме:

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



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

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

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

Сколько бутылок воды можно выпить на n грн, учитывая, что пустые бутылки можно сдавать, и на полученные деньги приобрета - C++
Стоимость бутылки воды, учитывая стоимость пустой бутылки, составляет 1 грн 20 коп., а стоимость пустой буылки - 20 коп. Сколько...

Подскажите пожалуйста,что нужно сделать,что бы отображался русский язык?? - C++
Добрый вечер,формучани! После компиляции VS 12 у меня место русского языка показывает неизвестные иероглифы. Подскажите пожалуйста,что...

Что сделать что бы консольная строка разбивалась на слова для перевода? - C++
Закоментировал разбиение консльной строки на слова.Остальной кусок программы переводит по одному слову английскому на руский язык из файла...

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

Ошибка компилятора. Что сделать, что бы среда работала? - Visual C++
http://i064.***********/1210/33/00be8b0c26e9t.jpg Что сделать что бы среда работала нормально?


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

Или воспользуйтесь поиском по форуму:
Fulcrum_013
663 / 731 / 72
Регистрация: 14.12.2014
Сообщений: 5,699
Завершенные тесты: 3
12.10.2015, 20:59     Что можно сделать с проектом ? #15
Цитата Сообщение от bodrich Посмотреть сообщение
скилы, перки, спелы - вся механика на питоне
Ну не знаю как спелы на 100%, но по моему скилы и особенно перки на 100% должны быть в датапаке.
Yandex
Объявления
12.10.2015, 20:59     Что можно сделать с проектом ?
Ответ Создать тему
Опции темы

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