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


13

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

Я виконую свою роботу і після кодування мій проект завершується, але, чесно кажучи, я не пам’ятаю коду, назви класів та фреймворків та їх властивостей.

Іноді навіть я сумніваюся в собі, що я це зробив?

Це нормально для всіх програмістів чи я найдурніший програміст, який не міг запам'ятати імена коду та класів / властивостей?

Редагувати:

Я думаю, що багато програмістів мене тут помиляють. Я сказав, що забуваю назви фреймворків, назви класів, назви властивостей, але я починаю запам’ятовувати власний код, як тільки я знову починаю працювати над ним. Моє запитання: чи пам’ятаєте ви синтаксис та назви класів / властивостей тощо?

Відповіді:


24

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

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


Я зустрів двох кодерів з фотографічною пам’яттю, які можуть пригадати, що вони думали, коли працювали над якимсь фрагментом коду. З моїми запам'ятовуючими здібностями нижче середнього, я, безумовно, змушений робити найкращу роботу, щоб зробити код чистим і задокументованим.
Робота

Я думаю, ти маєш рацію, просто тому, що "забуваю" код, який я можу запрограмувати на 3-4 різних платформах!
necixy

9

Запам'ятовування всіх ваших синтаксису та apis для проекту не так важливо, як запам’ятовування концепцій, які входили в його створення. Як тільки у вас є досвід, ви можете прочитати код і зрозуміти значення, як і читання цих публікацій.

Що з часом ви виявите, якщо активно вдосконалюєтесь, це те, що ви побачите недоліки у написаному раніше лише, прочитавши старий код (що я рекомендую вам зробити). Завдяки цій практиці це стає простіше; як і будь-яка інша майстерність.

Я, мабуть, написав понад мільйон рядків коду до цього часу у своїй кар'єрі, і немає ніякого способу я все це запам'ятати. Хоча я пам’ятаю проекти і те, що вони намагалися вирішити (і методи, які вирішили їх вирішити).


5

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

Я спостерігав за собою протягом багатьох років і дійшов висновку, що наш мозок (добре, мій мозок) використовує певну стратегію кешування:

  • Нові відомості вивчаються, використовуються, а потім ставляться в певну чергу закінчення терміну дії. За кілька тижнів його вже немає.

  • Повторний доступ до тих відомостей, що колись засвоєний не пізніше ніж через кілька місяців тому, сприяє їм якось таким чином, щоб вони могли запам'ятовуватися місяцями, лише тоді вони закінчуються.

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

PS Я підозрюю, що перша ідея кешу із застосуванням до комп’ютерів прийшла від когось, хто спостерігав за тим, як люди навчаються та запам'ятовують речі. Тож ми нічого не вигадували, просто взяли те, що вже було вбудовано в нас.


2

Часто. Коментарі стали пропущеними, але я вважаю, що зазвичай можу розпізнати код за коментарями.

EDIT: Я не кажу, що я згоден з тенденцією. Я просто кажу, що така тенденція сьогодні. Як вказує Дейв, безумовно, існує точка злому. Тут ідеально чудова дискусія: "Коментарі - це запах коду" . Я впадаю в "коментарі для надання інформації про світову базу коду (вимоги, зміни бізнесу тощо)".


Коментарі є пасе? Просто неправда.
Стів

1
О, я згоден; Я просто кажу, що, здається, існує тенденція відчувати, що коментарі не потрібно вимагати. Я беру інтерв'ю з людьми, які наполягали на тому, що назва методу має бути всім необхідним коментарем. Зрозуміло, вони працюють у міфічному місці, де вимоги бізнесу не змінюються півроку.
Майкл Блекберн

2
Я заперечую, що, хоча PullContractDataFromProfileAndDetermineZipRadiusFromCurrentLocation () є описовим, він також створює нечитабельний код, оскільки він руйнує потік.
Дейв Мудрий

1
Погоджено x100. Якби я не ретельно записував, про що я думав, і чому я приймав рішення, які робив через ретельно сформульовані коментарі, я б абсолютно не уявляв, що відбувається, коли я повернувся до читання коду, написаного місяцями тому. Я намагався висловити цей аргумент раніше космонавтам архітектури, які кажуть, що коментарі шуміть, проходять або застаріли, але ніхто їх ніколи не слухав. Усі припускають, що я поганий розробник, оскільки мені доводиться писати коментарі у своєму вихідному коді. Я з цим все гаразд. Це допомагає мені і всім іншим після мене.
Коді Грей

@Dave: Хоча я згоден з вами, у вас є метод з двома обов'язками. Ваша покаяння - 4 радуються мартіни та 2 GangOfFours.
Майкл Блекберн

1

Синтаксис я, як правило, пам’ятаю після пари використання. Наприклад, коли я вперше почав використовувати generics або linq, у мене виникли певні труднощі з правильним синтаксисом.

IntelliSense, безумовно, значно покращує мою роботу в запам'ятовуванні імен властивостей та методів.


1

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


0

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.