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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.