
it技能包括的技能:
1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。
2、命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、HtmlConverter、jar、java、javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有全部使用过,那么你对java实际上还很不了解。
3、工具:必须至少熟练使用一种IDE的开发工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括进行工程管理、常用选项的设置、插件的安装配置以及进行调试。
4、API:Java的核心API是非常庞大的,但是有一些内容笔者认为是必须熟悉的,否则不可能熟练的运用Java。
5、测试:必须熟悉使用junit编写测试用例完成代码的自动测试。
6、管理:必须熟悉使用ant完成工程管理的常用任务,例如工程编译、生成javadoc、生成jar、版本控制、自动测试。
7、排错:应该可以根据异常信息比较快速的定位问题的原因和大致位置。
8、思想:必须掌握OOP的主要要求,这样使用Java开发的系统才能是真正的Java系统。
9、规范:编写的代码必须符合流行的编码规范,例如类名首字母大写,成员和方法名首字母小写,方法名的第一个单词一般是动词,包名全部小写等,这样程序的可读性才比较好。
10、博学:掌握J2EE、Oracle、WebLogic、Jboss、Spring、Struts、Hibernate等流行技术,掌握软件架构设计思想、搜索引擎优化、缓存系统设计、网站负载均衡、系统性能调优等实用技术。
我也谈谈自己的一些提高开发体验经验,就说软件工具部分。
这里的经验基本上都是冲着一个原则去的:“凡是需要重复做的,必须使用自动化工具完成。”
1 版本控制
一般自己的项目使用git,公司开发规定用svn。反正不管怎么样,版本控制少不了。有个说法,没有版本控制的项目,就等于没有。
版本控制的好处太多了,用过的人都知道。等于历史版本 + 代码备份了。这个提到的很多,就不多说了。
2单元测试工具
写程序需要验证,如果快速知道新的代码和过去的写的代码不冲突,这个时候单元测试就能起到作用了。
当然单元测试的功能不仅仅是这个:
验证代码正确性和可靠性
验证新代码不和原有代码冲突
验证自己代码不合团队其他人员代码有冲突
验证合并是否有冲突
验证快速
可以作为API使用实例
跨平台和跨环境测试
这个是现代开发流程的基本模块之一,没有单元测试的项目,不是一个合格完整的项目。
有了单元测试,就再也不用担心在大项目中,自己做的小修改有会有什么大影响了。开发压力大大减少
PHP的我用的是PHPunit,JavaScript用过的就多了,Jasmine,Qunit,Mocha等工具(不管哪一个,至少要用到一个)C#一般用nUnit。还有各种mock,faker辅助。
3功能测试工具
就是交互界面测试,也可以是界面样式测试。代码写的方式大致过程和单元测试差不多,不过单元测试每个单元都是独立的,理论上不应该有任何依赖关系(只要有依赖关系就叫做集成测试);而功能测试,就是最后成品的测试,必须把所有依赖打开,并且在界面上进行测试。
界面功能测试的优点:
速度比人工快
模拟真人 *** 作
可以录像后导出测试代码
可以抓图
缺点:
依赖多,依赖的环境变化可导致代码失效
速度相对单元测试慢很多
测试成功率可能不是100%
功能测试,也是自动测试的一种,至少解放了大量重复性劳动,大大提升界面功能开发的速度。
功能测试工具主要有phantomjs和Selenium。我两个都用,根据不同情况使用不同策略。
4 依赖管理/程序包管理器
有了依赖管理,从此不用再手动去每个库的官方网站下载和更新库了。配置一下,运行一下命令行,然后就下载好了,定时在运行一下命令行,所有库又更新到最新版本了。开发体验大大提高。
列举一下主要好处:
自动安装依赖库
自动更新依赖库
自动安装/更新依赖库的依赖
最新库和现有项目有冲突,可以强制降级依赖库
开发依赖和项目依赖分开,发布版本时候可以自动删除所有开发依赖库
版本控制可以只收入依赖管理配置,无需收入依赖库的目录,大大节省版本控制大小
统一团体所有人员依赖库的版本
依赖管理下载速度快,免除开发人员手动的重复劳动。大大提高开发效率
PHP的依赖管理是composer,js的依赖管理是npm和bower,C#的是nuget,
5 流程管理/构建工具
这个叫法很多还有叫做任务自动管理工具的,不管是什么名字,都是一个意思:自动化流程管理。
简单的说从源代码到产品之间,中间还有一个复杂的过程,一般大致如下:
代码清洁
编译
配置
测试
一般对开发人员来说,凡是重复的,必须使用工具自动完成。开发人员是不愿意重复做这些流程,所以需要流程管理,把这些步骤全部用代码编排好,然后执行一个命令行,让电脑反复执行去。没有流程管理的项目不是一个好项目
JavaScript有grunt和gulp,PHP有Phing,Java有ANT。我用grunt比较多。
6 Live Reload
Live Reload一般是和流程管理一起使用的,(也有独立使用的版本)。独立出来说也是为了体现程序员一个终极特质:懒。凡是重复的,必须使用工具完成。Live Reload就是这个体现:按F5是个重复的低效率行为,必须交给工具完成
Live Reload的功能说起来很简单:
检查文件是否变动
如果变动刷新页面
给开发人员带来的直接好处就是查看页面变动,只要按ctrl+s保持代码就行了,连f5都不用按了。就这好处,足以把Live Reload这个工具当作神器了。配合流程管理工具,只要保存代码(ctrl+s),就马上进行构建,构建完成自动刷新页面。
我用的Live Reload是grunt-contrib-watch。
7代码质量分析工具
人工检查代码的效率是比较低下的,所以质量分析这一块可以作为开发辅助工具,来提高开发质量
常见的代码质量工具有:
语法检查,保证代码语法正确,可以跨平台,使用最佳实践
代码风格检查,保证团队代码风格一致
代码压缩,减少尺寸
重复代码检查
无用代码检查
模块复杂度分析
模块连接分析
等等,让然还有其他的质量分析,这些都是可以整合到流程管理上的。
JavaScript和PHP的用的比较多,Jshint,Jscs,uglifyjs,phpcpd,phpcs,phpdcd,PHPLOC等等工具,可以帮助开发人员提高代码质量,控制团队代码风格。
8持续集成
有人和我说过,持续集成可以让你开发水平提高达到到另外一个层级。当我实践后,终于明白持续集成的魅力所在了。
要会持续集成,你首先必须学会以上6条(live reload除外),以上6条基本就是持续集成的几个基础模块,学会后,你自然而然就已经会了持续集成了。
持续集成的主要流程如下
检查版本控制库是否更新
如果更新,就下载最新版本的代码
构建
测试
报告
当你设置好一个持续集成的项目后,以上的步骤应该就是全自动的了。还是那句老话: 凡是重复的步骤,应该用工具来完成。而持续集成就是这个终极工具。
持续集成其实就是流程管理的一个升级版本,或者说一个扩充。它们都是自动流程工具。它们的差别是:
流程管理主要在本机(开发人员自己的开发环境)上执行,而持续集成则是在一个独立设置的环境下执行。
流程管理继续的是本机代码,而持续集成构建的是版本控制中保存的代码
团队中任何一个人push代码到版本控制中,持续集成就开始构建验证新代码的可靠性。
项目流程配置完成后,流程管理需要执行命令行,持续集成应该全自动
流程管理是持续集成的一个模块,属于持续集成的构建模块
持续集成会有更多后续的专业功能,比如说产生报告,错误通知,构建历史,测试历史等开发新型
我们可以设想一下这样的一个情况,在有20-50个人的团队在开发一个PHP项目,每个人每天至少往版本控制中push大约10次新代码,而这个项目你又要保证在3个主流的浏览器中功能一致,样式相同,而这个项目又必须跨平台,可以在mac,window,linux上都可以运行,而且还要保证PHP54~56都可以运行。这个时候,持续集成系统的优势就会显示其真正的威力了。
总之,在一个专业项目中,持续集成服务所提供的自动构建和专业报告,可以把项目开发的专业水准再次提高到一个新的层次当中。
我用过的持续集成是Jenkins。
文章到此算完结了。其实开发中,还有很多优秀的工具,但无法和这些主要的开发工具相比,就不在这里说了。
国内的IT技术论坛有哪些呢?IT程序员必逛的社区,小编经常去的一些国内社区网站及论坛,整理了一些比较好的开发者社区供大家参考,具体如下:
1、快速开发平台社区 -天翎低代码平台技术论坛,主要是以Java低代码开发平台为主的技术性论坛社区,目前低代码平台商用授权对外开放;
2、CSDN -专业开发者社区 IT技术交流平台;
3、IT圈,圈圈精彩 - 原软媒论坛、IT之家,国内最人气的科技社交圈层,继软媒论坛、IT之家社区演变而来;
4、51CTO技术论坛-中国领先的IT技术社区 国内主流IT技术社区,论坛拥有大批IT技术人/IT专家;
5、ITPUB技术论坛-中国专业的IT技术社区。
对于程序员来说,在开发和安装软件的时候,除了需要让程序能够准确执行命令以外,同时也需要避免许多的问题,下面我们就一起来了解一下,需要避免的问题都有哪些。
1锁住包版本
您的清单文件包含所有软件包版本的信息,以便在每次安装应用程序依赖项时保持一致的结果,不会破坏代码。做法就是使用清单锁定文件以避免任何差异,并确认每次都获得相同的软件包版本。否则你的代码组件版本不精确,不确定将在下一个版本中安装哪个版本,并且代码可能会被破坏。
2归档不再维护的库
随着时间的推移,由于各种原因,我们的存储库可能已经无法维护了。也许你为一个临时用例打开了一个新的存储库(或者你想要POC一个新技术),或者你有一些包含旧的/不相关代码的存储库。问题是相同的:这些存储库在达到目的之后不再被积极开发,你也不想再维护它们。佳实践是归档这些存储库,设置为“只读”模式。
3为项目创建一个有意义的gitignore文件
每个存储库中都必须使用gitignore文件来忽略预定义的文件和目录。它将帮助你防止密码,依赖关系以及代码中许多其他可能的差异。可以从Gitignoreio中选择相关模板。
4将源代码和配置文件分离开
强烈建议不要将本地配置文件提交到版本控制中。通常,本地配置文件包含secret,个人偏好,历史记录等私有配置文件,你是不会想将其推送到远程的。这些信息应当只保留在本地环境中。
5避免在项目中提交依赖
将依赖推到远程源将增加存储库大小。删除存储库中包含的所有项目依赖,并让包管理器在每个构建中下载它们。如果你担心“依赖的可用性”,IT培训建议应该考虑使用Jfrog或NexusRepository等二进制存储库管理器解决方案。
软件测试工作有前途。
软件测试就业前景挺好的,目前IT行业对于软件测试方面的人才需求是非常大的,软件产品的质量对于一个软件来说是攸关生死的,各企业越来越重视软件产品质量,而软件测试的工作就是让软件质量越来越好,还有就是软件测试的工资待遇是非常好的,和其它职业相比,月入上万要简单的多,随着时代的发展,软件也越来越普及,所以人才需求量和前景都是不错的。
软件测试是软件开发过程的重要组成部分,是用来确认一个程序的功能或性能是否符合开发之前所提出的一些要求。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。最直观的目的肯定是通过对软件系统或程序的测试,发现其中的错误,也是目前和未来比较热门的一个行业。
随着企业对软件测试项目的重视,越来越多的零基础的人也开始加入到软件测试的求职浪潮之中。今天,我们就给大家简单分析了在软件测试行业中需要了解的一些常见问题。
1、测试负责人要进行严格的测试进度跟踪吗
很多时候,由于人力资源的不足,测试项目负责人都是在执行测试,这样就使整个项目缺乏控制,一些问题(例如:有些成员的缺陷质量不够合格;开发人员修改不及时,系统某些功能发生严重问题导致部分功能无法测试。)得不到解决,耽误了进度。所以测试负责任必须全程监控项目,尽可能多的掌握信息。通常,测试负责人需要完成下面这些内容的管理工作:测试用例执行情况;每个测试员提交的缺陷情况;测试中是否发生突发问题。
2、测试也有版本控制吗
这里的版本主要是指测试对象的版本控制,也就是指对开发部提交的产品进行版本控制。在开发小组版本管理不规范的情况下,测试小组进行版本控制十分重要,要保证测试对象是可以控制的。建议开发和测试双方进行明确的约定,可以各自指定专门的测试版本负责人,制定提交原则,对提交情况进行详细的记录,这样基本避免了版本失控导致的测试失误或无效。
3、如何处理测试人员的流动问题
人员流动不仅仅是测试部门,这是IT行业的普遍现象。从管理者角度,主管需要多多和团队内成员进行沟通,建立一个融洽的团队环境,及时掌握情况,可以早些进行相应的调整。但是只有企业建立好的用人制度,给员工提高广阔的发展空间和好的培训学习机会,才能从根本上解决这一问题。加强项目管理,强化文档管理并保证文档的有效性,可以大大减少由于人员流失带来的损失。同时,测试部门要建立培训机制,使新到员工接受直接或者间接的培训,快速适应工作。
4、为什么开发人员经常抱怨测试工程师提交的缺陷质量太差
我们经常听开发人员说:“这不是缺陷!”,“这个缺陷没有,因为我的系统上运行正常!”。测试工程师本身就是做质量工作的,提交的成果本身就应该质量高些,为什么还会有这种现象提交的缺陷引起争议是一种正常的现象,例如测试人员描述不清楚就会引起争议。减少甚至避免这种现象的方法是交叉测试,交叉测试是提高测试质量的一个有效手段,当然交叉测试会增加一定的测试成本投入。IT培训发现在测试任务完成后,测试工程师之间互相验证彼此提交的缺陷,就会避免了缺陷描述不清、因运行环境而产生的缺陷等一系列问题,从而大大降低了回归测试以及交流的成本,因而这种投入也是值得的,实际开发人员在单元测试阶段也会进行交叉测试,来提高开发质量。另外,测试人员一定要按照规范描述测试中发现的缺陷,一个缺陷至少描述清楚概要描述、详细描述、重现步骤三方面的内容,缺陷管理参考八章的内容。
以上就是关于it技能包括哪些技能全部的内容,包括:it技能包括哪些技能、作为 IT 从业人员,你觉得有什么工具大大提高了你的工作效率、国内或国外最好的IT技术论坛有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)