|
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
|
|
Как научиться эффективно читать чужой код С++02.04.2013, 01:29. Показов 17420. Ответов 28
Метки нет (Все метки)
Поделитесь пожалуйста опытом или просто мыслями о том, как всё таки начать разбираться в не своём коде? Может у кого-то есть какие-то наработки на этот счёт? Буду благодарен получить информацию о навыках, которые позволят за относительно небольшой срок обучиться этому скилу. Спасибо.
Добавлено через 44 секунды Зы. Имеются ввиду большие аутсорсинговые проекты.
0
|
|
| 02.04.2013, 01:29 | |
|
Ответы с готовыми решениями:
28
Как грамотно читать чужой код? Как грамотно читать чужой код? Неразбериха: как научиться читать программы |
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
| 02.04.2013, 01:53 | |
|
Лучше читать когда он напечатан на бумаге. Я большие не читал, но кода маленькие читаю из книг, то просто карандашом помечаю каждую функцию, каждую переменную, что делает, что в ней находиться, для чего создается. Та я даже можно сказать не маленькие программки разбирал очень запутанные на 2 - 3 листа. И так бывает с первого раза не вьедешь, заново пересматриваешь и заново помечаешь, токо уже бывает кода смотришь раз третий, то видишь, что первый раз ты чушь написал, переписываешь, пере исправляешь и так до полного понимания программы.
Так же наверно и к большим проектам относиться. Просто детально разбираешь. Что куда идет, что делает, что в той или иной папке находиться. Записываешь на бумаге, если нада, потом заново перечитываешь, исправляешь. Вообщем долго мучаешься пока не вьедишь либо до какого уровня тебе нужно вьехать. Чем больше мучаешься тем больше понимаешь. ![]() Добавлено через 6 минут Вспомнилось тоже кода то пхп таким макаром разбирал создание сайта интернет магазина с нуля. И там было дофига кода, ну короче один код, так я за два месяца его весь разобрал и в то время знал как он работает, способом описаным выше, вся книга была исписана простым карандашом. Добавлено через 55 секунд Так что можно сказать громадный код хоть и не С++.
1
|
|
|
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
|
||
| 02.04.2013, 02:57 [ТС] | ||
. А по поводу детального разбора, есть такое понятие как начальник, у которого есть ещё начальник и т.д. и который всё время тебя мягко говоря побуждает работать быстрее. Ваши варианты в данном случаи мне не подходят.
0
|
||
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
| 02.04.2013, 03:04 | |
|
Зато мой метод разбора эффективный.
Добавлено через 1 минуту А чтоб быстро на работе, то видимо нужно знать хорошо алгоритмы построения той или иной программы, зная алгоритм не заморачиваешься уже с кодом. Добавлено через 1 минуту Примерно нужно знать в общих чертах как пишется та или иная программа код которой нужно разобрать, а по другому по быстрому не получиться мое ИМХО.
0
|
|
|
|
||
| 02.04.2013, 03:11 | ||
|
Что касается чтения чужого кода - так тут все определят багаж знаний ( к примеру знание паттернов - т.е. стандартные подходы к решению задач). И естественно если код писал Идиот то тут ничем не помочь .... легче браться переписывать....
1
|
||
| 02.04.2013, 03:12 | ||
|
Не по теме:
0
|
||
|
|
||
| 02.04.2013, 03:15 | ||
|
А по сути комменты нужны обычно только в "трудных" местах, иначе избыточные комменты превращают код - в хлам
0
|
||
| 02.04.2013, 03:18 | |
|
0
|
|
|
|
||
| 02.04.2013, 03:25 | ||
|
Например принцип модульности, инкапсуляции, наследования итп... И в итоге можно огромный исходник рассматривать как кучу "маленьких" логически завершенных... а значит вникать в код по мере надобности понимания тех или иных его частей. К тому же если давать осмысленные имена классам и ф-циям, то отпадает необходимость в комментарияx.
1
|
||
| 02.04.2013, 03:29 | |
|
0
|
|
| 02.04.2013, 09:35 | |
|
0
|
|
|
|
||||||
| 02.04.2013, 10:29 | ||||||
|
Для меня всегда трудно читаемым есть такой сишноподобный код замаскированный под C++:
Кликните здесь для просмотра всего текста
1
|
||||||
| 02.04.2013, 11:25 | |
|
Не по теме: На Си тоже можно писать понятный код. Как и на Си++ — непонятный. Для этого, как видите, достаточно давать всем переменным имена из одной буквы.
0
|
|
|
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
|
||
| 02.04.2013, 11:46 [ТС] | ||
|
Пока что нет чёткого ответа, который сможет помочь мне и другим, читающим этот топик. Так... общие (индивидуальные) взгляды на картину.
Добавлено через 1 минуту
0
|
||
|
117 / 116 / 8
Регистрация: 23.12.2012
Сообщений: 195
|
||
| 02.04.2013, 12:07 | ||
|
Одно дело - если, например, есть много разных классов. Сами классы, как правило понятны, сложней бывает разобраться в том, как они взаимодействуют между собой. Другое дело - код, который реализует некий сложный алгоритм обработки данных. В первом случае я бы, пожалуй, схемку или диаграмму набросал. Графический материал проще воспринимается. Во втором - как уже раньше советовали, поставил бы бряк и посидел бы в отладчике, пока не станут понятны детали алгоритма. Если такой код еще и плохо структурирован, можно походу и отрефакторить (если, конечно, к этому нет каких-либо препятствий).
2
|
||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 02.04.2013, 14:04 | |
|
0
|
|
| 02.04.2013, 14:53 | |
|
2
|
|
|
0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 2
|
|
| 02.04.2013, 14:56 | |
|
Реально ли с нуля изучить С ++?
0
|
|
| 02.04.2013, 14:56 | |
|
Помогаю со студенческими работами здесь
20
Как быстро научиться читать английские тексты? Научиться создавать, читать и упрощать сложные программы Какую лучше книгу или книги читать, чтобы научиться моделировать именно людей? Какие книги по PHP лучше читать, что бы научиться создавать сложные движки для сайтов? Как проанализировать объемный и чужой код? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|