суббота, 2 апреля 2011 г.

Лишний код

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

Дело в том, что сам факт наличия значительного объема кода в вопросе (а иногда и в ответе) в подавляющем большинстве случаев  говорит о низком качестве темы. Типичный пример - участник форума выкладывает листинг кода на несколько экранов и задает вопрос:
  • Где ошибка?
  • Почему не работает?
  • Как исправить?
И далее в таком же духе... Отвечающий на вопрос вынужден тратить время и силы на чтение, восприятие и осознание чужого кода. По сути отвечающий берет на себя работу по локализации и выявлению проблемы в чужом коде. И чем больше объем кода (особенно при низком уровне стиля кодирования), тем более трудоемка эта работа.

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

Если вопрос содержит слишком много лишнего кода, не нужно прятать код, нужно его сокращать.

3 комментария:

  1. Ну я не на все 100% согласен. Иногда, конечно, это может быть и так, но ошибки бывают разные, иногда ошибка кроется в структуре класса/модуля, а то и проекта. Так что иногда бывает полезно выложить весь проект (если, это, конечно, просто наброска, а не уже набравший обороты коммерческий проект). Сам так делал и получил нужный ответ. Особенно это актуально для C++, где всякие .tlb, .h, #pragma и много чего ещё. В .Net с этим как-никак заметно проще.

    ОтветитьУдалить
  2. use external pastebin services, such as gist.github.com

    ОтветитьУдалить
  3. можно все что завернуто в тех code пихать автоматически на какой-то внешний источник предназначенный для хранения кода. даже без ведома пользователя.

    ОтветитьУдалить