软件实习周记.docx
- 文档编号:4433332
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:12
- 大小:28.83KB
软件实习周记.docx
《软件实习周记.docx》由会员分享,可在线阅读,更多相关《软件实习周记.docx(12页珍藏版)》请在冰豆网上搜索。
软件实习周记
软件实习周记
篇一:
软件开发实习周记10篇
实训总结
实训目的:
实训单位和工作岗位:
实训的内容:
从事工作情况
实训的心得体会:
“天下英雄皆我辈~一入江湖立马催。
”从学校到社会的大环境的转变~身边接触的人也完全换了角色~老师变成老板~同学变成同事~相处之道完全不同。
在这巨大的转变中~我们可能彷徨~迷茫~无法马上适应新的环境~但在同事的帮助和自己摸索的情况下~我还是完成了这次实训。
但我发现~以我们的经验~不学到一定的深度和广度是难以在实际工作中应付自如的。
因此反映出学习的还不够~缺点疏漏。
需在加以刻苦钻研及学习~不断开拓视野~增强自己的实践操作技能~我们也许看不惯企业之间残酷的竞争,无法忍受同事之间漠不关心的眼神和言语。
很多时候觉得自己没有受到领导重用~所干的只是一些无关重要的杂活~自己的提议或工作不能得到老板的肯定。
“在大学里学的不是知识~而是一种叫做自学的能力”。
参加工作后才能深刻体会这句话的含义。
课本上学的理论知
识用到的很少。
在这个信息爆炸的时代~知识更新太快~靠原有的一点知识肯定是不行的。
我们必须在工作中勤于动手慢慢琢磨~不断学习不断积累。
遇到不懂的地方~自己先想
方设法解决~实在不行可以虚心请教他人~而没有自学能力的人迟早要被企业和社会所淘汰。
所以我们还要继续学习~不断提升理论素养。
这次实训也让我深刻体会到了团结合作的重要性~团结合作是一个优秀的开发团队的基本素质~是一个项目成功的关键。
虽然我们团队只有几个人~而且时间也很短~我们最终还是顺利的完成了任务~靠的是什么,不仅是努力~还有团结。
整个项目的过程中我们都很讲究团结合作~大家有明确的分工~遇到问题都能互相帮助解决。
问题的及时解决保证了项目按计划进展。
我们之间也发生过很多争执~很多时候都是争得面红耳赤~在工作中我认为这是一种好的现象~在争执中我们得到了正确的认识~也相互之间学到了不少东西。
软件开发不是一个人的工作~而是一个团队的工作~所以工作中一定要考虑整体~不能一意孤行。
当然~这个月的实训也给了我不少经验和教训。
首先~做项目的每一个环节都应该谨慎。
任何一个环节都不能马虎~敷衍了事。
一个环节的失误可能会导致后面的环节都做不好~甚至全盘返工。
成功的需求分析才能有成功的概要设计~成功地概要设计才能进行成功的详细设计~成
功地详细设计是保证编码思路清晰和代码BUG少的前提。
然而我在这一点上注意的不够。
开始以为只要把产品做出来就OK了~其他都不重要。
所以开始需求文档和设计文档都做得很
马虎~编码开始的时候就有点理不清思路了~脑子里面很乱~不断地出现问题~到编码到一半的时候做不下去了。
最后只能重新根据需求做设计~然后根据设计重头开始编码。
这样浪费了我很多时间~感觉到起初莽撞的开始编码吃了不少力~而且还没有什么结果。
设计做好之后编码就轻松多了~从头到尾思路很清晰~做起来效率也很高。
这次惨痛的教训我想足以让我在以后的工作牢记在心了。
Coding不是软件开发的全部~只是一个部分~所有的文档也一样重要。
我想起在学校里面学的软件的生命~占主要的并不是编码~而是维护~没有详细的~正确的文档资料是没有办法维护的。
其次~文档要尽量详细~代码命名要规范。
就像前面说的~软件开发是一个团队的工作~也许自己心里很清楚~但是合作的同事他们并不清楚你是怎么想的~详细地文档资料才能保证整个项目组有共同的认识。
比如需求吧~如果项目组成员各自对需求的某些地方理解不一致很可能做到最后发生很大的分歧。
规范代码的命名也是一个不能忽视的问题~一方面可能在整合的时候出现问题~哪怕只是文件命名的大小写,这一点我在这次项目中犯过~教训很深刻~其实就是大小
写的问题~我以为没什么关系~后来证明关系大着呢:
。
另一方面命名不规范代码的可读性就很差~这会给测试带来很大的不方便。
我们这次由于时间关系~只是进行了一下小组内代码走查~我发现由于大家命名不规范~各人一种命名
的风格~导致阅读很困难。
还有一点认识就是我觉得设计原型真的是很重要的一个环节。
一方面它能把用户的需求实体化~帮助我们审查需求说明书。
另一方面~在需求阶段把原型提供给客户可以问题得到及时的反馈~避免了在项目结束之后~客户告诉我们说那不是他想要的那样。
再者~原型为我们设计编码提供了很好的参考~提高了效率。
随着项目的结束~我的实训也结束了。
通过制作这个网站让我由浅至深、一步一步的了解了原来制作一个网站要走得程序很多。
每个人除了要有一定的技术之外~更重要的是团队的合作~在一个团队里只有我们团结一致~那么所有的困难都会迎刃而解~因为一个人的力量是有限的~而一个团队的力量是无穷的。
在信息时代~学习是不断地汲取新信息~获得事业进步的动力。
作为一名年轻同志更应该把学习作为保持工作积极性的重要途径。
走上工作岗位后~我积极响应单位号召~结合工作实际~不断学习理论、业务知识和社会知识~用先进的理论武装头脑~用精良的业务知识提升能力~以广博的社
会知识拓展视野。
我们还要努力实践~自觉进行角色转化。
“理论是灰色的~生活之树常青”~只有将理论付诸于实践才能实现理论自身的价值~也只有将理论付诸于实践才能使理论得以检验。
同
样~一个人的价值也是通过实践活动来实现的~也只有通过实践才能锻炼人的品质~彰现人的意志。
总的来说~这次实习真的是让我受益匪浅。
不光是学到很多技术~而且加深了对软件开发的理解~从个人发展来看~我觉得从认识上让我完成了从学习到工作的角色转变。
提高了动手能力~得到了很多工作中的经验教训。
更重要的是让我体会到这个职业的乐趣~让我喜欢上了这个职业。
“千里之行~始于足下”~这是一个短暂而又充实的实训~我认为对我走向社会起到了一个桥梁的作用~过渡的作用~是人生的一段重要的经历~也是一个重要步骤~对将来走上工作岗位也有着很大帮助。
突然想起鲁迅先生的一句话:
这里本来没有路~只是走的人多了~也便成了路。
生活的路呢,生活的路也是人走出来的~每个人一生总要去很多陌生的地方~然后熟悉~而接着又要启程去另一个陌生的地方。
作为初涉社会的开端~这里有许多回忆和联想~面对残酷的现实社会~每个人都无法选择逃避~除了勇敢面对~我们也无从选择:
在今后的工作和生活中~我将继续学习~深入实践~不断提升自我~努力创造业绩~继续在自己的工作领域创造
更多的价值。
篇二:
java实习周记25篇
第一周
实习第一个礼拜~算是适应期。
主要了解一些公司的背景、产品、发展方向等。
刚到实习公司~不是像学校里的朝九晚五~而是朝八晚九。
我们不可能简单的了解一些企业文化~简单的学学新的知识就可以了~我们的这个实习必将是一个繁忙的实习~也必将是一个充实的~进步的实习。
来到这里~我们要忘掉大学里自由的作息时间~克服困难~养成良好的工作生活习惯。
基于各方面的原因~虽然在去之前我们做了比较充足的准备~但还是遇到了一些困难~例如学习时间长~实战比较繁多~但时间又比较的短~难以保证按时按质按量完成。
下午下了班~员工们都回去了~我还在那儿练习~一直到晚上9点~才能回住处休息。
中午也没有休息的地方~只能趴在电脑前休息一会~一两周下来~相当地疲惫。
但我们都明白自己来实习的任务~都坚持着完成自己的任务和使命。
这个星期熟悉了工作环境、java编程的环境配臵。
等慢慢熟悉起来~做起事情也越来越顺手了.简单的总结为几个字~那就是:
多看~多问~多观察~多思考:
第二周
实习第二个礼拜~主要是熟悉java的基础语法~把基础打扎实~以后在开发中才能如鱼得水。
学习总结如下几点:
1、类之间的关系:
关联、聚合、继承、实现和多态。
2、基本数据类型:
整数型、浮点型、字符型、布尔型。
3、常用逻辑语句和循环语句:
switch只支持int类型判断~没有写break易穿透至下一个循环~jdk7.0貌似增强了支持数据类型。
Break:
强行退出循环,Continue:
跳出当前循环。
5、修饰符:
pbulic~private~protected~default。
设臵访问权限。
6、Static关键字:
静态修饰符~它修饰的方法、类和变量可以全局调用。
7、Final关键字:
禁止重写。
8、This关键字:
指向自身引用。
9、string:
是不可变的字符序列。
两个string变量必须用copy的方式在内存中new出新的数据块,
10、stringBuffer:
是可变的字符序列~可以直接添加字符。
第三周
实习第三个礼拜~主要是熟悉java的高级语法,核心,
继承:
子类继承父类的所有属性和方法~如果方法和属性被private修饰~子类则无法读取。
子类使用Super关键字继承。
父类无法调用子类方法。
构造方法:
方法名称必须与类名相同~且没有返回值。
Object类是所有类的父类~
即java中的根类。
无参构造方法默认继承object的。
构造方法的重载~实现不同参数的构造,
重载:
方法相同~参数类型不同~数量不同。
构造方法中也常使用方法重载。
重写:
重写方法必须和被重写方法具有相同参数列表、相同方法和相同返回值。
重写方法不能使用比被重写方法更严格的访问权限。
抽象:
抽象类被继承后~方法必须被重写并实现~否则子类也还是抽象类。
抽象方法只需声明~无需实现。
接口:
实现关键字implements。
接口中所有成员变
量和方法都是public。
接口可以继承其他接口~并添加新的属性和方法。
接口和实现类之间存在多态。
多态:
三个必要条件分别是继承、重写和父类引用子类对象。
java的核心思想,
第四周
实习第四个礼拜~主要熟悉了java的高级应用
线程:
进程是运行中的应用程序~是一套顺序执行的指令~每个进程都有自己独立的内存空间。
线程是一个并发执行的顺序流~一个进程包括多个顺序执行流程~这些流程称为线程。
JVM就是一个进程~在JVM中分出线程~比如main()就是主线程。
同时开辟并发执行的序列即多线程。
调用start()方法~线程启动,run()方法结束~线程就终止。
线程是一
个操作系统创建并维护的一个资源。
对于单CPU系统来说~某一个时刻只可能由一个线程在运行。
一个Thread对象就表示一个线程。
进程的数据空间独立,线程的数据空间共享,能充分使用CPU的资源。
线程间通信更容易。
共享数据就要加锁、解锁~会降低效率。
I/O:
是在JVM和外部数据源之间交换数据。
按数据传输方向划分:
输入流和输出,按数据单位划分:
字节流和字符流,过滤流用来封装节点流或者其他过滤流~从而给节点流或其他的过滤流增加功能。
第五周
实习第五个礼拜~使用Collection框架做派叫号系统
首先分析项目需求~概述如下:
1.产品参与者
顾客:
到营业大厅排队取号
柜员:
提供业务服务的柜台业务员
管理员:
负责对业务类型、业务受理情况进行实时查看、调配的管理者
2.功能需求
1)、取号:
顾客来到营业大厅通过取号机取号~可以选择自己要办理的业务类型。
取号后自动进入排队中。
等待叫号,
2)、叫号:
柜员可以通过叫号端进行重复呼叫、暂停服
务和转移。
叫号端可是软件也可以是硬件设备,
3)、管理业务类型:
管理人员可以通过后台管理进行业务类型的管理。
可以添加、禁用、修改一种业务类型~为某种业务类型可以设臵每天最大办理量,
4)、管理窗口:
管理人员可以通过后台管理对业务窗口进行管理。
可以为某个窗口指定办理某种业务类型,
5)、统计整合数据:
系统可以定时的整合数据~将分散在每天的数据按人、业务类型、时间进行整合~可以将统计数据输出成图表形式,
6)、查看办理情况:
可以查看当前流量、已经办理、未办理的人数。
当前办理效率~历史数据等等,
7)、记录日志:
系统对关键的地方进行日志记录~以便系统可以在出错时进行调试和处理。
实施代码编写。
第一个项目设计~感觉难度很大。
之前所学的是零零散散的知识点~现在要把之前所学的知识连贯起来~刚开始不知道怎么去连贯~后来看了需求分析文档~分析图~慢慢的有点思路。
在后面的做项目的过程中~遇到了太多的问题~通过自己的思考、问同事~问老师慢慢的解决了。
而在第一个项目中也学到了很多东西。
第六周
1、数据库范式作用:
尽可能减少数据冗余、保证数据完整性、识别出实体、关系以及表的缺失
第一范式:
字段都为单一属性~且属性为基础类型
第二范式:
属性必须完全依赖关键字
第三范式:
非主键属性不能依赖其他的非主键属性
mysql的学习~在学校里我对mysql已有了初步的了解。
指导老师教我要灵活多变~什么时候要用到临时表~嵌套查询~存储过程用的地方等~叫我多看几个例子~并敲下代码运行下~体会里面的数据生成~查询出自己要的数据等。
然后再根据这些数据写出语句~生成需要的流程~这就是数据挖掘的精髓:
那么存储过程与一般的SQL语句有什么区别呢?
存储过程的优点:
1.存储过程只在创造时进行编译~以后每次执行存储过程都不需再重新编译~而一般sql语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行
Update,Insert,Query,Delete时,~可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
从中我学到了:
存储过程是数据在存储到数据库的过程中,可以对这些数据进行操作,不然数据就是直接从页面获取,直接原样存储。
第七周
实习第七个礼拜~
为了进一步了解java开发的相关知识~掌握java开发的基本技术~丰富java开发的实战经验~代码的复用性。
学习SQL的基础知识及正确的运用方法~和有用的相关技术~提高自己的工作效率。
通过项目重构~培养我们综合运用已学知识Java语言的面向对象编程能力,培养我们动手能力,培养我们良好编程规范、编程方法,以便能较全面地理解、掌握和综合运用所学的知识~提高自身的编程能力,增强自己的团队协作意识~了解软件开发的思考角度和主要流程。
为以后能够更快地进入工作状态并且能够更好的工作~打好一定的基础。
从这里~我才真正的意识到实施一个软件工程并不是说简单的会编码就能够解决问题的~我们更多的精力不是放在编码上~编码只是一个很小的模块~只占
到那么小的一个部分。
这个事实在很大程度上颠覆了我以前的思想~在我以前的认识中~似乎整个软件就是编码~除此无它~还好有老师的指导~不然真的会出现老师所说的~撞得头破血流之后才想起来用软件工程的思想来完成这个工作。
项目程序的编程是一个非常烦琐而枯燥的过程~需要耐心和毅力去完成~不然中途出现过多的错误~会使之后的校验略显费时。
实习项目的代码编写~从而进入到后期的校对和验收过程~但同时也少不了反复的调试和修改~为我的程序软件更加简单更加实用。
第八周
实习第八个礼拜~主要了解网页的基本架构
B/S架构:
浏览器-服务器,Browser/Server,结构~简称B/S结构与C/S结构不同~其客户端不需要安装专门的软件~只需要浏览器即可~浏览器通过Web服务器与数据库进行交互~可以方便的在不同平台下工作。
服务器端可采用高性能计算机~并安装Oracle、Sybase、Informix等大型数据库。
B/S结构简化了客户端的工作~它是随着Internet技术兴起而产生的~对C/S技术的改进~但该结构下服务器端的工作较重~对服务器的性能要求更高。
C/S架构:
主从式架构(Client–servermodel)或客户端-服务器,Client/Server,结构简称C/S结构是一种网络架构~它把客户端(Client),通常是一个采用图形用户界面的程序,与服务器(Server)区分开来。
每一个客户端软件的实例都可以向一个服务器或应用程序服务器发出请求。
经典C/(转载于:
www.zaIdian.cOM在点网)S系统:
QQ/MSN/ICQ…
HTTP协议:
超文本传输协议,HTTP~HyperTextTransfer
Protocol,是互联网上应用最为广泛的一种网络协议。
第九周
实习第九个礼拜
HTML:
是一种标记语言、忽略大小写~语法宽松、使用HTML标记和元素~可以:
控制页面和内容的外观、发布联机文档、使用HTML文档中插入的链接检索联机信息、创建联机表单~收集用户的信息、执行事务等等、插入动画、开发帮助文件等。
CSS:
样式会根据下面的规则层叠于一个新的虚拟样式表中~其中数字d拥有最高的优先权。
浏览器兼容:
一旦为页面设臵了恰当的DTD~大多数浏览器都会按照上面的图示来呈现内容。
然而IE5和6的呈现却是不正确的。
根据W3C的规范~元素内容占据的空间是由width属性设臵的~而内容周围的padding和border值是另外计算的。
不幸的是~IE5.X和6在怪异模式中使用自己的非标准模型。
这些浏览器的width属性不是内容的宽度~而是内容、填充和边框的宽度的总和。
虽然有方法解决这个问题。
但是目前最好的解决方案是回避这个问题。
也就是~不要给元素添加具有指定宽度的内边距~而是尝试将内边距或外边距添加到元素的父元素和子元素。
这些属性是DIV布局的奠基石。
由于浏览器的不同~盒模式中也有差异~比如说对于宽度盒高度~在不同浏览器
中定义是不同的~IE6
是包含边框、内边距~而FF的只是指内容的宽度。
细节上的差异~往往是我们在日常工作中能总结出来的。
当你的CSS写的不兼容时候~你自然就会想起这些内容。
第十周
实习第十个礼拜
JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言
基本特点:
基于对象的语言、简单性、安全性、动态性、跨平台性、是一种脚本编写语言、解释型语言,不用编译、直接由浏览器解释执行,
使用typeof操作符判断
NaN--notanumber,即非数值a、NaN用于表示一个本来要返回数值的操作数未返回值的情况,b、任何涉及NaN的操作都会返回NaN,c、NaN与任何值都不相等包括NaN本身~返回false
isNaN函数--判断某个值是否为数值
如果是数字值~返回本身、如果是null~返回0、如果是undefined~返回NaN、如果是字符串~遵循以下规则:
-–如果字符串中只包含数字~则将其转换为十进制,忽略前导0,
-–如果字符串中包含有效的浮点格式~将其转换为浮点
数值,忽略前导0,-–如果是空字符串~将其转换为0
-–如果字符串中包含非以上格式~则将其转换为NaN
如果是对象~则调用对象的valueOf()方法~然后依据前面的规则转换返回的值。
如果转换的结果是NaN~则调用对象的toString()方法~再次依照前面的规则转换返回的字符串值。
parseInt-将字符串转换为整数类型的数值,规则如下、忽略字符串前面的空格~直至找到第一个非空字符、如果第一个字符不是数字符号或者负号~返回NaN、如果第一个字符是数字~则继续解析直至字符串解析完毕或者遇到一个非数字符号为止、如果上步解析的结果以0开头~则将其当作八进制来解析,如果以0x开头~则将其当作十六进制来解析。
第十一周
实习第十一个礼拜
Servlet生命周期
Servlet的并发问题:
在Servlet中使用静态变量和成员变量是~要非常小心。
如果你的程序改变这些变量值的时候~就会发生并发问题。
如果从不会去改变~只是读取~则不会发生并发局部变量永远不会有并发问题。
Servlet的并发处理:
不使用静态变量和成员变量、如果一定要使用~要加锁~但会影响性能
资源访问:
WebRoot下面的都叫容器内的资源、Servlet、容器外的资源、forwardvsredirect都能访问内部资源~redirect还可以访问外部资源、使用forward是在后台转发,浏览器也不知道干了什么~所以地址不会变、而redirect要先回到浏览器~告诉浏览器要访问谁~所以浏览器的地址栏要发变化、当访问内部资源时~使用firward效率会更高。
篇三:
软件工程专业毕业实习周记范文原创全套
软件工程专业毕业实习周记全套
本人在软件工程专业相关岗位3个月的实习~十二篇周记~总结一
篇~全部原创~共6500字~欢迎下载参考,
姓名:
杜宗飞
学号:
2011090118
专业:
软件工程专业
班级:
软件工程专业01班
指导教师:
赵晓明
第1周
作为软件工程专业的大学生~我很荣幸能够进入软件工程专业相关的岗位实习。
相信每个人都有第一天上班的经历~也会对第一天上班有着深刻的感受及体会。
尤其是从未有过工作经历的职场大学们。
头几天实习~心情自然是激动而又紧张的~激动是觉得
自己终于有机会进入职场工作~紧张是因为要面对一个完全陌生的职场环境。
刚开始~岗位实习不用做太多的工作~基本都是在熟悉新工作的环境~单位内部文化~以及工作中日常所需要知道的一些事物等。
对于这个职位的一切还很陌生~但是学会快速适应陌生的环境~是一种锻炼自我的过程~是我第一件要学的技能。
这次实习为以后步入职场打下基础。
第一周领导让我和办公室的其他职员相互认识了一下~并给我分配了一个师父~我以后在这里的实习遇到的问题和困难都可以找他帮忙。
一周的时间很快就过去了~原以为实习的日子会比较枯燥的~不过老实说第一周的实习还是比较轻松愉快的~嘿嘿~俗话说万事开头难~我已经迈出了第一步了~在接下去的日子里我会继续努力的。
生活并不简单~我们要勇往直前:
再苦再累~我也要坚持下去~只要坚持着~总会有微笑的一天。
虽然第一周的实习没什么事情~比较轻松~但我并不放松~依然会本着积极乐观的态度~努力进取~以最大的热情融入实习生活中。
虽然第一周的实习没什么事情~比较轻松~但我并不放松~依然会本着积极乐观的态度~努力进取~以最大的热情融入实习生活中。
第2周
过一周的实习~对自己岗位的运作流程也有了一些了解~
虽然我是读是软件工程专业~但和实习岗位实践有些脱节~这周一直是在给我们培训那些业务的理论知识~感觉又回到了学校上课的时候。
虽然我对业务还没有那么熟悉~也会有很多的不懂~但是我慢慢学会了如何去处理一些事情。
在工作地过程中明白了主动的重要性~在你可以选择的时候~就要把主动权握在自己手中。
有时候遇到工作过程中的棘手问题~心里会特别的憋屈~但是过会也就好了~我想只要积极学习积极办事~做好自己份内事~不懂就问~多做少说就会有意想不到
的收获~只有自己想不到没有做不到。
第二周实习快结束了~来这里有一段时间了~虽然同事们都很好~工作也轻松~对工作的环境有一定的了解~但真正在这里生活了~还是会觉得有些不适应。
与当初想象中的职场状态似乎有些差距~我相信我会适应职场生活。
第3周
不知不觉进入了实习的第三周~生活还在慢慢的适应~每天按部就班的工作。
除了学习岗位相关的业务知识~我还加强大学软件工程专业相关知识与自己岗位相结合~努力让软件工程专业相关知识应用到实际工作中。
实习不想在学校~很多工作遇到的很多问题都只能自己钻研~不过好在有很多资料可以查~大学里学习的软件工程专业相关知识能够帮上忙~也不枉大学的学习。
不懂时就查查资料~也培养了
自学能力~同时了解许多相关的知识~一举多得。
经过2个多星期的正式实习工作~我已经慢慢适应这样的作息和工作方式了。
以前在学校的时候~有时候偷懒或者身体不适~就会请假或者逃课~老师也会很理解很包容我们这群他眼里的“没长大的孩子”。
但是现在开始上班~同事中没有人再会把我们当成孩子~也不会像老师那样宠溺和包容我们。
不管是谁~迟到都是会受到领导的批评。
所以每天早上都不敢偷懒~准时起床去上班~有时候为了不迟到~不吃早饭都是常态。
为了给大家留下好的印象~我都要提早去办公室~把办公室清扫一下~再给大家打上热水。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 实习
![提示](https://static.bdocx.com/images/bang_tan.gif)