2009-06-28 2 views
2

Является ли это законным инструментом или это костыль, который я в конечном итоге вырасту из необходимости?У опытных программистов все еще используются блок-схемы для разработки порядка операций или они делают это в их головах?

Update: По порядку операций, я имею в виду:

  1. запуска приложение
  2. чтения PREFS
  3. значения рассчета с префов
  4. префов записи в файл ...

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

ответ

-1

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

Если вы имеете в виду «порядок операций» в смысле «общего потока данных программы», то блок-схемы являются абсолютными требованиями. Появляются определенные диаграммы, в которых у всех есть копия, и которые видны на досках по всему офису, потому что они так важны/распространены. например, диаграмму для описания того, что «данные из приложения инкапсулируются с использованием заголовка UDP, а затем перемещается на уровень IP, где затем добавляется заголовок ...»

Если вы имеете в виду «порядок операций», в смысле «как этот код работает», тогда да - блок-схемы абсолютно помогают там. «Первое, что мы делаем в этой подпрограмме, - это вычислить контрольную сумму, а затем передать указатель на следующую процедуру и установить таймер. Функция обратного вызова для таймера ...»

Если вы имеете в виду «порядок операций» «как математическая оценка выражений, то это может быть важно также при попытке понять чей-то код или при попытке написать собственный алгоритм. «Сначала мы увеличиваем указатель, а затем мы разыскиваем его так, чтобы мы могли прочитать значение ...» или «Нам нужно сдвинуть целое число вправо 32 раза, проверить наличие 1, а затем ...» Это иногда алгоритмические блок-схемы, а иногда и блок-схемы оператора. В любом случае они полезны для понимания того, что происходит, без необходимости мысленно разбирать код.

То есть, они не являются костылем.

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

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

0

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

Но важно всегда быть в курсе лучших путей.

0

Я пытаюсь создать документацию из кода, а не наоборот, поэтому я бы сказал нет.

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

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

1

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

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

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

1

Мое мнение таково, что при работе на методе или уровне выражения блок-схемы обычно переполняются. Однако они могут быть полезны для обучения или для понимания широкого потока управления в приложении.

Если вы считаете их полезными, нет причин не использовать их.

0

Это зависит от того, насколько сложным является процесс. Это инструмент для визуального отображения потока информации или рабочего процесса. Если это просто, то непременно сделайте это в своей голове. Обычно я нахожу (даже после 14 лет работы), которые заставили его заглянуть во время моего проектирования кода, полезно держать меня в фокусе процесса в правильном порядке.

1

Блок-схемы, как и в старой школьной форме http://en.wikipedia.org/wiki/Flowchart были плохими идеями, когда они были изобретены и по-прежнему плохие.

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

8

Если вы в буквальном смысле значит "Flowchart", то

нет, опытные программисты не используют блок-схемы, они используют диаграммы потоков данных, диаграммы действий, диаграммы последовательности, случаи использования, и др; блок-схема, упала в немилость в 1970-х годах, когда эмпирические исследования * в значительной степени продемонстрировал, что они были бесполезны в качестве инструмента проектирования

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

Если вы только что значит "диаграммы", то

да, конечно. Визуальные метафоры - полезные инструменты.

+0

+1 ... Я никогда не писал блок-схемы, и я нахожу их неловкими в использовании. Моя первая мысль при чтении вопроса заключалась в «диаграмме последовательности» *. +1 defo. – SyntaxT3rr0r