Бред

Ответить в тред Ответить в тред
Check this out!
Аноним 02/04/21 Птн 15:34:42 2436491731
Screenshot20210[...].jpeg 120Кб, 720x1560
720x1560
Screenshot20210[...].jpeg 131Кб, 720x1560
720x1560
Призываю кодеров в тред.

Хочу запилить форк одного приложения. Приложение написано на плюсах.
Вроде не сильно большое и сложное.
Но я вообще не плнимаю откуда и как читать этот код, как находить - какие функции за что отвечают, и вообще какова структура этой херни.

Вот тут сурсы:

https://github.com/bbidulock/icewm


До этого я изредка, по работе писал скрипты на Питоне. Там всё логично и понятно. Есть скрипт - запускаешь его - он выполняется. Если надо - подключаешь другие модули и вызываешь функции из них. Всё логично и понятно.
Но тут просто какой-то пиздец.

1. Зачем столько файлов в корневой директории? Всякие TODO, INSTALL я понимаю. Просто файл со всякой инфой, которая относится к проекту, а не к программе. Но помимо них там есть всякие autogen.sh, configure.sc, dist.sh и т.д. Нахуя они нужны?

2. Contrib, doc, lib, man, po, src, utils. Назначение директорий doc и man мне понятно. Но всё остальное... Src это вроде как sources, но почему она вынесена отдельно от utils и lib? Зачем?

3. Допустим я открыл директорию src. Откуда начинается выполнение кода? Где тот файл, с которого алгоритм, вызываемый при старте программы, запускается? Как его вообще обнаружить? На языке питонистов - как найти if (__name__=="__main__"):

4. Зачем к каждому файлу с кодом прикрепляется так же и заголовочный файл? Зачем они вообще нужны? Почему нельзя просто прописать всё необходимое в начале файла с кодом?
Аноним 02/04/21 Птн 15:36:38 2436493152
Бамп
Аноним 02/04/21 Птн 15:36:55 2436493303
Бамп
Аноним 02/04/21 Птн 15:37:11 2436493524
Бамп
Аноним 02/04/21 Птн 15:37:30 2436493795
Бамп
Аноним 02/04/21 Птн 15:37:46 2436494006
Бамп
Аноним 02/04/21 Птн 15:38:13 2436494307
Бамп
Аноним 02/04/21 Птн 15:38:34 2436494568
Бамп
Аноним 02/04/21 Птн 15:38:35 2436494589
>>243649173 (OP)
так толсто что аж из телефона потекло
Аноним 02/04/21 Птн 15:39:06 24364950010
>>243649458
Что не так?
Я серьёзно хочу разобраться
Аноним 02/04/21 Птн 15:39:38 24364953911
Бамп
Аноним 02/04/21 Птн 15:39:43 24364954512
>>243649500
сгачала возьми и прочитай учебник по c++.
Аноним 02/04/21 Птн 15:40:03 24364958013
Бамп
Аноним 02/04/21 Птн 15:40:45 24364964314
Аноним 02/04/21 Птн 15:41:17 24364967215
>>243649545
Блять, читал. Везде рассказывают как писать свой лапшнобразный говнокод. Про чтение чужого кода и организацию проекта нигде не говорится
Аноним 02/04/21 Птн 15:41:49 24364971716
Бамп
Аноним 02/04/21 Птн 15:41:52 24364972217
Ставь вижуал студию (либо IDE от джет брейнс), открывай проект, смотри в мэйн - какие функции там вызываются, ну и переходи по Find Usages/ Find Reference etc. Если не допрёшь так, ставь брейкпойнт на мэйне, и смотри каждый степ
Аноним 02/04/21 Птн 15:43:35 24364985518
>>243649722
> смотри в мэйн
Где ентот ваш мэйн-то??
Как его найти??
Аноним 02/04/21 Птн 15:46:10 24365006219
Бамп
Аноним 02/04/21 Птн 15:46:30 24365008520
Бамп
Аноним 02/04/21 Птн 15:46:48 24365010921
Бамп
Аноним 02/04/21 Птн 15:47:08 24365013022
Бамп
Аноним 02/04/21 Птн 15:47:29 24365016423
Бамп
Аноним 02/04/21 Птн 15:47:44 24365017824
>>243649643
любой

>>243649672
если ты после прочтения учебника не знаешь зачем нужны .h файоы и где точка входа в программу - то нихуя ты не читал
Аноним 02/04/21 Птн 15:47:49 24365018625
Бамп
Аноним 02/04/21 Птн 15:48:26 24365023626
Бамп
Аноним 02/04/21 Птн 15:48:44 24365025527
Бамп
Аноним 02/04/21 Птн 15:49:08 24365027928
Бамп
Аноним 02/04/21 Птн 15:49:26 24365029829
Бамп
Аноним 02/04/21 Птн 15:49:44 24365032630
Бамп
Аноним 02/04/21 Птн 15:50:11 24365035531
Бамп
Аноним 02/04/21 Птн 15:50:27 24365038532
>>243650178
двачую. Была в моём детстве книжка хорошая "С++ для чайников", года этак 99-го издания. Там всё для товарища, бампающего тред по кд написано (базис). Ты сначала проект попробуй развернуть и скомпилировать
Аноним 02/04/21 Птн 15:50:30 24365038933
Бамп
Аноним 02/04/21 Птн 15:50:43 24365040234
Жирнота?
>Хочу запилить форк одного приложения. Приложение написано на плюсах.
Хорошо. Форкай.

>Вроде не сильно большое и сложное.
Это оконный менеджер для никсов. Это большое и сложное приложение. Знаний одного языка тут будет недостаточно, нужно понимать как это цепляется под капотом.

>Но я вообще не плнимаю откуда и как читать этот код, как находить - какие функции за что отвечают, и вообще какова структура этой херни.
Структура там довольно логичная. Я хоть и не байтоёб, но вполне разбираю что там происходит (хотя по уровню подпивасный джун уже третий год подряд крутящий круды на C# + js в тырпрайзе). Поэтому если ты даже не можешь разобрать что там происходит под капотом (ты же пытался хотя бы пару вечеров разобрать как оно работает?) - то пытаться дальше не стоит не хочешь срать - не мучай жопу

>До этого я изредка, по работе писал скрипты на Питоне. Там всё логично и понятно. Есть скрипт - запускаешь его - он выполняется. Если надо - подключаешь другие модули и вызываешь функции из них. Всё логично и понятно.
Сравнивать сси с пистоном это как сравнивать жопу с пальцем. Петухон - навороченный калькулятор для девочек-аналитиков чтобы рисовать красивые графики. Си - системный ЯП для никсов. Поэтому нихуя не понятно.

>Зачем столько файлов в корневой директории? Всякие TODO, INSTALL я понимаю. Просто файл со всякой инфой, которая относится к проекту, а не к программе. Но помимо них там есть всякие autogen.sh, configure.sc, dist.sh и т.д. Нахуя они нужны?
Для установки/инициализации окружения/конфигов.

>Contrib, doc, lib, man, po, src, utils. Назначение директорий doc и man мне понятно. Но всё остальное... Src это вроде как sources, но почему она вынесена отдельно от utils и lib? Зачем?
Потому что надо различать где ты срёшь а где жрешь. Если это либа/утилита, то её нахуй не надо изменять в процессе разработки и она спокойно лежит у себя в папке и по-надобности подключается/выполняется. А в src лежит то, что непосредственно реализуется тобой и выполняет твою задачу (и соответственно изменяется от билда к билду).

>Допустим я открыл директорию src. Откуда начинается выполнение кода? Где тот файл, с которого алгоритм, вызываемый при старте программы, запускается? Как его вообще обнаружить? На языке питонистов - как найти if (__name__=="__main__"):
Ищешь main
https://github.com/bbidulock/icewm/blob/icewm-1-4-BRANCH/src/icerun.cc 54я строка.

>Зачем к каждому файлу с кодом прикрепляется так же и заголовочный файл? Зачем они вообще нужны? Почему нельзя просто прописать всё необходимое в начале файла с кодом?
Чтобы различать где жрёшь и где срёшь. См. выше.

Покормил.

>
Аноним 02/04/21 Птн 15:50:47 24365040935
image.png 354Кб, 1756x1256
1756x1256
>>243649855
Там таретов дохуя и у каждого свой мейн. А таргеты прописаны в CMake. CMake это система сборки, C++ в отличии от пистона нужно конпелировать
Аноним 02/04/21 Птн 15:51:01 24365042636
>>243650385
>Ты сначала проект попробуй развернуть и скомпилировать

это я ОПу
Аноним 02/04/21 Птн 15:51:18 24365045337
>>243649173 (OP)
Все местные айти гуру почему-то обоссались. Неожиданно.
Аноним 02/04/21 Птн 15:53:23 24365062538
>>243649173 (OP)
> Но помимо них там есть всякие autogen.sh, configure.sc, dist.sh и т.д. Нахуя они нужны?
Всякие шелл скрипты, аналог смд, ток для линукса.
>>243649173 (OP)
>Откуда начинается выполнение кода?
Функция main, ищи ее, int main(), чет такое ищи.
>>243649173 (OP)
>Почему нельзя просто прописать всё необходимое в начале файла с кодом?
Заголовочный файл подставляется вместо include, просто прописать можно, но неудобно, тебе каждый раз придётся дублировать это в каждом файле, а так написал инклюд и норм. Это аналог import в питоне, не точный аналог, но суть похожа.
Аноним 02/04/21 Птн 15:53:58 24365067539
>>243650453
Но уже все сказали что делать >>243649722

Или блять ему весь код надо разжевать?
Аноним # OP 02/04/21 Птн 15:56:05 24365082440
>>243650402
Спасибо

Абу благословил этот пост.
Аноним # OP 02/04/21 Птн 15:58:59 24365102141
>>243650625
> Всякие шелл скрипты, аналог смд, ток для линукса.
Что такое шелл скрипт я знаю. Когда и кем он должен выполняться - мне не ясно абсодютнл
> Заголовочный файл подставляется вместо include, просто прописать можно, но неудобно, тебе каждый раз придётся дублировать это в каждом файле, а так написал инклюд и норм. Это аналог import в питоне, не точный аналог, но суть похожа.
Спасибо
> Функция main, ищи ее, int main(), чет такое ищи.
Тупо через ctrl + f?
А как по всем файлам разом искать?

Абу благословил этот пост.
Аноним 02/04/21 Птн 16:00:20 24365110842
>>243651021
В солюшн эксплорере (в вижуалке) пишешь текст, ищет по всем файлам
Аноним 02/04/21 Птн 16:01:41 24365120243
>>243651021
>Когда и кем он должен выполняться - мне не ясно абсодютнл
Ну от проекта же зависит, смотри, могу предположить, что autogen что-то там генерирует.
>ctrl+f
Да, ну или поставь нормальный IDE.
Аноним 02/04/21 Птн 16:04:04 24365136344
>>243651021
>Когда и кем он должен выполняться - мне не ясно абсодютнл
Там в INSTALL или README должно быть написано. В некоторых скриптах сразу коммент есть что они делают
>А как по всем файлам разом искать?
Ну посмотри в своем редакторе/IDE. Как ты в питоне ищешь? Ctrl + shift + f возможно
Аноним # OP 02/04/21 Птн 16:05:10 24365142045
Аноним 02/04/21 Птн 16:06:20 24365149646
>>243649173 (OP)
> autogen.sh, configure.sc
Чтобы выставить переменные окружения

> Но всё остальное... Src это вроде как sources, но почему она вынесена отдельно от utils и lib? Зачем?
Чтобы всё в одной куче не лежало, просто функционально дробится структура проекта.

> 3. Допустим я открыл директорию src. Откуда начинается выполнение кода? Где тот файл, с которого алгоритм, вызываемый при старте программы, запускается? Как его вообще обнаружить?
Кури систему сборки CMake и make. Без этого тебе делать нехуй

> 4. Зачем к каждому файлу с кодом прикрепляется так же и заголовочный файл? Зачем они вообще нужны? Почему нельзя просто прописать всё необходимое в начале файла с кодом?
Кури плюсы. Без этого тебе опять же делать нехуй.
Аноним 02/04/21 Птн 16:07:50 24365159547
>>243650625
> Функция main, ищи ее, int main(), чет такое ищи.
Ахуенный совет. Тоже cmake впервые видишь?
Аноним 02/04/21 Птн 16:11:30 24365183348
>>243651021
Куда ты лезешь вообще если у тебя такие вопросы? Это буквально 1-2 пара в непту а колледже а ты даже этого не знаешь. АЛЛО. Это всё равно что зная как лампочку вкрутить в элекрощитовую лезть со словами ДА Я ЗНАЮ КАК ЭЛЕКТРИЧЕСТВО РАБОТАЕТ
Аноним # OP 02/04/21 Птн 16:22:34 24365248049
>>243651833
Вот тебе ли не похуй? Я в кодеры не записываюсь. Просто хочу переделать одну хуйню под себя, для того чтобы мне было удобно. Не более того
Аноним 02/04/21 Птн 16:40:56 24365359250
Такие же ощущение когда вижу код проекта на го/ноде после php. Как вообще с таким дерьмом можно работать я не представляю. У каждого проекта принципиально разная структура, видно что васяны просто на коленке говнякают как хотят.
Могли бы уже за столько лет как-то договориться между собой хоть о каких-то стандартах. А то такое ощущение, что когда новый человек в проект приходит, ему нужно несколько месяцев попросту разбираться что где лежит и как работает.
Аноним 02/04/21 Птн 17:40:52 24365776451
>>243650402
>Чтобы различать где жрёшь и где срёшь. См. выше.
Апдейтну. Потому что МОДУЛЕЙ БЛЯДЬ НЕ ЗАВЕЗЛИ И ИМПЛЕМЕНТНУТЬ ИХ У ВСЕХ КИШКА ТОНКА. ТЬФУ БЛЯДЬ!!!111
Настройки X
Ответить в тред X
15000
Макс объем: 20Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
X
Ваш шидевор X
Стикеры X
Избранное / Топ тредов