Забываемый код
Вот предположим напишу я что-нибудь, вдоль и поперек знаю. Все функции и методы, что и куда. Рад и счастлив. И даже не думаю, что к этому когда-либо серьезно буду возвращаться. Но, как поется “проходит время, с юга птицы прилетают” и надо по-быстрому туда залезть и что-то исправить.
А так как времени проходит не мало, то процесс врубания в код фактически равносилен процессу изучения с нуля. Как будто ты и не знал его раньше. Очень глупое ощущение. И иногда возникает мысль, что если бы тебе не сказали что это твой код, то ты мог бы и не узнать его. Фактически вопрос, как мне кажется, сводится к узнаванию стиля программирования.
Скучные темы, вроде человеческой памяти рассматривать не хочу. Не такая уж у меня плохая память, тем более что я досконально знаю то, чем занимаюсь в данный момент. Да и вкладываю я не только свои силы, но и душу (громко конечно, но я думаю, что код, который ты выдаешь надо любить).
Если рассматривать стиль, то под ним я подразумеваю:
- Места, где хочется поставить комментарии
- Способы именования функций
- Копипаст как часть процесса программирования
- Ну и вещи специфичные для языка (для С это обращения к указателям, для PHP это использование каких-либо определенных путей решения задачи, в то время как этих путей может быть несколько, но это уж язык такой)
И все-таки, я считаю, что это не отсутствие стиля как такового, потому что какой-никакой а самый заходлик-стиль есть у каждого и каждый проект подвержен его влиянию. А все-таки профессионализация стиля, по мере изучения языка и самосовершенствования в предметной сфере.
И соединяя все вышесказанное получается, что код мы будем забывать всегда. Вот такая вот у нас, у программистов, доля. Живем от зарплаты до зарплаты. Ничего постоянного, бродяги одним словом.
Комментарии [10]
Мар 10, 14:16 , Black Ice
Как дежавю (как правильно то пишется?)…
Не программист, хотя часто слышу подобный вопрос в свой адрес.
Так вот когда приходиться копаться несколько раз, но с промежутками времени, возникает ощущение, а как делал в прошлый раз?!?…-
Чтобы не забывать, что у меня из себя представляет проект, я рисую UML-диаграммы и EER-диаграммы + автоматическая проектная документация phpdoc с небольшими доработками. Этого обычно хватает, чтобы за 2-3 минуты вспомнить проект до последнего символа. =)
Мар 27, 14:31 , Sun
Кто-то где-то писал примерно следующее:
если вы написали программу и думаете что последующие 11 месяцев больше не вернётесь к её кодам, обязательно выяснится что на 12 месяц именно коды этой программы понадобятся вам…
не совсем то, но что-то похожее…делайте комментарии-
Ага, но комментарии это совершенно отдельная тема. То, что их надо ставить – я согласен на 100%.
Мар 28, 21:20 , Physicist
Основная проблема в том, что либо пишешь элементарный код, в котором уверен что потом точно разберешься и поэтому его не комментируешь, либо пишешь экспериментальный «временный» код который надеешься прокомментировать после того как убедишься в том, что он и правда работает. Но если он работает — уже не находится времени к нему вернуться.
Вот как-то так.
Кстати, почему-то в C++ разобраться в своем коде гораздо проще, чем на PHP. Может это связано с наличием хорошего отладчика (в PHP почему-то приходится «заставлять» себя пользоваться xdebug), более-менее четкой структуры MFC и т.д.Апр 9, 05:36 , Vassia pupkind
Ну, это не только программирования касается. Я вот начал книжку писать в прошлом или позапрошлом году. Забросил. Недавно откопал, просмотрел и понял, что не помню почти ничего.
Подумав, понял, что это от недостаточной предварительной проработки. Правильно человек написал про диаграммы и прочее.
Это от статичности кода и динамичности сознания. Код остановился. а сознание едет дальше и нужны опорные точки для возвращения в то время. Восстановления хода тех мыслей.-
По поводу комментирования:
По моему, не стоит комментировать код, который итак понятен при беглом взгляде. Допустим:
push offset foo
push 55h
call foo_procТо есть писать комментарий для этого куска вессмысленно, но, напротив при написании самой функции foo_proc комментировать её крайне необходимо, хотябы потому чтобы просто потом быстренько что либо подправить в ней или для людей.
Кстати немного слукавил по поводу строки call foo_proc. Обычно такие строки я комментирую номерами строк с которых начинается код этих функций, если конечно они не в динамических библиотеках. Очень удобно, если у вас в IDE не показываются все написаные процедуры.
-
Эх. И ведь есть же еще люди в наше время, пишущие на ассемблере.
-
>Эх. И ведь есть же еще люди в наше время, пишущие на ассемблере.
Ога, и их очень много :) -> www.wasm.ru
-
Расстрелял бы за это “Ога” всяких “Одминов” :)
2008-05-17 11:06 pm , Оставьте свой отзыв