入职学习(3)--一个程序员的成长史(23)

看完了《C语言编程规范》,代是雄接着看《数据库编程规范》。之前赖科长和邹总都说过,本项目组开发主要涉及到的技术就是C语言和数据库,既然有了C语言的编程规范,那么就会有对应的数据库的编程规范。顺便说一下,在很多项目组中,大家都将数据库文件称之为脚本文件。

遥想自己的在校生活,代是雄在本科的时候根本没有接触过数据库,只是听人说过有SQL这样一种编程语言存在;在研究生阶段,代是雄选修过一门叫做“高级数据库技术”的课程,但这门课只是涉及到数据库相关的理论知识,几乎没有具体的程序编写相关的内容。这下看到了数据库的编程规范文档,代是雄反而觉得有点莫名的紧张了。

不管如何,“箭在弦上,不得不发”,既然以后要用这个技术了,那么摆在眼前的就只有一条路,那就是学习。打开文档之后,代是雄发现这个规范文档也有40余页,共8章内容,包括:基本原则、文件命名及脚本内容、脚本中代码布局、注释、命名规则、DDL语句基本规范、DML语句基本规范和数据库的维护规则。

第一章“基本原则”涉及到数据库编程的一些基本原则和指导思想。同C语言编程一样,数据库编程仍然要遵循一定的规则,这些规则主要包括:1)首先是为人编写数据库程序,其次才是计算机;2)保持代码的简明清晰,避免过分的编程技巧;3)数据库编程时必须重点考虑效率;4)尽可能复用和修正老的代码;5)尽量减少同样的错误的出现次数;6)坚持零缺陷的开发思想,杜绝脚本文件中出现低级错误。正所谓“大道至简”,上述这些原则虽然看起来比较的简单,也似乎是一些常识性的东西,但却为数据库开发提供了参照。

第二章“文件命名及脚本内容”涉及到脚本文件的命名及脚本内容的规范。脚本文件的合理命名增加了脚本文件的可读性和可维护性,脚本内容的正确编译执行是数据库编程的基础,各脚本文件的内容规范是项目产品稳定的基础。具体而言,项目产品中各模块的脚本命名和内容要统一规划,防止定义的数据库对象冲突。也就是说,在编写具体的脚本内容之前,我们要明白脚本文件该怎样命名,内容该如何规划和布局。

第三章“脚本中代码布局”涉及到具体的数据库代码的布局规则。规范脚本文件的代码布局的目的是使得脚本具备良好的逻辑结构,以提高脚本的准确性、连续性、可读性和可维护性,更重要的在于提高产品的开发质量和效率,降低开发成本。同时,对于每个开发人员来讲,养成良好的脚本编写习惯有助于提高自己的数据库脚本编程水平,提高脚本编程效率。因此,统一的、良好的脚本代码布局和风格不仅仅是个人主观美学或形式上的问题,而且影响到产品的质量,更涉及到个人脚本编程能力的提高。本章的主要内容包括:文件布局、内容基本格式、对齐、空行空格和断行等。

第四章“注释”涉及到脚本文件中注释的书写规则。脚本中的注释有助于理解代码,有效的注释是指在代码的功能、意图层次上进行注释,提供有用的、额外的信息,而不是代码表面意义的简单重复。一些有用的注释的书写规则包括:1)脚本文件头部必须进行注释;2)每段完成一定功能的脚本前(如创建数据表、存储过程、任务、插入缺省记录等),均应有注释说明;3)创建数据表中每个字段后应有注释(说明字段含义);4)保证代码和注释的一致性,修改代码的同时要修改相应的注释,过期的注释要删除;5)注释应与其描述的代码相近,对代码的注释应放在其上方或右方相邻的位置;6)注释与所描述的代码进行同样的缩排;7)尽量避免在注释中使用缩写,特别是不常用的缩写。

第五章“命名规则”涉及到脚本中所有对象的命名规则。命名规则的目的是增加数据库脚本的可读性和可维护性,需要对数据库脚本中的所有对象(包括数据库、表、视图、字段、索引、函数、存储过程、触发器、存储过程中间变量等)的命名做出规范化的约定。一些有用的命名规则包括:1)标识符由26个英文字符、10个数字和下划线组成,不能使用连续的下划线以及在标识符头或结尾使用下划线;2)标识符的命名应当符合“max-information”原则;3)标识符不能使用各种数据库关键字;4)建议存储过程的出参统一用out_开头,而入参统一用in_开头。

第六章“DDL语句基本规范”涉及到DDL(Data Definition Language,数据定义语言)的书写规范。本章对数据库脚本中的常用基本对象表、视图、索引、存储过程、触发器等的定义语法和原则做出了规范。一些有用的规范包括:1)数据类型采用基本数据类型,尽量不要使用某数据库特有的类型;2)建表时,每个创建字段的语句必须单独位于一行,不允许换行或一行多个字段;3)表的主键和外键应建立在业务无关的字段上;4)索引建在选择效率高的字段上,复合索引中选择效率越高的字段越在前面;5)在建表脚本中,当每个表及其索引创建完成之后,要打印语句标识本表已创建完成。

第七章“DML语句基本规范”涉及到DML(Data Manipulation Language,数据操纵语言)的书写规范。DML是指SELECT、UPDATE、INSERT、DELETE四类操作。一些有用的规范包括:1)INSERT语句必须列出字段名;2)DELETE、UPDATE语句必须带WHERE条件;3)除测试语句之外,在正式的脚本中不能使用SELECT * FROM语句,必须列出所要查找的字段,即使是返回所有字段;4)在大批量插入、更新和删除数据时,要分批提交;5)在脚本中要谨慎使用DROP TABLE命令。

第八章“数据库的维护规则”为数据库的日常维护提供了指导和建议。为了保证数据库的平稳运行,在日常工作中必须为数据库做一些基本的维护工作。一些有用的维护规则包括:1)对数据库必须定期进行全量备份;2)对数据库定期进行数据清理,清理前必须完成备份操作;3)定期巡检数据库任务的运行结果日志和数据库最大可用空间。

看完了这个《数据库编程规范》文档,代是雄的收获同样有三:1)数据库编程语言(SQL)同普通的编程语言(如:C语言、JAVA等)一样,也有自己的编写规范;2)对于数据库编程,开发人员不只是要了解相关的编程语言,还要了解数据库的运行原理,还要了解数据库的维护规则,也还要对数据库硬件有所了解;3)由于很多产品相关的重要数据都是放在数据库中的,因此在对数据进行操作的时候要格外小心,不要随意更新或删除一些重要表中的数据。

时间: 2025-01-01 15:27:55

入职学习(3)--一个程序员的成长史(23)的相关文章

主人公的出场—一个程序员的成长史(1)

        (大家好,从今天起,我的微信公众号(logiczhou)会连续推送<窗内窗外-一个程序员的成长史>系列.本系列以我本人从学校到职场的经历为原型,同时结合了我对软件开发工作.程序员的学习和生活的认识和感悟,欢迎大家阅读.你的点赞和支持是我写作的动力.下面是本系列的第一篇文章,让我们跟随主人公代是雄的脚步一起去体验程序员生活吧!)         翻开日历,已是2012年的4月.代是雄,中国一个普通高校的的硕士研究生,就要毕业了.         回首自己的在校的学习生涯,代是雄感

“一个程序员的成长史”系列答读者问(1)

"一个程序员的成长史"系列文章已经断断续续写了一年多的时间了,现在已经更新到第16篇了.在每一篇文章发布之后,总会有一些读者通过博客留言.微博.微信.QQ等方式发表他们的意见,在此,我对大家的支持表示感谢. 本系列更新至今,我想就一些读者常见的问题来做一下系统的答复.我希望大家能够一如既往地支持本人的写作,能够将"一个程序员的成长史"系列文章推荐给身边的人,让更多的人来了解程序员的工作与生活. 问题一:请问本系列文章的主人公代是雄就是作者本人吗? 答:不全是.主人公

毕业典礼—一个程序员的成长史(4)

今天就要举行毕业典礼了,每个人的脸上都洋溢着甜美的笑容.是啊,三年之前选择读研的人,哪个不是为了今天呢?哪个不是为了想要拿到这张文凭呢? 代是雄他们宿舍的人很早就起来了,因为昨天已经约好了今天要一起去照毕业照.研究生三年下来,同宿舍的人之间已经结下了深厚的友谊.代是雄他们宿舍室友五人,来自五个不同的地方.代是雄本人来自重庆,前面提到的小郭和小林同学分别来自四川和福建,另外两位室友小许和小李同学分别来自江苏常州和南京.小许同学算是他们五人中最时尚的了,在代是雄还不知道苹果为何物时,小许同学便用上了

入职学习(6)--一个程序员的成长史(26)

代是雄一直等着唐师傅的答复,可得到的却是一份开发人员常用的软件工具的清单.唐师傅说,"工欲善其事,必先利其器",从代是雄对之前所提问题的回答来看,他觉得代是雄的基础还不错,可以开始通过阅读实际的程序代码来学习了,但还有一个预备工作就是安装软件工具.听了唐师傅的评价之后,代是雄的心里美滋滋的,觉得自己正在踏入软件开发的门槛. 代是雄看到这份软件清单包含了如下这些软件:Microsoft Visual C++ 6.0.Source Insight.Notepad++.Araxis Merg

入职学习(5)--一个程序员的成长史(25)

一个短暂的周末结束了,代是雄带着意犹未尽的心情早早地来到了公司.自从给唐师傅反馈了自己学习<C语言编程规范>和<数据库编程规范>的学习心得之后,代是雄一直没有收到唐师傅的下一步的学习计划,因此他一直惦记着这件事,想主动询问唐师傅,又不知道这样做是否合适.很多刚进入职场的人都会有这个问题,就是不知道主动向指导老师询问学习计划是否恰当.实际上,在工作中,我们要发挥自己的主观能动性,自己的任何问题都要尽快反馈出来,这样才能让指导老师知道大致的学习情况,才能安排下一步的学习和工作计划. 正

初入开发组(2)--一个程序员的成长史(17)

在代是雄的殷切期盼之下,在张工蜗牛般的工作速度之下,操作系统终于安装好了.系统装好之后,代是雄看了一下,发现在Win7已经很流行的2012年,张工居然给他安装的是XP系统.于是,代是雄随口问了一句:"张工,麻烦再确认一下呢,是给我安装的Windows XP吗?" "没错,是这个系统."张工说话的时候也没有看着代是雄,而是只顾忙自己的. "现在是不是应该安装Win7呢?在学校的时候,大部分同学就已经在用Win7了,我那个2009年买的电脑都是安装的Win7.

初入开发组(3)--一个程序员的成长史(18)

在去食堂的路上,代是雄回忆了一下,自己从初中便开始住校,那时一日三餐便是在食堂里面解决的,高中是如此,大学也基本如此.这样算下来,代是雄和食堂已经打了十几年的交道了."这个食堂会不会像学校的食堂那样,饭菜很难吃呢?"代是雄在心里想到. 进入食堂之后,代是雄左右看了一下,这个食堂的布局和之前自己所见过的食堂差不多,也是几个大的窗口用于卖主食,两个小的窗口用于卖面点.由于代是雄去得比较晚,现在每个窗口前面都排起了长队.代是雄排了将近五分钟的队才打到饭,这期间他没有看到有插队的人,看来,程序

初入开发组(5)--一个程序员的成长史(20)

解决完了肚子的问题,代是雄又回到了座位上,继续翻看那本他好几次试图翻看的<C程序设计>.这次,代是雄还是未能如愿,正在准备阅读第一页的时候,邹总又走了过来,叫代是雄和另外一位员工到他的位置上去一下. 看到代是雄他们过来了,邹总从旁边的座位上搬了两把椅子过来,让他们两人坐下.坐定之后,邹总对代是雄说:"这位是我们组的资深员工唐国大,他是一位非常优秀的软件开发工程师,我准备指派他做你的指导老师,你可以叫他唐师傅了."听了邹总的话之后,代是雄马上回过头去,恭恭敬敬地叫了一声&qu

初入开发组(1)--一个程序员的成长史(16)

也许是昨天晚上睡得早,今天代是雄起了个大早.在外面吃了点包子稀饭之后,便坐着公交车来到了公司.公交车还是一如既往的拥挤,代是雄一路上都是站着过来的,对于长期在大城市上班的人来说,大家都已经习惯了. 来到公司的大门口,代是雄发现很多人都是坐班车来上班的.下了班车之后,有些人又往另一个方向走去.代是雄放眼望去,才知道他们去食堂了.对于像Z公司这样的大公司来说,在每个研发中心都设立了食堂,提供早中晚三餐.这样,很多人就不用早起在家里面做早饭了,睡醒之后到公司吃饭更方便.代是雄决定从明天开始,自己也直接