附件2:
《中国药典》三部注释模板
1. 细菌类制品注释模板——皮内注射用卡介苗
2. 病毒类制品注释模板——流感疫苗
3. 治疗类制品注释模板1——人血白蛋白
4. 治疗类制品注释模板2——注射用重组人干扰素α1b
5. 体外诊断类制品模板——人类免疫缺陷病毒抗体诊断试剂盒
皮内注射用卡介苗
卡介苗是一种活的、减毒牛型结核分枝杆菌制成的疫苗,通过人工方法接种于人体,使未受结核菌感染的人体产生一次轻微的没有临床危险的原发感染,从而产生一定特异性免疫力,当人体再次感染自然结核菌时,可以限制细菌的生长繁殖,减少体内结核菌的数量而起到预防结核病的作用,对儿童原发性结核病、血行播散性结核病及结核性脑膜炎有显著的预防效果。
1901年,法国科学家Nocard从患结核性乳腺炎的奶牛身上分离到一株强毒性牛型结核杆菌,后经法国医生卡默特(A.Calmette)和兽医介兰(C.Guerin)在含5%甘油牛胆汁的马铃薯培养基培养,发现牛型结核杆菌毒力逐渐降低,该结果于1907年发表。此后持续13年,经过230次的连续传代,在1921年动物实验结果证明这株牛型结核杆菌失去了毒力,该菌感染牛、豚鼠、小鼠、猴和家兔都不能使其发病,但能产生免疫力,该菌株达到了疫苗菌株的标准,将其制成疫苗,1921年7月1日疫苗首次应用于人类,经过几年的时间证明其预防结核病安全、有效,于1924年在全球应用推广,1928年法国召开国家科学大会为纪念卡介二氏的功劳,将该菌株制备的疫苗定名为卡介苗(bacelle Calmette Guerin BCG )。
在二十世纪五十年代前,卡介苗是通过口服途径免疫的,由于口服卡介苗安全性与有效性都存在缺陷,而改由皮下注射、皮内注射以及皮上划痕的方法进行免疫接种,通过实践结果证实,皮下注射会引起脓肿等局部反应;而皮上划痕的方法难以保证接种的剂量。因而皮内接种卡介苗的方法得以广泛使用,其剂型也由早期的液体改为冻干,大大提高了接种的效果。1974年BCG被纳入WHO扩大免疫计划[1]。至今BCG共约在172个国家、接种40亿人次,每年约1亿儿童接种BCG,是世界上接种人数最多,最安全的疫苗之一。
自原始的卡介苗菌株从巴斯德研究院供应到世界各国后,不同的实验室各自建立了传代方法,多数实验室是在土豆胆汁或土豆苏通培养基上传代与保存,这种传代方式继续应用到40年代中期,在许多地区一直应用到上世纪50、60年代。经过长期传代,在生物学特性、免疫学特性、保护效果和剩余毒力等方面产生显著差异,形成了不同卡介苗亚株。目前世界上主要的卡介苗制品的菌株分别为卡介苗巴斯德株(Pasteur 1173P2)、丹麦1331株(Danish 1331)、日本172株(Tokyo
172-1)、莫斯科株(Moscow 254)、巴西株(Moreau)等,我国卡介苗菌株为Danish
823菌株传代培养而来,名为上海D
2PB
302
PS
II
甲
10
菌株,是我国唯一的卡介苗生产
用菌株。
我国目前所用BCG为冻干皮内注射用BCG,包括10人份疫苗(含卡介菌0.4~0.6mg)和5人份疫苗(含卡介菌0.2~0.3mg)两种规格。主要用于3个月以内的婴儿或PPD皮试阴性儿童预防结核病。目前国内上市仅为5人份疫苗(0.25mg)一种规格。
[ 制造概要]
1、总体工艺情况及国内外发展状况;
BCG作为一种活疫苗,生产过程主要包括菌体培养、菌体收集和洗涤、菌体研磨、定量稀释等。目前,国际上BCG生产主要采用表面浮膜培养和深层培养两种技术。表面浮膜培养是最经典的方法,也是应用最广泛的方法,目前世界上有20多个国家采用该方法。
我国BCG生产采用表膜培养,原液生产工艺可分为菌种接种与培养、菌液收集和研磨两个阶段,大致工艺可概略如下。启开工作种子批菌种,接种于苏通马铃薯培养基,培养一段时间,挑取发育良好的菌膜移种于改良苏通综合培养基表面(S1),37℃-39℃静止培养10-14天,连续在液体苏通培养基上培养2-3次(S2或S3),收集S2或S3菌膜制成100mg/ml菌悬液,取适量菌悬液接种入苏通培养基中(S纱),37℃-39℃培养10-14天,在液体表面逐渐形成菌膜即为纱膜。用S纱在苏通培养基上传代2-3次,成为纱膜第2代或第3代,培养8-12天的第2代或第3代纱膜可用于制备BCG。菌种自启开至最终收获物传代代数不能超过12代,每代培养结束后,应逐瓶检查,若有污染、湿膜、浑浊等情况应废弃[2]。
收集菌膜压干后称湿重,移入盛有不锈钢珠瓶内,钢珠与菌体的比例应根据研磨机转速控制在一适宜的范围,并尽可能在低温下研磨,或用手工研磨,加入适量无致敏原稳定剂稀释成一定浓度的BCG菌体原液。对BCG原液进行纯菌检查和浓度测定,向原液中加入稳定剂,制成1mg/ml或0.5mg/ml半成品。对半成品进行纯菌检查、浓度测定、沉降率测定、活菌数测定及活力测定,然后分装冻干,即为BCG成品[2,]。
英国、瑞士和荷兰等国采用深层培养技术制备BCG。将冻干菌种开启重溶后
种入改良罗氏鸡蛋培养基表面,在罗氏培养基上至少传2代,第3代在液体Dubos 培养基中深层培养,液体培养基中通常需要加Tween80或Triton WR1339。卡介菌在液体培养基中呈均匀分散的生长。然后离心收集菌体、洗涤、再离心集菌,加保护液,制成所需浓度的BCG。
2、关键工艺步骤原理及控制条件;
疫苗的质量安全、有效和一致性,除了依赖于对疫苗的全面检定,更重要的生产过程中科学、严格的质量控制。BCG生产过程中的质量控制主要从如下几方面进行。
种子批的质量控制
历史上曾因BCG生产用菌种错误出现严重不良反应的的深刻教训,严控生产用菌种十分重要。我国目前使用D2 PB302种子批作为BCG生产用菌种,严禁使用通过动物传代的菌种制造BCG。
生产用菌种采用种子批系统,原始种子批样验明其记录、历史、来源、和生物学特性。从原代种子批传代、扩增后冻存保存为主种子批。从主种子批制备工作种子批。主种子批核工作种子批得各种特性应与原始种子批一致。BCG种子批生产前应作严格检定,检定合格后方可用于生产,工作种子批启开至菌体收集传代应不超过12代。主要从以下几方面进行BCG生产用种子批的质量控制。
①培养特性
BCG在苏通培养基上经37~39℃培养,生长良好、抗酸染色为阳性。在苏通马铃薯培养基上培养的卡介菌应是干皱成团略呈浅黄色。在牛胆汁马铃薯培养基上为浅灰色黏膏状菌苔。在鸡蛋培养基上有突起的皱型和扩散型两类菌溶,且带浅黄色。在苏通培养基上卡介菌应浮于表面,为多皱、微带黄色的菌膜。
②毒力试验
用结核菌素纯蛋白衍生物(TB-PPD)皮肤试验阴性、体重300~400g的同性豚鼠4只,各腹腔注射1ml菌液(5mg/ml),每周称体重,观察5周动物体重不应减轻;同时解剖检查,大网膜上可出现脓疱,肠系膜淋巴结及脾可能肿大,肝及其他脏器应无肉眼可见的病变。
③无有毒分枝杆菌试验
用TB-PPD皮肤试验阴性的同性豚鼠6只,于股内侧皮下各注射1ml浓度为
10mg/ml菌液,注射后豚鼠体重不应降低,6周和3个月时分别解剖3只豚鼠,各脏器应无肉眼可见的结核病变;若有可疑病灶,应做涂片和组织切片检查,并将部分病灶磨碎,加少量生理氯化钠溶液混匀后,皮下注射2只豚鼠,若证实系结核病变,该菌种即应废弃;当试验未满3个月时,豚鼠死亡则应解剖检查,若有可疑病灶,即按上述方法进行,若证实系结核病变,该菌种应废弃;若证实属非特异性死亡,且豚鼠死亡1只以上应复试。
④免疫力试验
用种子批菌种制备疫苗,经4只300~400g豚鼠分别皮下注射0.2ml疫苗(1/10人用剂量),对照组注射0.2ml生理氯化钠溶液。豚鼠免疫后4~5周,经皮下攻击103~104强毒人型结核分枝杆菌,攻击后5~6周解剖动物,免疫组与对照组动物的病变指数及脾脏毒菌分离数的对数值应有显著差异。
菌种培养和传代中的质量控制
卡介苗作为一种减毒活疫苗,菌种的安全、可靠至关重要。首先,必须严格按照种子批管理系统,启用和保存菌种,严禁使用通过动物传代的菌种制造BCG。其次,菌种传代和培养的质量高低直接影响疫苗质量。我国BCG生产采用表膜培养技术,培养过程中,表面菌膜的质量至关重要,通常液体表面形成生长快、薄而多绉并富于弹性的菌膜,适合扩大传代。冻干菌种在马铃薯培养基上培养获得的菌种如果不能及时传代,可于2-8℃保存,但保存时间不得超过2个月。生产过程中,为了简化程序和降低工作量,可将传代过程中获得的纱膜移入冷藏室中保存,下次生产时可直接将纱膜接种入苏通培养基中,而不必每次生产都用马铃薯培养基获取第一代菌膜。但纱膜在冷藏室的保存时间应控制在2个月以内,并且每代纱膜均需作纯菌检查。在传代过程中,每代培养结束后,均需逐瓶检查,若有污染、湿膜、浑浊等情况应予废弃。另外,应确保菌种自启开至最终收获物传代代数不能超过12代,以保证疫苗的质量稳定。菌种培养过程中应将温度控制在37-39℃,培养时间也应严格控制,通常,纱膜接入液体培养基中,培养时间应控制在14-21天,液体培养基菌膜直接接入液体培养基,只需培养6-8天即可,用于制备纱膜或BCG原液的菌膜培养时间控制在8-12天。
培养基的质量控制
卡介苗生产用培养基为苏通马铃薯培养基、胆汁马铃薯培养基或液体苏通培
养基。通常,卡介菌培养第一代,即冻干菌种的复苏,使用苏通-马铃薯培养基或胆汁马铃薯培养基,以后各代培养均使用液体苏通培养基。其中的氮源有必要进行控制,通常将液体培养菌膜直接转接液体培养基时,待接种培养基使用谷氨酸钠作为氮源,其他各代培养多用天冬素作为氮源。
原液收集和合并(菌体收集和研磨)中的质量控制
培养结束后,应逐瓶检查,若有污染、湿膜、浑浊等情况应废弃。收集菌膜压干,移入盛有不锈钢珠瓶内,钢珠与菌体的比例应根据研磨机转速控制在一适宜的范围,并尽可能在低温下研磨。加入适量无致敏原稳定剂稀释,制成原液。
由于水分压干程度不同,同样湿重下的疫苗所含实际活菌量不同,进而影响疫苗浓度,故在对收集的菌膜进行压干去除水分时,压力控制是必要的,通常根据收集的菌量调整压力。同样,菌体经研磨后获得大小不一的菌团,菌团大小可能和临床上BCG的不良反应有关,通常菌团越大,越易引起局部反应并可在淋巴结处滞留而引起强反应,因此,压干的菌块移入装有不锈钢株的球瓶内,钢珠与菌体的比例应根据研磨机转速控制在适宜范围,研磨时间也应根据菌量确定。同时应对菌液均匀度进行监测,以保证生产过程的一致性。总之,在菌体收集、压干和研磨过程中中,应对压力和研磨转速及时间设计相应的过程参数并经充分验证。
[检定]
按照原液检定,半成品检定和成品检定分别进行描述,说明检定项目设定的原则、意义;
1、原液检定
原液检定有两个项目,分别为纯菌检查和浓度测定。
⑴纯菌检查按现行版药典无菌检查法进行,生长物做涂片镜检,不得有杂菌。纯菌试验是疫苗的安全性试验之一,保证疫苗制品不含杂菌。
⑵浓度测定用国家药品检定机构分发的 1 mg/ml的冻干卡介苗参考比浊标准,以分光光度法测定原液浓度,浓度范围为60-120mg/ml。
原液浓度=(样品A
580nm /标准品A
580nm
)×稀释倍数×1 mg/ml。
浓度测定的设定是为了确保疫苗有效成分的含量,并监测生产过程的一致性。
2、半成品检定
半成品检定有5个项目,分别为纯菌检查、浓度测定、沉降率测定、活菌数测定、活力测定。
⑴本成品纯菌检查同原液的纯菌检查。
⑵半成品浓度测定同原液的浓度测定,应不超过配制浓度的110%。
半成品浓度=(半成品A
580nm /标准品A
580nm
)×1 mg/ml
⑶沉降率测定,可以和浓度测定同时进行,将浓度测定后的半成品室温静置2小时,再检测A
580nm
,计算静置前后2小时吸光度值的变化,应不大于20%。
通过检测沉降率,可以了解菌液的均匀性及菌团的大小,从而控制制品的质量,同时也监测生产过程的一致性。
沉降率=(半成品A
580nm -2小时后的半成品A
580nm
)/半成品A
580nm
×100%。
⑷活菌数测定,半成品活菌数经冻干后有显著性下降,为了保证冻干后成品的活菌数,因此每批半成品均需做冻干前活菌计数,半成品活菌数应不低于1.0×107CFU/mg。
⑸活力测定,采用XTT法测定,将相同浓度的半成品与检测参考品100μl/孔加入到培养板中,同时加入25μlXTT与中间电子载体混合物,于37-39℃避光培养24小时,检测A4
50nm
,半成品的吸光度值应大于参考品的吸光度值。
卡介苗生产过程中从半成品到成品的周期较短,而常规的活菌数测定耗时长,需要4-5周时间,通过XTT法可以快速检测卡介苗活力,从而可以了解半成品中活菌含量。
3、成品检定
成品检定共有9个项目,除装量差异、水分测定、活菌数测定和热稳定性试,验外,按标示量加入灭菌注射用水,复溶后进行其余各项检定。
⑴生物学与物理检定
每批疫苗须做抗酸染色涂片检查,抗酸染色应是抗酸杆菌,细菌形态与特性符合卡介菌特征;制品外观为白色疏松体或粉末状, 残留水分不高于 3.0%,加入稀释液后,应于3分钟内完全溶解;装量差异限度为±15%。
⑵安全性检定
①.纯菌试验
按现行版药典无菌检查法进行,观察14天,无污染其他杂菌。
②.无有毒分枝杆菌试验
无有毒分枝杆菌试验是卡介苗制品重要的安全性试验,因为结核杆菌其形态与培养特性与卡介苗基本一致,如果污染该菌用常规微生物方法无法区分,只能根据结核杆菌与卡介苗对豚鼠的致病力的差异加以区别。
同一代菌种生产的各批冻干卡介苗应抽1个亚批做安全试验,每间隔两个月应至少抽1亚批进行毒分枝杆菌试验。用PPD皮肤试验(10IU)阴性,体重300~400g的同性健康豚鼠6只,每只皮下注射相当于50人份的冻干皮内注射用卡介苗,每2周称重一次,观察6周,动物体重不应减轻;同时解剖检查每只动物,若肝、脾、肺等脏器无结核病变,该批疫苗即为合格。
⑶效力检定
①活菌数与热稳定性试验
卡介苗的效力与其活菌数密切相关,疫苗中含有足够数量的活菌是保证疫苗免疫成功发挥预防作用的重要因素,因此活菌数试验是卡介苗制品重要的质控指标。同时卡介苗是活菌疫苗,活菌易受到环境温度的影响而导致活菌数改变,进而影响疫苗的质量,因此对制品进行热稳定性试验,以评价疫苗的稳定性。
每批成品抽取5支疫苗稀释并混合后进行活菌数测定,培养4周后活菌数应在1.0×106CFU/mg以上。同时取冻干后疫苗放置37℃28天进行加速破坏试验,测定放置后样品的活菌数,与4℃保存的同一批疫苗同时进行比较,计算活存的百分率。加温放置制品的活菌数应不低于冷藏疫苗的25%,并不得低于 2.5×105CFU/mg。活菌数与热稳定性试验可以同时进行。
②.动物效力测定
同一代菌种生产的各批冻干卡介苗应抽1个亚批做效力测定,每间隔两个月应至少抽1亚批进行效力试验。用结素试验(PPD 10IU)阴性,体重300~400g 的同性健康豚鼠4只,每只皮下注射0.5mg的冻干皮内注射用卡介苗,注射5周后皮内注射PPD 10IU/0.2ml,注射PPD24小时后观察结果,局部硬结反应直径应不小于5mm。
PPD 试验能反应卡介苗接种后机体产生免疫反应的情况,通常情况下,只有免疫成功,才能出现PPD 反应,因此质控中的动物效力测定,是反应卡介苗制
品免疫力的指标。
⑷稀释剂
稀释剂为灭菌注射用水,应符合现行版药典的相关规定。
4、历版药典标准变化的情况、原因及与国外要求的比较;
我国皮内注射用卡介苗的质量标准是规程根据世界卫生组织卡介苗标准制定,内容涵盖了WHO卡介苗规程所有内容,但WHO标准对浓度、均匀度项目缺少有效的质控指标,对临床使用存在一定的安全隐患,尤其近年来卡介苗不良反应增加,而其是否与制品本身有关缺少依据。因此我国在2010版药典中增加半成品沉降率的质控项目,目的是为了监测生产过程的一致性,从而保证疫苗的质量。同时由于半成品至冻干的周期很短,也增加了XTT法快速检测活菌活力质控项目;正在修订的WHO 卡介苗标准在成品项下有快速检测卡介苗活菌数方法,为ATP法,两种检测方法,目的都是为了快速了解制品中卡介苗的活菌含量。
我国卡介苗质量标准与WHO规程的主要区别在是热稳定项目标准不同,我国质量标准规定加温放置制品的活菌数应由原来标准不低于冷藏疫苗的20%,提高到25%,并由不得低于2.0×105CFU/mg,提高到不得低于2.5×105CFU/mg。而由于不同卡介苗亚株制备的疫苗制品热稳定不同,WHO的卡介苗热稳定标准仍然为不低于冷藏疫苗的20%,并由不得低于2.0×105CFU/mg。
5、国内外相关标准发展变化的趋势。
正在修订的WHO 卡介苗规程中包涵了以下修改内容
⑴工作种子批(Working seed lot),规定从主代种子批尽量减少传代次数制备工作种子批,如3-4代。而我国对从主代种子批制备工作种子批未规定传代代次,实际操作中一般维持在4代内。
⑵单次收获物(Single harvests),规定从主代种子批到单次收获物传代代次不得超过12代。我国规定为从工作种子批到菌体收集传代不得超过12代。
⑶种子批检定(Tests on seed lot),补充用分子生物学方法特异性鉴别卡介苗亚株试验。
⑷半成品浓度测定 (Test for bacterial conceration),欧洲药典中半成品无浓度检测项目,在成品中检测该项。而我国和WHO规程相似,目前标准规定在半成品项下进行浓度检测,成品不检测。
⑸成品鉴别试验(Identity test),成品鉴别试验能证明制品为卡介苗BCG ,除了用抗酸染色涂片法检查细菌的形态与特性及固体培养基菌落特点符合卡介菌特征,还可应用核酸扩增技术如PCR法来特异性的鉴别不同的卡介苗亚株。英国生物制品标准和检定研究所(NIBSC)设计了多重PCR法[3],通过检测不同卡介苗的遗传学特性来特异性的鉴别卡介苗及不同的亚株。检测目标包括卡介苗基因组的缺失区RD1、RD2、RD 8、RD 14、RD 16区及基因座SenX3-RenX3上的串联重复序列数。其中RD1是卡介苗基因组的特异缺失区,而存在于结核分枝杆菌复合群中,包括强毒的人结核分枝杆菌及牛结核分枝杆菌,通过检测RD1的存在与否即可即可特异性鉴别BCG。不同卡介亚株的RD2、RD 8、RD14、RD16区及基因座SenX3-RenX3上的串联重复序列数不同,PCR扩增后,通过凝胶电泳指纹图谱区分卡介苗与有毒分枝杆菌及不同的卡介苗亚株。不同的卡介苗亚株有不同的凝胶电泳指纹图谱[3],上述多重PCR鉴别实验方法已经过包括中国在内的世界上八个独立实验室的验证,旨在替代目前的抗酸染色鉴别实验方法[4]。
我国药典目前仍采用抗酸染色涂片法作为卡介苗鉴别试验的方法。中国食品药品检定研究院已对我国生产用卡介苗菌种的遗传性特性进行了研究,并对传代12代内的产品进行了检测。结果显示我国卡介苗菌种缺失RD1、RD2,不缺失RD8、RD14、RD16、nRD18及RDDenmark/Glaxo,含有一个IS6110插入序列,SenX3-RenX3 基因座有3个串联重复序列[5],并且在12代内都是稳定的[6]。我国卡介苗亚株是由Danish823传代培养而来的,和目前世界上应用较多的Danish1331亚株比较,我国卡介苗亚株不缺失RDDenmark/Glaxo,该区域是目前BCGDanish及BCG Glaxo株的特异缺失区。
另外我国仅有唯一的卡介苗菌株用于生产,不同于世界上其他国家,同时使用不同的卡介苗亚株制品。因此若使用核酸扩增技术PCR法作为特异性的鉴别卡介苗的试验方法,仅采用检测RD1的存在与否及能达到特异鉴别卡介苗制品的目的。
⑹成品无有毒分枝杆菌试验,若在半成品项检测无有毒分枝杆菌试验,且结果合格,在成品项下有可能去掉该项。我国对半成品不进行无有毒分枝杆菌试验检测,对成品进行检测。
无有毒分枝杆菌试验以卡介苗免疫豚鼠后,连续观察6周,实验到期后解剖豚鼠,观察动物脏器是否有结核病变。该方法不但耗时长,而且有动物消耗,不符合节约动物原则和快速检验的需要。鉴于与结核分支杆菌H37Rv、牛型分枝杆菌相比,卡介苗基因组中缺少了编码毒力的基因,如H37Rv RD1区east6和cfp10等基因,检测毒力特异性基因是否存在即可了解分枝杆菌是否为毒性分枝杆菌。这两种基因检测一个即可。中国食品药品检定研究院卡介苗实验室拟用PCR法扩卡介苗是否存在毒力基因来替代动物法,检测指标为east6毒力基因。检测结果显示,有毒的分枝杆菌H37Rv及牛分枝杆菌存在east6基因,可扩增出320bp目的片段,而卡介苗无此基因,则无320bp的扩增条带,通过高浓度琼脂糖凝胶电泳即可以对结果进行鉴别。该方法可在12小时内完成,且用一支0.25mgBCG干粉即可完成检测,灵敏度较高。PCR方法本身的特异性及节省时间、减少动物损耗的优点,说明该方法有替代目前动物法的可能性与可行性。
⑺成品卡介苗活力检测(Test for viability),除了常规通过培养法计数卡介苗菌落形成单位(CFU)来检查卡介苗活菌数,还可采用其他的方法快速检测卡介苗活力,包括生物发光法或其他的生化试验法。
生物发光法是通过检测卡介苗活菌中三磷酸腺苷含量(ATP法)来快速检测卡介苗活力。该方法经过包括中国在内8个不同实验室的验证[7],验证结果显示,该方法可区分4℃与37℃存放4周后样品活菌数的差异,但ATP含量与活菌数相关性较差,还需要进一步验证。分析认为,只有检测出单个细菌中ATP含量,才能将该方法应用于BCG活菌含量的快速检测,目前该方法尚在进一步研究中。
我国目前对半成品进行卡介苗活力快速检测,方法为XTT法,原理为活BCG 在代谢过程中,通过氧化-还原反应将四唑鎓盐(Tetrazolium salt,XTT)还原为可溶性的高色产物甲臢(Formazan),甲臢含量反映了BCG 活菌数量。该方法操作简单,24小时可出结果,不需要特殊仪器。试验结果显示XTT 法能反应BCG 制品中活菌的含量差异,与培养法菌落形成单位(CFU)结果有较好的相关性,可用于BCG 活菌含量的快速检测[8]。
对半成品进行活菌数的快速检测比对成品更有实际应用意义,因为半成品至成品的周期短,不但可以快速了解半成品中的活菌数,还可以监测生产过程的一致性。
卡介苗接种是结核病预防和计划免疫工作内容之一,对预防和减少儿童结核病,特别是结核性脑膜炎、血行播散性结核病的发挥起着重要作用,但是对于青少年和成人保护效果差异较大,不同的人群和不同地区的保护力从0%~80%不等,尤其是对HIV感染者无法接种卡介苗以提供保护。
鉴于以上原因,国内外进行了大量结核新疫苗的研究工作,包括重组卡介苗(rBCG)、DNA疫苗、亚单位疫苗、减毒活疫苗、全菌体灭活疫苗等,希望能够替代或加强卡介苗的保护作用,但到目前为止,结核新疫苗的保护作用并未超过卡介苗,因此尽管卡介苗保护效果差、但还将继续使用,当今结核新疫苗研究方向应该是对不同的人群采用不同的疫苗和免疫策略。
针对新生儿预防结核感染的免疫,可采用初免用加强型疫苗,该疫苗为替代卡介苗的新疫苗,能产生更强保护力, 以降低结核的感染率;
而对于结核病高危人群的预防,可采用初免-加强(Prime- Boost)免疫策略,即初次免疫和加强免疫用不同的疫苗。如初免可用DNA疫苗或亚单位疫苗,加强免疫用BCG、不同载体的DNA疫苗或抗结核药等。此种免疫策略期望达到强于卡介苗的保护效果而预防感染。
另外感染结核菌未发病者为结核潜伏感染人群,机体免疫力一旦低下,潜伏的结核杆菌复燃导致活动性结核病的发生,此类人群用疫苗,是预防已感染者发病的疫苗,是目前结核新疫苗研究的难度与热点,首先面临的是有效筛选出潜伏感染者。以结核杆菌特异性抗原为基础,发展简单、易行、价廉的筛查方法,在我国已经取得一定的进展[9-10]。
我国是结核高负担国家之一,目前结核杆菌感染人群已有5亿,加强对新疫苗研究的投入,实施主动预防、控制已感染者发病,是结核病控制的重要途径。
[参考文献]:
1.Hawgood BJ. Doctor Albert Calmette 1863-1933: founder of antivenomous serotherapy and of
antituberculosis BCG vaccination. Toxicon, 1999; 37(9): 1241-1258.
2.国家药典委员会, 2010版中华人民共和国药典三部,中国医药科技出版社,2010,80-82。
3.Bedwell J, Kairo SK, Behr MA, et al , Identification of substrains of BCG vaccine using
multiplex PCR Vaccine,2001 Feb 28;19(15-16):2146-2651.
4.Markey K, Ho MM, Choudhury B,Report of an international collaborative study to evaluate the
suitability of multiplex PCR as an identity assay for different sub-strains of BCG vaccine.
Vaccine. 2010 Oct 8;28(43):6964-9
5.赵爱华,贾淑珍,寇丽杰,等国内外卡介苗的分子遗传学特性,中国生物制品学杂志,2009
22(5):583-587。
6.赵爱华,乔来艳,贾淑珍,等我国生产用卡介苗的传代稳定性,中国生物制品学杂志,2009
22(11):1102-1104。
7.Ho MM, Markey K, Rigsby P, Report of an International collaborative study to establish the
first WHO reference reagents for BCG vaccines of three different sub-strains. Vaccine. 2011 Jan 10;29(3):512-8.
8.赵爱华,贾淑珍,寇丽杰,等.应用四唑鎓盐(XTT)法快速检测卡介苗活菌含量,中国医药生物技术,
2009,4(1):33-36.
9.徐苗,陈保文,沈小兵,苏城,王国治. 重组Esat-6变态反应原对结核病的早期发现的应用价值,中
国防痨杂志,2004,26(S):36.
10.徐苗,罗永艾,黎友伦,陈保文,沈小兵,苏城,王国治.重组结核分支杆菌11kD蛋白对结核分支杆
菌感染的鉴别作用,中华结核和呼吸杂志,2006,29(11):762-765.
流感病毒裂解疫苗
通用名称:流行性感冒病毒裂解疫苗
英文名称:Influenza Vaciine (Split Virion), Inactivated
汉语拼音:Liugan Bingdu Liejie Yimiao
流行性感冒(以下简称流感)病毒可引起急性呼吸道传染病,其危害性在于传染性强,常引起本病的流行甚至引起世界大流行。目前,接种流感疫苗是预防流感和控制其流行的最有效的措施。国际上普遍现使用的疫苗均为纯化的灭活疫苗,包括流感全病毒灭活疫苗、流感病毒裂解疫苗、流感病毒亚单位疫苗。早期的流感病毒灭活疫苗只是有限的纯化后制成,疫苗接种后全身和局部副反应大。20世纪60年代,超速离心机和色谱技术的应用,研制出真正意义上的纯化全病毒灭活疫苗,尽管接种副反应大副降低,但对于儿童使用时仍出现不良反应。将病毒颗粒裂解后制成的纯化裂解病毒疫苗,接种副反应大大降低。20世纪70-80年代,将病毒裂解后,提纯血凝素(HA)和神经氨酸酶(NA),研制出亚单位疫苗。流感亚单位疫苗接种后虽然不良反应明显降低,但免疫原性不及流感全病毒灭活疫苗。流感减毒喷鼻疫苗已经获得美国FDA批准上市,但使用减毒活疫苗应慎重考虑使用安全的问题,比如疫苗株病毒与野毒病毒株重配产生毒性更强的新型流感病毒,因此这种疫苗只在少数国家有限地使用。新型佐剂疫苗的研发成功提高了流感疫苗对机体的体液免疫反应和细胞免疫反应,美国已经研制成功以MF59水/油乳剂作为佐剂的新型佐剂流感疫苗。
目前,国际上正在加紧研制应用细胞培养生产流感疫苗,提高规模化生产,避免了传统的采用鸡胚技术生产流感疫苗的诸多问题。另外,核蛋白合成肽疫苗、DNA疫苗以及能够预防各种亚型流感病毒,特别是大流感病毒感染通用流感疫苗已成为当前研究的热点。
我国1979年版和1990年版《生物制品规程》均收载了“流行性感冒活疫苗制造及检定规程”,该制品为非经纯化的单价甲型流感减毒活病毒外用鼻喷制剂。2005年版《中国药典》三部开始收载“流感全病毒灭活疫苗”;2010年版《中国药典》三部增加收载了“流感病毒裂解疫苗”。
2008年版欧洲药典(6.0版)收载了“流感全病毒疫苗(鸡胚/细胞培养)”、“流感病毒裂解疫苗”、“流感病毒亚单位疫苗(鸡胚/细胞培养)”、“流感病毒亚单位病毒体疫苗”; 2009年版英国药典收载了“流感病毒裂解疫苗”、“流感病毒亚单位疫苗”、“流感全病毒疫苗”。2010年版美国药典(32版)收载了“流感疫苗”,但其中内容仅为概要性的描述。
一、制造概要
目前季节性流感疫苗生产用病毒株(包括甲型H1N1、H3N2以及B型毒种)由世界卫生组织(WHO)流感参比研究中心推荐和提供、经国家药品管理部门批准后依据批准的生产工艺投产。WHO提供的疫苗生产病毒株均已适应于鸡胚培养,接种鸡胚后可快速大量增殖的病毒用于疫苗生产。目前,国内外现批准上市的流感疫苗均系采用传统的鸡胚培养技术生产。将各型流感病毒分别接种鸡胚尿囊腔后,在适宜的温度下培养适宜的时间,收获含有流感病毒的鸡胚尿囊液、加入适宜浓度的甲醛灭活病毒(病毒灭活也可在纯化后进行),经纯化后,去除大量的鸡胚杂蛋白成分,纯化后的病毒液中加入适宜的裂解剂裂解病毒,裂解后的病毒液采用适宜的方法再次进行纯化,进一步去除鸡胚蛋白成分和流感病毒的核酸RNA等杂质。经除菌过滤后制成单价病毒原液。将制备的三个亚型的病毒原液按标示量的血凝素含量进行混合配制后制成三价流感病毒裂解疫苗。疫苗中可含有防腐剂,用于预防与疫苗株抗原性相同的流感病毒引起的流行性感冒。
二、制造
[生产用鸡胚]
各型流感病毒株在种子批系统建立过程中,毒种传代必须使用来源于SPF鸡群的鸡胚,以最大程度避免种子批制备过程中污染禽外源感染因子,特别是禽白血病病毒和禽腺病毒。由于全球SPF鸡胚的供应远不能满足生产的需要,同时,考虑到疫苗生产工艺中对流感病毒灭活的同时对鸡胚可能引入的潜在外源因子也具有灭活作用,因此,WHO相关指南规定,流感病毒灭活疫苗的生产可使健康鸡群来源的鸡胚。目前,国内外流感灭活疫苗生产普遍遵循这一原则。
疫苗生产使用上通常选用9-11日龄的鸡胚,此阶段胚蛋的尿囊液体积量最大、组织蛋白成分含量相对较低,可获得更多量的病毒液。鸡胚投入生产前,
每枚蛋胚都要应经过灯检筛查,挑选表面清洁无畸形、血管清晰、存活的鸡胚用于生产。由于白色鸡蛋易于进行鸡胚筛查,国内生产用鸡胚通常选择来自“海兰白”、“海兰灰”等品种的鸡群。
【名称和来源】
对于季节流感疫苗而言,生产用毒种通常包括甲型(H1N1、H3N2)和乙型(B型)。流感病毒HA抗原容易发生变异,一般说来,A型流感病毒株普遍在HA上可被保护性抗体识别的区域每年会有3~4个氨基酸的改变,每2~5年,这些突变的积累就引起了先前一个周期的毒株的抗原漂移,从而导致人体通过既往流感疫苗接种或自然感染后产生的免疫不能对新型流感病毒的流行产生保护,因此,WHO建立了遍布全球99个国家的128个流感实验室的全球流感监测网络,根据全球流感病毒流行情况和对流感病毒流行株抗原基因序列分析和比对,以及新型病毒在全球传播的可能性,每年提出建议,对流感疫苗生产用病毒株适时更换。WHO推荐的疫苗株是采用基因重配方式构建的毒力减弱、适合于鸡胚培养、病毒产量相对较高的毒株。WHO于每年的2月份和9月份分别向全球发布北半球、和南半球流感病毒的流行情况,推荐可用于流感疫苗生产的病毒株,并由WHO 流感参比研究中心,包括美国疾病控制与预防中心(CDC)、英国国立研究院(NIBSC)、澳大利亚墨尔本原联邦血清实验室(TGA)和日本国立公共卫生研究院向各国生产企业提供用于季节流感疫苗生产用毒种和检定用抗原参考品和抗体参考品。
对于流感疫苗株的使用,WHO指南中规定,生产用疫苗株应得到国家管理当局的批准;美国药典规定,生产用毒株应由美国公共卫生部推荐并由国家流感专家委员会指定;在我国,生产用疫苗株应具有合法来源,明确毒株的名称、毒种来源的代次以及相关的传代背景资料等,并经国家药品管理部门的批准。
【病毒种子批的建立】
建立疫苗生产用病毒种子批系统的主要目的是为了使生产的不同批次疫苗间最大限度保持质量的一致性、稳定性、可控性和可溯源性。应按照《中国药典》三部通则中“生物制品生产检定用菌毒种管理规程”的要求建立种子批系统。由于流感疫苗生产用毒株是由WHO流感病毒参比中心提供。生产企业应根据WHO流感实验室提供各型毒株的代次,相应建立主种子批和工作种子批。WHO提
供各型疫苗株的代次往往不尽相同、且每年都有新的疫苗株更换,因此流感疫苗不象其他疫苗一样种子批代次相对固定,为此在2005年版药典三部中未对该品种种子批毒种规定限定代次。考虑到流感病毒在扩增复制过程中抗原容易发生改变,所以传代次数过多可能影响到毒株的抗原稳定性,因此,在满足生产需要的前提下,应尽可能使用早代的毒种用于生产。欧洲药典中规定,自批准的重配株或批准的流感病毒分离时的代次至工作种子批毒种的传代不超过15代,生产的疫苗为自工作种子批毒种扩增1代制成。根据目前国内生产企业在获得疫苗株后建立种子批的情况,通常是将来源WHO的疫苗株接种SPF鸡胚连续传1~2代建立主种子批,由主种子批毒种接种SPF鸡胚连续传1~2代建立工作种子批,工作种子批毒种扩增1代制备成疫苗。据此,本版药典三部明确规定,以WHO推荐并提供的流感毒株代次为基础,传代建立主种子批和工作种子批,至成品疫苗病毒总传代不得超过5代。
【种子批检定】
由WHO流感实验室获得的各型流感毒株经扩增后应进行全面检定,以证明该毒株可用于疫苗的生产,检定项目至少应包括鉴别、无菌、支原体检查、病毒滴度、血凝效价以及外源性禽白血病病毒和外源性禽腺病毒等检测,检测合格的毒种建立主种子批。由于种子批建立均采用SPF鸡胚制备,因此主种子批检定合格的工作种子批可不进行禽特异性外源因子的检查,包括禽白血病病毒和禽腺病毒,但至少应进行鉴别、无菌、支原体检查、病毒滴度、血凝效价等项目的检查。
1. 鉴别试验
鉴别试验常用方法是血凝抑制试验。因为流感病毒颗粒表面的HA蛋白含有识别和结合宿主细胞表面受体的结构。流感病毒的受体为含唾液酸的糖蛋白或脂蛋白,一些哺乳动物和禽的红细胞表面均含有此两种成分,能被流感病毒所识别和结合,并发生红细胞凝集现象。如果在病毒液中加入针对流感病毒血凝素的特异性免疫血清,可抑制红细胞凝集现象的出现,通过特异性免疫血清对病毒血凝现象的抑制,可对流感毒进行鉴别。试验用红细胞通常为1%的鸡红细胞,为所作试验的特异性,检测的同时做所用免疫血清对照、红细胞对照和抗原对照。
鉴别试验还可采用单向免疫扩散试验(SRID)检测,即将含有一定量抗流感病毒抗体参考品的1.5%琼脂糖凝胶板上打孔,将抗原参考品对照和供试品分别加入到相应的孔内,供试品与相应(亚)型特异性抗体参考品产生相应沉淀环,结果证明其抗原性与推荐的病毒株相一致。试验使用的抗原参考品和抗体参考品来源于WHO流感参比研究中心。
2. 病毒滴度
2010年版《中国药典》三部种子批检定中增加了病毒滴度的检测,该检测可对病毒在鸡胚中的扩增的病毒量进行检查,以评价疫苗株在鸡胚中的复制能力,同时也是有效确定生产疫苗时工作种子批的稀释依据,可控制每枚鸡胚所接受的病毒量。
)检查,将毒种10倍系列稀释,每个稀释采用半数鸡胚感染剂量法(EID
50
度接种10个鸡胚尿囊腔,每胚0.2ml。培养48-72小时后筛选活胚,冷胚后取尿囊液进行红细胞凝集试验,红细胞为1%的鸡红细胞。根据检测结果计算病毒滴度,应不低于6.5LgEID50/ml。
3. 血凝滴度
血凝滴度检测和病毒滴度检查同样可对流感病毒的复制能力进行评价,由于流感疫苗主要以血凝素含量评价做为效力指标,因此血凝效价的测定和结果对于评估疫苗生产毒种而言比病毒滴度的测定更客观、可信和重要。
检测方法是取毒种进行系列稀释(一般为10倍系列稀释),将每个稀释度的病毒液与等量的1%鸡红细胞悬液混合于20~25℃放置60分钟,观察红细胞凝集相,以病毒最高稀释度为判定终点,血凝效价应不低于1:160。
4. 特异性禽外源因子检查
包括禽白血病病毒和禽腺病毒检测。将供试品与分别相应(亚)型的流感病毒特异性性免疫血清中和后,接种敏感细胞,经培养后采用酶联免疫法或血清学方法进行检查,结果应为阴性。
【毒种保存】
一般情况下,主种子批毒种应冻干于-20℃以下长期保存,以保证种子批的性状稳定。一旦第二年WHO公布的流感疫苗株的一株或几株不变更,则该冻干毒种由于已经过全部检定并经前一年疫苗生产的实践验证为安全有效,可重新制
备工作种子批用于当年流感疫苗的生产,无需重新向WHO索取相应的疫苗株。但如果不考虑该因素,由于流感疫苗生产用毒种经常更换,可能来年的毒种与今年完全不一致,因此主种子批毒种也不一定需要冻干,制备的液体主种子批保存于-60℃以下也不失为明智之举。工作种子批由于使用量较大,且往往当年使用,则一般均以液体毒种经检定符合规定后-60℃以下冻存。
【单价病毒原液】
单价病毒原液制备的主要工艺步骤包括:将毒种接种鸡胚尿囊腔、培养、病毒收获、纯化,灭活、裂解、再纯化等组成。
1. 病毒接种、培养
为保证生产工艺的一致性,生产企业应当依据本企业制备的各型流感病毒工作种子批的病毒滴度,根据每一鸡胚应接种的病毒量和体积计算,稀释成每ml 单位内的病毒滴度,并应遵守同一工作种子批以同一病毒量接种鸡胚。由于疫苗生产使用健康鸡群来源的鸡胚,因此疫苗生产工艺过程无法保证完全无菌状态,为最大限度控制培养过程中的微生物的污染,毒种稀释液中可加入最低有效抑菌浓度的抗生素。对于在毒种稀释液中使用抗生素的,应按2010年版《中国药典》三部的有关规定进行检测,生产工艺其他阶段不得加入任何抗生素。
稀释后的毒种接种鸡胚尿囊腔,我国生产企业现行接种鸡胚的工艺有机械全自动或人工接种两种方式,病毒接种的关键在于接种部位的正确性,应当正确接种在尿囊腔中,如接种不正确而破坏尿囊腔可导致鸡胚死亡。每胚接种病毒液0.2ml,通常情况下,于33~35o C下进行培养,由于不同型别的病毒在鸡胚中的复制能力不同,因此培养时间亦有差异,不同型别的流感病毒培养时间一般约为48-72小时。
2. 尿囊液收获
培养到期后,经灯检筛选活的鸡胚置2-8o C 过夜或16小时左右冷胚后开始收获尿囊液,冷胚的目的是使鸡胚减少活动度并使鸡胚遇冷后血管收缩,易于收集尿囊液。目前收获方式由机械全自动、半自动以及人工收获不同方法。使用机械化自动收获尿囊液的量较人工收获方法高。严格剔除死胚和控制收获器具的消毒是有效降低尿囊液细菌内毒素含量的关键。每个收集容器中的尿囊液应逐一取样进行检定。
3. 尿囊收获液检定
3.1 微生物限度
鉴于流感疫苗采用健康鸡群来源的鸡胚生产,生产工艺中间产物容易污染细菌,为最大程度降低有此造成的潜在风险,生产工艺的各中间环节进行应有效控制微生物的污染程度,加强污染的监控。鉴于此,2010年版《中国药典》三部新增了尿囊收获液检定,包括微生物限度检查以及特定病原微生物检查。微生物限度检查可采用2010年版药典三部附录的“微生物限度检查法”中“细菌、霉菌及酵母菌计数”法检查,即用将适当稀释的供试品接种到适宜的培养基上培养,培养到期后进行菌落计数并根据供试品稀释倍数计算出供试品中的总菌数。也可以采用其他适宜的检测方法作为辅助方法,对尿囊液的污染程度进行有效的控制。鸡胚中污染沙门氏菌,将对人体产生潜在的危害,因此,对于沙门氏菌等致病菌应进行特异性检测。本版《中国药典》三部“微生物限度检查”中“控制菌检查法”中,载明了采用培养基与生化反应培养结合的方式检测沙门氏菌。在充分验证方法一致性的前提下,也可采用经批准的沙门氏菌检测试剂盒进行快速筛查。
4. 病毒灭活
由于收获的尿囊液不可避免地存在一定数量的微生物污染,因此,尿囊液收获后应尽快采用有效的灭活工艺进行病毒灭活,尽可能降低或不增加尿囊液中微生物载荷。
(1)病毒灭活剂可采用甲醛或β-丙内酯,目前,国内批准上市的均采用甲醛作为灭活剂。甲醛对病毒核酸和病毒蛋白质都有破坏作用,蛋白质含量对限定甲醛浓度的灭活效果至关重要,所以病毒灭活应在工艺验证规定的蛋白质含量范围内进行。在控制蛋白质含量的检测方法上,国内生产企业通常采用Lowry 法检测蛋白质含量,国外有些生产企业采用更为便捷的分光光度法控制中间产物的蛋白质含量,检测波长为280nm的吸收值,因蛋白质在280nm处有最大的吸收峰,以此作为蛋白质含量监测的参考指标,以保证灭活工艺的稳定性。
(2)WHO指南和欧洲药典中均规定病毒灭活工艺应在2-8℃下进行。国内企业病毒灭活一般采用一步法灭活,灭活温度通常为2-8℃;国外有的企业采用二步法灭活工艺,即在2-8℃冷灭活一定时间后,再于25℃放置一定时间进行
Java 开发规范文档 一:目的 使本组织能以标准的,规范的方式设计和编码。通过建立编码规范,以使每个开发人员养成良好的编码风格和习惯;并以此形成开发小组编码约定,提高程序的可靠性,可读性,可修改性,可维护性和一致性等,增进团队间的交流,并保证软件产品的质量。 二:代码组织与风格 1:长度:为便于阅读和理解,单个函数的有效代码长度当尽量在100行以内(不包括注释行),当功能模块过大时往往采用使用子函数将相应的功能抽取出来,这也有利于提高代码的重用度。 2:单个类不宜过大,当出现此类过大时当将相应功能的代码重构到其他类中,通过组合等方式来调用,建议单个类的长度包括注释行不超过1500行。尽量避免使用大类和长方法。3:间隔:类,方法及功能块间等应以空行相隔,以增加可读性,但不得有无规则的大片空行。操作符两端应当各空一个字符以增加可读性。 三:注释 1:注释应该增加代码的清晰度。代码注释的目的时要使代码更易于被其他开发人员等理解。2:保持注释的简洁。 3:注释信息应该包括代码的功能。 4:除变量定义等较短语句的注释使用行尾注释外,其他注释当避免使用行尾注释。 5:JavaDoc规范 对类,方法,变量等注释需要符合javadoc规范,对每个类,方法都应详细说明其功能条件,参数等。类注释中应当包含版本和作者信息。 1)类,接口注释在类,接口定义之前当对其进行注释,包括类,接口的目的,作用,功能,继承于何种父类,实现的接口,实现的算法,使用方法,示例程序等。 2)方法注释以明确该方法功能,作者,各参数含义以及返回值等。
3)其他注释应对重要的变量及不易理解的分支条件表达式加以注释,以说明其含义等。四命名规范 1:对变量,类,接口及包的命名应该使用英文。严禁使用汉语拼音及不相关单词命名。更不可以使用汉字来进行命名。采用大小写混合,提高名字的可读性。一般应该采用小写字母,但时类和接口的名称的首字母,以及任何中间单词的首字母应该大写。包名全部小写。 2:尽量少用缩写,但如果一定要用,当使用公共缩写和习惯缩写等,如implement可缩写为impl,manager可缩写成mgr等。 3:包名一般以项目或模块名命名,少用缩写和长名,一律小写。 包名按照如下规定组成[基本包].[项目名].[模块名].[子模块名].…. 如:org.skyinn.skyhome.dao.hibernate。 不得将类直接定义在基本包下,所有项目中的类,接口等都当定义在各自的项目和模块包中。 4:类,接口所有单词首字母大写,最好能够见名知意。一般采用名词。接口可带I前缀。 或able,dao后缀。 5:字段常量采用完整的英文大写单词,单词之间用下划线连接,如DEFAULT_V ALUE. 6:变量和参数对不易识别出该变量类型的变量应使用类型缩写作其前缀,如字符串使用strXXX,boolean使用isXXX,hasXXX等等。除第一个单词外其余单词的首字母大写。7:集合采用复数名称来表示队列中存放的对象类型,名词采用完整的英文描述。 例如:Vector vProducts= new Vector(); Array aryUsers= new Array(); 8:方法方法的名称应采用完整的英文描述,大小写混合使用:所有中间单词的第一个字母大写。方法名称的第一个单词常常采用一个强烈动作色彩的动词。取值类使用get前缀,设置类使用set前缀。例如getName(),setSarry()。 9:异常类名由表示该异常类型的单词和Exception组成,如ActionException。异常实例一般使用e,ex等。 10:数组的命名 数组应该总是用下面的方式来命名:byte[] buffer; 而不是:byte buffer[]; 五:类与接口 1:基本原则:一个类只做一件事情。另一个原则时根据每个类的职责进行划分,比如用User 来存放用户信息,而用UserDAO来对用户信息进行数据访问操作,用UserServer对用户信息的业务操作等等。多个类中使用相同方法时将其方法提到一个接口中或使用抽象类,尽量提高重用度。不希望被实例化的类的缺省构造方法声明为private。 2:一般而言,接口定义行为,而抽象类定义属性和共有行为,注意2者的取舍,在设计中可由接口定义公用的行为,由一个抽象类来实现其部分或全部方法,以给子类提供统一的行为为定义。 六:方法 一个方法只完成一项功能。方法参数类型和参数返回值尽量接口化,以屏蔽具体的实现细节,提高系统的可扩展性,例如:public void addUser(List userList){} public List listAllUsers(){} 七:Web 命名规范 一:jsp页面命名 对于某个功能块的增删改查页面定义,最好使用
设置注释模板的入口:Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍: 文件(Files)注释标签: /** * @Title: ${file_name} * @Package ${package_name} * @Description: ${todo} * @author chenguang * @date ${date} ${time} * @version V1.0 */ 类型(Types)注释标签(类的注释): /** * 类功能说明 * 类修改者修改日期 * 修改说明 * Title: ${file_name} * Description:清大海辉科技开发平台 * Copyright: Copyright (c) 2006 * Company:北京清大海辉科技有限公司 * @author ${user} * @date ${date} ${time} * @version V1.0 */ 字段(Fields)注释标签: /** * @Fields ${field} : ${todo} */ 构造函数标签: /** * Title: * Description: * ${tags} */
方法(Constructor & Methods)标签: /** * 函数功能说明 * ${user} ${date} * 修改者名字修改日期 * 修改内容 * @param ${tags} * @return ${return_type} * @throws */ getter方法标签: /** * @return ${bare_field_name} */ setter方法标签: /** * @param ${param} ${bare_field_name} */ 加注释快捷键:选中你要加注释的方法或类,按Alt + shift + J。
javadoc 是j2sdk里面一个非常重要的工具,如果你按照规范在java的源代码里面写好注释的话,那么它就可以生成相应的文档。开发者察看起来会非常方便。很多IDE都可以直接生成javadoc的,这里介绍如何写javadoc以及如何在eclipse下生成javadoc。 javadoc通常从package、公开类或者接口、公开或者受保护的字段、公开或者受保护的方法提取信息。每条注释应该是以/**开始以*/结尾。例如 /** * * @param id the coreID of the person * @param userName the name of the person * you should use the constructor to create a person object */ public SecondClass(int id,String userName) { this.id = id; https://www.doczj.com/doc/fe187090.html,erName = userName; } 注释应该写在要说明部分的前面,如上所示。并且在其中可以包括html的标记,如果上面没有标记的话,那么you should usr the ......将会在javadoc里面紧跟@param userName....,这样不是我们希望的。一般注释可以分为类注释、方法注释、字段注释等。下面分别作简单的介绍 类注释 类注释应该在import语句的后面在类声明的前面,比如 package com.north.java; /** * @author ming * * this interface is to define a method print() * you should implements this interface is you want to print the username * @see com.north.ming.MainClass#main(String[]) */ public interface DoSomething { /** * @param name which will be printed * @return nothing will be returned * */
1 Java 编程规范 1.1 排版 1.1.1 规则 规则1程序块要采用缩进风格编写,缩进的空格数为4个,不允许使用TAB缩进。(1.42+) 说明:缩进使程序更易阅读,使用空格缩进可以适应不同操作系统与不同开发工具。 规则2分界符(如大括号…{?和…}?)应各独占一行,同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序 或者static、,synchronized等语句块中都要采用如上的缩进方式。(1.42+) 示例: if (a>b) { doStart(); } 规则3较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐, 语句可读。(1.42+) 示例: if (logger.isDebugEnabled()) { logger.debug("Session destroyed,call-id" + event.getSession().getCallId()); } 规则4不允许把多个短语句写在一行中,即一行只写一条语句(1.42+) 说明:阅读代码更加清晰 示例:如下例子不符合规范。 Object o = new Object(); Object b = null; 规则5if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while,switch等语句的执行语句无论多少都要加括号{},case 的执行语句中如果定义变量必须加括号{}。 (1.42+) 说明:阅读代码更加清晰,减少错误产生 示例: if (a>b) { doStart(); }
1.编程规范 (一)命名规范 1.【强制】所有编程相关的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束 反例:_name / name_ / $name / name$ 正例:name 2.【强制】所有编程相关的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用。 反例:XingMing [姓名] /xingBie() [性别] 正例:name[姓名] sex[性别]等国际通用的名称,可视为英文。 3. 【强制】类名使用UpperCamelCase(第一个词的首字母,以及后面每个词的首字母都大写,叫做“大骆驼拼写法”) 风格,必须遵从驼峰形式,但以下情形例外:(领域模型的相关命名)DO / DTO / VO / DAO 等。正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion 反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion
4. 【强制】方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase (第一个词的首字母小写,后面每个词的首字母大写,叫做“小骆驼拼写法”)风格,必须遵从驼峰形式。 正例: localValue / getHttpMessage() / inputUserId 5. 【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。 正例: MAX_STOCK_COUNT 反例: MAX_COUNT 6. 【强制】抽象类命名使用 Abstract或Base 开头;异常类命名使用 Exception结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。 7. 【强制】中括号是数组类型的一部分,数组定义如下:String[] args; 请勿使用String args[]的方式来定义 8. 【强制】POJO类中的任何布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。 反例:定义为基本数据类型 boolean isSuccess;的属性,它的方法也是isSuccess(),RPC框架在反向解析的时候,“以为”对应的属性名称是 success,导致属性获取不到,进而抛出异常。
Java编程规范 本编程规范建立在标准的Java编程规范的基础上,如和标准的Java编程规范有冲突,以本编程规范为准。 1.1 程序结构 包名 引入包/类名 类注释 类 常量//常量注释 构造器注释 构造器 构造器注释 构造器 方法注释 方法 方法注释 方法 1.2 命名规范 命名规范使得程序更易理解,可读性更强。并且能够提供函数和标识符的信息。 文件命名规范: java程序使用如下的文件名后缀: 文件类型后缀 Java 源文件.java Java 字节码文件.class 对系统的文件命名方式有待于根据实际业务决定。 包命名规范: 包名应该唯一,它的前缀可以为任何小写的ASCII字符,包名按照公司内部的命名规范,这些规范指出了某种目录名,主要包括部门,项目,机器,或者登录名。 命名规则为: app.系统名.模块名.xxx.xxx 包命名举例: app.oa.interceptor.xxx app.oa.sys.xxx 类命名规范: 类名应该是名词,并且是大小写混合的。首字母要大写。尽量保证类名简单并且描述性强。避免使用只取单词首字母的简写或者单词的缩写形式,除非缩写形式比单词的完整形式更常用(例如:URL或者HTML)。文件名必须和public的类名保持一致,注意大小写(JBuilder 等一些编译器可以忽略大小写,要特别注意)。如是实现类命名后缀+Impl。 类命名举例: classLoginAction; classUserServiceImpl; 接口命名规范:
接口命名方式与类命名方式相同。 接口命名举例: interfaceIUserService; interfaceSysYhjsDAO; 方法命名规范; 方法名应该为动词,并且是大小写混合的。首字母要小写,方法名的第 二个单词的第一个字母大写。 方法命名举例: String getNoticeNo(); Collection findByCondition(String); 变量命名规范 变量,以及所有的类实例应为首字母小写的大小写混合形式。变量名的第二个单词 的首字母大写。变量名的首字母不能为下划线或者$符。 变量名应该尽可能的短小,但要有意义。变量名应该便于记忆,也就是说变量名应 该尽可能的做到见名知意。除了暂时使用的变量外(一般用于循环变量),应该避免使 用只有一个字母的变量名。对于临时变量一般说来:i,j,k,m,n代表整型变量。c,d,e代表字符型变量。 变量命名举例: String dataType; String name; inti; char c; 常量命名规范: 声明为类常量的变量或者ANSI常量应该全部为大写字母,并且每个单词间用下划 线“_”隔开。为了便于调试,应避免使用ANSI常量。 常量命名举例: static final int MIN_WIDTH = 4; 1.3 注释规范 Java 提供了两种类型的注释:程序注释和文档注释。程序注释是由分隔符/*…*/,和// 隔开的部分,这些注释和C++ 中的注释一样。文档注释(即“doc 注释”)是Java 独有的。由分隔符/**…*/隔开。使用javadoc工具能够将文档注释抽取出来形成HTML 文件。程序注释主要是对程序的某部分具体实现方式的注释。文档注释是对程序的描述性注释,主要是提供给不需要了解程序具体实现的开发者使用。注释应该是代码的概括性描述,提供不易直接从代码中得到的信息,并且只包含对阅读和理解程序有用的信息。例如注释中包含相应的包如何编译或者在哪个目录下,而不应该包括这个包驻留在哪儿的信息。注释中可以描述一些精妙的算法和一些不易理解的设计思想,但应该避免那些在程序代码中很清楚的表达出来的信息。尽可能的避免过时的信息。错误的注释比没有注释更有害。经常性的注释有时也反映出代码质量的低下。 …程序注释: 程序注释有四种格式:块注释格式,单行注释,跟随注释,行尾注释 ?块注释格式 块注释主要用于描述:文件、方法、数据结构和算法。一般在文件或者方法定义的 之前使用。也可以用在方法定义里面,如果块注释放在函数或者方法定义里,它必须与它所描述的代码具有相同的缩进形式。
? 一个通用的Java文件上传类,支持上传图片,支持生成缩略图,设置最大上传文件字节数,不设置时默认10M,可接收来自表单的数据,当有多个文件域时, 只上传有文件的,忽略其他不是文件域的所有表单信息,支持用户对上传文件大小, 字节进行设置,本上传类可过滤掉以下文件类型:".exe", ".com", ".cgi", ".asp", ".php", ".jsp"等,你可自已添加过滤的文件后缀,上传文件时如果没有上传目录,则自动创建它。。。 ? package com.gootrip.util; import java.io.File; import java.util.*; import https://www.doczj.com/doc/fe187090.html,mons.fileupload.*; import javax.servlet.http.HttpServletRequest; import java.util.regex.Pattern; import java.io.IOException; import https://www.doczj.com/doc/fe187090.html,mons.fileupload.servlet.ServletFileUpload; import https://www.doczj.com/doc/fe187090.html,mons.fileupload.disk.DiskFileItemFactory; import java.util.regex.Matcher; /** * TODO 要更改此生成的类型注释的模板,请转至 * 窗口-首选项- Java -代码样式-代码模板 */ public class FileUploadUtil {
//当上传文件超过限制时设定的临时文件位置,注意是绝对路径 private String tempPath = null; //文件上传目标目录,注意是绝对路径 private String dstPath = null; //新文件名称,不设置时默认为原文件名 private String newFileName = null; //获取的上传请求 private HttpServletRequest fileuploadReq = null; //设置最多只允许在内存中存储的数据,单位:字节,这个参数不要设置太大 private int sizeThreshold = 4096; //设置允许用户上传文件大小,单位:字节 //共10M private long sizeMax = 10485760; //图片文件序号 private int picSeqNo = 1; private boolean isSmallPic = false; public FileUploadUtil(){ } public FileUploadUtil(String tempPath, String destinationPath){ this.tempPath = tempPath; this.dstPath = destinationPath; }
Java语言编程规范_基础篇 1排版 规则1.1 程序块要采用缩进风格编写,缩进的空格数为4个,不允许使用TAB缩进。 说明:缩进使程序更易阅读,使用空格缩进可以适应不同操作系统与不同开发工具。 规则1.2 分界符(如大括号‘{’和‘}’)应各独占一行,同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序或者static、,synchronized等语句块中都要采用如上的缩进方式。 示例: if (a>b) { doStart(); } 规则1.3 较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。 示例: if(logger.isDebugEnabled()) { logger.debug("Session destroyed,call-id" +event.getSession().getCallId()); }
规则1.4 不允许把多个短语句写在一行中,即一行只写一条语句 说明:阅读代码更加清晰 示例:如下例子不符合规范。 Objecto = new Object(); Object b = null; 规则1.5 if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while, switch等语句的执行语句无论多少都要加括号{},case 的执行语句中如果定义变量必须加括号{}。 说明:读代码更加清晰,减少错误产生 示例: if (a>b) { doStart(); } case x: { int i= 9 } 规则1.6 相对独立的程序块之间、变量说明之后必须加空行。 说明: 阅读代码更加清晰 示例: if(a > b) { doStart(); } //此处是空行 return; 规则1.7 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如.),后不应加空格。 说明:阅读代码更加清晰
网上资料:共享 Window --> Java --> Code Style --> Code Templates --> Comments --> types --> Edit /** * * 项目名称:${project_name} * 类名称:${type_name} * 类描述: * 创建人:${user} * 创建时间:${date} ${time} * 修改人:${user} * 修改时间:${date} ${time} * 修改备注: * @version * */ ---------------------------------------------------------------------------------------------------------- 设置注释模板的入口:Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍: 文件(Files)注释标签: /** * @Title: ${file_name} * @Package ${package_name} * @Description: ${todo} * @author A18ccms A18ccms_gmail_com * @date ${date} ${time} * @version V1.0 */ 类型(Types)注释标签(类的注释):
/** * @ClassName: ${type_name} * @Description: * @author: 秦天朋 * @date ${date} ${time} * * ${tags} */ 字段(Fields)注释标签: /** * @Fields ${field} : ${todo}(用一句话描述这个变量表示什么) */ 构造函数标签: /** * Title: * Description: * ${tags} */ 方法(Constructor & Methods)标签: /**
javadoc做注释 一. Java 文档 // 注释一行 /* ...... */ 注释若干行 /** ...... */ 注释若干行,并写入javadoc 文档 通常这种注释的多行写法如下: /** * ......... * ......... */ javadoc -d 文档存放目录-author -version 源文件名.java 这条命令编译一个名为“源文件名.java”的java 源文件,并将生成的文档存放在“文档存放目录”指定的目录下,生成的文档中index.html 就是文档的首页。-author 和-version 两个选项可以省略。 二. 文档注释的格式 1. 文档和文档注释的格式化 生成的文档是HTML 格式,而这些HTML 格式的标识符并不是javadoc 加的,而是我们在写注释的时候写上去的。 比如,需要换行时,不是敲入一个回车符,而是写入
,如果要分段,就应该在段前写入。 文档注释的正文并不是直接复制到输出文件(文档的HTML 文件),而是读取每一行后,删掉前导的* 号及* 号以前的空格,再输入到文档的。如 /** * This is first line.
***** This is second line.
This is third line. */ 2. 文档注释的三部分 先举例如下 /** * show 方法的简述. * show 方法的详细说明第一行
* show 方法的详细说明第二行
* @param b true 表示显示,false 表示隐藏 * @return 没有返回值 */ public void show(boolean b) { frame.show(b); } 第一部分是简述。文档中,对于属性和方法都是先有一个列表,然后才在后面一个一个的详细的说明 简述部分写在一段文档注释的最前面,第一个点号(.) 之前(包括点号)。换句话说,就是用第一个点号分隔文档注释,之前是简述,之后是第二部分和第三部分。 第二部分是详细说明部分。该部分对属性或者方法进行详细的说明,在格式上没有什么特殊的要求,可以包含若干个点号。 * show 方法的简述. * show 方法的详细说明第一行
* show 方法的详细说明第二行 简述也在其中。这一点要记住了 第三部分是特殊说明部分。这部分包括版本说明、参数说明、返回值说明等。 * @param b true 表示显示,false 表示隐藏 * @return 没有返回值 三. 使用javadoc 标记 javadoc 标记由“@”及其后所跟的标记类型和专用注释引用组成 javadoc 标记有如下一些: @author 标明开发该类模块的作者 @version 标明该类模块的版本 @see 参考转向,也就是相关主题 @param 对方法中某参数的说明 @return 对方法返回值的说明 @exception 对方法可能抛出的异常进行说明 @author 作者名 @version 版本号 其中,@author 可以多次使用,以指明多个作者,生成的文档中每个作者之间使用逗号(,) 隔开。@version 也可以使用多次,只有第一次有效 使用@param、@return 和@exception 说明方法 这三个标记都是只用于方法的。@param 描述方法的参数,@return 描述方法的返回值,@exception 描述方法可能抛出的异常。它们的句法如下: @param 参数名参数说明 @return 返回值说明
命名规范: 1.所有的标识都只能使用ASCII字母(A-Z或a-z)、数字(0-9)和 下划线”_”。 2.一个唯一包名的前缀总是用全部小写的字母。 3.类名是一个名词,采用大小写混合的方式,每个单词的首字母大 写。 4.接口的大小写规则与类名相似。 5.方法名是一个动词或是动词词组,采用大小写混合的方式,第一 个单词的首字母小写,其后单词的首字母大写。 6.变量名的第一个字母小写,任何中间单词的首字母大写,变量名 应简短且可以顾名思义,易于记忆。避免单个字符的变量名,除非是一次性的临时变量。 7.常量的声明应该全部大写,每个单词之间用”_”连接。 注释规范: 1.注释尽可能使用”//”,对于所有的Javadoc的注释使用/***/,而 临时对代码块进行注释应尽量使用/**/。 2.所有的源文件都应该在开头有一个注释,其中列出文件名、日期 和类的功能概述。每个方法必须添加文档注释(main除外)。 3.每个属性必须加注释。 4.代码中至少包含15%的注释。 5.注释使用中文。
缩进排版规范: 1.避免一行的长度超过60个字符。 2.使用Eclipse源代码的格式化功能完成代码的缩进排版。 文件名规范: 1.一个Java源文件只能储存一个Java类。 2.文件名与Java类相同。 3.一个类文件不超过200行。 声明规范: 1.一行声明一个变量。 2.不要将不同类型变量的声明放在同一行。 3.只在代块的开始处声明变量。 4.所有的变量必须在声明时初始化。 5.避免声明的局部变量覆盖上一级声明的变量。 6.方法与方法直接以空行分隔。 语句规范: 1.每行至少包含一条简单语句。 2.在return语句中,返回值不使用小括号”()”括起来。 3.If月总是用{和}括起来。 4.在for语句的初始化或者更新子句中,避免因使用3个以上变量, 而导致复杂度提高。 5.当switch的一个case顺着往下执行时(因为没有break),通常 应在break语句的位置添加注释。
参考文献与注释的编排方法 一、注释的标注方法 注释是对论著正文中某一特定内容的进一步解释或补充说明,以及未公开发表的私人通信、内部资料、书稿和仅有中介文献信息的"转引自"等类文献的引用著录,排印在该页地脚(数字加圆圈,如①、②...)。 二、参考文献的标注方法 参考文献是作者写作论著时所引用的已公开发表的文献书目,或有明确收藏地点的善本、档案,按照在正文中引用的顺序,用数字加方括号集中列表于文末。正文中的标注方法是:1.引用文献原文需要在正文中标出序号与页码(如:"资本主义生产的内在规律在竞争中是以颠倒的形式表现出来的"[1]251),文后参考文献中不出现页码项;2.引用参考文献中的观点可以只标出序号或者序号与页码同时标注(如:生产力决定生产关系[3]);3.文中多次引用同一参考文献内容,在文后参考文献表中只出现一次,其中不注页码;在正文中标注首次引用的文献序号,并在序号的角标外著录引文页码;4.参考文献的编排格式见附注。 例文 国内外现有的竞争理论文献,或者忽略了马克思的竞争理论,或者只把它作为竞争理论发展的一个阶段或众多竞争理论中的一个流派,停留在马克思对市场竞争过程的描述上。然而,马克思指出:"资本主义生产的内在规律在竞争中是以颠倒的形式表现出来的"[1]251。"只有了解了资本的内在本性,才能对竞争进行科学的分析,正像只有认识了天体的实际的、
但又直接感觉不到的运动的人,才能了解天体的表面运动一样。"[2]352 ...... ......而且可以说明,当时政治经济学没有理解的"关于资本主义竞争的基本规律,即调节一般利润率和由它决定的所谓生产价格的规律,也是建立在商品价值和商品成本价格之间的这种差别之上的,建立在由此引起的商品低于价值出售也能获得利润这样一种可能性之上的"[1]45。 ...... ......随着许多偶然的改进,产品系列趋于增大,零件数量趋于增加,会产生大量的多样化成本。[3] 参考文献: [1] 马克思.资本论(第3卷)[M].北京:人民出版社,1975. [2] 马克思.资本论(第1卷)[M].北京:人民出版社,1975. [3] 安德森·派恩二世.21世纪企业竞争的新前沿——大规模定制模式下的敏捷产品开发[M].北京:机械工业出版社,1999. 附注: 一、参考文献著录项目 1. 主要责任者 (专著作者、论文集主编、学位申报人、专利申请人、报告撰写人、期刊文章作者、析出文章作者)。多个责任者之间以","分隔,注意在本项数据中不得出现缩写点"."。主要责任者只列姓名,其后不加"著"、"编"、"主编"、"合编"等责任说明。 2.文献题名; 3.文献类型及载体类型标识;
在软件开发的过程中总是强调注释的规范,但是没有一个具体的标准进行说明,通常都是在代码编写规范中简单的描述几句,不能作为一个代码注释检查的标准和依据,做什么都要有一个依据吗:),现在我特整理了一个《Java的注释规范》,内容来自网络、书籍和自己的实际积累。 JA V A注释规范 版本/状态作者版本日期 1.0 ghc 2008-07-02 一、背景 1、当我们第一次接触某段代码,但又被要求在极短的时间内有效地分析这段代码,我们需要什么样的注释信息? 2、怎么样避免我们的注释冗长而且凌乱不堪呢? 3、在多人协同开发、维护的今天,我们需要怎么样的注释来保证高质、高交的进行开发和维护工作呢? 二、意义 程序中的注释是程序设计者与程序阅读者之间通信的重要手段。应用注释规范对于软件本身和软件开发人员而言尤为重要。并且在流行的敏捷开发思想中已经提出了将注释转为代码的概念。好的注释规范可以尽可能的减少一个软件的维护成本, 并且几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护。好的注释规范可以改善软件的可读性,可以让开发人员尽快而彻底地理解新的代码。好的注释规范可以最大限度的提高团队开发的合作效率。长期的规范性编码还可以让开发人员养成良好的编码习惯,甚至锻炼出更加严谨的思维能力。 三、注释的原则 1、注释形式统一 在整个应用程序中,使用具有一致的标点和结构的样式来构造注释。如果在其他项目组发现他们的注释规范与这份文档不同,按照他们的规范写代码,不要试图在既成的规范系统中引入新的规范。 2、注释的简洁 内容要简单、明了、含义准确,防止注释的多义性,错误的注释不但无益反而有害。 3、注释的一致性 在写代码之前或者边写代码边写注释,因为以后很可能没有时间来这样做。另外,如果有机会复查已编写的代码,在今天看来很明显的东西六周以后或许就不明显了。通常描述性注释先于代码创建,解释性注释在开发过程中创建,提示性注释在代码完成之后创建。修改代码的同时修改相应的注释,以保证代码与注释的同步。 4、注释的位置 保证注释与其描述的代码相邻,即注释的就近原则。对代码的注释应放在其上方相邻或右方的位置,不可放在下方。避免在代码行的末尾添加注释;行尾注释使代码更难阅读。不过在批注变量声明时,行尾注释是合适的;在这种情况下,将所有行尾注释要对齐。 5、注释的数量 注释必不可少,但也不应过多,在实际的代码规范中,要求注释占程序代码的比例达到20%左右。注释是对代码的“提示”,而不是文档,程序中的注释不可喧宾夺主,注释太多了会让人眼花缭乱,注释的花样要少。不要被动的为写注释而写注释。 6、删除无用注释
1.程序块采用缩进风格,空格为4个. 说明: 对于开发工具自动生成的代码可以不一致 2.分界符(如大括号{和})应各自占一行并且在同一列,同时与引用它们的语句左 对齐,在方法的开始,类和接口的定义,以及if,for,do,while,switch,case语句都要采用上述缩进 说明: for(…) { …//your code } 3.较长(>80字符)的语句,表达式和参数要分多行,长表达式要在低优先级操作符 划分新行,操作符放在行首,新行要适当缩进,整齐,语句可读. 说明: if(filename != null && new File(logPath+filename).length() < logConfig.getFileSize()) { …//your code } 4.一行只写一条语句 说明: LogFilename wow = null; LogFilename that = null; 5.if,for,do,switch,while,case,default各占一行,它们的执行语句无论多少都要加{} 说明: if(writeToFile) { writeFileThread.interrupt(); } 6.相对独立的程序块,变量,说明要加空行 说明: if(log.getLevel() < log.getRecord()) { return ; } //空行
LogWrite writer; 7.对齐只用空格键,不用TAB键 说明: 以免使用不同的编辑器阅读程序时,因TAB键所设置的空格数不同而造成程序布局不整齐,JBuildr,UltraEdit等编辑环境,支持行首TAB替换成空格,应将该选项打开 8.两个以上的关键字,变量,常量进行对等操作时,操作符之前,之后或前后要加空 格,进行非对等操作时,如果是关系密切的立即操作符,后面不加空格(如.操作符) 说明: 采用这种松散方式编写代码目的是让程序更加清晰,由于空格所产生的清晰性是相对的,所以在已经很清晰的语句中没有必要留空格,如果语句已足够清晰,则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为java中括号已经是很清晰的标志了.在长句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部中不加空格,给操作符留空格时不要连续留两个以上空格 9.类属性和方法不要交叉放置,不同存取范围的属性和方法也不要交叉放置 说明: 类定义:{ 类公有属性定义; 类保护属性定义; 类私有属性定义; 类公有方法定义; 类保护方法定义; 类私有方法定义; } 10.源程序的有效注释量必须在30%以上 11.包的注释写入一个名为package.html的html格式的说明文件放入当前路径 12.包的注释内容:本包作用,详细描述本包内容,产品模块名称及版本,公司版本 说明:
一句话描述 详细描述 产品模块给AndroidStudio加上类注释,方法注释模板2016/09/27 0 给AndroidStudio加上Eclipse一样的注释模板:首先添加方法注释:File- Settings- Editor(展开)- Live Templates(如图示:)然后继续点击图示的加号,这次选择第一个,选择输入的cmt表示在方法前输入cmt回车就会自动添加上注释模板在方法上面输入cmt回车自动可引入模板注释 ?================2016年9月27日23:21:41===================== ?然后是类创建的时候生成的注释模板: ?新建Class类的时候会自动生成: ?方法说明:地址:https://jetbrains/help/idea/2016.2/edit-template-variables-dialog.html ?我的类注释: ?/** * @name ${PROJECT_NAME} * @class name:${PACKAGE_NAME} * @class describe * @anthor ${USER} QQ:1032006226 * @time ${DATE} ${TIME} * @change * @chang time * @class describe */方法注释模板: ?/** * @author $user$ * @time $date$ $time$ * @describe $param$ */ /** * description :* project name:${PROJECT_NAME} * author : ${USER} * creation date: ${DATE} ${TIME} * @version 1.0 */我只是写在这里,免得重复写,看官自便?tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!