LINUX.ORG.RU

Как разобрать чужой код


0

0
Всем доброго дня!

Пару месяцев назад спрашивал на этом форуме, с какого языка программирования начать.

Прочитав советы решил остановится на C и Python. Купил по C книгу Кернигана и Ритчи.

Захотелось полазить по исходникам и почитать, поискать разные моменты из книги "Практика программирования" да и посмотреть как настроящие программисты пишут программы. Но вот проблема:

Обычно рассматриваются везде примеры с написанием программы в 1 файле. Но во большинстве проектов например для Linux программы представляют собой наборы файлов в разных папках. Какой принцип разбиения программы на файлы? Как на ваш взгляд более правильно разбирать такой код?

Заранее большое спасибо!

> Какой принцип разбиения программы на файлы?

Ответить на этот вопрос пытаются исследования по технологии программирования уже лет 40 :)

> Как на ваш взгляд более правильно разбирать такой код?

Использовать индексатор (ctags и их поддержку в vim/emacs, или встроенный индексатор Eclipse CDT).

tailgunner ★★★★★
()
> Какой принцип разбиения программы на файлы?

Тот, который взбредет автору в голову... Но правильно, имхо конечно, на каждую логическую единицу - один файл. Потом группируем в модули/библиотеки.

> Как на ваш взгляд более правильно разбирать такой код?

Раскручивать программу, начиная с функции main, а как же ещё ? Выделить основные структуры данных и т.п. К тому моменту как ты это сделаешь вопрос отпадет сам собой.

codebuger
()
Ответ на: комментарий от codebuger
Спасибо! Очень интересные и полезные советы. Буду пробовать. ;)
Shalakhin
() автор топика
Ответ на: комментарий от codebuger
>Но правильно, имхо конечно, на каждую логическую единицу - один файл. Потом группируем в модули/библиотеки.

+1, правда появляется вопрос о выделении логических единиц =)

generatorglukoff ★★
()
Ответ на: комментарий от generatorglukoff
> правда появляется вопрос о выделении логических единиц

а вот это вопрос индивидуальный и очень сильно зависит от проектировщика. но главное чтобы одинаковый уровень детализации был ;)

codebuger
()
От общностей к частностям..
MiracleMan ★★★★★
()
Читай книгу дальше - там это есть. Для своих программ по началу можешь смело пользоваться одним большим и толстым файлом. Разделение на небольшие файлы действительно нужно тогда, когда идет коллективная разработка. При этом логика предметной области для сишных программ практически никогда не задействована. ))
LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk
> Разделение на небольшие файлы действительно нужно тогда, когда идет коллективная разработка. При этом логика предметной области для сишных программ практически никогда не задействована. ))

Пытаешься соответствовать своему никнейму ? :P

codebuger
()
Ответ на: комментарий от rab_boziy
>Читай книгу дальше - там это есть. Для своих программ по началу можешь смело пользоваться одним большим и толстым файлом. Разделение на небольшие файлы действительно нужно тогда, когда идет коллективная разработка. При этом логика предметной области для сишных программ практически никогда не задействована. ))

Интересненько... Буду читать дальше. :)

Shalakhin
() автор топика
> Какой принцип разбиения программы на файлы?

принцип один - _собственное__удобство__навигации_.

ну и чтобы было просто держать всё дерево в голове.

xydo ★★
()
Ответ на: комментарий от Shalakhin
>Разделение на небольшие файлы действительно нужно тогда, когда идет коллективная разработка.

Если следовать этой логике, то я не понимаю, для чего разделять проект на файлы даже при коллективной разработке? Ведь можно работать группой над одним файлом, все равно умная VCS все правильно помержит! :)

V_L_A_D ★★
()
> Какой принцип разбиения программы на файлы?

Главное побыстрее разберись со static. А то часто без нужды лепят глобальные функции.

shumer
()
Тьфу блин! Сплошное 4.2 в теме. Большинство отпостивших не писАли чего-либо более сложного и объемного, чем хелловорлд. (Это про разделение на модули). Ну да, один файл с тысячами строк кода, ужоснах прямо какой-то. :Е Ты сам через год свой код не разберешь!
anonymous
()
Ответ на: комментарий от codebuger
Хелловорда на двойной корке? Дааааа.. надо обязательно разнести на пару файлов...
LamerOk ★★★★★
()
Ответ на: комментарий от V_L_A_D
> Если следовать этой логике, то я не понимаю, для чего разделять проект на файлы даже при коллективной разработке?

Файлы копьютеру не нужны, как я надеюсь, ты догадываешься. Файлы нужны людям.

LamerOk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.