热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

架构师什么样的技能最重要?

软件架构师的定义乃至所需要的特质历来众说纷纭。下面从一些另类的角度来做点分析。从产生根源来看,程序规模越大,参与人员越多,越需要架构师;程序越小,参与人员越精英化,架构师存在价值越小。这不难理解,大军团作战,总不好一窝蜂就上去了,总要有些规则,总要有人把握全局。

软件架构师的定义乃至所需要的特质历来众说纷纭。下面从一些另类的角度来做点分析。

从产生根源来看,程序规模越大,参与人员越多,越需要架构师;程序越小,参与人员越精英化,架构师存在价值越小。

这不难理解,大军团作战,总不好一窝蜂就上去了,总要有些规则,总要有人把握全局。架构师就是在比较高的层面上把握全局的这个人。从这个角度来看,对架构师而言选择最重要,因为站的高,所以选择具有非常大的价值。

注意不是UML,也不是对业务的理解,不是编码能力而是做出正确选择的能力。当下的开发环境下,考虑解决方案时,所面临的选择不是太少,而是太多。

举个最简单的例子,我们要开发一个基于Web的项目管理程序,那么你面临的选择是:

  • 自己从头造,还是用现成的做二次开发?
  • 用现成的,是用开源产品还是微软的?
  • 用微软的话,是用MS?Project还是基于SharePoint?
  • 用开源产品,有这么多选项究竟导入那一个?
  • 如果自己从头造,那么是基于微软的技术,还是基于Linux?
  • 使用什么框架么?
  • 如果要做,用什么语言?

每一个这类选择的背后都是赤裸裸的利益——在商业环境下永远不要忘了这个。做选择其实可以很容易,所以是个人就可以干这活,并不具备很高的门槛。关键差异是有无根据和正确程度。

如果说程序员的生产效能可以差10倍的话,架构师的价值可以差无数倍。想选择正确,最关键的前提是理解待选择的选项和外部的切实要求。

前一点很难,这往往要求一个人涉猎广泛,在很多的领域中具有经验。不只要知道LAMP,还要知道asp,不只要知道软件还是知道些硬件,不只要了解Java,可能还要了解C#。理解程度倒未必一定要很精通,关键是要抓住差异以及其适用场景。

但这恰恰与这个时代的特征相反,在这个时代里,技术日趋繁杂,专家越来越多,通才越来越少,诸神陨落啊。

走极端的人可能会说,那么多人,没懂什么,去做网站也成功了。这也可能,运气很好的话,什么也不懂,一样可以做很对的选择。但能力这种事,本来最主要的就是尽可能去除运气成分。

从编码的角度看,架构师不懂编码是不行,但却不需要是最精通编码的人。一者谋的一隅,一者谋的是全局,因此也就导致对技能的要求不同。

本文地址:http://www.nowamagic.net/librarys/veda/detail/2184,欢迎访问原出处。


推荐阅读
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 随着技术的发展,Python因其高效性和灵活性,在多个领域得到了广泛应用,特别是在大数据处理和网络爬虫开发方面。本文将探讨学习Python是否能够胜任大数据和网络爬虫工程师的工作,并分析其职业前景。 ... [详细]
  • 汇编语言:编程世界的始祖,连C语言都敬畏三分!
    当C语言还在萌芽阶段时,它首次接触到了汇编语言,并对其简洁性感到震惊。尽管汇编语言的指令极其简单,但它却是所有现代编程语言的基础,其重要性不言而喻。 ... [详细]
  • 每种编程语言都有其独特的完成任务的方式,这也说明了为什么有这么多语言可供选择。在JimHall的《不同的编程语言如何完成相同的事情》文章中,他演示了13种不同的语言如何使用不同的语 ... [详细]
  • 1、什么是过滤器管道使用竖线(|)将两个命令隔开,竖线左边命令的输出就会作为竖线右边命令的输入。连续使用竖线表示第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入, ... [详细]
  • C#中调用OpenCTM打开.obj三维模型文件
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文总结了近年来在实际项目中使用消息中间件的经验和常见问题,旨在为Java初学者和中级开发者提供实用的参考。文章详细介绍了消息中间件在分布式系统中的作用,以及如何通过消息中间件实现高可用性和可扩展性。 ... [详细]
  • 整理于2020年10月下旬:总结过去,展望未来Itistoughtodayandtomorrowwillbetougher.butthedayaftertomorrowisbeau ... [详细]
  • 本文详细介绍了如何使用Layui框架实现动态和静态数据表的分页功能,具有较高的实用性和参考价值。适合需要开发管理后台的开发人员参考。 ... [详细]
  • 本文详细介绍了如何在MySQL中创建自定义函数来计算地球表面上两点之间的距离。通过经纬度数据,利用球面三角公式,可以准确计算出两地之间的直线距离。 ... [详细]
  • 本教程介绍如何在C#中通过递归方法将具有父子关系的列表转换为树形结构。我们将详细探讨如何处理字符串类型的键值,并提供一个实用的示例。 ... [详细]
  • 本文详细介绍了如何在循环双链表的指定位置插入新元素的方法,包括必要的步骤和代码示例。 ... [详细]
  • 本文介绍了如何在不同操作系统上安装Git,以及一些基本和高级的Git操作,包括项目初始化、文件状态检查、版本控制、分支管理、标签处理、版本回退等,并简要提及了开源许可协议的选择。 ... [详细]
  • 驱动程序的基本结构1、Windows驱动程序中重要的数据结构1.1、驱动对象(DRIVER_OBJECT)每个驱动程序会有唯一的驱动对象与之对应,并且这个驱动对象是在驱 ... [详细]
author-avatar
土豆小妈姐_645
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有