Как улучшить Ваше чтение и понимание кода? [закрытый]

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

IDictionary<int, IList<MyClass>> dict;
var flattenList = dict.SelectMany( x => x.Value );

Это должно добиться цели ;) SelectMany, сглаживает результат, что означает, что каждый список связывается в одну длинную последовательность (IEnumerable '1).

40
задан 3 revs, 2 users 65% 23 May 2017 в 11:33
поделиться

9 ответов

Больше всего мне помогло рефакторинг.

Возьмите проект (это может быть рабочий проект, личный проект, проект с открытым исходным кодом, что угодно) и начать рефакторинг.

Со временем, чем больше вы реорганизуете код других людей, тем лучше вы «залезете им в голову» и поймете их образ мышления, хороший или плохой.

36
ответ дан 27 November 2019 в 01:18
поделиться

Я лично верю в

«Любой дурак может написать код, понятный компьютеру. Хорошие программисты пишут код, понятный людям». -Мартин Фаулер

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

23
ответ дан 27 November 2019 в 01:18
поделиться

То, что мне помогло, более чем все остальное тестировалось и рефакторингом. Вы не можете сказать: «Я понимаю этот код» , пока вы не научитесь взламывать его с помощью теста .

13
ответ дан 27 November 2019 в 01:18
поделиться

Не просто читайте открытый код, присоединяйтесь к нему. Таким образом, вы можете спросить, «почему это было написано так», а не просто прочитать. Чаще всего была основная причина для того, чтобы сделать что-то ненормальное, будь то подлинное или нет.

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

9
ответ дан 27 November 2019 в 01:18
поделиться

Помимо простого опыта, ведущего к лучшему чтению кода, я предлагаю подключить к приложению отладчик, добавить несколько точек останова и анализировать данные по мере их прохождения через систему. Таким образом, вы ЗНАЕТЕ, что происходит, вместо того, чтобы предполагать (логикой или другими способами), что происходит.

6
ответ дан 27 November 2019 в 01:18
поделиться

Две особенности

Рефакторинг Когда вы видите код, который мутит воду в вашей IDE, отрефакторите его, чтобы он имел смысл, чтобы его было легко читать.

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

Так же, как Стив МакКоннелл говорит в Code Complete 2, следуйте процессу программирования Psuedocode (в данном случае после написания кода). Это поможет вам и любым будущим разработчикам прочитать код.

5
ответ дан 27 November 2019 в 01:18
поделиться

«вы можете улучшить навыки чтения кода путем чтения кода "

Верно.

Какой код читать?

Любой проект с открытым исходным кодом, который вам нравится. Большинство программ с открытым исходным кодом замечательно хороши.

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

4
ответ дан 27 November 2019 в 01:18
поделиться

Я согласен с чтением кода с открытым исходным кодом. Есть книга Орейли о прекрасном коде - но, на мой взгляд, это отстой. Я бы посоветовал книги, которые я прочитал, чтобы подготовиться к собеседованию по программированию, и которые часто рекомендуются (все ссылки, которые я разместил, являются ссылками на Google Книги:

[Programming Pearls] - хороший вариант (получите более новую версию, хотя концепции те же), [Практика программирования] - еще одна классика.

Это довольно практические книги с примерами из реального мира кода

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

1
ответ дан 27 November 2019 в 01:18
поделиться

Вы учитесь плавать, плавая, вы учитесь читать, читая. Сначала попробуйте прочитать небольшие фрагменты кода, написанные другими в вашей любимой области.

Я начал делать это с чтения кодов Python на code.activestate.com по моим любимым темам (математика, алгоритмы и т. Д.) .

Преимущества:

  • коды Python чище, поэтому вы не расстраиваетесь с первой попытки .
  • Начиная с небольших управляемых вещей помогают (много) .
  • Использование таких инструментов, как FREEMIND для систематизации мыслей, также помогает.
  • Затем вы можете перейти к более сложным и грязным кодам.
4
ответ дан 27 November 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: