Вы также забыли код после выполнения задачи? [закрыто]

13

Я новый программист и хочу спросить старших программистов (программистов, которые имеют некоторый опыт в реальном мире).

Я делаю свою работу, и после написания кода мой проект завершается, но, честно говоря, я не помню название кода, классов и фреймворков и их свойства.

Иногда даже я сомневаюсь, что я сделал это?

Это нормально для всех программистов или я самый глупый программист, который не может вспомнить названия кода и классов / свойств?

Редактировать:

Я думаю, что многие программисты ошибаются здесь. Я сказал, что забываю имена фреймворков, имена классов, имена свойств, но я начинаю вспоминать свой собственный код, как только снова начинаю над ним работать. Мой вопрос: вы помните синтаксис и имена классов / свойств и т. Д.?

necixy
источник

Ответы:

24

Честно говоря, я не знаю, как можно быть долгосрочным разработчиком без возможности «забыть» код, над которым вы работали. Количество проектов и результирующий код в конечном итоге приведут к информационной перегрузке.

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

Искатель вещей
источник
Я встретил двух кодеров с фотографической памятью, которые могут вспомнить, что они думали, когда работали над каким-то фрагментом кода. Поскольку мои способности к запоминанию ниже среднего, я, безусловно, вынужден делать все возможное, чтобы сделать код чистым и задокументированным.
Работа
Я думаю, что вы правы, просто потому, что я «забыл» код, который я могу программировать на 3-4 разных платформах!
necixy
9

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

Со временем, если вы будете активно совершенствоваться, вы обнаружите, что вы увидите недостатки в том, что вы написали в прошлом, просто прочитав старый код (который я рекомендую вам сделать). Благодаря этой практике это становится легче делать; как и любой другой навык.

Я, вероятно, написал более миллиона строк кода в своей карьере, и я никак не мог вспомнить все это. Я помню проекты и то, что они пытались решить (и методы, которые пошли на их решение).

jmq
источник
5

Я забываю много вещей после того, как использую их, но забываю их по-другому.

В течение многих лет я наблюдал за собой и пришел к выводу, что наш мозг (хорошо, мой мозг) использует определенную стратегию кэширования:

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

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

  • Неоднократный доступ к блокам знаний в течение нескольких лет с перерывами в использовании в течение нескольких месяцев продвигает их к некоторой приоритетной памяти, где они хранились годами.

PS Я подозреваю, что первая идея кеширования с применением к компьютерам пришла от того, кто наблюдает, как люди учатся и запоминают вещи. Поэтому мы ничего не изобрели, просто взяли то, что уже встроено в нас.


источник
2

Часто. Комментарии стали устаревшими, но я обнаружил, что обычно я могу узнать свой код по моим комментариям.

РЕДАКТИРОВАТЬ: Я не говорю, что я согласен с тенденцией. Я просто говорю, что это тенденция сегодня. Как указывает Дейв, определенно есть переломный момент. Здесь совершенно замечательная дискуссия: «Комментарии - это запах кода» . Я попадаю в «комментарии для предоставления информации о мире вне базы кодов (требования, изменения в бизнесе и т. Д.)».

Майкл Блэкберн
источник
Комментарии пассивны? Просто не правда.
Стив
1
О, я согласен; Я просто говорю, что, похоже, существует тенденция чувствовать, что комментарии не требуются. У меня есть интервью с людьми, которые настаивали на том, что название метода должно содержать все комментарии, которые вам нужны. Очевидно, они работают в мифическом месте, где бизнес-требования не меняются раз в полгода.
Майкл Блэкберн
2
Я бы сказал, что хотя PullContractDataFromProfileAndDetermineZipRadiusFromCurrentLocation () носит описательный характер, он также создает нечитаемый код, поскольку разрушает поток.
Дейв Уайз,
1
Договорились х100. Если бы я не записывал тщательно то, что думал, и почему я принимал решения, которые я принимал с помощью тщательно сформулированных комментариев, я бы совершенно не знал, что происходит, когда я вернулся, чтобы прочитать код, который написал несколько месяцев назад. Я пытался привести этот аргумент раньше к астронавтам архитектуры, которые говорят, что комментарии - это шум, устаревшие или устаревшие, но никто никогда не слушал. Все считают, что я плохой разработчик, потому что я должен писать комментарии в своем исходном коде. Я в порядке с этим, хотя. Это помогает мне и всем остальным после меня.
Коди Грей,
@Dave: Хотя я согласен с вами, у вас есть метод с двумя обязанностями. Ваше покаяние - 4 Привет Мартинс и 2 GangOfFours.
Майкл Блэкберн
1

Синтаксис я обычно помню после нескольких использований. Например, когда я впервые начал использовать дженерики или linq, у меня были некоторые трудности с правильным синтаксисом.

IntelliSense, безусловно, значительно облегчает мою работу по запоминанию имен свойств и методов.

Майкл Блэкберн
источник
1

Когда я был тестером, ведущий разработчик компании однажды сказал мне, что код был написан 6 месяцев назад, и никто из моих людей не может нести за это ответственность. В то время это меня шокировало. Теперь, когда я стал разработчиком, я понимаю. Я не помню деталей кода, я знаю, что работал над ним, но деталей там нет.

Erin
источник
0

Почти всегда. Мой самый последний (очень маленький) проект был проверкой моих собственных (ржавых) навыков. Я сам написал кучу процедурного кода в очень простом стиле C, а затем реорганизовал его в код Java с использованием некоторых шаблонов проектирования и, если мог, оставлял каждый метод не более восьми строк.

Я записал код примерно на месяц. Когда я вернулся к этому, потребовалось примерно час, прежде чем я понял, что написал это. Честно говоря, даже если бы я поместил свое имя в поле для комментариев, я не уверен, что это убедило бы меня.

MFE
источник