R>Я позволю себе слегка отклониться от прямого ответа на прямой вопрос. Нужно иметь в виду, что тот факт, что какой-либо библиотечный код не используется в каком-либо конкретном приложении, не обязательно означает, что данный код бесполезен. Ведь такова природа бибилиотек — служить хранилищем всякой всячины, более или мене полезной, которая когда-нибудь где-нибудь может пригодиться. Линкер сам разберется, что нужно взять из библиотеки для того или иного приложения. Если библиотека нормально структурирована (разбита на объектные модули), то никаких проблем с избыточным размером бинарей не возникает, как правило.
проблемма не в размере
а в том что я портирую приложение с win на linux
и уже понятно что если я буду портировать все в сроки я не уложусь
Здравствуйте, sergey2b, Вы писали:
S>проблемма не в размере S>а в том что я портирую приложение с win на linux S>и уже понятно что если я буду портировать все в сроки я не уложусь
Да, я понял задачу. Просто наскольно это будет правильно — сделать фильтрацию библиотечного кода на основании лишь использования/неиспользования в одном отдельно взятом приложении? Это набор библиотек создавался только для этого приложения?
--
Не можешь достичь желаемого — пожелай достигнутого.
Здравствуйте, rg45, Вы писали:
R>Здравствуйте, sergey2b, Вы писали:
S>>проблемма не в размере S>>а в том что я портирую приложение с win на linux S>>и уже понятно что если я буду портировать все в сроки я не уложусь
R>Да, я понял задачу. Просто наскольно это будет правильно — сделать фильтрацию библиотечного кода на основании лишь использования/неиспользования в одном отдельно взятом приложении? Это набор библиотек создавался только для этого приложения?
нет 10+ приложений которые мне же придеться портировать
я понимаю вы правы, но реальная жизнь не идеальна
я и так завяз с переписыванием некоторых функций которые писались в расете на винду
Здравствуйте, rg45, Вы писали:
R>А тут невольно вспоминается другой афоризм — про бабушку и бороду.
Ну давайте так: подпишетесь под утверждением, будто любой писатель, востребованный не самой маргинальной частью населения, способен быстро и грамотно анализировать чужие литературные произведения, независимо от их стиля и объема? То есть, сможет, бегло пробежавшись по тексту, выписать характеры персонажей, отметить возможные противоречия, нарисовать граф сюжетных линий, опять же выделив возможные нестыковки, очертить блоки повествования, классифицировать произведение по стилям и т.п.
Ну и до кучи: сможет ли любой успешный террорист без дополнительной подготовки столь же хорошо выполнять контртеррористическую работу?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Ну давайте так: подпишетесь под утверждением, будто любой писатель, востребованный не самой маргинальной частью населения, способен быстро и грамотно анализировать чужие литературные произведения, независимо от их стиля и объема?
А зачем мне подписываться под твоими фантазиями? В метафоре про чукчу речь идет об умении читать и только. На то она и метафора.
--
Не можешь достичь желаемого — пожелай достигнутого.
R>>В метафоре про чукчу речь идет об умении читать и только. На то она и метафора.
ЕМ>Тогда и не стоило ее развивать с двусмысленными намеками.
Это почему? По моему скромному мнению, программист, не умеющий анализировать чужой код, очень похож на чукчу из известного анектода. Я же могу выразить свое мнение?
--
Не можешь достичь желаемого — пожелай достигнутого.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, rg45, Вы писали:
R>>А тут невольно вспоминается другой афоризм — про бабушку и бороду.
ЕМ>Ну давайте так: подпишетесь под утверждением, будто любой писатель, востребованный не самой маргинальной частью населения, способен быстро и грамотно анализировать чужие литературные произведения, независимо от их стиля и объема? То есть, сможет, бегло пробежавшись по тексту, выписать характеры персонажей, отметить возможные противоречия, нарисовать граф сюжетных линий, опять же выделив возможные нестыковки, очертить блоки повествования, классифицировать произведение по стилям и т.п.
у вас есть в друзьях такие проф писатели ?
уверен что нет
поэтому заниматься фантазированием не будем
ЕМ>Ну и до кучи: сможет ли любой успешный террорист без дополнительной подготовки столь же хорошо выполнять контртеррористическую работу?
у вас есть террорестический опыт ?
уверен что тоже нет
а то что делаете вы это уводите тему в сторону да еще и не удачными примерами
а теперь видимо вы готовы рассказать нам форумчанам какими же умениями и знаниями должен обладать программист с 10 лет опыта ?
ну и как вы говорите до кучи
git ls-files | xargs cat | wc -l
что бы каждый смог оценить свои и другие проекты что бы иметь представление сколько же это 100kloc
Здравствуйте, rg45, Вы писали:
R>программист не умеющий анализировать чужой код, очень похож на чукчу из известного анектода.
Совсем не умеющий — похож. Так или иначе анализировать способен любой программист. Однако, делать это на уровне "как дышать" (ну, или как читать запоем тот же роман) — далеко не каждый. Для этого нужно иметь определенным образом устроенный мозг, а не только знания и опыт.
Здравствуйте, reversecode, Вы писали:
R>у вас есть в друзьях такие проф писатели ?
Прямо, чтоб в друзьях — нет, но общаться приходилось. Равно как и со множеством разного рода людей, занимающихся как синтезом, так и анализом. Совершенно очевидно, что эти способности не являются двунаправленными, симметричными. У наиболее успешных они и перекрываются наиболее полно, однако далеко не все, кто способен интересно и увлекательно хоть писать, хоть рассказывать, имеют сколько-нибудь выдающиеся способности к анализу.
R>у вас есть террорестический опыт ?
Чтобы понимать основы, не нужно личного опыта. Вы никогда не задумывались о том, почему в армии тех, кто способен установить и замаскировать мину, минимум на порядок больше, чем тех, кто способен ее найти и обезвредить?
R>а то что делаете вы это уводите тему в сторону да еще и не удачными примерами
Так давайте же удачных примеров. Или, по-Вашему, программирование — совершенно уникальная сфера деятельности, не имеющая себе аналогов?
R>а теперь видимо вы готовы рассказать нам форумчанам какими же умениями и знаниями должен обладать программист с 10 лет опыта ?
Я уже рассказал, что умение "сочинять вообще" не предполагает равного ему умения "разбираться вообще". В этих занятиях задействованы разные свойства мозга. У кого-то мозги "симметричные", и они одинаково легко как сочиняют, так и разбираются, а у кого-то эти свойства сдвинуты в одну сторону, причем достаточно сильно.
Здравствуйте, IID, Вы писали:
S>>есть ли какая либо возможность определить какой код реально используеться в приложении
IID>Возьми код, который ТОЧНО используется (main и далее). И подключай сорцы по сообщениям линкера. Если совсем перфекционист — в подключенном сорце комментируй всё, кроме нужной функции. А потом раскомментируй по мере продвижения.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Совсем не умеющий — похож. Так или иначе анализировать способен любой программист. Однако, делать это на уровне "как дышать" (ну, или как читать запоем тот же роман) — далеко не каждый. Для этого нужно иметь определенным образом устроенный мозг, а не только знания и опыт.
Моя младшенькая бьет меня иногда моим же оружием: "Папа, помоги — вот в этом месте какая-то фигня". Смотрю код, а там — ни в сказке сказать, ни пером описать. Смотрю, смотрю... В конце концов не выдерживаю: "а ты что сделать хотела, вообще?" Так она мне в ответ: "учись читать чужой код!"
--
Не можешь достичь желаемого — пожелай достигнутого.
Евгений Музыченко:
ЕМ>Для программиста, независимо от стажа, способность анализировать чужой код, за пределами самого общего понимания, вообще не является профессиональной необходимостью. Профессиональная функция программиста — создавать код, а не "разматывать" его.
Неумение читать код, это профнепригодность. Дали тебе задачу передвинуть кнопку на форме, и ты сядешь всё с нуля переписывать?
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
Здравствуйте, Bill Baklushi, Вы писали:
ЕМ>>Для программиста, независимо от стажа, способность анализировать чужой код, за пределами самого общего понимания, вообще не является профессиональной необходимостью.
BB>Неумение читать код, это профнепригодность.
А неумение понять разницу между "читать" и "анализировать за пределами самого общего понимания" — это глупость?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Для программиста, независимо от стажа, способность анализировать чужой код, за пределами самого общего понимания, вообще не является профессиональной необходимостью. Профессиональная функция программиста — создавать код, а не "разматывать" его. То есть, если программист способен создать код в рамках заданных условий (задача, время, стоимость, надежность и т.п.) — он однозначно полностью профпригоден. Умение копаться в чужом коде и переделывать его — сугубо дополнительные способности.
А поддержка программного продукта это чья функция — не программиста? Кто должен разгребать баги с продакшена?
--
Не можешь достичь желаемого — пожелай достигнутого.
Здравствуйте, Marty, Вы писали:
M>Здравствуйте, IID, Вы писали:
S>>>есть ли какая либо возможность определить какой код реально используеться в приложении
IID>>Возьми код, который ТОЧНО используется (main и далее). И подключай сорцы по сообщениям линкера. Если совсем перфекционист — в подключенном сорце комментируй всё, кроме нужной функции. А потом раскомментируй по мере продвижения.
M>За пару лет управится
Отставить панику.
Лично портировал 5,8мб исходников (плюс либы типа OpenSSL, Jpeg и т.д.) с Lin на Win. Точнее добавлял ещё одну платформу для запуска.
ХЗ сколько там строк. Наверное раза в 2 побольше чем 100к.
Приложение под Linux Box, с кучей UI на OpenGL.
Очень повезло что:
— приложение уже содержало 2 платформы: Desktop и Embedded Linux. И было поделено на слои. Для GL/GLES сущностей существовали обёртки. Пришлось только часть Posix вызовов проэмулировать с помощью Win32, причём для некритических я сильно не заморачивался.
— в консоль Win10 завезли флаг поддержки Escape последовательностей VT100 — логи в терминале раскрасились сами собой. А логирования там просто дохрена.
Справился где-то за неделю. Получил возможность собирать, запускать и отлаживать прямо из студии.
IID>Лично портировал 5,8мб исходников (плюс либы типа OpenSSL, Jpeg и т.д.) с Lin на Win. Точнее добавлял ещё одну платформу для запуска. IID>ХЗ сколько там строк. Наверное раза в 2 побольше чем 100к. IID>Приложение под Linux Box, с кучей UI на OpenGL.
Уже под Linux — +1
IID>Очень повезло что:
Да, повезло
IID>- приложение уже содержало 2 платформы: Desktop и Embedded Linux. И было поделено на слои. Для GL/GLES сущностей существовали обёртки. Пришлось только часть Posix вызовов проэмулировать с помощью Win32, причём для некритических я сильно не заморачивался.
Вооот, уже 1) платформозависимый код выделили в отдельные подсистемы до тебя; 2) Posix прост как валенок по сравнению с богатством виндовых API => порт Posix->Win32 на порядок проще, чем порт Win32->Posix
IID>- в консоль Win10 завезли флаг поддержки Escape последовательностей VT100 — логи в терминале раскрасились сами собой. А логирования там просто дохрена.
О, а это интересно. Я себе делал вывод сообщений в консоль, для вывода в виндовую консоль использовал виндовые функции работы с цветами консоли, а для MinGW-шного баша использовал Escape последовательности.
Хотя у меня под любой виндой работает, но пришлось поискать, из под какого процесса меня запускали.
А десяточная консоль вообще без приседаний понимает escape'ы?
Кстати, раз зашла речь про Escape последовательности — может в курсе, как там в линупсе, при перенаправлении в файл кто их стрипает? Я сделал проверкой, является ли консольный хэндл файловым, или как-то так, и в зависимости от этого раскрашиваю или нет. Так себе решение, но работает.
И призовой вопрос — почему под виндой если я в MinGW-баше запускаю гит, то он вывод раскрашивает, а если я из своей проги запускаю гит, и свою прогу запускаю под тем же башем, то вывод выдается унылый одноцветный?
IID>Справился где-то за неделю. Получил возможность собирать, запускать и отлаживать прямо из студии.
Обратная задача посложнее, на мой взгляд. Конечно, зависит от сложности системы в целом и от того, насколько Win API использовано по полной, но имхо раз в несколько будет посложнее
Здравствуйте, reversecode, Вы писали:
R>ну и как вы говорите до кучи R>git ls-files | xargs cat | wc -l R>что бы каждый смог оценить свои и другие проекты что бы иметь представление сколько же это 100kloc
я некогда не задумывался сколько там кода на самом деле, тк код на stl портируеться легко
порция на эту неделю которую я еще не завершил 2319182 строк (сколько то можно вычисть make files)
Здравствуйте, rg45, Вы писали:
R>Моя младшенькая бьет меня иногда моим же оружием: "Папа, помоги — вот в этом месте какая-то фигня". Смотрю код, а там — ни в сказке сказать, ни пером описать. Смотрю, смотрю... В конце концов не выдерживаю: "а ты что сделать хотела, вообще?" Так она мне в ответ: "учись читать чужой код!"
Ну, сказал бы: "лапа, этот трэш я просто перепишу заново"
Здравствуйте, Bill Baklushi, Вы писали:
ЕМ>>Для программиста, независимо от стажа, способность анализировать чужой код, за пределами самого общего понимания, вообще не является профессиональной необходимостью. Профессиональная функция программиста — создавать код, а не "разматывать" его.
BB>Неумение читать код, это профнепригодность. Дали тебе задачу передвинуть кнопку на форме, и ты сядешь всё с нуля переписывать?
Есть код, который проще переписать, чем понять, что он делает. У нас чел уволился из другого отдела, полтора года прошивку писал, под линупсом, в эклипсе. А у нас в отделе все технологии под кейл заточены, и под винду все, включая кучу полезного технологического софта. Это гавно на меня скинули, ну и отправили меня в командировку в Феодосию по этой теме. Так вот я там, сидя в горящем танке и положив ноут на сапоги убитого друга, переписал всё за две недели, прошерстив схемоту и пообщавшись с наладчиками системы