观点:建筑师 VS 工程师 VS 开发人员
有人会说这些差异只是语义上的,有人会说它们太过迂腐,有人会说标题浪费时间,而我认为这很重要,而且确实存在差异。以下是我这么认为的原因。
词源和意义
建筑师
ar·chi·tect/ˈärkəˌtekt/名词
- 1.设计建筑物并在很多情况下监督建筑物建造的人。同义词:设计师、规划师、建造者、建筑顾问、绘图员“达勒姆大教堂的伟大诺曼建筑师”
动词计算
- 1.设计和制造。“很少有软件包在设计时考虑到以太网接入”
工程师
en·gi·neer/ˌenjəˈnir/名词
- 1.设计、建造或维护发动机、机器或公共工程的人。同义词:设计师、规划师、建造者、建筑师、生产商、制造者、开发者、创造者;发明家、发起人、设计者、策划者、策划者“结构工程师的图纸”
动词
- 1.设计和建造(机器或结构)。“设计隧道的人”
开发人员
de·vel·op·er/dəˈveləpər/名词
- 开发某物的人或事物。“房地产开发商”
- 按特定时间或速度成长或成熟的人。“我发育得很慢。”
- 用于处理摄影胶片以产生可见图像的化学剂。
因此,我们有架构师(计算),意思是“设计或制造”,工程师,意思是“设计和构建”,最后还有开发人员,他们以特定的时间/速度成长或成熟。“开发人员”描述的是人的状态,而其他两个描述的是人的行为。
让我们将“软件”附加到每个术语,看看强大的维基百科给我们提供了什么:
软件架构师是 软件 开发 专家,负责制定高层设计决策并制定技术标准,包括 软件 编码标准、工具和平台。软件架构师 - 维基百科
https://en.wikipedia.org/wiki/Software_architect
软件工程师是 将软件工程 原理应用于 计算机软件 的设计、开发、维护、测试和评估的 人员。20 世纪 70 年代中期之前, 软件从业者 无论实际从事什么工作,都自称为计算机程序员或 软件开发人员。软件工程师 - 维基百科
https://en.wikipedia.org/wiki/Software_engineer
软件开发人员是 从事软件开发过程 各个方面工作的人员 ,包括计算机软件 的研究、设计、编程和测试 。其他常用的类似职位包括程序员、 软件 分析师和 软件工程师。软件开发人员 - 维基百科
https://en.wikipedia.org/wiki/Software_developer
因此,根据维基百科,架构师负责做出高层设计决策、制定标准并选择工具。而工程师和开发人员则密切相关。现在我们有两个例子来说明架构师与工程师和开发人员的区别,接下来让我们来澄清一下这两者之间的区别。

工程师 VS 开发人员
Software Engineer Insider有一篇很棒的(但很短)文章探讨了两者之间的差异。简而言之,开发人员专注于在狭窄的范围内进行编码。工程师则了解“全局”和“客户需求”。他们遵循产品的整个SDLC ,从客户请求到最终部署。
Jason McCreary也简短地说道:
开发人员
负责执行的开发人员。他们的才能通常集中在单一领域,无需顾及“全局”。工程师 负责设计和规划的
工程师
。始终关注“全局”。拥有多领域的才能。工程师可以担任开发人员的角色。但工程师的核心关注点在于架构。
结论
经过上述讨论以及其他许多对话和大量研究,我的观点是基于现有的知识和共识形成的:架构师,负责高层决策和工具选择。工程师,负责运用科学的思维方式和系统化的流程进行构建。开发人员,负责编写计算机代码,使其运行。
你怎么看?我是不是太迂腐了?你真的不在乎吗?你是个架构师,别人叫你程序员就觉得受辱吗?欢迎在下面的评论区讨论。
最初发表在我的博客上。
文章来源:https://dev.to/david_j_eddy/opinion-architect-vs-engineer-vs-developer-5n0