Як Новомосковскть код науковий експеримент за специфікою його читання

Я прочитав ще одне дослідження про те, як ми Новомосковськ код.

Що ж виявилося найскладнішим і витратним при розборі чужого коду?

Ось витяг з цього дослідження:

Як Новомосковскть код науковий експеримент за специфікою його читання

Зліва на зображенні зображений код, який підсумовує числа від одного до заданого максимуму.

У правій частині - траєкторія руху погляду під час читання коду. Зауважте як очі кодера спочатку сканують заголовки функцій, потім коротко сканують тіло функції, а вже потім погляд фокусується там, де проблема швидше за все повинна бути в реальному коді (цикл)

Читання коду схоже на читання Талмуда

Це нагадало дуже старий пост Джоел Спольськи. Джоель цитував в ньому Сета Гордона:

Тактика і техніка читання Талмуда, як мені здається, можуть побут корисні і для читання коду.

Як Новомосковскть код науковий експеримент за специфікою його читання

Два типу коду по Сету


Переконайтеся, що ви зрозуміли з назв функцій, яка з них чим керує. Після чого ви можете заглибитися в їх вивчення. Керуючі об'єкти зазвичай можна зрозуміти тільки в їх взаємодії один з одним, відповідно ви повинні мати уявлення про те, як вони спроектовані до того, як вже занурюватися в їх дослідження. (Хінт. Керуючі класи не завжди називаються відповідним чином. Зазвичай це класи, викликає з main ()).
  • Припускайте. Припускайте, що можуть означати назви функцій і змінних. Якби ви писали код, що б робила функція GetNetIndex. Припустімо, що вона робить саме те, що ви думаєте. Якщо з назви функції очевидно випливає її призначення, пропустіть її. Ви до неї завжди зможете повернутися, якщо вам це коли-небудь знадобитися. Навіщо витрачати час на те, що вам зараз не потрібно? Якщо ви почнете в цьому всьому зараз копатися, ви почнете забувати те, що прочитали перед цим. Сконцентруйтеся на значенні та структурі, а не реалізації.
  • Налагодження решает.Юніт-тести важливі, але реальний код значить куди більше. Якщо ви дійсно хочете зрозуміти, як працює код, найшвидший спосіб зробити це запустити його. Раскочегарьте ваш IDE і на швидку руку напишіть брудну і примітивну демку того, як ви в цілому плануєте використовувати код.


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

  • Читабельний код - це важливо

    Як Новомосковскть код науковий експеримент за специфікою його читання

    Примітка про метод наведеного вище дослідження

    Даний ресёрч. звичайно, не є якоюсь істиною про те, як ми Новомосковськ код, так як експеримент був проведений всього лише на п'яти програмістів. На мій погляд, це дуже мало.

    Я маю на увазі, що створювати круте «взглядоотслежівающее» пристрій, відкалібровані настільки, що може сказати, яка саме рядок Новомосковскется в даний момент, щоб відчувати його всього на п'яти кодерах? Чи складно було запросити більше людей для участі в експерименті? Особисто мені б було цікаво взяти участь в такому дослідженні, щоб дізнатися свої звички читання коду.

    Гей, будь ласка, наступного разу візьміть і мене!

    До питання про VPN і його кармічно-негативному трафіку

    • NoSupport »Дзвінок в тех. підтримку провайдера: "Пінг на вас не йде, показує обрив лінії". Відповідь з Сапорта - у вас віруси на виндовс. "У мене опен Сусі. Немає Віндовс". Сапорт в впадає.
    • Mikhail »» не жив в СРСР, не може не розуміти Прошу вибачення, одне _не_ явно зайве.

    Рунет приречений: Невеликий український Файрволл

    Андрій Чернов: «Життя зводиться до набору мікростімулов-поплескування». Частина 1

    БСД: Великі і Страшні Демони (1)

    • В'ячеслав »Русиновича суку на кол, ідіота за такий базар

    Исповедь ненавмисного біткоінера

    Як заробити на біткоіни - неформальне керівництво

    • andi »Ігор, вітаю! Згадай л тему, вирішив забігти і сказати спасибі. Хоч входив погано (через деякий час відбулося зменшення нагороди, а потім ціну / 2 на контракт знизили), на даний момент маю плюс. Нехай.

    Intel впав! Rise of Ryzen

    • Xordrak »хе-хе, зліт акцій AMD пов'язаний виключно з хайп криптовалюта, який породив супер-попит на GPU; що характерно, злетіли і AMD, і Nvidia; CPU і неподобства intel тут не при справах