我为什么坚持DBA一定要懂开发
我为什么坚持DBA一定要懂开发
时间 2016-03-23 15:34:08 张碧池的幸福生活
原文 http://pottievil.com/我为什么坚持dba一定要懂开发/
主题 DBA 数据库
最近手头在忙几个开发项目,主要在做的是数据库方面的自动化运维系统。
本来就捉襟见肘的人手现在更要匀出一部分完成开发任务(虽然几个开源项目的二次开发就没停过。。)。可能是最近给组里的兄弟们灌了太多的技术鸡汤,终于有同学憋不住问我:我们是不是离DBA的老本行越走越远了?
后来我也严肃的自问自己这个问题:我是不是把团队的方向带的有点跑偏了?
好在圈里的很多朋友纷纷的给我圆场,说近年DBA人员的素质出现下滑。参加面试的人纵然有几年工作经验,然而做的事情无非是导数据、处理脏数据、设计表、优化索引。。这些非常非常基础的事情。甚至这些事情一些好学的运维同学(小企业尤其突出)已经开始逐渐的能接手过去了。
面对这样的情况,他们便向我发问:DBA存在的意义到底在哪里?
想起读研的时候,正好赶上业内Oracle大佬们极力倡导DBA2.0的时期。不过那时的问题是Oracle正逐步将所有需要DBA人工干预的操作自动化,那么作为Oracle DBA必须要有其他的出路,而不是沦为数据的操作工。
现在的情况是不是也和那时相同呢?只不过我们维护的工具从Oracle变成了MySQL而已。
我觉得在互联网+的大环境影响下,一个优秀的DBA是绝对绝对不能只做好眼前的一亩三分地的。DBA存在的意义将不仅是数据的维护者,在一个合格的团队中应当扮演更重要的角色。如在一个项目的开发初期便开始掌控整个应用的数据流向,帮助项目选择相应的数据产品,设计相应的高可用架构等。
不过,很快新的问题又来了:我不懂开发,或者我不想去做开发,甚至我不想了解开发。
这又回到文章最初的那个问题,做开发真的会离我们的老本行越来越远么?
有句古话叫艺不压身。多学点东西总没坏处。这么来解释这个问题是不是有点太不负责任。。
那么我为什么坚持DBA要懂开发呢,其实我的初衷是想让组里的DBA小伙伴们了解我们的开发同学都在做什么。知己知彼,这样才能帮助你在项目评审时不做木偶,才能做到真的帮助项目组设计数据流向,而不是机械的等开发出身的所谓架构师帮你设计数据侧的架构,真的从Administrator变为Architect。
其次,学会开发技能帮你万事不求人。
为什么要这么说呢,可能是我比较讨厌求人办事儿的态度吧。比如很多大公司,职责分工会很细,有专门的运维开发组。那么DBAs只需要将自己的需求提出来,就有对口的运维开发同学来受理。当然上面的确实是一种较理想的状态。那么实际的情况会怎样呢?
实际情况往往是运维开发组的同学们忙着开发运维相关的需求,不断的将DBAs的需求后移。什么SQL审核之类的功能往后排期吧。
以上还是有运维开发组的情况。那么没有运维开发组的话只会更悲催。所有与我们日常工作相关的自动化工具都需要自己来做,这时候恐怕不想接触开发也不行了。
最后,不要错误的把数据库开发当成会写存储过程。这点Oracle出身的DBAs肯定会体会更深。因为Oracle强大的功能,导致很多应用在取数操作时使用存储过程会比直接在应用中实现更快。虽然我也是Oracle出身,但是多年开源数据库(主要是MySQL)的折磨使得我现在认为数据库就仅限于存、取数据(简单查询就够了)。更多数据相关的逻辑操作最好还是在应用侧完成,这样做的主要目的还是方便我们使用不同的数据产品来解决不同的应用需求,这样就做到了掌控数据流。同时使应用在设计时,数据侧更清晰。因此,我的观点是能在应用中实现的逻辑尽量不要放在存储过程里,同样,也不要错误的把数据库开发仅仅当成会写存储过程。
OK。那么我说的对DBAs来说的重要的开发技能是什么呢?
就现在而言,我个人觉得掌握PHP和Python应当是必须的(虽然我的JD上会写三者会其一即可。。)同时,要尽可能的了解常用的开发思想(比如RESTful的API、SOA、微服务等等),了解什么是MVC(当然这可能已经挺老旧的了),了解常用的PHP WEB框架或者Django和Flask以及等等等等。只要你精力足够恐怕没什么是你不能学到的。
最后,希望我们每一位DBAs都能去戗行~都能做一个称职的二手开发~在职业道路上越走越宽~
By Perry.Zhang
03.23.2016
我为什么坚持DBA一定要懂开发的更多相关文章
- 招聘前端、Java后端开发、测试、Mysql DBA
公司介绍: http://www.lagou.com/gongsi/43095.html http://www.yamichu.com 简历发到: zhuye@yamichu.com 招聘职位: JA ...
- 测试经验总结(“二次开发”)
参考原文地址:http://www.51testing.com/html/86/n-3601786.html 不知不觉已经工作五年时间了,从茁壮.康拓普.利鑫云端到现在的惠卡世纪,经历过机顶盒软件(嵌 ...
- 【python全栈开发】初识python
本人最开始接触python是在2013年接触,写过hello word!在此之前对开发类没有多大兴趣,不知道重要性,属于浑浑噩噩,忙忙乎乎,跌跌撞撞的.随后选择了Linux运维作为就业主攻方向. 经过 ...
- 升讯威微信营销系统开发实践:(1)功能概要与架构设计( 完整开源于 Github)
GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction因为个人精力时间有限,不会再对现有代码进行更新维护,不过微信接口比较稳定,经测试至 ...
- 美图秀秀DBA谈MySQL运维及优化
美图秀秀DBA谈MySQL运维及优化 https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=401797597&idx=2& ...
- INFORMATICA 开发规范
目 录 Informatica开发规范.... 1 目 录.... 2 1 编写目的.... 4 2 ETL研发责任人界定.... 4 3 ETL ...
- 2015 年最热门的国人开发开源软件 TOP 50
开源中国在 2015 年得到了快速的发展,单开源软件收藏量就接近 40000 款,其中不乏优质的国产开源项目.本文从软件的收藏.下载.访问等多角度挑选出了 2015 年最热门的国产开源软件前五十名,让 ...
- 6-MySQL DBA笔记-查询优化
第6章 查询优化 查询优化是研发人员比较关注也是疑问较多的领域.本章首先为读者介绍常用的优化策略.MySQL的优化器.连接机制,然后介绍各种语句的优化,在阅读本章之前,需要先对EXPLAIN命令,索引 ...
- PostgreSQL 优势,MySQL 数据库自身的特性并不十分丰富,触发器和存储过程的支持较弱,Greenplum、AWS 的 Redshift 等都是基于 PostgreSQL 开发的
PostgreSQL 优势 2016-10-20 21:36 686人阅读 评论(0) 收藏 举报 分类: MYSQL数据库(5) PostgreSQL 是一个自由的对象-关系数据库服务器(数据库 ...
随机推荐
- 阮一峰:jQuery的几篇文章
jQuery的设计思想:http://www.ruanyifeng.com/blog/2011/07/jquery_fundamentals.html jQuery的最佳实践:http://www.r ...
- 《JS权威指南学习总结--8.8.3 不完全函数》
内容要点: 本节讨论的是一种函数变换技巧,即把一次完整的函数调用拆成多次函数调用,每次传入的实参都是完整实参的一部分,每个拆分开的函数叫做不完全函数(partial function),每次函数调用叫 ...
- 同一级目录js的引入
- ggplot2 坐标系相关设置(coord)
在ggplot中,未来更好的数据可视化效果,我们有时候可能要用到一些坐标转换的操作,比如要画横向条形图或者蜘蛛图等. coord_cartesian(xlim = NULL, ylim = NULL) ...
- 浙大pat 1048 题解
1048. Find Coins (25) 时间限制 50 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Eva loves t ...
- Node使用Mongoose操作MongoDB数据库——增删改查的实现
当初刚出社会时就规划了下自己的职业生涯:先成为一名优秀的前端工程师,再成为一名全栈工程师(精通前端开发.后台开发和客户端开发),最后成为一名优秀的系统架构师.转眼间已经工作快三年,是时候迈出关键性的一 ...
- PBO
#include <GL/glew.h> #include <GL/freeglut.h> #include <iostream> GLuint pboID[]; ...
- 简单介绍移动端CSS3单位rem的用法
PC端大部份是用px单位,小部分用em单位,而移动端,请全部用rem单位吧.目前大部份设备,包括但不限于iOS 5+.Android 2.3+.Window Phone 8+都是可以兼容的,具体兼容表 ...
- Visual Studio 2010/2013 UTF8编码调试时显示中文
VisualStudio 2010 SP1环境 1.设置string默认编码为utf8,只需要在文件头部加入以下代码 #pragma execution_character_set("utf ...
- iOS 面试大全从简单到复杂(简单篇)
1.UIWindow和UIView和 CALayer 的联系和区别? 答:UIView是视图的基类,UIViewController是视图控制器的基类,UIResponder是表示一个可以在屏幕上响应 ...