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

简介: 看完了《C语言编程规范》,代是雄接着看《数据库编程规范》。之前赖科长和邹总都说过,本项目组开发主要涉及到的技术就是C语言和数据库,既然有了C语言的编程规范,那么就会有对应的数据库的编程规范。

看完了《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)由于很多产品相关的重要数据都是放在数据库中的,因此在对数据进行操作的时候要格外小心,不要随意更新或删除一些重要表中的数据。

目录
相关文章
|
程序员 开发工具 C++
入职学习(6)--一个程序员的成长史(26)
代是雄一直等着唐师傅的答复,可得到的却是一份开发人员常用的软件工具的清单。唐师傅说,“工欲善其事,必先利其器”,从代是雄对之前所提问题的回答来看,他觉得代是雄的基础还不错,可以开始通过阅读实际的程序代码来学习了,但还有一个预备工作就是安装软件工具。
1251 0
|
程序员
入职学习(1)--一个程序员的成长史(21)
看到邹总发的邮件之后,唐师傅马上在公司的内部即时通讯工具zQQ上给代是雄发了一个消息,问他对于计算机的基础知识掌握得怎样。
1186 0
|
程序员 C语言 开发者
入职学习(2)--一个程序员的成长史(22)
看了代是雄对这几个问题的回复之后,唐师傅叫代是雄先熟悉一下办公的电脑及一些办事流程,他要找一些资料作为培训计划中的材料。
1136 0
|
程序员
入职学习(4)--一个程序员的成长史(24)
看完了两份规范文档,代是雄将学习心得写成了一个Word文档发送给了唐师傅。在这个文档中,代是雄首先将规范中的一些要点罗列了出来,然后说了一下自己对于编码规范的认识。
1354 0
面试入职工作感悟:在阿里的那些风花雪月的日子
为什么来阿里?听说阿里钱多,所以我就来了; 听说阿里企业文化很好,所以我就来了;看到马云这么帅,所以我就来了; 接到猎头电话,所以我就来了; 我也不知道,糊哩糊涂的我就来了。
6151 0
|
程序员 iOS开发
毕业典礼—一个程序员的成长史(4)
今天就要举行毕业典礼了,每个人的脸上都洋溢着甜美的笑容。是啊,三年之前选择读研的人,哪个不是为了今天呢?哪个不是为了想要拿到这张文凭呢? 代是雄他们宿舍的人很早就起来了,因为昨天已经约好了今天要一起去照毕业照。
1087 0
|
程序员
上班之前的“踩点”--一个程序员的成长史(9)
按照之前的约定,代是雄本来应该是5月23号上午去报道的,但是就在5月22号的下午,Z公司重庆这边的负责办理员工入职的李Sir打电话说他第二天上午要开会,让代是雄下午再去办理入职手续。
1296 0
|
6月前
|
人工智能 架构师 NoSQL
24岁程序媛,二战考研失利、三无人员 ==> 最佳新人、优秀个人,讲讲我的技术成长之路
能力、格局、谋略、远见、耐心。灵魂的欲望是命运的先知,希望永远自信、洒脱、松弛、明媚、张扬;追随自己的内心、以喜欢的方式、往正确的方向前行,永远在路上,我甘之如饴! 持续精进Java领域相关技术,包括微服务、高并发、高可用、分布式、集群等等;希望能接触到更多更大的优质项目,逐渐成长为一名具备全栈思维的架构师,既能深入理解底层技术,又能把控全局架构;抽时间了解学习Go语言、人工智能、大模型等领域。 在探索中明晰后续的发展方向,形成自己的一套体系,成为主管、管理层乃至更高,不希望自己的上限只是程序员。
|
机器学习/深度学习 架构师 Java
每位程序员都应该有危机感,高薪不会从天而降!
30岁现象人人都明白,但要给出一个定义并不容易。列举几个表现,也许你会觉得心有戚戚焉。 面临职业瓶颈,程序写不动,上升又困难。 薪水较高,加班变少,后浪追前浪,面临失业压力;生活压力剧增,不敢跳槽; 招聘程序员年龄限制在30岁以下成为行业潜规则,跳槽困难。
1723 0