我为什么坚持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 是一个自由的对象-关系数据库服务器(数据库 ...
随机推荐
- eclipse中git插件配置 编辑
一.Eclipse上安装GIT插件EGit EGit插件地址:http://download.eclipse.org/egit/updates OK,随后连续下一步默认安装就可以,安装后进行重启Ecl ...
- <hr/>标签改变颜色注意事项
1.css改变颜色 <hr style="border:0;background-color:#093;height:1px;"> 注意: 如果不加border:0 ...
- javascript基础(三)运算
原文http://pij.robinqu.me/ 递增递减操作符(包括前置和后置).一元正负符号操作符 这些操作符适用于任何数据类型的值,针对不同类型的值,该操作符遵循以下规则(经过对比发现,其规则与 ...
- Java IO 文件与流基础
Java IO 文件与流基础 @author ixenos 摘要:创建文件.文件过滤.流分类.流结构.常见流.文件流.字节数组流(缓冲区) 如何创建一个文件 #当我们调用File类的构造器时,仅仅是在 ...
- hdu_5927_Auxiliary Set(xjb搞)
题目链接:hdu_5927_Auxiliary Set 题意: 给一棵n个节点的树,最开始全部都是重点,现在有q个询问,每次给你一些轻点,并叫你输出整棵树的重点数量, 轻点可能会变为重点,如果这个轻点 ...
- Understanding continuations
原文地址http://fsharpforfunandprofit.com/posts/computation-expressions-continuations/ 上一篇中我们看到复杂代码是如何通过使 ...
- Spring contextConfigLocation默认加载文件的位置
在使用Spring框架的时候,如果我们使用的是XML文件配置Bean的方式的话,我们往往会在web.xml里面配置如下内容: <context-param> <param-name& ...
- Openjudge-计算概论(A)-过滤多余的空格
描述: 一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格. 输入一行,一个字符串(长度不超过200),句子的头和尾都没有空格.输出过滤之后的句子. 样例输入 Hello world.Th ...
- Openjudge-计算概论(A)-球弹跳高度的计算
描述: 一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下.编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高?输入输入一个整数h,表示球的初始高度.输出输出包含两 ...
- (1)Two Sum--求数组中相加为指定值的两个数
Given an array of integers, find two numbers such that they add up to a specific target number. The ...