① 技术总监岗位职责
技术总监岗位职责集锦15篇
在日常生活和工作中,岗位职责的使用频率呈上升趋势,任何岗位职责都是一个责任、权力与义务的综合体,有多大的权力就应该承担多大的责任,有多大的权力和责任应该尽多大的义务,任何割裂开来的做法都会发生问题。那么什么样的岗位职责才是有效的呢?以下是我整理的技术总监岗位职责,欢迎阅读,希望大家能够喜欢。
1、在总经理领导下负责新产品、新工艺的研发和试生产的组织实施,负责公司产品未来发展方向的研究,负责了解、执行和落实国家、省、市科技政策,结合公司实际情况,建立公司科技管理体系,制定并执行公司相关科技政策和科技管理制度,为公司未来持续发展营造良好的科技文化和科技创新环境,分管公司所属玻璃棉深加工产品的生产组织、生产管理和生产安全。
2、确定下级部门的组织结构,提出直接下级岗位的用人要求,并编写该岗位的岗位职责和任职资格报总经理批准。
3、确定直接下级的用人要求,组织编写分管范围的岗位职责、操作规程、安全规程和制定相关的工艺文件并督促执行。
4、根据公司的发展战略目标和方向,做好未来1年新产品的研发规划,包括拟订研发项目、预算研发投入。负责组织完成研发任务。
5、提出分管范围的员工培训计划,完成公司安排的培训任务。
6、制定分管范围人员的绩效考核办法并定期对他们进行考核。
7、负责对分管范围员工的二级安全培训。
8、负责向下级传达公司的方针、政策、制度、规定等。
9、负责公司科技制度的起草、修订和执行工作。负责科技信息的收集、整理、发布工作,为公司的科技活动决策提供依据;
10、负责对外申报国家科研经费,负责对外申报国家、省、市级科技成果奖。
11、完成上级交办的其它工作任务。
岗位职责:
1、负责服务端的系统分析和架构设计,指导相关技术团队实现设计,规划平台未来技术架构方向;
2、进行全局性和前瞻性的架构设计,以及技术细节的实现,推动周边系统和相关团队完成网络架构落地,解决业务发展遇到的网络架构问题,持续提升系统平台稳定性;
3、带领技术团队进行重点产品、项目研发,解决中间出现的技术难题;
4、制定高效、实用的技术规范;
5、做好开发过程中的指导工作。
任职要求:
1.6年以上java研发和软件设计经验;
2.3年以上高并发大系统设计与研发经验;
3.熟练掌握主流应用服务器架构体系、数据库以及各种中间件技术,如tomcat、weblogic、jboss等;
4.精通struts、sping、hibernate等主流框架。
5.熟悉大规模系统的负载均衡、缓存、网络安全、数据库高可用设计及性能评估机制;
6.具备良好的系统分析能力,良好的抽象思维和逻辑思维能力,独立分析问题解决问题的能力;
7.可承受较大压力,有责任感,较强的沟通协调能力,具有团队合作精神,能带领团队进行主要产品的研发。
1、熟悉医疗行业相关业务和医疗信息化相关技术;
2、可以独立完成大型信息化系统顶层设计;
3、有良好沟通能力和表达能力;
4、有较强的书面表达能力;
5、熟悉云计算、大数据和基础信息通信技术,可以紧跟信息技术发展
具备素质:
1、软件系统的架构设计、系统分析、软件实现、性能优化等各个环节及流程;
2、研发过程管理和控制,包括进度安排和控制、风险控制、质量管理、配置管理等;
3、具备较强的研发过程管理和控制的技能,包括进度安排和控制、风险控制、质量管理、配置管理等。
4、能力要求编辑强烈的责任心和良好的挫折承受能力;
5、较强的创造能力、抽象思维能力、归纳能力、逻辑分析能力、学习能力、项目管理能力;
6、良好的语言表达及沟通能力、拓展力及组织协调力,良好的职业素质;
7、具备对工作流程的塑造和改造的能力。
技术总监其一般是由技术部经理、研发部经理、质量管理部经理发展而来,经过努力可以向主管技术的副总经理、甚至总经理的方向发展。
1.能全面负责技术部工作,直接对总经理负责
2.参与公司发展战略和计划的制定
3.参加公司会议,将工作落实到位
4.加强技术队伍建设和管理
5.制定技术目标和工作方案
6.组织网络开发工作的实施
7.加强部门合作,提供技术支持
8.加强计算机使用的.管理
9.参与制订电脑、网络软、硬件及耗材的采购计划
10.负责网络安全管理
11.对公司机密负有保密责任
12.积极完成其它临时性工作
技术总监?工作内容
1.参与讨论确定公司部门级以上组织结构;当发现下级部门的岗位设置或岗位分工不合理时,要及时指出问题,作出调整,并通知人力资源部。
2.招聘及任免
3.提出并确定对直接下级的培训计划
4.绩效考评
1、协助总监制定和落实各项经营发展战略和工作计划。
2、在公司经营计划、销售策略、企业管理和销售团队管理方案等方面向总监提出决策分析和决策支持。
3、能够做好各种销售报表及协助总监处理日常工作事务。
4、完成总监安排的日常经营管理及落实安排总监下达的各项指令,并且落实到位。
一、业务职责
1、制订并组织实施技术系统工作目标和工作计划。
2、组织制订并实施技术系统规章制度和实施细则。
3、组织不合格品的审理工作。
4、组织技术、产品开发与创新。
5、组织建立并实施质量体系。
6、公司标准化、计量管理工作。
7、定期进行技术分析和质量分析工作,制定预防和纠正措施。
8、重要技术工艺设备、计量器具的申购。
9、技术系统文件等资料的整理保管及公司档案管理工作。
10、公司保密工作。
二、管理职责
1、组织建设
(1)、参与讨论公司部门级以上组织结构;
(2)、确定下级部门的组织结构;
(3)、当发现下级部门的岗位设置或岗位分工不合理时,要及时指出问题,作出调整,并通知人力资源部。
2、招聘及任免
A、用人需求
图片已关闭显示,点此查看
(1)、提出直接下级岗位的用人需求,并编写该岗位的岗位职责和任职资格,提交给总经理确认;
(2)、确认直接下级提交的用人需求(含岗位职责和任职资格),并提交总经理确认。
B、面试
(1)、进行直接下级岗位的初试;
(2)、进行直接下级的直接下级岗位复试,并做最后确定;
(3)、组织参与面试的人员。
C、不合格员工处理
(1)、提出对不合格直接下级的处理建议,提交总经理确认;
(2)、确认直接下级提出的对不合格员工的处理建议,提交给人力资源部。
3、培训
(1)、提出对直接下级的培训计划,提交总经理确认;
(2)、确认直接下级提出的培训计划,提交人力资源部。
4、绩效考评
(1)、提出直接下级的绩效考评原则,提交总经理确认;
(2)、根据总经理确认的绩效考评原则,与人力资源部经理商讨并确定绩效考评方法;
(3)、对直接下级进行考评,并进行考评沟通。将考评结果提交人力资源部。
5、工作沟通
(1)、汇总工作报告,并与总经理进行信息沟通,同时将这些信息传递到直接下级;
(2)、负责将公司的政策、原则、策略等信息,快速、清晰、准确地传达给直接下级;
(3)、确定书面的交互式的工作通报制度,与直接下属进行沟通。
6、激励
(1)、提议下级部门和直接下级的激励原则,提交总经理确认;
(2)、根据总经理确认的激励原则,与人力资源部经理商讨并确定激励方法。
1 负责起草公司技术发展规划,上报总经理办公会审批并依照审批决议实施;
2 领导公司技术人员完成公司签约的工程项目和咨询项目及申报项目的技术部份;
3 负责规划并形成公司行业解决方案;
4 参与公司重大业务问题的决策;
5 协助编写投标方案和咨询服务,并协助专业销售部门完成销售工作;
6 负责项目启动、项目计划、项目客户验收及项目内部总结验收评审等相关工作;
7 负责协调解决项目中项目组与部门间的问题;
8 负责参与重要项目的售前支持;
9 负责与潜在客户/合作伙伴的方案讨论与技术交流;
10 负责制定部门管理规范报批并执行以及业务流程规范化管理;
11 负责对下属人员招聘做出决策,并参与重要岗位员工招聘工作;
12 负责对下属部门经理(番禺经理)及相关有工作关系的人员进行考核;
13 参与公司文化建设工作;
14 定期向总经理(番禺总经理)汇报工作,定期听取下属员工的工作汇报;
15 参与公司总经理会议或其他重大会议;
16 完成总经理交办的其他工作。
1、协助总监制定战略规划、年度经营计划及各阶段工作目标分解,起草部门各阶段工作总结和其他正式文件;
2、协助总监对部门进行管理、协调内部各部门关系;
3、与部门员工保持沟通,以了解员工的想法和需求,做好员工和总监之间的沟通桥梁;
4、负责与职能部门及合作单位对接工作及外部商务联络工作;
5、协助总监参与项目执行及过程管理;
6、协助总监进行事业部内部财务管理,以及部门所有平台结算工作;
7、完成总监交办的其他工作任务。
1、组织制订公司技术管理、新产品研发、产品技术改造、生产物流及质量改进计划,经批准后组织实施。
2、组织建立、完善公司质量管理体系并组织实施。
3、参与新产品、新技术、新工艺方案的可行性论证,负责组织开展公司重大技术开发和改造课题的攻关、应用。
4、参与重大工程项目招投标的技术工作、项目实施方案的可行性论证、预算案的制定与调整和技术监督、管理工作。
5、参与公司对外的技术谈判和技术交流。
6、参与公司销售计划的制定。
7、审核各种技术图纸、质量标准、工艺文件等技术文件。
8、组织公司较大产品质量问题及不合格品的审理。
9、指导公司技术档案管理工作和保密工作,保证核心技术秘密的安全。
10、主持制订、修订技术系统的工作流程和有关规章制度、作业规范,经批准后监督检查执行情况。
11、组织制订技术系统年度、季度工作目标和工作计划,经批准后组织实施。
12、按工作程序与相关系统和部门进行横向联系,并及时对管理部门间的争议提出界定要求。
13、定期组织发起技术系统例会,召集公司技术、质量、生产、物流方面的工作会议,参加总经理办公例会以及其他重要会议。
14、制定直接下级的岗位说明书,定期收集下级的考核数据并对其工作做出评价,及时对下级工作中的争议做出裁决。
15、组织制定技术系统年度培训计划并协助人力资源部门实施。
16、参与技术系统员工的招聘面试评价工作。
17、按程序受理下级上报的合理化建议,参与评审公司员工的合理化建议。
18、代表公司与政府有关部门或有关社会团体、机构联络。
19、完成上级交办的临时性工作。
1、直接对公司首席执行官(CEO)负责,完成其指定工作方案或达到工作目标。
2、负责公司整体各个部门之间的工作协调具体工作任务的分配。
3、总体对公司互联网以及网络等技术性产品研发工作负责。
4、监督指导技术部门工作人员的整体工作情况、协调工作配合方式。
5、建立不同职能技术团队随时准备为公司技术项目调用。
6、负责技术部门人事任免工作,随时吸纳和筛选技术人才骨干。
7、保证公司网络和技术型产品的安全性,制定技术部门保密计划。
8、对技术部门内各个小组成员进行统筹安排,合理划分工作职能。
9、按照网站运营部门要求对网站进行改版或完善。
10、按照公司整体要求不断完善组网技术工程,保证公司内部网络畅通。
11、制定技术部门的战略发展和业务计划,协调各部门的工作,建设和发展优秀的运营队伍;
12、建立规范、高效的技术部门独立运营管理体系和并优化完善;
13、建立技术性独立考核制度,和规范性程序和产品开发要求。
一、技术指导类
1、 向区域经理负责,对所在区域发型师、技师的技术进行全面指导。
2、 经常性巡查所在区域内的分店发型师的技术,每个店至少1次/月,并向区域经理汇报每次巡查情况,提交每次巡查的结果报告。
3、 为发型师解答在工作中遇到的技术难题,提供发型设计方面的咨询服务。
4、 详细了解所在区域发型师的技术水平,并定期作出评定,两个月/次/人。
5、 协助分店店长共同提高发型师的实际操作能力。
6、 帮助分店对发型技师的工作能力进行指导和训练。
二、培训考核类
1、 每个月底,将下一月的发型师技术提升方案和工作开展计划交区域经理审核。
2、 负责具体执行所在区域发型师的技术提升方案和岗位技术培训工作。
3、 负责区域内每个新入职发型师的技术考核和岗前培训工作。
4、 每月定期向区域经理汇报、总结各项技术培训及考核工作的进展情况。
5、 按照公司标准要求,定期考核所在区域发型师的技术能力,并上报管理中心和区域经理。
三、信息服务类
1、 每个季度发布最新的流行发型款式及季节性发型,并向发型师讲解实际操作过程中的处理技巧。
2、 经常性地向发型师提供新的技术和新的设计理念的培训信息及各类大型赛事信息。
3、 负责对所在区域的发型师进行新产品的功用,适合对象及操作技巧的讲解。
岗位职责:
1、负责中心整体技术平台搭建,技术方案筛选,制定符合本中心发展规划的具体技术发展路线和计划方案;
2、始终站在行业发展趋势前端,推进和提供适合本中心开展医疗美容项目的技术解决方法和手段;
3、组建和维护操作团队,制定各岗位的管理细则及工作流程,负责团队工作的开展及培训;
4、根据工作特点建立风险管理机制,制定应急措施,保障中心的各项医疗项目在安全性、可靠性和有效性基础上展开。
任职资格:
1、具有医疗管理、整形相关专业本科以上学历,具备各类微创美容仪器及产品的使用和理论知识;
2、从事过一线工作,具有较强的微创美容行业或岗位实际管理和操作经验;
3、具备丰富的团队建设、管理经验和良好的沟通技巧,有良好的培训口才;
4、具有海外同类机构同类岗位工作经验者优先。
1、4S店技术总监岗位职责
1、负责制定和实施维修质量、培训、工具/资料等相关技术管理制度和工作流程;
2、负责控制维修质量,要求形成质量分析月报表,提出改进建议;
3、负责维修工具、设备及售后服务资料、工具/资料库房的日常监控;
4、负责车间管理;
5、负责收集并反馈重大、安全、批量质量相关信息,配合上汽开展技术管理工作。
2、4S店技术总监岗位职责
1、对所有“一次修复率”相关的内容负责,并着力提高“一次修复率”
2、对高难度故障进行判断、维修指导、维修支持
3、对于无法解决的高难度故障,需及时将相关信息通过DMS上传至技术支持中心(以下简称TAC),同时上报ASC相关人员及领导
4、参与技术类内训教材的编写及制定
5、可兼职技术类培训师的工作
6、对常见的技术问题定期出具技术指导报告并落实到班组
7、SGM维修通讯及技术简报的维护及保管
8、参加SGM召开的技术论坛会议,及其他有关技术类的临时会议
3、汽车4S店技术总监岗位职责
1、严格按照本品牌汽车管理文件要求制定相应的售后服务工作章程,并使本服务店各项工作及目标与本品牌汽车的相关要求保持高度一致;对服务店进行售后团队建设和品牌建设;
2、负责服务店售后服务的各项经营管理业务;
3、审核、签发向本品牌汽车相关部门发送的相关报表及文件;
4、负责管控重大顾客投诉的处理,对危机事件负责;
5、对顾客满意度的改进进行总体协调,保证顾客服务满意度,成绩的稳步提高;
6、组织协调各部门完成本品牌汽车所布置或委托进行的各项工作及活动;
7、保证服务店售后部门以公平的竞争姿态进行各项市场行为;
8、保持本品牌汽车相关部门通畅的交流与沟通;
9、负责制订每年售后人员的培训计划并做设备、人员储备计划;
10、制订售后人员薪酬、激励制度,对直属下级进行绩效考核;
11、对6s管理负责。
岗位职责:
1、负责指导制定、审核公司技术管理制度和技术规程标准;
2、负责公司新技术引进和产品开发工作的计划、实施,确保技术的超前性、竞争性;
3、负责组织编制公司技术开发计划和公司技术发展长远规划;
4、负责指导、处理、协调和解决公司项目中出现的技术问题;
5、保证项目的正常进行,确保公司项目计划按时完成;
6、负责组织技术成果及技术经济效益的专业评价工作;
7、负责对技术方案的评审工作。
任职资格:
1、正规院校本科以上,计算机、信息工程、通信及相关专业;
2、从事IT行业工作8年,具备通信行业工作背景;
3、相关技术管理岗位5年以上经验;有海外工作经验者优先;
4、尤其是移动通信行业工作经验,具有移动数据业务运营经验者最佳;
5、熟悉无线增值领域,掌握增值业务的相关技术和业务发展动态;
6、对产品的市场有敏锐的洞察力,并具较强的创新能力和开发能力;
7、了解多种大型网络架构平台;
8、掌握数据、语音及视频等方面的技术知识,并能够把握相关技术的发展动向;
9、具有小型机、各种档次服务器、存储、交换、路由等设备的调试经验;
10、熟知各种软件;有数据分析及挖掘工具(如SAS)等产品经验;
11、具有较强的学习能力,积极上进,有较强的工作责任心和事业心;
12、具有开拓创新精神和品格。
1、管理职责
a)参与制定公司软件产品的发展方向,确定公司产品框架及开发实施计划;
b)规划产品研发进度安排,根据公司需要确定产品开发周期及人员安排;
c)全面监控产品开发质量、进度和成本控制;
d)针对公司具体项目实施胆控制项目需求变更,支持项目实施的顺利进行;
e)负责研发中心各部门的日常管理工作和部门建设,制订并监督执行部门工作计划。
2、技术职责
a)解决目前公司已使用技术框架中存在的问题并进行有效优化
b)负责培训公司软件开发人员的整体开发技能
c)负责公司软件构件库的搭建、第三方控件的选型
;② 软件实施工程师,面试会问一些什么问题
我面的是上海交大,问了微机原理,数据库基础,,因为我本科是学通信工程所以问了学科交叉的内容,就是数字信号处理,很基础的问题,采样定律。因为非本专业,所以不会问的很深。具体就是中断啊,信号采样啊,之类的。建议看看软件设计师的一本应试教材,什么都有,比较全面。我就看了三天,笔试就过了
软件实施工程师面试或者笔试时候该注意的有:
1、技术方面:数据库知识和网络知识是必须的,讲求的是实用性的东西,配置和调试数据库,基本的操作等等。硬件也最好懂一些,比如说:打印机、传真机等。
2、业务方面:根据面试的公司的主要业务相关,不多做解释,接到面试通知后多找些资料了解,选择的公司所做的业务最好是自己喜欢的,不然,实施起来你会很被动。
3、性格和能力方面:适应能力要很强,实施面临着要经常出差。沟通和协调组织能力要很强,能快速理解客户意思,实现业务需求。演讲能力也许要有些,因为,产品在演示和培训客户使用时这个是必须的。
4、性格方面:外向开朗。
先是打电话给你叫你过去初试,先是一些逻辑测试题,很简单但是挺多的一般15分钟只能写出来一般左右,主要问些 以前工作经历,对泛微有什么了解,一般HR会介绍他们公司。这是初试,觉得可以,三天后过去复试,是技术总监。
复试就做一些技术题 ,数据库基本操作 UNIXS widows 系统的基本操作等 还有一些处理事情的看法 一些主观题,还有就是一些以前公司的了解。
技术总监 主要问些 你以前工作经历 技术点,问的比较详细,主要是一些数据库的操作SQL 忘记了 可能他们比较看重数据库这块技术吧。
面试官提的问题:
1、职业规划。
2、介绍你开发的项目。
3、数据库操作。
4、公司没项目的时候你在做什么。
5、还有就是一些你所答得逻辑题目原因。
主要是的图像处理,一些开发库opencv,算法很重要,你还要知道的,还有会MFC 和其他界面开发,C语言只是图像处理的算法的实现,还要知道CCD。。。
楼上的回答是错误的,
正确解答是如下:
外资公司在香港成立公司没有问题,在上海招聘软件工程师也是可以的,
关于四金,关键问题是哪个公司为你缴,外资公司是可以交的,但是外资公司必须是在中国成立的外资公司,也就说在中国必须有正规注册的公司,才能够为软件师交四金。
香港公司是不能够为工程师缴纳四金的,
如果您想用香港公司为工程师缴纳四金,必须是,香港公司在国内有正规的注册的外资公司,代表处是不能够为员工缴纳四金的。
回答完毕 ,回答得好,加分请,谢谢
java基础知识,看你熟练程度;项目经验,看你有没有工作的能力、潜力;兴趣爱好、沟通协助能力等深圳远标培训面试技能借鉴
主要是sql查询语句,再有就是SQL调优。
至于问题和答案自己去翻相关教材吧,或是找别人总结的文章。网上搜下也是一大把,何必在这里答案呢
面试啊,一般不会问太具体的问题,语法会在笔试里考,然后一般面试分技术面试和综合面试。一般情况是,你过了笔试,然后去技术面试,然后综合面试。技术面试官一般是拿着你的简历和笔试试卷,一开始会问你那些写错的地方。然后问你有什么项目经验,如果有,会追问项目的种种,比如你开发了一个图书馆信息管理系统,会问你用了什么框架,比如你说用了struts,然后他会问你struts的基本原理,你大致讲一下对struts框架对servlet的封装和配置文件,然后他会问一些你数据库的东西,主要是你数据是如何设计的~。大致是这个流程。然后综合面试就是问你在学校干了什么 班干部什么 学校活动 学生会 还有 项目都可以随便说说,聊聊。
有些技术面试官会问你一些智力题(通常这样的面试官都不是项目经理,是稍微懂点技术的人力资源,比较2的反正)
技术题目可以在网上搜索,另外就是看程序员面试宝典这本书。
技术面试官还会问你对其他技术,(你会的东西都应该写在简历上),比如你简历上说你会Hibernate,那他也会问你Hibernate的相关东西。OOP思想什么的,设计模式也会涉及的
曾经是否做过冲压工,如何安装模具,都加工过什么样的产品,以及冲压加工的安全操作规定等。
笔试是数据库的题,基本查询,存储过程什么的,考完就面试。
调研企业现状,需求分析,详细设计,软件采购安装,系统配置初始化,系统测试,用户培训。。。
③ 为什么程序员都很排斥面试时做题
第一, 能做上的人真的不多。
所谓程序员,方向很广的,前端、后端、UI、架构等等,不同的岗位研究的方向不同;做不同的产品,用到的语言可能也不尽相同。用做题来衡量一个人的水平这件事,本身就不是很可行。明明是擅长数据库的从业者面试者,硬是要做一套Java的试题,是很为难的。对于企业来讲,从笔试想检测下专业水平,但是程序员术业有专攻是没错的。
第二, 写程序不是一项程序活儿。
面试时的做题的环境,心情和真正的工作是不一样的,我们说打球会有手感,写代码其实也有手感。在压力,虚拟的情景下,程序员容易造成失误,影响发挥。不仅是程序员,离开了学校之后,考试这种形式都不招人喜欢。
第三, 面试的诚意。
面试时一个双向选择的过程,如果是技术总监来聊聊,会显得比较尊重人才有诚意,双方一旦发现有不可调和的供求不匹配,也可以马上结束谈话。人是活儿的,但试题是死的。如果做完题目后一聊,发现双方并不合适,做题就很浪费自己的时间了。
④ 新来个技术总监,禁止我们使用Lombok
我有个学弟,在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范、日志规范、甚至是要求大家统一使用某一款IDE。
但是这些都不是我这个学弟和我吐槽的点,他真正和我吐槽的是,他很不能理解,这位新来的技术总监竟然禁止公司内部所有开发使用Lombok。但是又没给出十分明确的,可以让人信服的理由。
于是他来找我聊天,问我这个要求到底是否合理。关于这个事情,我认为这位技术总监的出发点是好的,但是做法未免有些极端。
之所以说出发点是好的,是因为使用Lombok确实会带来很多问题,而且我个人在工作中也基本不主动使用。
之所以说不主动使用,那是因为有些同事的代码还是使用了的,所以我也被迫的要安装Lombok的插件。
既然聊到这个话题,就简单说说我的一些看法。
Lombok有什么好处?
Lombok是一款非常实用Java工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。它通过注释实现这一目的。
如果大家对于Lombok比较了解的话,可以先跳过这一段,直接往后看,如果不是很熟悉的话,可以简单了解一下。
想在项目中使用Lombok,需要三个步骤:
一、IDE中安装Lombok插件
目前Lombok支持多种IDE,其中包括主流的Eclips、Intellji IDEA、Myeclipse等都是支持的。
在IDEA中安装方式如下:
...
二、导入相关依赖
Lombok 支持使用多重构建工具进行导入依赖,目前主要支持maven、gardle、ant等均支持。
如使用maven导入方式如下:
三、代码中使用注解
Lombok精简代码的方式主要是通过注解来实现,其中常用的有@Data、@Getter/@Setter、@Builder、@NonNull等。
如使用@Data注解,即可简单的定义一个Java Bean:
使用@Data注解在类上,相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor这些注解,对于POJO类十分有用。
即自动帮忙给例子中的Menu类中定义了toString、Getter、Setter等方法。
通过上面的例子,大家可以发现,我们是好用@Data注解大大减少了代码量,使代码非常简洁。这也是很多开发者热衷于使用Lombok的主要原因。
另外,关于Lombok的使用,不同人有不同的看法,因为很多人都使用过Lombok,对于他的优点都比较了解,所以接下来我们重点说一下Lombok的使用会带来哪些问题。
Lombok有什么坏处?
因为Lombok的使用要求开发者一定要在IDE中安装对应的插件。
如果未安装插件的话,使用IDE打开一个基于Lombok的项目的话会提示找不到方法等错误。导致项目编译失败。
也就是说,如果项目组中有一个人使用了Lombok,那么其他人就必须也要安装IDE插件。否则就没办法协同开发。
更重要的是,如果我们定义的一个jar包中使用了Lombok,那么就要求所有依赖这个jar包的所有应用都必须安装插件,这种侵入性是很高的。
代码可读性,可调试性低
在代码中使用了Lombok,确实可以帮忙减少很多代码,因为Lombok会帮忙自动生成很多代码。
但是这些代码是要在编译阶段才会生成的,所以在开发的过程中,其实很多代码其实是缺失的。
在代码中大量使用Lombok,就导致代码的可读性会低很多,而且也会给代码调试带来一定的问题。
比如,我们想要知道某个类中的某个属性的getter方法都被哪些类引用的话,就没那么简单了。
有坑
因为Lombok使代码开发非常简便,这就使得部分开发者对其产生过度依赖。
在使用Lombok过程中,如果对于各种注解的底层原理不理解的话,很容易产生意想不到的结果。
举一个简单的例子,我们知道,当我们使用@Data定义一个类的时候,会自动帮我们生成equals()方法 。
但是如果只使用了@Data,而不使用@EqualsAndHashCode(callSuper=true)的话,会默认是@EqualsAndHashCode(callSuper=false),这时候生成的equals()方法只会比较子类的属性,不会考虑从父类继承的属性,无论父类属性访问权限是否开放。
这就可能得到意想不到的结果。
影响升级
因为Lombok对于代码有很强的侵入性,就可能带来一个比较大的问题,那就是会影响我们对JDK的升级。
按照如今JDK的升级频率,每半年都会推出一个新的版本,但是Lombok作为一个第三方工具,并且是由开源团队维护的,那么他的迭代速度是无法保证的。
所以,如果我们需要升级到某个新版本的JDK的时候,若其中的特性在Lombok中不支持的话就会受到影响。
还有一个可能带来的问题,就是Lombok自身的升级也会受到限制。
因为一个应用可能依赖了多个jar包,而每个jar包可能又要依赖不同版本的Lombok,这就导致在应用中需要做版本仲裁,而我们知道,jar包版本仲裁是没那么容易的,而且发生问题的概率也很高。
破坏封装性
以上几个问题,我认为都是有办法可以避免的。但是有些人排斥使用Lombok还有一个重要的原因,那就是他会破坏封装性。
众所周知,Java的三大特性包括封装性、继承性和多态性。
如果我们在代码中直接使用Lombok,那么他会自动帮我们生成getter、setter 等方法,这就意味着,一个类中的所有参数都自动提供了设置和读取方法。
举个简单的例子,我们定义一个购物车类:
我们知道,购物车中商品数目、商品明细以及总价格三者之前其实是有关联关系的,如果需要修改的话是要一起修改的。
但是,我们使用了Lombok的@Data注解,对于itemsCount 和 totalPrice这两个属性。虽然我们将它们定义成 private 类型,但是提供了 public 的 getter、setter 方法。
外部可以通过 setter 方法随意地修改这两个属性的值。我们可以随意调用 setter 方法,来重新设置 itemsCount、totalPrice 属性的值,这也会导致其跟 items 属性的值不一致。
而面向对象封装的定义是:通过访问权限控制,隐藏内部数据,外部仅能通过类提供的有限的接口访问、修改内部数据。所以,暴露不应该暴露的 setter 方法,明显违反了面向对象的封装特性。
好的做法应该是不提供getter/setter,而是只提供一个public的addItem方法,同时取修改itemsCount、totalPrice以及items三个属性。
总结
本文总结了常用的Java开发工具Lombok的优缺点。
优点是使用注解即可帮忙自动生成代码,大大减少了代码量,使代码非常简洁。
但是并不意味着Lombok的使用没有任何问题,在使用Lombok的过程中,还可能存在对队友不友好、对代码不友好、对调试不友好、对升级不友好等问题。
最重要的是,使用Lombok还会导致破坏封装性的问题。
虽然使用Lombok存在着很多方便,但是也带来了一些问题。
但是到底建不建议在日常开发中使用,我其实保持一个中立的态度,不建议大家过度依赖,也不要求大家一定要彻底不用。
只要大家在使用的过程中,或者评估要不要在代码中引入Lombok之前,在想到他的优点的同时,能够考虑到他给代码带来的问题的,那么本文的目的也就达到了!
⑤ java面试 初试复试都完了还要面试 能问下这第三次面试会问些什么吗 技术和人事的都谈过了。
第三面一般都是和技术总监或者其他部门领导面试,一般不会涉及到技术,主要侧重综合素质,而且一般社招和应届的面试侧重点也不一样。看你没经过面试,估计是应届毕业生了,以下几个估计是最常见的问题:
你对本公司有什么了解?对我们的产品或者业务有什么印象?(不是很重要,但一般会问到)
你对自己未来的发展有什么规划?(有具体规划的人潜力高)
你对加班有什么看法?(技术研发类的加班是很常见的,千万不要一口否定)
你对自己如何评价,性格、优缺点(着重优点,缺点可以有,但要是那种无关紧要的)
你平时有什么爱好(主要看你和不合群,比较孤僻,难交往的人,一般都直接否定掉,有特长的话很招人喜欢,我同学曾经就因为打篮球牛B直接被了)
可能会当场测试你的抗压能力(故意贬低你什么的,华为,中兴应届生招聘老玩这招)
你希望自己从事什么样的具体工作(看你面试的岗位具体说吧)
你在过去印象最深刻的一件事是什么?最遗憾的一件事是什么?如果让你从来,你会如何做(坑爹的问题,但我都遇到两次这样的问题了)
你觉得你大学四年最大的收获是什么(友情,爱情都可以,不过一般公司可能不希望男女朋友都在一个公司,而且工作地点如果是异地的话,也不希望你已经交朋友了)
然后可能会有一两个智力测试题,我现在想到的就这些了~