Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Вопросы начинающих программистов
Перезагрузить страницу Посоветуйте софт для облегчения анализа и сокращения объема чужого кода.
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Исмаил Прокопенко Исмаил Прокопенко вне форума
Member
 
Сообщений: 23
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 30.07.2016
По умолчанию Посоветуйте софт для облегчения анализа и сокращения объема чужого кода. - 03.09.2016, 14:58

В этой теме я буду спрашивать про то, в каком софте реализованы те или иные фишки, позволяющие существенно ускорить и облегчить анализ и понимание чужого кода за счет соответствующего его отображения.

1) Какие программы умеют делать свёртку одинаковых (или похожих) кусков кода в макросы/шаблоны.
Т.е. операции, обратные разворачиванию макросов (дефайнов) и шаблонов.
Просто хотелось бы как-то радикально сокращать размер исходника.
Это сделает его более обозримым и простым для изучения.
Поясню это на самом простом примере (в реале все сложней).
Есть штук 16 файлов.
И в каждом из них присутствует фрагмент из 25 строчек:

#include <assert.h>
...
#include "rfdesitm.h"

Хотелось бы чтобы программа просканировала все файлы проекта и заменила эти крупные куски кода на, к примеру, на "inc_files".

Вы скажите: задача выеденного яйца не стоит. Юзай "поиск и замену".
Или сложи все эти инклюды в один, и замени этот кусок на вызов этого инклюда.

Но не все так просто.
1) Нужно чтобы сам исходный код не менялся. Менялось только его отображение в программе.
2) Поиском и заменой можно воспользоваться когда уже знаешь, какие куски повторяются. А если не знаешь? Хотелось бы чтобы программы сама, автоматом, их обнаруживала и предлагала заменить на более короткий дефайн.
3) Нужно чтобы имя дефайна было уникальным, чтобы не произошло коллизии с идентификаторами исходного кода. Т.е. программа должна автоматом проверять вводимые юзером имена дефайнов на уникальность.
4) Нужно искать не только одинаковые куски исходника, но и ПОХОЖИЕ. Которые могут свернуться в макровызовы с параметрами.
5) Чтобы наведя мышку на такой "дефайн" можно было в тултипе увидеть его исходный код, который он заменяет
6) Иногда два куска кода можно «привести к общему знаменателю» т.е. сделать одинаковыми, просто произведя соответствующие преобразования. К примеру, поменяв местами в одном из них строки или ещё что-нибудь. Нужно чтобы программа находила и такие КВАЗИ похожие куски и предлагала юзверю сделать соответствующие преобразования (повторяюсь: сам исходник при этом не должен меняться) или напротив, чтобы юзверь указал «здесь преобразования недопустимы, так как изменится логика работы программы»
Ответить с цитированием
  (#2 (permalink)) Старый
Исмаил Прокопенко Исмаил Прокопенко вне форума
Member
 
Сообщений: 23
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 30.07.2016
По умолчанию 03.09.2016, 18:59

Расскажите как вообще принято решать у вас такие задачи.
Ну когда тебе дали "гигабайты сурцов" и "крутись как хочешь".

С чего вообще начинается у вас работа по изучению чужого кода?
Рисуете для себя какие-то картинки, диаграммки?
Или что? Дайте конкретики.
Как вы разбираетесь в объемном чужом коде?
Ответить с цитированием
  (#3 (permalink)) Старый
Исмаил Прокопенко Исмаил Прокопенко вне форума
Member
 
Сообщений: 23
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 30.07.2016
По умолчанию 04.09.2016, 16:35

Господа! Неужели никому не приходилось разбираться в больших чужих проектах?
Ответить с цитированием
  (#4 (permalink)) Старый
Исмаил Прокопенко Исмаил Прокопенко вне форума
Member
 
Сообщений: 23
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 30.07.2016
По умолчанию 12.09.2016, 16:55

Вообщем, попробовал то, это...
Ковыряю пока Understand.
Кто-нибудь его юсал?
Как он в деле?
Ответить с цитированием
  (#5 (permalink)) Старый
ur_naz ur_naz вне форума
Member
 
Сообщений: 17
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.11.2011
По умолчанию 14.09.2016, 03:14

неблагодарная это работа - копаться в чужом белье
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Исмаил Прокопенко Исмаил Прокопенко вне форума
Member
 
Сообщений: 23
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 30.07.2016
По умолчанию 06.11.2016, 13:42

Цитата:
Сообщение от ur_naz Посмотреть сообщение
неблагодарная это работа - копаться в чужом белье
Напротив. Столько нового узнаешь.
Программист, никогда не копавшийся в чужом коде, - плохой программист.
Это как автомеханик, который за всю свою жизнь чинил только одну машину.
Свою собственную.
Ответить с цитированием
  (#7 (permalink)) Старый
StudDraw2017 StudDraw2017 вне форума
Banned
 
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.11.2017
По умолчанию 23.11.2017, 15:28

Цитата:
Сообщение от Исмаил Прокопенко Посмотреть сообщение
Программист, никогда не копавшийся в чужом коде, - плохой программист.
Это как автомеханик, который за всю свою жизнь чинил только одну машину
-чушь однако! Вы берёте чужой код и хотите облегчить себе жизнь. Я угнал машину, теперь помогите мне убрать весь колхоз и запах дерьма в салоне.
Ответить с цитированием
Ads
Ответ

Метки
инструменты программиста

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компьютерные термины, сокращения... Семен Подбор комплектующих 8 05.11.2018 11:54
Посоветуйте удобную программу для сохранения кусков кода tumanovalex Вопросы начинающих программистов 7 19.06.2013 14:32
Посоветуйте софт InsomniaNsk Софт и программы 7 22.12.2012 19:11
информация с чужого сайта DolphiN_ PHP 3 17.04.2012 15:27
Защита кода от анализа и модификации Armiol .NET 9 13.03.2012 13:48
как проследить за действиями чужого компьютера? Владислав Анатольевич Любые вопросы от новичков 13 26.12.2010 20:13
посоветуйте софт для зеркального копирования Nigelhorst Софт и программы 9 20.03.2009 03:22
Посоветуйте оптимальный принтер для не большого объема печати. sunshinesea07 Любые вопросы от новичков 8 02.08.2008 12:58
Как перехватить сообщения чужого окна lpn_com Visual C++ 2 20.11.2006 12:48
Получить текст из чужого окна const WinAPI 2 17.08.2006 09:31
Отслеживание чужого закрытия NewDracon C++ Builder 3 14.05.2006 21:46
Выдергивание текста из чужого RichEdit Noiseman Delphi 1 31.12.2005 00:04



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов