Архитекторы приложения должны написать код?

Если вы хотите как можно ближе подойти к синтаксису выражения, попробуйте функцию range из bash-трюков range.bash .

Для Например, все следующие будут делать то же самое, что и echo {1..10}:

source range.bash
one=1
ten=10

range {$one..$ten}
range $one $ten
range {1..$ten}
range {1..10}

Он пытается поддерживать собственный синтаксис bash с максимально возможным количеством «gotchas»: поддерживаются не только переменные, но часто нежелательное поведение недопустимых диапазонов, предоставляемых как строки (например, for i in {1..a}; do echo $i; done), также предотвращается.

Другие ответы будут работать в большинстве случаев, но все они имеют по крайней мере одно из следующих Недостатки:

  • Многие из них используют подоболочки , что может снизить производительность и , возможно, невозможно на некоторых систем.
  • Многие из них полагаются на внешние программы. Даже seq представляет собой двоичный файл, который должен быть установлен для использования, должен быть загружен bash и должен содержать ожидаемую программу, чтобы он работал в этом случае.
  • Решения, которые используют только собственные функции Bash, такие как @ ephemient, не будут работать в алфавитном диапазоне, например {a..z}; расширение скобки будет. Вопрос был о диапазонах номеров , хотя это так.
  • Большинство из них не визуально похожи на синтаксис диапазона расширенного набора {1..10}, поэтому программы, которые используют оба варианта, могут быть немного труднее читать.
  • @ Ответ bobbogo использует некоторый знакомый синтаксис, но делает что-то неожиданное, если переменная $END не является допустимым диапазоном «bookend» для другая сторона диапазона. Если END=a, например, ошибка не будет выполнена, и будет передано дословное значение {1..a}. Это также поведение Bash по умолчанию - это просто неожиданно.

Отказ от ответственности: я являюсь автором связанного кода.

45
задан GEOCHET 1 June 2009 в 20:01
поделиться

21 ответ

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

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

41
ответ дан Lucas Oman 26 November 2019 в 20:48
поделиться

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

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

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

1
ответ дан Dominic Cronin 26 November 2019 в 20:48
поделиться

Был бы просто при записи количества интерфейсов как кода? Если так, тогда это - минимум, который я ожидал бы от архитектора, в то время как в других случаях это может быть намного больше кода от них, такого как классы с тупиками для методов.

1
ответ дан JB King 26 November 2019 в 20:48
поделиться

Так как все здесь - кодер, фаворитами должен быть ответ ада да - и Вы не получите разногласия от меня.

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

то, Как архитектурные роли разделены, кажется, зависит от размера и характера организации.

, Если бы у меня был он мой путь, я дал бы клиенту роль Архитектора Истории, если они пишут хорошие, полезные, подробные истории и примеры использования.

1
ответ дан Community 26 November 2019 в 20:48
поделиться

Вы спрашиваете это относительно сайта кодирования. Вы собираетесь получить в основном всех падающие на "да" сторона.

Моя перспектива, да, но только достаточно не отставать от изменяющихся потребностей, больше

1
ответ дан Paul Nathan 26 November 2019 в 20:48
поделиться

Несколько раз они должны кодировать. Например, когда команда является только одним человеком.

, По-моему, они могут кодировать, если они хотят, но не должны терять большое изображение. Никакие движение не должны изменять разработанные структуры каждый день.

1
ответ дан John Topley 26 November 2019 в 20:48
поделиться

Я приехал, чтобы полагать, что, как правило, "детали реализации" не являются деталями (в том смысле, что много проблем возникают, когда Вы рассматриваете некоторые определенные проблемы реализации как простые детали, которые могли быть игнорированы как мелочи с "архитектурной" точки зрения)

3
ответ дан Juan Pablo Califano 26 November 2019 в 20:48
поделиться

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

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

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

5
ответ дан Cervo 26 November 2019 в 20:48
поделиться

Существуют архитекторы и существуют стратеги IT. При продвижении проекта интеграции вовлечение 500 человек через несколько отделов тогда не оно собирается помешать. Если Вы ведете разработку и реализацию до нескольких 10-х людей на проекте разработки, то да. Иначе у Вас, намного менее вероятно, будет соответствующее понимание повседневной действительности работы с Вашей архитектурой.

5
ответ дан user7375 26 November 2019 в 20:48
поделиться

Да, для хранения их опыта кодирования.

7
ответ дан grigy 26 November 2019 в 20:48
поделиться

Я (думают I) являюсь архитектором, кодирование - то, что делает эту забаву задания.

Тогда Вы видите, что Ваши идеи оживают, Вы видите, что Ваш дизайн работает, и Вы видите ошибки в дизайне (слишком поздно так или иначе, но в следующий раз...)

8
ответ дан GvS 26 November 2019 в 20:48
поделиться

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

, Который включает проекты, где я был то, что архитектор:-)

Это - теперь персональный большой красный флаг.

я соглашаюсь со всеми аргументами в пользу архитекторов, которые кодируют. Аргументы против не остаются целым хорошо для меня.

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

Что касается "Кодирования ориентированное подробное, funtion голов вниз, который противоречит управлению рисками, широко просмотри природу архитектуры" - по моему опыту, широкое представление - и управление рисками особенно - делают для лучших кодеров не худший:-)

"Архитектура, о техническом управлении рисками и не реализации" - не это не. Это об управлении рисками и реализация (и набор другого материала).

"Архитектура о лидерстве. Трудно вести сзади" - почему делает кодирование, помещает Вас позади? Лично я нахожу, что лучшее место для продвижения с людьми, с которыми Вы работаете.

9
ответ дан adrianh 26 November 2019 в 20:48
поделиться

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

10
ответ дан DGentry 26 November 2019 в 20:48
поделиться

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

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

редактирование В ответ на комментарий
я думаю в различии между приложением, архитектор решения и предприятия немного искусственен и действительно не соответствует во многих случаях. Роли как архитектор систем безопасности, архитектор данных и т.д. дает намного более ясный disinction между обязанностями. Можно здесь искать больше деталей http://stevendwright.home.comcast.net/~stevendwright/ArchRoles.htm

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

15
ответ дан Mendelt 26 November 2019 в 20:48
поделиться

Только для предоставления моих двух центов (и мое видение "архитекторов")

я полагаю, что существует несколько типов архитектора, каждого в их собственном домене:

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

  • применимые архитекторы : они делят функциональный домен (как "прибыль и анализ потерь") в приложения (как "процессор портфеля", "средство запуска", "диспетчер", "gui"). Они не должны кодировать, но они должны быть бывшим кодером для имения четкого представления о технических проблемах, что их архитектура должна обратиться. Их основной навык не кодирует хотя, но слушает технических коллег для выбора правильного решения. Они тогда произведут техническая реализация , который должен быть реализован (кодированный).

  • технические архитекторы : они отвечают за выбор и/или реализацию технических платформ (те, которые универсальны для любого функционального проекта, как KPI, вход, управление исключением), и они должны абсолютно кодировать (и код хорошо), так как их компоненты будут использоваться всеми другими функциональными командами.

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

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

25
ответ дан Community 26 November 2019 в 20:48
поделиться

Ab-so-frickin-lutely

Там является ничем худшим, чем Архитектор, который потерял связь с действительностью.

Это - часть задания, чтобы мыслить разумно и Ваша голова в облаках.

31
ответ дан Ed Guiness 26 November 2019 в 20:48
поделиться

Поскольку указанный Vlion, задавая этот вопрос в сообществе в подавляющем большинстве во власти разработчиков означает, что ответы будут скошены к "да".

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

  • Понимание бизнеса.
  • Понимание систем раньше включало бизнес.
  • Работа с бизнесом на стратегии в сфере ИТ и тактике.
  • Удостоверяющиеся текущие проекты делаются с долгосрочным представлением, где менеджер проектов концентрируется на краткосрочном представлении.

Поэтому, как архитектор должен поддержать контакт с действительностью? Я думаю регулярными встречами и walkarounds, просто говорящим с людьми на каждом уровне и улаживающим дело с коммуникацией.

4
ответ дан RoadWarrior 26 November 2019 в 20:48
поделиться

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

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

1
ответ дан Piotr Czapla 26 November 2019 в 20:48
поделиться

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

2
ответ дан 26 November 2019 в 20:48
поделиться

Архитектура - это высокоуровневая роль, и ее не следует беспокоить о реализации> подробности

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

 * Кодирование - это детально ориентированная функция, которая противоречит

с управлением рисками, широкий взгляд природа архитектуры

Когда вы пишете код, сначала сосредоточьтесь на деталях. Затем вы проводите рефакторинг с более широким фокусом.

Архитектура - это лидерство. Трудно вести сзади

Фронт битвы в разработке программного обеспечения - это кодирование. Может быть, менеджер по продукту или руководитель проекта не занимается программированием. Но это нужно архитектору. Возможно, ему стоит потратить больше времени на рефакторинг, чтобы показать, насколько хорошим может быть код. Таким образом он показывает пример.

1
ответ дан 26 November 2019 в 20:48
поделиться

На риск отклонения от темы ...

В крупномасштабном приложении для архитектора может быть невозможно оставаться в курсе написанного кода. Также, он не смог бы написать код из-за других важных обязанностей. Сказав это, я бы порекомендовал архитектору не терять общей картины разрабатываемой кодовой базы. Это может быть достигнуто путем мониторинга базы кода на предмет покрытия кода, показателей качества кода, статического анализа кода и т. Д. Он должен регулярно оценивать качество кода с использованием упомянутых критериев. Здесь может помочь практика «непрерывной интеграции».

1
ответ дан 26 November 2019 в 20:48
поделиться
Другие вопросы по тегам:

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