第一篇:Java程序员入行需要做哪些准备工作
千锋教育-中国IT职业教育领先品牌
Java程序员入行需要做哪些准备工作
随着IT从业人员的分工会越来越细,要求也会越来越专业,很多想要入行的人士不知道做何种准备才能更好适应此行业,为此千锋老师依据相关招聘信息分析得出所有公司招聘Java程序员的三类基本要求:
一、入行的两个基本要求
(1)学历:大学本科及以上学历(能力优秀的专科也考虑),计算机及其相关专业;
(2)经验:一年以上Java开发工作经验;
这两个要求,可以说,是目前大多数开发类技术岗位上,一定都会有的要求。
(一)学历问题的门槛分析
学历方面,文凭都只是“沉没成本”!只是证明了你在过去的时间段内有学好某个方面知识的能力!具体到某个时间段的某个特定的人来说,就不一定了,但没办法,HR们也看不到你的未来,只能看到你的过去,所以,也就只能通过“过去和现在,从概率上排除你了”!
越来越多的公司开始限定最低本科学历,除了上面的学习能力之外,还有一个更重要的原因,HR部门年终的时候都要给老总出一张图表,其上显示“985院校招了多少,普通本科招了多少,专科招了多少”,以显示公司人员的“综合学历”越来越高,人力资源部的工作越做越出色,这就是“形式决定内容!”
(二)如何跨越学历门槛
虽说学历绝大多数时候都只是个敲门砖,但是基本的要求还是要达到的,当然,如果你的要求不太合适,可以强调你的技术实力!人力资源部门在学历方面会设置门槛,而技术部门却对你的“功力”更看重,有个能立即上手干活的下属
千锋教育www.xiexiebang.com
比一张文凭更重要,毕竟你“干多了,干好了”,功劳全是领导的,“领导功不可没呀!呵呵!”
在绝大多数公司中,技术部门的权限要比人力资源部的权限大多了,所以,如何绕过HR们,找到直接的“未来上级”就显得格外重要了!
(三)经验问题的门槛分析
经验方面,很多大学生会说:“我如何能具备工作经验啊?”,“那我就没办法找到工作了?”……
没办法,这个社会就是这么残酷!企业是盈利为目的的!大多数公司,都不想花培养人的成本,都希望用熟手,所以,你的工资高低是由“利润贡献度”决定的!而不是公司的规模,不一定大公司的工资就比小公司高!;但从另一方面来说,具有一定的项目开发经验,工作起点就会高很多,不管是收入,还是发展,你都会站在一个比较有利的位置上。
实际上,大学生也可以通过一定的训练,积累很多的项目开发经验,达到工作1-2年程序员的水平,这个我们下次再讨论。
二、入行的三个软实力要求
(1)良好的职业素养,有较强的学习能力,能不断提升自我能力;
(2)具有良好的表达,较强的沟通能力,富有进取心,能承受一定的工作压力;
(3)具有阅读相关技术需求文档能力;具有一定的软件设计及文档编写能力;
这三个要求,也是对当今IT技术人员的基本要求了:学习能力关系到你是否具有可持续的职场发展能力;沟通能力关系到你能否在团队中愉快地工作,同时也保证项目的顺利进行;阅读和写作能力,这差不多是中国理工科学生的软肋,千锋教育-中国IT职业教育领先品牌
千锋教育www.xiexiebang.com
所以招聘方,一般都着力强调。
不过这些方面的能力,在工作中适当训练,即可提高,毕竟也是软实力,面试不太好考核,关键是以下的硬性技术指标要求。
千锋教育-中国IT职业教育领先品牌
三、入行的Java硬性技术要求
(1)精通Java开发语言、熟练掌握Eclipse开发工具;
(2)熟悉HTML、精通Apache、JSP、Servlet3.x等Web开发相关技术;
(3)熟悉主流数据库Oracle、MySQL、MS-SQL Server,熟练掌握SQL。
(4)熟悉使用Struts2.x、Spring4.x、Hibernate5等常用开发框架;
(5)熟练使用JavaScript、Ajax技术及AngularJS等前端MVC框架;
(6)具有一年及以上相关开发经验;
除此之外,还有一些特色要求:
(1)精通J2EE,熟悉主流应用服务器如JBOSS(WildFly)、WebLogic、WebSphere中至少一种;
(2)熟悉J2EE平台部署配置及性能调试(WebLogic和WebSphere);
(3)熟悉web service 开发,精通一种大型数据库开发和调试;
(4)精通Transaction、Security、Persistence等机制及实现,IOC、AOP、SOA
千锋教育www.xiexiebang.com
等理念及实现;
千锋教育-中国IT职业教育领先品牌
(5)熟练掌握面向对象的分析设计技术和工具,包括UML等;
(6)了解Web应用的性能瓶颈和调优方式;
(7)了解软件测试、软件工程、SOA、设计模式等相关知识;
(8)应用过UML、重构、软件设计模式,Ruby技术者优先;
当然,这些技术要求,并不特别要求你一定会掌握,有些可以通过快速的学习掌握,有些需要长时间的积累。
HR们自己也明白,这些要求属于人力资源储备式样的要求,如果你具备,可以在面试中加分,不具备,关系也不大。
四、如何成为一名合格的Java程序员?
有了上面的分析,我们可以看出,要成为一个合格的Java程序员,必须具备过硬的技术本领,集中在三个方面:
(1)精通Java面向对象基本语法,能完成Java Web开发;
(2)熟练SSH三大开发框架,能用它们完成一些项目;
(3)掌握主流数据库Oracle、MySQL、MS-SQL Server,熟练掌握SQL;
千锋教育www.xiexiebang.com
仔细分析一下,要达到上述三个基本要求,也不是那么的难,你只需要花上4-6个月的时间,找齐备资料,自己开发一些小程序,再参加一些项目的开发,如果你感觉你的自学能力还不够,可以去参加一些培训,和一些同学,一起学习。
千锋教育-中国IT职业教育领先品牌
千锋教育www.xiexiebang.com
第二篇:java程序员
如何迅速成为Java高手[Tomjava原创]
很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛!
要想学好Java,首先要知道Java的大致分类。我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。J2SE开发桌面应用软件比起VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。所以现在应用最广泛又最好学的就是J2EE了。J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。
那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。然后你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?还好,SUN提供了Javabean可以把你的JSP中的Java代码封装起来,便于调用也便于重用。接着就是EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail了。
好了,对Java和J2EE有了一些基本概念之后,你就应该编一些程序了,千万不要纸上谈兵哦。最好找一些有实例且带光盘的书来看,这样看到好的程序就可以直接Ctrl+C再Ctrl+V,也不用劳您老大架再亲自把它再输一遍吧,再说直接复制还不用怕出错,何乐而不为呢!还有就是要经常上一些好的Java编程文章,有好的文章要Cut下来,有问题尽管问,只要问题不是太傻,一般高手都会回答你的。下面介绍几个好的Java方面的编程网站:
CSDN论坛 http:///那里Java资料比较全;
java.com.cnhttp://.cn/看这域名就知道有多牛,注册用户快接近一万了,同时在线人数也在一千左右,人气很旺的;
IBM的开发者网络http://IBM永远的蓝色巨人;
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!你现在最缺的是实际的工作经验,而不是书本上那些
凭空想出来的程序。所以你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他还愿意不厌其烦地教你,这样好象有点难哦!
还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。学Java必读的两个开源程序就是Jive和Pet Store.。Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站http:///去下载,或到同济技术论坛的服务器上ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要错过了。
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体“技术”,它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧,让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。关于设计模式的资料,还是向大家推荐banq的网站http:///,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring(重整)和极限XP编程,相信你又会上一个台阶。
做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧,你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的来了。。。当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
下面介绍两个好的开源项目网站:
湖北省软件公共开发平台http://gro.clinux.org/
共创联盟http://cosoft.org.cn/
哇,好高兴哦,我终于成为高手了!非也,非也。古人云:“识时务者为俊杰”。你知道计算
机界现在的发展形势吗?你知道微软的.NET蓝图和SUN ONE计划之间的明争暗斗吗?你知道计算机技术将向何处发展吗?其实从各大计算机厂商最近的动作,都可以看出来“Web服务将是下一代互联网应用的制高点”,而微软的.NET蓝图和SUN ONE计划的斗争焦点,也就是Web服务。Web服务就是一个崭新的分布式计算模型,它是一系列标准的综合(XML,SOAP,UDDI,WSDL和WSFL等)。它使得不同语言编写的软件能够轻易的集成起来,使网络资源和Web站点变成一种服务而不是混乱的垃圾场。不远的将来,我们就可以在家里点击一下鼠标,就可以完成出门旅游的全部准备工作,包括定飞机票,定旅游线路,定好房间等。请注意,这所有的一切都是Web站点间自动完成的,再也不用象现在一样,表面上是电子商务,实际上很多环节都是人工操作。也许你会觉得这是天方夜谈,不过就近的说,你也很有可能承接一个项目,要集成两个企业的ERP系统。很有可能上游企业的系统是用Dephi编的,而下游企业的系统是用Java编的。你说你是Java高手,大家都看者你怎么做呢。所以啊,你还得学习新技术,如Web服务,而且你Dephi也要懂一点吧(Dephi6现在已经提供Web服务的控件了)。你编的Java系统,可能要和.NET集成,所以你.NET要懂一点吧?到最后,你可能发现你已经成为Java高手了,但很多时间却在搞别的技术。太极张三丰里说,最厉害的招式就是没有招式,可能就是这个道理吧!
因为刚刚兴起,所以网上Web服务的资料不是很多,我还是给大家推荐几个网站吧: 中国UDDI技术联盟http:///developerWorks/cn/xml/index.shtml?csdnIBM可是Web服务的力推者
呜„你费劲千心万苦,总算成为Java高手了,怎叫人不由喜极而泣呢!是啊,真不容易,真不简单,真叫人感动啊!那么打个电话告诉我吧,什么?我的电话号码是多少?昏到,你打电话问不就知道了吗,真是的„„
第三篇:转行Java程序员面试时需要哪些能力
www.xiexiebang.com
转行Java程序员面试时需要哪些能力
根据职位从开放到关闭时所经历的平均天数来衡量各个职位的难易招程度。从下图可以看到,互联网公司招聘一名营销人员平均需要54.4天时间,可谓互联网难招的职位,排名前五的难招职位中,有2个职位都属于市场与销售类别,对市场与销售人员的庞大需求量成正相关,同时由于互联网市场类职位的起薪相对较低,也成为了该类职位难招到人的制约因素。
我们看到,互联网易招的5种职位中,有四种均属于职能类别的职位,表明互联网对这类职位人员的需求量不大。我们发现前段时间兴起的新兴职位:程序员鼓励师属于互联网易招的职位,一方面是目前行业内公司对该职位需求量较小,要求不高,另一方面由于其有趣的工作职责要求,吸引了很多年轻女性前来应聘。
四川地处中国大西南,肥沃的土地,丰富的自然资源,悠久的历史和绚烂多彩的少数民族文化,构成了多样性的自然和文化旅游资源。中国作为全球首屈一指的大国,it培训缺口日益增大。从国家到地方,政府纷纷鼓励年轻人学习一技之长改变命运,成为很多人的首选。那么,2017it培训前景如何?是不是真如传言中所说的高薪职业永不失业呢?
在日常生活中,大家都多多少少听说过it培训,那么各位对其了解又有多少呢?是不是哪个更靠谱是大家比较关心的问题?下面就让小编带领各位去了解一下it培训吧!
www.xiexiebang.com
Java是目前使用非常广泛的网络编程语言之一,它具有简单,面向对象,稳定,与平台无关等诸多特点,深受IT编程工作者喜爱,在当今信息化社会中发挥了的重要作用。
根据IDC的统计数字:我国Java人才的缺口已达25.5万,并且以每年左右2倍较度增长。在未来5年内,合格软件人才的需求将远大于供给。Java工程师的缺口较为突出,可见Java工程师的受欢迎程度,那么,今天四川国信安Java培训的小编就来整理一些面试中常见的问题,希望能够对你起到一定帮助:
面试前花一些时间整理你的相关经历
一定要多花时间回忆你过去的相关经历,包括你参与的项目,你遇到的各种困难,以及如何解决的这些难题。你的回答会影响面试官对你Java技术能力的印象,所以一定要回顾和整理一下你过去的项目经历。
不要过于依赖事先准备好的面试答案
试图通过事先背诵一些答案,然后在面试派上用场是一个非常不好的方法。首先,恰好能用上你背的答案的概率微乎其微,其次,这样的准备会花费你大量的时间和精力,而没有真正能力上的提高。记住,你在现场发挥的越好、越真实,你身上的价值就越高。
www.xiexiebang.com
不要过度依赖代码编辑器
如果你要参加一个技术型的面试,面试官通常会要求你在白板/白纸上写代码,而不是在电脑上。所以,你不能过度依赖于代码编辑器,因为在那里它会帮你补充代码、显示出你的语法错误等。赶快拿出笔和纸,写下你的代码,当你满意自己在纸上写的程序的时候,再把它输入到电脑,让编译器验证它正确与否。
面试时不要找急忙慌,稳重一些
在解决问题时不要着急,否则只会导致更多的错误,显得你很粗心。要有条理和准确的的做事,经常回头看看你的代码,如果有错误就改正它们。这样做,其实完成项目的时间会更短,而且错误会更少。
面试中能够对面试官的问题对答如流必然是加分的,但现在的企业最看重的却不是这些,在这个高学历泛滥的年代,公司们注重的早已是个人能力与经验。那么,无经验的应届毕业生想找到合适的工作该怎么办呢? 课本里的知识那么单薄,导致许多应届毕业生无法适应工作岗位,许多人选择了培训机构,但许多IT培训机构是不提供实训机会的,所以在选择上一定要慎重。
国信安IT培训基地指定的官方IT人才培训机构。专注java培训、php培训、UI设计培训、IOS培训、安卓培训、嵌入式培训、.NET培训、web前端培训等培训课程。你们准备好怎么学习IT技术了吗?来参加国信安IT培训课程,你的选择不会有错!
第四篇:Java程序员需要了解的8个Java开发工具
Java程序员需要了解的8个Java开发工具
Java是计算机应用程序编程语言,被广泛用于创建Web应用、服务器处理、用户端的API开发乃至数据库等多个领域。下面厚学网小编列出了8个有助于你开发Java应用程序好的Java工具。
1.SparkJava 这是一款体形轻巧,功能强大的Web应用框架。Spark拥有简单而直接的方法。您可以通过一些繁琐的XML配置来使用Spark框架编写应用程序。Spark能让你花费很少的精力来开发Java的Web应用程序。
2.jClarity jClarity是两款产品的结合:illuminate用于性能监控,而census则可以收集日志和分析数据。jClarity支持云集成,并且其框架紧凑轻巧。
3.Clover Clover是用于代码覆盖的一大利器。该工具有助于用于应用程序测试的代码。我们可以在IDE或持续集成系统中运行Clover。该工具能让测试的运行速度更快。
4.JProfiler JProfiler拥有直观的用户界面,可以帮助你解决性能瓶颈和理解问题。JProfiler能让你轻松约束内存泄漏和修复线程的问题。
5.VisualVM VisualVM是一个集多功能于一身的Java故障排除工具。你可以使用VisualVM整合多命令行JDK工具。此轻便的工具有着惊人的分析能力。你可以在各种技术,如jvmstat、JMX和Serviceability Agent(SA)中使用VisualVM。VisualVM出名的是附加了API,以获得更多的数据,以及自动使用更快捷。
6.Elasticsearch Elasticsearch提供了可以整合现有的应用程序来驱动其与输入数据的交互的工具。这款开源工具提供了实时搜索和分析引擎。Elasticsearch可用于可靠性和可扩展性作为重要因素的分布式环境。该工具提供了超简单的全文搜索体验。
7.Sonarqube
Sonarqube是一个用来管理代码质量的开放式平台。基于Web的应用程序可以与Java应用程序进行配置。它提供了规则、警报、阈值、排除和设置功能。SonarQube允许用户将指标结合在一起,以及使用历史的措施混合。
8.Takipi Takipi是一个轻量级的Java代理。Takipi安装方便,用不了几分钟就可以搞定。它对代码注释或配置并没有要求。你可以使用一台具有完全功能的服务器与Takipi工作。此款 Java工具能帮助你减少调试时间。
总结
对于想学习Java的朋友来说,比较快的方式当然是结合自身实际情况找一家专业的培训机构来进行系统有效的学习,对此,小编推荐您可以访问厚学网(www.xiexiebang.com)来了解各大知名培训机构的详细情况,为自己的选择保驾护航;目前厚学网共计入驻了多家IT领域的知名培训机构,如:被北大青鸟、达内、上海蓝鸥、阁瑞钛伦特软件培训等,在让客户了解全面的课程信息及真实用户评价的同时,也让客户能够更放心,省心的选择到想学的课程,希望小编的倾力推荐能够对您的选择有所帮助,期待您早日学有所成,加油!
第五篇:java程序员需要注意的Dorker5大误区
java程序员需要注意的Dorker5大误区 主要误区
1.Docker是轻量级虚拟机
这是大家初学Docker时最主要的误解。这种误解倒也情有可原,Docker的确看上去有点像虚拟机。Docker网站上甚至有人比较了Docker和虚拟机的区别。但是,Docker实际上不是轻量级虚拟机,而是改进了的Linux容器(LXC)。Docker和虚拟机是完全不一样的,如果你把Docker容器当成轻量级虚拟机来用,会遇到很多问题。
在使用Docker之前,必须了解Docker容器和虚拟机有很多本质的区别。资源隔离:Docker达不到虚拟机所能提供的资源隔离水平。虚拟机的资源是高度隔离的,而Docker从设计之初就需要共享一些资源,这些资源是Docker无法隔离和保护的,比如页缓存和内核熵池。如果Docker容器占用了这些共享资源,那么其它进程在这些资源被释放前只能等待。
开销:大多数人都知道虚拟机的CPU和RAM能提供类似物理机的性能,但是有很多额外的IO开销。因为放弃了虚拟机的guest OS,Docker的package更小,比起虚拟机需要更少的存储开销。但这并不意味着Docker没有任何开销问题。Docker容器依然需要注意 IO开销的问题,只不过没有虚拟机严重而已。内核使用:Docker容器和虚拟机在内核使用上完全不同。每个虚拟机使用一个内核。Docker容器则是在所有容器间共享内核。共享内核带来一些 效率的提升,但是以高可用和冗余为代价。如果虚拟机发生了内核崩溃,只有这个内核上的虚拟机会受影响。而Docker容器如果内核崩溃了,所有的容器都会 受影响。2.Docker使得应用可扩展
因为Docker可以在很短的时间内在多个服务器上部署代码,自然有人会觉得Docker可以让应用自身变得可扩展。不幸的是,这是错误的。代码是 应用的基石,而Docker并不会重写代码。应用的可扩展性依然取决于程序员。使用Docker并不会自动得让你的代码易于扩展,只是让这些代码更容易跨 服务器部署而已。3.Docker在生产环境广为使用
因为Docker势头正劲,很多人便认为Docker可以在生产环境上大规模使用。事实上,这是不对的。注意Docker还是很新的技术,还不成 熟,正在成长,这意味着还有很多烦人的bug和待完善的功能。对新技术感兴趣这没错,但是最好要弄清楚新技术的正确使用场景和需要注意的地方。现 在,Docker很容易应用到开发环境。使用Docker可以很容易地搭建出很多不同的环境(至少,给人的感觉是能够搭建出不同的环境),这对于开发很有 用。
而在生产环境中,Docker的不成熟和不完善也限制了使用场景。比如,Docker不直接支持对多机器的网络和资源的监控,这使得它几乎无法在生 产环境中使用。当然也有很多有潜力的地方,比如可以将同一个package从开发环境直接部署到生产环境。还有一些Docker运行时特性对于生产环境也 很有用。但是总的来说,在生产环境里,目前不足多于优势。这并不是说无法成功运用到生产环境,只是现在还不能指望它一下子成熟和完美。4.Docker是跨OS的
另一个误解是Docker在任意操作系统和环境上都可以工作。这可能来自于装卸货物的集装箱的类比,但是软件和操作系统的关系可不像船位那么简单直接。实际上,Docker只是Linux上的技术。并且Docker依赖特定的内核特性,必须要有最新版本的内核才行。基于不同OS的差异性,跨OS 时,如果使用的不是最底层通用的特性,会遇到很多麻烦的问题。这些问题可能只有1%的发生率,但是当你在多台服务器上部署时,1%也是致命的。
虽然Docker只在Linux上运行,但是也可以在OS X或者Windows上使用Docker。使用boot2docker会在OS X或Windows机器上运行一个Linux虚拟机,这样Docker可以在这个虚拟机里运行。5.Docker增强应用的安全性
觉得Docker可以改进代码和交付代码过程的安全性,这也是误解。这也是真实的集装箱和软件上容器的差别。Docker是一种容器化技术,添加了 编排方法。但是Linux的容器有一些安全漏洞可能会被攻击。Docker并没有为这些漏洞添加任何安全层或者补丁。它还不是能保护应用的铁布衫。
Docker是很有意思的技术,有一些真实有效的使用场景。作为一个新兴技术,还需要大量时间来解决缺失的功能和已知的bug。但是,现在这个领域的确有很多的炒作。