Быстро втянуться в большой проект
От: licedey  
Дата: 17.03.11 21:30
Оценка:
Доброе время суток,

Искал, искал я удаленку, а она глядь, и сама меня нашла. Да не абы что, а серьезная евро-фирма, разрабатывает anti-malware.
Проекту уже >5 лет, само собой основа уже написана, переписана, заметана (фрэймворк) и отлажена 100500 раз.
Задача стоит такая: улучшить код написанный по принципу "the documentation is in the code". Под улучшить, я понимаю читабельность, документирование, найти и пофиксить баги, убрать лишнее (дэд-код).
Все бы ничего, да кода этого на 500kb. А главное фобия меня преследуют medical-style, вроде "не навреди". Ибо привык работать в одиночку и весь код держать под контролем. Вот и представляю себе картину, как сырцы буду листать целыми днями, деньги капать, а результата NULL. Чем закончится — думаю понятно.

Обращаюсь к опытным коллегам. С ЧЕГО НАЧАТЬ??!!! Что делать с этой махиной, чтобы был сабж?!!
Re: Быстро втянуться в большой проект
От: 8bit  
Дата: 17.03.11 21:59
Оценка:
Здравствуйте, licedey, Вы писали:

L>Задача стоит такая: улучшить код написанный по принципу "the documentation is in the code". Под улучшить, я понимаю читабельность, документирование, найти и пофиксить баги, убрать лишнее (дэд-код).


Для начала спроси что они понимают под улучшить.
Re: Быстро втянуться в большой проект
От: Курилка Россия http://kirya.narod.ru/
Дата: 17.03.11 22:07
Оценка:
Здравствуйте, licedey, Вы писали:

L>Обращаюсь к опытным коллегам. С ЧЕГО НАЧАТЬ??!!! Что делать с этой махиной, чтобы был сабж?!!


Вот эту книжку смотрел? Довольно неплохо про развитие кода с учётом "не навреди".
Re: Быстро втянуться в большой проект
От: BulatZiganshin  
Дата: 17.03.11 22:36
Оценка: 1 (1) +1
Здравствуйте, licedey, Вы писали:

L>Обращаюсь к опытным коллегам. С ЧЕГО НАЧАТЬ??!!! Что делать с этой махиной, чтобы был сабж?!!


с комментариев
Люди, я люблю вас! Будьте бдительны!!!
Re: Быстро втянуться в большой проект
От: 0xDEADBEEF Ниоткуда  
Дата: 17.03.11 22:46
Оценка:
Здравствуйте, licedey, Вы писали:

L>Все бы ничего, да кода этого на 500kb

Это очень небольшое количество. Что бы ты сказал про гигабайт кода?

L>Обращаюсь к опытным коллегам. С ЧЕГО НАЧАТЬ??!!! Что делать с этой махиной, чтобы был сабж?!!

1) Как и сказал Курилка, с выяснения "что такое улучшить"
2) Документируем код безо всяких попыток изменения при помощи doxygen (гуглим doxygen) — просто добавляем комментарии, что делает та или эта функция.
3) Думаем и рассказываем работодателю, до чего додумались на предмет "улучшить"
4) ... goto 4
5) улучшаем
__________
16.There is no cause so right that one cannot find a fool following it.
Re: Быстро втянуться в большой проект
От: sergey.p. Великобритания  
Дата: 17.03.11 23:16
Оценка: +1
Здравствуйте, licedey, Вы писали:

L>Доброе время суток,


L>Искал, искал я удаленку, а она глядь, и сама меня нашла. Да не абы что, а серьезная евро-фирма, разрабатывает anti-malware.

L>Проекту уже >5 лет, само собой основа уже написана, переписана, заметана (фрэймворк) и отлажена 100500 раз.
L>Задача стоит такая: улучшить код написанный по принципу "the documentation is in the code". Под улучшить, я понимаю читабельность, документирование, найти и пофиксить баги, убрать лишнее (дэд-код).
L>Все бы ничего, да кода этого на 500kb. А главное фобия меня преследуют medical-style, вроде "не навреди". Ибо привык работать в одиночку и весь код держать под контролем. Вот и представляю себе картину, как сырцы буду листать целыми днями, деньги капать, а результата NULL. Чем закончится — думаю понятно.

L>Обращаюсь к опытным коллегам. С ЧЕГО НАЧАТЬ??!!! Что делать с этой махиной, чтобы был сабж?!!


500kb это совсем немного. При условии что нормально написано. 500кб на brainfuck'e ждут непослушных программистов после смерти
Серьезная евро-фирма не будет ждать от тебя немедленного результата, месяц точно можно вникать в код. Есть ли на проект юнит-тесты? Должно поуменьшить страхи.
Про комментарии и doxygen уже написали, я бы еще рекомендовал нагуглить статических анализаторов кода и написать/нагуглить скриптик для поиска дубликатов кода.
Подобные тулы быстро раскрывают наиболее "проблемные" места с говнокодом приводя различные метрики типа количество методов на класс, количество бранчей в функции, сложность функции и т.п.
Не забывай нам постить "избранное"
Re: Быстро втянуться в большой проект
От: x64 Россия http://x64blog.name
Дата: 17.03.11 23:25
Оценка: 2 (1)
L>...заметана (фрэймворк)...

Metasploit Framework?

L>Что делать с этой махиной...


Да какая ж это махина, помилуйте? У меня и по 2 метра проекты в одну харю, и как-то справлялся до этого момента. А совет могу такой дать: начни с анализа исходников с помощью специально предназначенных для этого инструментов типа Understand (дорогой), Source Insight (не развивается), Visual Assist (не шибко навороченный, но мне нравится) и т.д. К тому же, полагаю, у тебя будет возможность получить необходимую информацию по коду от самих разработчиков, почему нет? Не всё так страшно, не парься.
JID: x64j@jabber.ru
Re: Быстро втянуться в большой проект
От: nen777w  
Дата: 17.03.11 23:33
Оценка:
Что за фирма если не секрет? Не на букву E начинается?
Re: Быстро втянуться в большой проект
От: Kolobrodin Россия  
Дата: 17.03.11 23:35
Оценка:
Здравствуйте, licedey, Вы писали:

L>Доброе время суток,


L>Искал, искал я удаленку, а она глядь, и сама меня нашла. Да не абы что, а серьезная евро-фирма, разрабатывает anti-malware.

L>Проекту уже >5 лет, само собой основа уже написана, переписана, заметана (фрэймворк) и отлажена 100500 раз.
L>Задача стоит такая: улучшить код написанный по принципу "the documentation is in the code". Под улучшить, я понимаю читабельность, документирование, найти и пофиксить баги, убрать лишнее (дэд-код).
L>Все бы ничего, да кода этого на 500kb. А главное фобия меня преследуют medical-style, вроде "не навреди". Ибо привык работать в одиночку и весь код держать под контролем. Вот и представляю себе картину, как сырцы буду листать целыми днями, деньги капать, а результата NULL. Чем закончится — думаю понятно.

L>Обращаюсь к опытным коллегам. С ЧЕГО НАЧАТЬ??!!! Что делать с этой махиной, чтобы был сабж?!!


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

500 кило достаточно мало, чтобы за месяц вникнуть.

Doxygen, ага.

Всякие анализаторы ага. Хорошо, если есть возможность построить зависимость между классами, файлами. По тому, как беспорядочны будут связи можно будет судить о том, насколько тебе придется листать, еще раз листать и перелистывать сурцы
Неоконченная мысль всегда казалась Шри Япутре слишком
Re: Быстро втянуться в большой проект
От: TimurSPB Интернет  
Дата: 17.03.11 23:39
Оценка:
Ты это, если все получиться адресок или иной контакт закинь.
А то у нас тех кто ключи подавать готов дофига, а чтоб вот так туда нырнуть! Уважаю таких смелых людей!
Make flame.politics Great Again!
Re: Быстро втянуться в большой проект
От: Pzz Россия https://github.com/alexpevzner
Дата: 18.03.11 01:41
Оценка: 2 (1)
Здравствуйте, licedey, Вы писали:

L>Обращаюсь к опытным коллегам. С ЧЕГО НАЧАТЬ??!!! Что делать с этой махиной, чтобы был сабж?!!


С прояснения вопроса, какие проблемы вы собираетесь решать.
Re: Быстро втянуться в большой проект
От: IT Россия linq2db.com
Дата: 18.03.11 01:53
Оценка: 3 (3) +9
Здравствуйте, licedey, Вы писали:

L>Обращаюсь к опытным коллегам. С ЧЕГО НАЧАТЬ??!!! Что делать с этой махиной, чтобы был сабж?!!


Начинай фиксить баги. И результат будет виден и с кодом быстро разберёшься. Баги — это вообще самый эффективный и быстрый способ въехать в проект. Неоднократно проверено на практике.
Если нам не помогут, то мы тоже никого не пощадим.
Re: Быстро втянуться в большой проект
От: nen777w  
Дата: 18.03.11 08:18
Оценка: 3 (2) -1
да!
Если проект в студии то поставь вот этих два плагина: Include File Dependencies Watcher, C++ Class Hierarchie Viewer
очень удобная штука.
Для таких не жалко мякнуть Donate.
Re: Быстро втянуться в большой проект
От: MasterZiv СССР  
Дата: 18.03.11 16:19
Оценка:
On 18.03.2011 0:30, licedey wrote:

> Все бы ничего, да кода этого на 500kb.


Чё, так мало ?
Да ты там всё наизусть выучить сможешь !

> Обращаюсь к опытным коллегам. С ЧЕГО НАЧАТЬ??!!! Что делать с этой махиной,

> чтобы был сабж?!!

1) нужен code browsing. Тул какой-то для того, чтобы не искать определения и
реализации по файлам. А также искать использование и ссылки. С ним весь
рефакторинг в 200 раз быстрее.

2) "не навреди" -- плохой принцип. Надо выпиливать.

3) но если "не навреди" -- не наш метод, то нужны тесты. Юнит и функциональные.
Гонять "До" и "после".
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Быстро втянуться в большой проект
От: licedey  
Дата: 18.03.11 16:49
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Здравствуйте, licedey, Вы писали:


L>>Обращаюсь к опытным коллегам. С ЧЕГО НАЧАТЬ??!!! Что делать с этой махиной, чтобы был сабж?!!


К>Вот эту книжку смотрел? Довольно неплохо про развитие кода с учётом "не навреди".


Хотелось бы полистать, да что-то никак выгуглить/выбинговать/въяндексить полную электронную версию.
Re[2]: Быстро втянуться в большой проект
От: licedey  
Дата: 18.03.11 17:09
Оценка:
Здравствуйте, 0xDEADBEEF, Вы писали:

DEA>Здравствуйте, licedey, Вы писали:


L>>Все бы ничего, да кода этого на 500kb

DEA>Это очень небольшое количество. Что бы ты сказал про гигабайт кода?
Ось что-ли?

L>>Обращаюсь к опытным коллегам. С ЧЕГО НАЧАТЬ??!!! Что делать с этой махиной, чтобы был сабж?!!

DEA>1) Как и сказал Курилка, с выяснения "что такое улучшить"
DEA>2) Документируем код безо всяких попыток изменения при помощи doxygen (гуглим doxygen) — просто добавляем комментарии, что делает та или эта функция.
DEA>3) Думаем и рассказываем работодателю, до чего додумались на предмет "улучшить"
DEA>4) ... goto 4
DEA>5) улучшаем
Тим лид прожженный системщик, к ООП безразличен. Буду полагаться на VS2010+Find all references+Visualization modeling plugin.
Re[2]: Быстро втянуться в большой проект
От: licedey  
Дата: 18.03.11 17:14
Оценка:
Здравствуйте, sergey.p., Вы писали:


SP>500kb это совсем немного. При условии что нормально написано. 500кб на brainfuck'e ждут непослушных программистов после смерти

500 KB кривого кода, для того и наняли, чтоб выровнять.

SP>Серьезная евро-фирма не будет ждать от тебя немедленного результата, месяц точно можно вникать в код. Есть ли на проект юнит-тесты? Должно поуменьшить страхи.

Вряд ли, видимо самому писать.

SP>Про комментарии и doxygen уже написали, я бы еще рекомендовал нагуглить статических анализаторов кода и написать/нагуглить скриптик для поиска дубликатов кода.

Спасибо, учтем. Doxygen что-то не по нраву, в чем соль то? Те же декларации, с уже моими коментами, только в другом виде.

SP>Подобные тулы быстро раскрывают наиболее "проблемные" места с говнокодом приводя различные метрики типа количество методов на класс, количество бранчей в функции, сложность функции и т.п.

SP>Не забывай нам постить "избранное"
ОК
Re: Быстро втянуться в большой проект
От: Michael7 Россия  
Дата: 18.03.11 17:20
Оценка:
Здравствуйте, licedey, Вы писали:

L>Доброе время суток,


L>Искал, искал я удаленку, а она глядь, и сама меня нашла. Да не абы что, а серьезная евро-фирма, разрабатывает anti-malware.

L>Проекту уже >5 лет, само собой основа уже написана, переписана, заметана (фрэймворк) и отлажена 100500 раз.
L>Задача стоит такая: улучшить код написанный по принципу "the documentation is in the code". Под улучшить, я понимаю читабельность, документирование, найти и пофиксить баги, убрать лишнее (дэд-код).

Может мне уже пора паранойю лечить, но чего-то на моё ощущение по данному описанию такая работа говнецом попахивает. Там нет случайно пункта, что ежели чего, а ну быстро нам стопицот баксов? Или намек на такое развитие событий?

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

Правда, если весь проект — это считай шаровара одного-двух человек Но и тогда странно.

L>Все бы ничего, да кода этого на 500kb. А главное фобия меня преследуют medical-style, вроде "не навреди". Ибо привык работать в одиночку и весь код держать под контролем. Вот и представляю себе картину, как сырцы буду листать целыми днями, деньги капать, а результата NULL. Чем закончится — думаю понятно.


500 Кб не так, чтобы очень много, сильно ещё зависит от языка на котором проект написан, документированности и т.д.

L>Обращаюсь к опытным коллегам. С ЧЕГО НАЧАТЬ??!!! Что делать с этой махиной, чтобы был сабж?!!


Есть такая поговорка "глаза страшатся — руки делают", начинайте с очевидного и легкого. Постепенно втянетесь.
Re[2]: Быстро втянуться в большой проект
От: licedey  
Дата: 18.03.11 17:22
Оценка:
Здравствуйте, x64, Вы писали:

L>>...заметана (фрэймворк)...


x64>Metasploit Framework?

У них hand-made framework, как я понял. Полностью код увижу через пару дней.

L>>Что делать с этой махиной...


x64>Да какая ж это махина, помилуйте? У меня и по 2 метра проекты в одну харю, и как-то справлялся до этого момента. А совет могу такой дать: начни с анализа исходников с помощью специально предназначенных для этого инструментов типа Understand (дорогой), Source Insight (не развивается), Visual Assist (не шибко навороченный, но мне нравится) и т.д.

Поглядим. Юзаю VS2010 Ultimate + Architect pack для визуализации кода. В студии вроде б то все есть. Может еще, что прицепить для рефакторинга С++ кода?
Re[3]: Быстро втянуться в большой проект
От: x64 Россия http://x64blog.name
Дата: 18.03.11 17:32
Оценка:
L>У них hand-made framework, как я понял.

Не, я просто подумал, что тебя в Metasploit зовут.

L>...Architect pack для визуализации кода.


А это что такое, можно поподробнее?

L>Может еще, что прицепить для рефакторинга С++ кода?


Ну если ещё не пробовал, то посмотри Visual Assist, а больше я ничего и не использую.
JID: x64j@jabber.ru
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.