Когда пишешь большой проект (тысячи и десятки тысяч строк кода), а если он ещё и с GUI, то невольно начинаешь теряться в своём же коде. К тому же, если по каким-то причинам некоторое время не садился за код, и когда возвращаешься к проекту, то приходится в буквальном смысле вспоминать где и что находится. Я конечно же не пишу код бездумно, а пытаюсь создать некую архитектуру, расширяю прототипы функций и т.д., чтобы было всё разложено по своим полочкам. Но даже это не спасает от последующего переполнения. Собственно как и чем вы систематизируете свой код? Какое-либо ПО, или может интересный личный подход. Было бы интересно узнать у наших формучан.
структурирование модулей - четкая иерархия папок-подпапок-файлов внутри имя дожно точно и четко отображать суть что внутри каждого уровня иерархии, много зависит от используемо ЯК ежели например python - тогда можно и надо разбивать на пакеты, и тд и тп PS Не думаю, что есть ПО, которому на вход дашь 100500 файлов а на выходе получишь конфетку PPS сколько в среднем строк кода в день удается создать?
Данный проект пишу на Си, что сразу откидывает шаблоны, классы и усложняет/увеличивает код. Можно конечно на коленке собрать что-то похожее, но это опять же лишний код, его расширения.. Четкое именование я всегда делаю - переменные, функции, файлы, папки и т.д. Без этого вообще чёрт ногу сломит) По разному. Бывает целый модуль напишу (600-700 строк за день с проверкой и отладкой), а иногда прям вообще не идёт.
Вспоминать в любом случае придется и комментарии с этим не помогают. Была идея разработать свою собственную феню, которой можно упаковать мысль в одну короткую строчку, но не очень в этом направлении продвинулся. Обычно контрол-эфом в больших исходниках ориентируюсь. Если код твой собственный, то разбираться в нем легко.
Я кстати тоже ищу универсальный способ инициализировать большой куст кода чем-то простым. В целом проблемы начинаются при расширении функционала. Клиенту основное приложение я уже давно написал: ядро, контролы и требуемый минимальный функционал (утилита работает с драйвером, отсюда и ТЗ на язык Си). Но когда начинаю увеличивать функционал, вот тут и происходит хаос.
Ну для GUI Цэ - не то, чтобы хороший выбор. Поставь себе хорошую IDE с хорошим интеллисенсом, для каждой процедуры пиши комменты в doxygen стиле, чтобы IDE тебе их парсила и подсвечивала, когда код компишен выводит. Генерируй документацию из комментов.
Сделал свой фреймворк в одном файле, и подключаю его во все проекты Этот файл кочует от проекта к проекту. Если надо найти все свои проекты, скажем за последние 3 года, просто ищешь этот файл по имени и выводит проекты в тех директориях, где макар своих телят не гонял
сишка наоборот упрощает код а ориентироваться можно двумя путями.. 1. поиск нужных функций реджексами а-ля grep -Ei "fn\scount_strs" -R /prj/.. 2. отладчик показывает стек вызовов, тч можно более-менее воткнуть общую логику.
Самое смешное когда переписываешь код который считал идеальным, и через полгода внезапно обнаруживаешь что там полная ебанина
а тут просто изначально надо помнить, что пишешь говно и тогда всегда легче: любой код является говном даже самый идеальный, пч всегда приходится идти на некий набор компромиссов - абсолютный идеал пишут лишь любующиеся абстракциями, кому не нужен отладчик
pdb есть такая вещь - угол зрения: одно и то же хорошо в одном и полное ховнище в другом. к примеру, макларен хорош на гоночных трассах и полное ховнище для вывоза картохи с полей. а с кодами ситуация и того хуже
Почему ховнище, очень даже хорош - для людей которые ценят свое время - быстрый вывоз картохи. Можно строительный мусор вывозить
если к полям есть хорошая трасса, то теоретически - ДА.. но практически - не справишься с управлением (слишком быстро зараза скорость набирает) софтина делается по гораздо более мягким стандартам, чем инженерные разработки/ Поэтому твой код неминуемо наследует хофнище используемых либ + твоё хофнище.. да, и software == хофнище мягкое