`
ai_longyu
  • 浏览: 521449 次
社区版块
存档分类
最新评论

不编程的架构师的职业生涯是短暂的

阅读更多

架构师一直是我梦寐以求所达到的高度,即便经过了这么多年的努力,我仍然觉得自己离真正的架构师的距离还很远……是不是成为技术牛人,就能成为一个优秀的架构师了呢?其实未必,这仅仅是其中的一个重要点。而在这个似乎是男人天下的职业上,作为一名女性,希望自己能够走得更远,也希望用自己的坚持和努力,使得自己的职业生涯能够有长远的发展,而不是停留在现在的状态。

Occupation Programmer, Author; Employer: Canonical Ltd
Known for Parrot

开源项目Parrot的首席架构师兼开发组组长Allison Randal,她也是为女性,就曾经很务实地说过:架构师往往容易被抽象的架构所吸引,沉迷于设计过程。事实上,仅有架构说明书是远远不够的。软件项目的最终的目标是建立生产体系,架构师必须时刻关注这个目标,牢记设计只是达成目标的手段,而不是目标。我们的目标是可工作的代码,对软件项目而言,忽略这一点就是灾难。如果你亲自参与开发,应该珍视自己花在写代码上的时间,千万别听信这会分散架构师精力的说法。参与项目所付出的努力,既能拓展你的宏观视野,也能丰富你的微观视界。

 

结合我的项目经验,对于Allison Randal的话体会是很深的。作为架构师我一直参与开发,我十分珍惜写代码的时间和经验。这其实不会分散架构师的精力,很多时候,技术方案的选择,最好有两种以上,在经过验证后才可以才能够确定。当初我们拿到架构方案书,并不是迷信该方案说明书,而是通过关键应用,搭建了原型系统,一方面验证了架构的可行性,另一方面,可以为开发人员提供更为实实在在的示范指导。对于开发的每个细节,都比较清楚,开发人员有什么问题,也可以得到很快的解决。

 

国外的架构师为何能够成为大师,而国内的架构师最后无法成为大师,其实主要的区别就在于,国外的架构师还在参与编程,跟项目团队一起解决难题。

 

由于架构设计很多时候是给出了设计原则,粗粒度的设计,有时候往往与实现还有一段距离。因此,在架构设计与实现会出现断层。这是因为如果架构师不去实践,只是想当然的认为“没问题,这个想法能实现”,那么对于项目的落实而言是个很大的隐患。支付宝架构师冯大辉也表示过,架构师是一个比较“虚”的岗位,主要的问题都在“落地”的过程中。而如何要实现“落地”,取决于架构师是否参与编程。而事实上,我们列举出一个长长的顶级架构师的列表,你会发现无一不是顶级的程序员。

 

让我们来看看,eBay的架构师Randy Shoup是如何总结架构师在项目中的承担的职责的:

1. 架构师拿到一个新的项目,架构师便开始工作,首先他要了解业务需求,然后根据需求把可行性、质量属性以及权衡取舍等因素一一剖析清楚。

2. 技术需求出来了,架构师的主要工作开始了:设计整体的技术实现步骤。Randy还说“大多数成功的架构师都喜欢与其他团队成员一同完成架构和设计这一块的工作,而认为自己应独自完成这个步骤则是新手架构师常见的误区”。

3. 与开发团队一起,完成设计与实施的细节

4. 与开发团队和运维团队一起,完成部署的过程

5. 与运维团队一起,进行部署之后的维护和故障排除

Randy Shoup的描述来看,架构师至少一半以上的时间是跟开发团队在一起进行合作的。试想一下,如果开发人员发现问题不能解决时,架构师说:这是你们开发实现的问题,跟我无关。从而就会产生嫌隙,以至于到最后,开发人员会说,这个架构师没有什么真材实料,似乎是一个只会将理论的技术大忽悠。这样是非常不利于项目的成功的。而架构师确实在对项目成功担负了重要的职责。

 

如果是梦想以后不要编程而向架构师方向走的程序员,我奉劝您还是打消这样的念头吧,还是往项目经理方向发展可能更为合适。

 

42
27
分享到:
评论
13 楼 android_mylove 2012-06-19  
其实国内合格的架构师,真的不算太多……
12 楼 seaks 2012-06-19  
国内大忽悠多,真材实料少
11 楼 yell_dragon 2012-06-18  
但在中国,会忽悠才是最有用的技能。。。
10 楼 kizz 2012-06-18  
我以后的梦想就是架构师!
9 楼 xsjleilei 2012-06-18  
本文是抄袭的,鉴定完毕
?
8 楼 lwclover 2012-06-18  
本文是抄袭的,鉴定完毕
7 楼 keke8614 2012-06-18  
说的很好,架构师是以目标实现为目的的手段,架构师更应该把握开发的可行性,架构师不是吹大牛说大话,只讲宏观不讲“微观”和客观的指挥家。国能能称的上架构师的不多,至少一个还是因为我们对软件开发还不够热爱,充其量也就是停留到一个喜欢的层次上吧!
6 楼 hacklove 2012-06-18  
理论上架构师就不存在的
5 楼 BruceXX 2012-06-18  
我们公司很多这种“伪架构”,你又能怎样?!
4 楼 lich0079 2012-06-18  
架构师   假狗屎
3 楼 KimHo 2012-06-18  
说的很好
其实国内合格的架构师,真的不算太多……
2 楼 carlosk 2012-06-18  
架构师是为程序员服务的,不了解程序员的具体工作细节,怎么能把工作做好?
1 楼 黑暗浪子 2012-06-18  
说的没错~

相关推荐

    如何成为一名合格的架构师

    如同Fred George先生所言,“不编程的架构师的职业生涯是短暂的”。这表明,一个好的架构师必须是顶尖的程序员,能够深入理解代码实现的细节,而不是仅仅停留在理论层面。编程经验使他们能够预见设计在实际执行时...

    计算机应用

    他在Google短暂工作后,加入了海洋机器人研究公司Liquid Robotics,担任首席软件架构师。此外,他还曾担任Scala公司Typesafe Inc.的顾问,Scala是一种与Java紧密相关的编程语言。 詹姆斯·高斯林因其对计算机科学...

    Coders_at_Work

    它通过展示这些顶尖程序员的思考过程和技术实践,启发读者思考如何提高自己的编程技能,以及如何在职业生涯中不断进步。此外,书中所包含的历史背景和个人故事也为读者提供了一个了解计算机科学发展历程的独特窗口。...

    【算法与数据结构】力扣763划分字母区间:C++实现字符串分割算法解析与代码示例

    内容概要:文章主要讲解了力扣763题——划分字母区间的解法。题目要求对字符串进行划分,使得每个字母只出现在一个子串中,并且这些子串是连续的。文中详细解释了算法的核心思想:从字符串的第一个字符开始,找到该字符最后一次出现的位置作为初始区间边界;然后遍历该区间内的所有字符,不断更新区间的右边界为当前字符最后出现位置的最大值,直到遍历结束,即得到一个完整的区间。最后通过示例代码演示了这一思路的具体实现方法,包括输入字符串、计算各字符最远出现位置、确定区间长度并输出结果等步骤。; 适合人群:对算法和数据结构有一定了解,特别是正在准备编程竞赛或面试的程序员。; 使用场景及目标:①理解划分字母区间的贪心算法思想;②掌握如何通过查找字符最后出现位置来构建不重叠的最优区间;③学习C++语言中字符串操作函数如rfind()的应用; 阅读建议:在阅读时应重点关注算法的设计思路及其背后的逻辑,同时注意代码细节,如循环条件、边界处理等,可以尝试自己动手实现一遍加深理解。

    base(1).apk.1

    base(1).apk.1

    (源码)基于C语言的STM32开发板功能支持库.zip

    # 基于C语言的STM32开发板功能支持库 ## 项目简介 本项目是针对STM32微控制器的开发板支持库,涵盖多种功能模块,像GPIO控制、LCD驱动、串行通信等。为开发者提供丰富库函数与示例代码,简化STM32微控制器开发流程。 ## 项目的主要特性和功能 1. GPIO控制可进行GPIO初始化、配置、读写及引脚锁定,方便控制引脚状态。 2. LCD驱动支持多种LCD型号,能完成初始化、设置颜色、显示字符、绘制图形等操作。 3. 串行通信提供串行通信端口初始化、配置与通信功能,支持USART等协议。 4. IO扩展器支持STMPE811等IO扩展器驱动,具备IO读写、Joystick配置等功能。 5. 时钟管理可进行系统时钟配置与管理,包括时钟源选择、分频因子设置。 6. 任务调度实现实时多任务操作系统(uCOS II)核心功能,如任务创建、删除等。 7. 同步机制提供事件标志、消息邮箱、互斥锁、队列和信号量等同步机制,用于任务间通信与同步。

    (源码)基于Linux内核的MaliG610 GPU模拟及性能分析系统.zip

    # 基于Linux内核的MaliG610 GPU模拟及性能分析系统 ## 项目简介 本项目名为kbasevalhall,主要用于模拟一个MaliG610(用于RK3588)GPU。它提供了创建和初始化时间线对象的功能,可用于跟踪和记录GPU设备的状态与操作序列,为GPU的性能分析和调试提供有效工具。 ## 项目的主要特性和功能 1. 模拟MaliG610 GPU通过项目代码可以模拟出MaliG610 GPU,为相关开发和测试提供环境。 2. 时间线对象管理创建并初始化多种时间线对象,如逻辑处理单元(LPU)、地址空间(AS)和GPU对象等,用于跟踪GPU设备状态。 3. 上下文跟踪遍历设备中的所有上下文,为每个上下文创建新的时间线对象,跟踪地址空间分配和内核处理器队列状态信息。 4. 数据传输刷新所有流,确保摘要包传输到用户空间,方便应用程序访问GPU性能数据。

    (源码)基于Arduino的恐龙游戏.zip

    # 基于Arduino的恐龙游戏 ## 项目简介 此项目是一个基于Arduino的恐龙游戏版本开发。包含了与游戏角色、场景元素相关的图形定义文件。通过二进制形式定义了游戏角色(如恐龙、角色腿等)以及场景元素(如云)的形状。这些图形定义被存储在AVR微控制器的PROGMEM中,用于游戏或应用程序的开发。 ## 项目的主要特性和功能 1. 图形定义项目包含多个图形定义文件,用于描述游戏角色和场景元素的形状。 2. 二进制图形表示所有的图形数据都以二进制形式存储,适用于在AVR微控制器上运行的游戏或应用程序。 3. 游戏角色和场景元素包括恐龙角色的主要形状、腿的形状,以及不同大小的云等场景元素。 ## 安装使用步骤 由于此项目为源码文件,用户已经拥有项目的全部代码,接下来可以按照以下步骤进行安装和使用 1. 导入源码将源码文件导入Arduino开发环境。 2. 修改和优化根据需要进行修改和优化代码,以适应特定的硬件或功能需求。

    (源码)基于AVR单片机的自动搅拌杯系统.zip

    # 基于AVR单片机的自动搅拌杯系统 ## 项目简介 本项目针对传统手动搅拌杯需频繁按压按钮搅拌饮品的不便,利用AVR单片机(ATtiny13和ATmega328p)打造了自动搅拌杯系统。该系统通过简单电路控制电机和LED灯,实现自动搅拌功能,同时具备低功耗特性,延长电池使用寿命。 ## 项目的主要特性和功能 1. 多模式自动搅拌可通过按钮切换不同的搅拌模式,如电机持续开启、每隔30秒开启5秒、每隔1分钟开启5秒、每隔1分30秒开启5秒等。 2. LED状态指示LED灯以不同频率闪烁,直观显示当前的工作模式。 3. 低功耗运行在Power Down模式下,ATtiny13仅消耗0.5uA电流,确保长时间闲置时电池电量的有效保存。 4. 时间可调节能够通过修改代码中的相关参数,灵活调整电机搅拌时间和LED闪烁时间。 ## 安装使用步骤 ### 安装

    (源码)基于Node.js和IoT的心率监测系统.zip

    # 基于Node.js和IoT的心率监测系统 ## 项目简介 基于Node.js和IoT的心率监测系统是一个低成本的物联网(IoT)应用,旨在全天候监测用户的心率和血氧饱和度。该系统通过心率和血氧传感器定期提醒用户进行测量,并将数据传输到Web应用程序中供用户查看。用户可以配置测量时间和频率,Web应用程序采用响应式设计,支持桌面、平板和移动设备。 ## 项目的主要特性和功能 IoT集成使用低成本的IoT设备与心率和血氧传感器协同工作。 周期性提醒全天候提醒用户在可配置的时间间隔内进行测量。 响应式设计Web应用程序设计为在不同设备上提供一致的用户体验。 数据传输和监控测量数据传输到Web应用程序,供用户监控。 ## 安装使用步骤 ### 1. 复制项目仓库 bash ### 2. 进入项目目录 bash cd 413FinalProject ### 3. 安装依赖 bash

    基于LaTeX的Python与Shell脚本个人简历设计源码

    该项目是一个基于LaTeX的个人简历设计源码,集成了Python和Shell脚本功能,共包含54个文件,包括14个OTF字体文件、8个样式文件、8个TeX源文件、6个PDF文档、5个GZ压缩文件、2个JPG图片文件、1个BST模板文件、1个LICENSE授权文件、1个Makefile构建文件、1个Markdown文件。该项目适用于个人简历制作,提供专业的排版和个性化设计。

    FLAC 3D流固耦合技术在近断层隧道围岩稳定性分析中的应用及代码解析

    内容概要:本文详细介绍了利用FLAC 3D进行近断层隧道围岩稳定性的流固耦合分析方法。首先构建了三维网格并设置了摩尔-库仑本构模型和相关材料参数,接着对断层带进行了特殊处理,降低了其力学性能。文中重点讲解了流固耦合的具体设置步骤,包括开启流体模式、设置水的物理属性以及孔隙水压初始化等。此外,还展示了如何通过历史记录和绘图功能监控计算过程中的重要参数变化,并提供了防止数值不稳定的经验建议。最后,作者分享了一个实际案例,强调了流固耦合分析对于提高隧道安全性和优化设计方案的重要性。 适合人群:从事地下工程、岩土工程领域的研究人员和技术人员,尤其是那些需要掌握复杂地质条件下隧道稳定性评估技能的专业人士。 使用场景及目标:适用于研究和解决靠近断层带的隧道工程项目中存在的围岩失稳风险问题,旨在帮助工程师更好地理解和预测隧道在渗流水作用下的行为,从而制定合理的支护措施。 其他说明:文章不仅涵盖了理论知识,还包括大量实用的操作技巧和注意事项,有助于读者将所学应用于实际工作中。同时,文中提供的完整代码片段便于读者动手实践,加深理解。

    2001-2023年 上市公司-数字化转型工具变量

    数字化转型是指企业或个人利用数字技术,如大数据、云计算、人工智能等,对其业务流程、运营模式、决策方式等进行全面、深入的变革,以提高效率、降低成本、提升质量、增强竞争力。在这个过程中,工具变量扮演着至关重要的角色。 本数据包含:原始数据、参考文献、代码do文件、最终结果。 指标 企业代码 企业代码 年份 股票简称 企业数字化转型程度。基于吴非方法构建 工具变量:同行业其他企业数字化转型程度的均值 工具变量:同行业数字化转型程度的均值 工具变量:同行业同年份其他企业数字化转型程度的均值 工具变量:同行业同年份数字化转型程度的均值 工具变量:同地区同行业同年份数字化转型程度的均值 工具变量:同地区同行业同年份其他企业数字化转型程度的均值 行业名称 制造业取两位代码,其他行业用大类

    bellsoft-jdk17.0.15+10-windows-amd64.msi

    BellSoft Liberica JDK 是一个经过严格测试和验证的 OpenJDK,它完全符合 Java SE 规范,在Linux, Windows, macOS, 和 Solaris 操作系统上运行无误

    (源码)基于Azure和Kubernetes的乐高小人检测系统.zip

    # 基于Azure和Kubernetes的乐高小人检测系统 ## 项目简介 本项目是一个基于Azure和Kubernetes的乐高小人检测系统。项目结合了Azure机器学习服务进行模型训练和部署,利用Kubernetes进行集群管理和容器编排。通过ESP32CAM或树莓派作为图像采集设备,将采集到的图像发送到模型进行检测,并通过一个简单的网页展示检测结果。 ## 项目的主要特性和功能 1. 基础设施搭建支持Kubernetes集群和Azure环境的搭建,包括资源组、日志分析工作区、Arc连接的Kubernetes等资源的创建。 2. 模型训练使用Azure机器学习服务进行模型训练,支持自动机器学习(AutoML)功能,可同时尝试多种模型和超参数组合,提高模型性能。 3. 图像采集支持使用ESP32CAM或树莓派进行图像采集,并将采集到的图像存储到Kubernetes主节点。 4. 对象检测使用训练好的模型对采集到的图像进行乐高小人检测,并在网页上展示检测结果。

    h5py-3.1.0-cp36-cp36m-macosx_10_9_x86_64.whl

    该资源为h5py-3.1.0-cp36-cp36m-macosx_10_9_x86_64.whl,欢迎下载使用哦!

    【GitHub代码托管平台】从入门到精通:涵盖注册、仓库创建、客户端配置、SSH密钥设置、代码管理全流程及协作开发技巧

    内容概要:本文详细介绍了GitHub从入门到精通的各个方面,涵盖新手指南、核心操作、进阶技巧、实用工具与资源推荐以及常见问题解决方案。新手指南部分讲述了如何注册账号、创建仓库、安装配置客户端及SSH密钥配置;核心操作部分重点讲解了本地仓库初始化、版本提交与推送、文件状态与历史查看;进阶技巧部分探讨了分支管理策略、协作开发流程及冲突解决方法;实用工具与资源推荐部分介绍了GitHub Actions、GitHub Pages、GitHub Copilot等官方工具链,以及多个优秀学习资源库;常见问题解决方案部分则提供了关于权限问题处理和代码回滚方法的具体步骤。 适合人群:适用于初次接触GitHub的新手开发者,以及希望深入了解GitHub高级功能、提高团队协作效率的中高级开发者。 使用场景及目标:①帮助新手快速上手GitHub,掌握创建和管理仓库的基本技能;②教会用户如何进行版本控制、提交代码、查看历史记录等核心操作;③指导开发者进行高效的分支管理和团队协作,解决冲突并优化工作流程;④推荐实用工具和学习资源,提升开发效率和个人技能;⑤解决权限和代码回滚等常见问题,确保项目顺利进行。 阅读建议:本文内容详实,覆盖范围广,建议读者根据自身需求选择性阅读。对于初学者,可以从新手指南开始逐步学习;对于有一定经验的开发者,可以直接跳转到感兴趣的部分,如进阶技巧或实用工具章节。在学习过程中,结合实际操作进行练习,以加深理解和记忆。

    生物医学信号处理:Matlab实现心电信号ECG去噪的低通滤波与小波分解方法

    内容概要:本文深入探讨了心电信号(ECG)去噪的技术实现,特别是在生物医学信号处理领域的应用。文中介绍了两种主要的去噪方法:低通滤波和小波分解。首先,通过低通滤波器去除高频噪声如肌电干扰和工频干扰,保留低频的心电信号特征。其次,利用小波分解将信号分解到不同频率子带,通过阈值处理去除噪声并重构信号。此外,还展示了如何在Matlab中实现这些方法,并提供了详细的代码示例。为了增强用户体验,作者还开发了一个带有操作界面的工具,支持时域和频域波形的显示,并附有操作视频。 适合人群:从事生物医学工程、信号处理的研究人员和技术人员,尤其是那些对心电信号处理感兴趣的初学者和中级开发者。 使用场景及目标:适用于需要对心电信号进行预处理的研究和应用场景,如医疗设备开发、健康监测系统等。目标是提高心电信号的质量,减少噪声干扰,从而提升后续分析的准确性。 其他说明:文中不仅提供了理论解释,还有具体的代码实现和操作指南,帮助读者更好地理解和应用这些技术。

    基于Comsol的圆柱卷绕式锂电池结构与性能仿真分析

    内容概要:本文详细介绍了圆柱卷绕式锂电池的结构特点及其在Comsol Multiphysics中的建模与仿真方法。文章首先阐述了圆柱卷绕式电池的基本构成,包括正极、负极、隔膜、集流体和极耳的作用。接着,通过具体的Comsol建模步骤,如导入几何模型、定义材料属性、设置边界条件、模拟电流分布等,展示了如何利用Comsol进行电池性能的仿真分析。特别强调了极耳设计对电池性能的重要影响,并通过实例演示了如何优化极耳布局以提高电池效率。此外,文章还探讨了多物理场耦合仿真在电池热管理和电流分布优化中的应用。 适合人群:从事电池研究、仿真分析的技术人员以及对锂电池建模感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解圆柱卷绕式锂电池内部结构和工作原理的研究人员和技术人员。通过仿真分析,能够优化电池设计,提高电池性能,特别是在极耳布局和热管理方面。 其他说明:文中提供了多个Comsol建模的具体代码示例,有助于读者快速上手并进行实际操作。同时,文章还讨论了一些常见的建模难题及解决方案,如薄层网格划分和多物理场耦合等问题。

    【信息安全领域】实战项目汇总:涵盖渗透测试、Web安全加固、企业安全策略、恶意软件分析等关键领域防护措施

    内容概要:本文列举了多个信息安全领域的实战项目,涵盖网络渗透测试、Web应用安全加固、企业安全策略制定与实施、恶意软件分析、数据泄露应急响应、物联网设备安全检测、区块链安全审计以及云安全防护等八大方面。每个项目均明确了具体的目标和详细的步骤,旨在发现并修复系统中存在的安全隐患,提升系统的安全性和稳定性,确保企业信息资产的安全。; 适合人群:信息安全从业者、网络安全工程师、系统管理员、安全顾问等关注信息安全的专业人士。; 使用场景及目标:适用于需要进行网络安全评估、Web应用防护、企业安全策略规划、恶意软件防范、数据泄露处理、物联网设备保护、区块链系统审计及云安全建设等不同场景,目标是通过一系列具体的项目实施,帮助企业或组织提高信息安全防护水平,降低安全风险。; 阅读建议:由于涉及多个信息安全实战项目,建议读者根据自身需求选择感兴趣的项目深入研读,重点关注各项目的具体实施步骤和技术细节。同时,结合实际工作中的应用场景,将理论知识应用于实践,提升信息安全防护能力。

Global site tag (gtag.js) - Google Analytics