您的位置:首页 > 职场人生

web开发中的职业发展方向 - Presentation Transcript

2011-11-10 14:44 495 查看
 
常见职能划分
实现功能的开发工程师(程序员)
前端工程师
服务器端开发工程师

实施部署维护的系统管理员(SA)
特别的:数据库管理员(DBA)

控制质量的测试工程师(QA)
常见职能划分
不属于程序开发的
美工
策划
业务/需求分析师

Web应用的三层架构 服务器端 前端工程师 服务器端工程师 系统管理员 数据库管理员 表现层( Presentation Layer ) 业务逻辑层( Business Logical Layer ) 数据持久层( Data Persistant Layer ) 辅助系统 ( Auxiliary System )
前端工程师 前端工程师
美工方向
做HTML模板
编写CSS
视觉设计

策划方向
界面/UE/交互设计

开发方向
JavaScript编写

前端工程师
美工方向
(x)HTML
CSS
常用的图像处理工具(如Photoshop)及简单的图像处理
切图,将图片转换为DIV+CSS
处理浏览器之间的css兼容性问题

前端工程师
策划方向
产品设计理念
用户体验
参考资料:UCDChina http://ucdchina.com/
前端工程师
开发方向:
熟练使用JavaScript(OOP, Functional)
了解相关HTML标准(如DOM)
了解不同浏览器之间的JavaScript兼容性问题
掌握一种框架(如jQuery)
*能够用JavaScript开发富界面
候选:Flash开发

服务器端的职能划分 服务器端开发人员 系统管理员 应用逻辑 应用框架 应用服务器 操作系统 服务器端工程师 服务器端工程师的职责
编写业务逻辑代码
协助架构师进行业务逻辑的(细节部分的)设计
服务器端工程师的技能要求
熟悉一门所需的编程语言
语言基础
标准库
最佳实践(如代码规范)

熟悉一种以该语言写成的应用框架
搭建开发环境
了解常见的算法与数据结构及其应用场景
了解常见的设计模式及其应用场景
服务器端工程师的技能要求
能够根据自己的业务场景需求搭建自己的应用框架
系统管理员 Source: http://www.isgtw.org/?pid=1000944 系统管理员的职责
负责部署系统
优化系统性能/微调系统的参数
监控系统的运转情况,保证系统的正常运转
收集系统信息,分析系统问题
协助架构师设计系统的结构
保证系统安全性
系统管理员的技能要求
熟悉某种操作系统(如Windows Server, Linux, FreeBSD, etc.)
熟练安装配置某套框架下的应用组件
如LAMP(Linux+Apache+MySQL+PHP)

了解系统的核心参数和配置,并可以根据应用场景进行调整
灵活使用某种Shell脚本语言
Windows下的Bat批处理或者PowerShell
*nix下的(Ba)sh, csh, zsh, etc.

系统管理员的技能要求
会分析各种日志
了解某种监控系统(Munin, Cactic, Nagios)
掌握某种自动部署工具的应用
Puppet, Chef(Ruby)
Func (Python)
ControlTier

了解如何进行压力测试,并掌握常见组件的参数和应用场景
数据库管理员的职则
部署数据库
优化数据库性能/微调数据库的参数
保证数据库的正常运转和数据安全
协助架构师进行数据建模
协助架构师进行数据库部署的设计
协助业务人员进行数据分析
协助应用程序开发人员编写高质量的SQL
数据库管理员的技能要求
精通SQL
精通掌握一种关系型数据库的安装配置
熟悉数据库建模
能根据应用场景来调配数据库的参数
了解常见的数据库架构模式
测试工程师 测试工程师的职责
功能性测试:保证业务的正确执行
性能/压力测试:为优化性能提供基准和参考
可靠性测试:测试极端情况下系统的稳定性和可用性
安全性测试
可用性测试
测试工程师的技能
手工测试
设计测试案例
自动化测试工具
进阶职业! 进阶职业!
掌控全局的产品 / 项目经理

运筹整个系统的架构师

架构师的职责
系统架构要考虑的功能性问题(根据需求)
选择合适的技术、框架(技术选型)
业务建模、数据库建模
划分系统层次、组件
技术方面的其他决策

架构师的职责
系统架构要考虑的非功能性问题(根据需求)
并发数
响应速度
吞吐量
容量
可靠性
安全性

架构师 = 开发工程师 + 系统管理员 + 数据库管理员 项目/产品经理的职责
对整个项目负责
对更上一级负责
进行决策
制定计划
衡量、控制项目/产品的进度
合理评估/规避风险
控制、协调、安排各成员
部署/维护 测试 设计 开发 需求分析 SA&DBA & Programmer DBA Architect UI设计师 Programmer System Analyst/Planner SA QA 美工 前端工程师
总结
纯属个人经验总结
不同公司会有不同的分工,可能起不同的名称
多样化,差异化
要往高层次走,就要突破自己角色领域
Q&A 完 谢谢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息