java开发五年面试经验

深入研究Java之前需要了解的所有内容的概述

有许多工具,方法,环境和功能会改变您处理代码的方式,而这些通常是在学年期间不会遇到的。 虽然它在Java开发世界中迈出了第一步,但大多数实际学习都是在工作中进行的。

在下面的文章中,我们将介绍一些关键要素,您只有在获得更多经验后才能了解这些要素。 这些将包括基础知识和某种哲学的融合。 准备好笔记本,现在回到学校了。

恭喜,您即将开始忙碌

在学习编码时,我们面临着纯粹的问题:弄清楚算法如何工作,确定要使用的正确数据结构以及知道如何修正自己编写的代码。 但是,现实世界中存在许多我们从未遇到过的新问题:调整代码以适应团队的编码标准,了解其他人的代码,以及……在附近找到最好的炸玉米饼卡车。

我们将编写的第一行代码可能与第10,000行有所不同,因为我们一直在学习,调整和发展。 作为此过程的一部分,我们可能会失败或大做文章,这是可以的,因为它是任何学习曲线的一部分。 但是,我们可以提前做好一些准备,以尽量减少对我们正在处理的代码,数据库或应用程序的破坏。

写入,合并,调试,重复

每个工程师都知道编码是工作的重要组成部分,但编写代码可能是最简单的部分。 围绕它的调整和要素使它成为一个挑战。 这里有很多主题,但是我们决定从以下方面开始着重于您可以实际学习的主题:

1.合并文件

听起来很基本,但是有很多方法可以解决这个问题。 您会遇到的最常见操作之一是合并。 这是将两个(或多个)开发历史记录,文本文件,数组或任何其他对象结合在一起的动作。 例如,提交整个分支是非常基本的,但是如果只想提交其中的一部分怎么办? 在弄乱大家的硬语之前,您最好学习如何实际操作。 这就是为什么重要的是要知道此过程中发生了什么,在提交之前能够查看和理解代码。

您可以使用手动方法,实际上是查看文件,识别更改并查看它们可能如何影响代码,或者您可以选择一种有助于发现更改的工具。 您可以使用许多工具,例如IntelliJ IDEA的冲突解决工具 , KDiff3 , Meld , Guiffy , Kompare等。

IntelliJ IDEA的冲突解决工具

2.了解调试过程

一旦您的代码泛滥成灾,或者至少在您的开发环境上运行,就该看看它是否真正起作用了。 调试过程本身是非常基本的,但是为了使其更有用,您需要关注日志。

有不同级别可供选择:

  • 跟踪 –最详细的信息
  • 调试 –写入日志的详细消息
  • 信息 –在控制台上可见的运行时事件
  • 警告 –有关潜在问题的消息
  • 错误 –意外情况
  • 致命 –严重错误

尽管有一些框架可以为您编写这些消息,但重要的是要提供尽可能多的信息,以了解如何处理和解决不同的问题。

首先,您需要确定每条消息的正确级别。 例如,使用Debug记录程序中发生的所有事件,以便更好地调试代码并了解将要发送的代码,然后再将其发送到生产环境。 使用“信息”可以知道用户创建了哪些操作,并使用“警告”标记可能最终以错误结束的事件(如果您愿意并当然要跟踪它们的话)。

其次,请确保您提供所需的日志信息。 当然,您现在知道这意味着什么:

public void doSomething() {// your awesome codelogger.debug("Forgot the keys inside the car, BRB");
}

但是您必须考虑您的同事试图理解您的代码。 您不希望他们在假期期间打电话给您询问您在谈论什么车,并且您也不想从今天起2年后发现自己想知道编写本文时的想法。 以尽可能多的信息来对待您的代码,尽可能多地获取信息,以便其他人知道如何处理它。

另外,如果您练习良好的日志记录技能,那么注定会使每个人都做同样的事情。

3.为您的优势使用例外

Java中有很多异常,最近我们发布了一些技巧和见解,以处理许多Java异常 。 但是,在开发阶段如何为自己的利益使用异常呢? 通过断点。

您可以为抛出的异常手动设置断点,并标记在开发中运行应用程序时应该在哪里暂停执行。 每当执行断点时,都会在调试器控制台中显示一条消息,其中包含所需的相关信息。

就像您的应用程序的暂停按钮一样,它使您可以检查并确切查看直到那时为止发生了什么。 有多种类型的断点会阻止您的应用程序执行到特定方法,类,变量或代码行的执行,因此您可以随意播放和测试。

另一方面,如果您正在寻找一种工具来帮助您了解代码在生产中何时,何地以及为什么中断,则可以尝试OverOps。 它是唯一为您显示整个调用堆栈中每个异常,已记录警告和错误的完整源代码和变量状态的工具。 检查一下 。

4.处理生产环境

经过所有艰苦的工作,您已经部署了代码,并且可以在生产环境中使用它。 如果您编写了有意义的日志消息,您将能够知道何时引发异常,但有时很难理解异常发生的原因。

过渡到生产时,您必须牢记的一件事是。 我们不是在谈论铁路乘客和火车,而是在谈论您当地的环境与生产。 这是产生许多错误的良方,这些错误会浪费您的时间来试图找出它们的来源以及原因。

您需要了解这些环境为何不同,以及如何解决这一差距。 如果您正在寻找一些高级Java调试技术, 请查看这篇文章 。 可以使用Docker实现针对多种环境配置应用程序的另一种方法,您可以在此处阅读快速指南 。

5.考虑未来的队友

我们为您提供2个字:向后兼容。 想象一下:您的机器上安装了Java 8,而生产运行Java 6,而您却不明白事情为什么会中断。 也许某个客户正在运行该应用程序的旧版本,而您的最新功能不适用于他们。 这种棘手的情况很容易避免。

您需要记住,每个团队都有过去,并且列出了很久才到达的决策清单。 这就是为什么您必须思考过去才能前进的原因(我们说过我们会变得哲学上的,对吗?)。

在编写新代码时,请花时间进行测试,识别和修复可能破坏应用程序旧版本的内容。 它会一路为您提供帮助,并使每个人都更加快乐,因为对于不愿更新其应用程序版本的大客户,他们不必面对旧的甚至是令人惊讶的错误。

还有什么?

工作中最困难的部分是进入区域。 我们不是在谈论早上喝杯咖啡,而是在谈论提高生产力的方法,这些方法可以帮助您提高工作效率并帮助您做得更好。

您可以使用许多功能,例如特殊的bash脚本,自制的命令行黑客,甚至特殊的工具,可以帮助您更好地监视一切。 如果您正在寻找一些技巧和窍门,请查看我们从Java社区收集的一些生产力技巧 。

最后的想法

最困难的部分是入门。 不管是新工作的第一天,还是关于它的新博客发布,都没有关系–在此过程中有很多研究和学习。 不要害怕问尽可能多的问题,因为这是了解团队,代码和应用程​​序如何工作的最佳方法。

如果您认为我们错过了新员工的其他关键功能,我们很乐意在下面的评论中听到他们的消息!

翻译自: https://www.javacodegeeks.com/2016/11/5-things-experienced-developers-can-teach-java.html

java开发五年面试经验

java开发五年面试经验_只有经验丰富的开发人员才能教您有关Java的5件事相关推荐

  1. 只有经验丰富的开发人员才能教您有关Java的5件事

    深入研究Java之前需要了解的所有内容的概述 有许多工具,方法,环境和功能会改变您处理代码的方式,而这些通常是在学年期间不会遇到的. 尽管它在Java开发世界中迈出了第一步,但大多数实际学习都是在工作 ...

  2. Android开发社招面试经验,vivo安卓开发面试

    何为成长?成长是指自我提升,一方面是本身的个人能力,另一方面是社会对你的认可度.最终,程序员的职位和薪水都能在成长中得以体现. 很多人对成长有误解,在他们眼中,随着工作年限的提高,成长是理所当然的事情 ...

  3. Java开发社招面试经验:java下载安装包

    前言 前段时间,我向一位在阿里的朋友寻求进大厂的秘诀,他分享给我一份阿里内部资料--JAVA核心进阶手册,仔细翻阅一番才知道里面收纳整理的知识可真是齐全,不得不来感叹一番- 我将JAVA核心进阶手册大 ...

  4. 大华java面试经验_大华面试(Java 基础)

    7-17 大华一面(java 基础) 1. 讲一下 java 和其他语言的区别,说下 java 的平台无关性,如何做到一次编译,到处运行 关于java 的特性,可以从 java 的优点来说. java ...

  5. python做大数据开发是做什么的_大数据开发是干什么的?

    大数据作为时下火热的IT行业的词汇,随之而来的数据开发.数据仓库.数据安全.数据分析.数据挖掘等等围绕大数据的商业价值的利用逐渐成为行业人士争相追捧的利润焦点.随着大数据时代的来临,大数据开发也应运而 ...

  6. 开发好还是实施好_公众号开发 选择模板好还是选择定制发好

    微信公众号是很多企业和商家在微信上进行营销推广时会使用到的工具之一.但由于微信公众号的基础功能比较简单,往往无法满足企业运营的需求,因此很多企业表示要增加一些功能,也就是对公众号进行二次开发. 公众号 ...

  7. 嵌入式开发需要学mysql吗_学习嵌入式开发需要学习哪些课程?如何学习?

    针对很多的大学生嵌入式开发初学者来说,对嵌入式开发的学习还很迷茫.今天信盈达嵌入式培训老师给出参考建议:首先:嵌入式开发需要学习哪些课程?因为嵌入式开发的方向不同,所学习的内容会有所区别,但是无论是哪 ...

  8. 有抱负的 Web 开发人员应该在 2021 年学习的 10 件事

    大家好,如果您是一名 Web 开发人员,并且想知道 2021 年应该学习哪些内容以将您的技能提升到一个新的水平,或者想在 2021 年成为一名前端开发人员,但不确定哪些技术.工具.框架.语言,和图书馆 ...

  9. 在东京大学感受_我们想在东京在线游戏展上看到的10件事

    在东京大学感受 The Tokyo Game Show will take place online this year, from Sept. 23–27, but there are still ...

最新文章

  1. Android百度地图悬浮窗样式,JS百度地图搜索悬浮窗功能
  2. 并发测试mysql_Jmeter性能测试系列——结果分析与报告输出
  3. 上海2021年高考成绩排位查询,2021年上海各高中高考成绩排名及放榜最新消息
  4. 用JS实现根据当前时间随机生成流水号或者订单号
  5. MVVM模式的一个小例子
  6. js解码编码decodeURI与decodeURIComponent区别
  7. 异常:System.BadImageFormatException,未能加载正确的程序集XXX
  8. SqlServer2008修改编辑前200行
  9. js面向对象的程序设计 --- 中篇(创建对象) 之 原型模式
  10. unity如何做一个可以打开关闭的门?
  11. 机器学习经典案例——泰坦尼克号
  12. java ftps_如何基于FTP4J实现FTPS连接过程解析
  13. 如何用html做logo,html如何设置页面图标(logo)
  14. 企业联合体的形式_企业联合体与垄断的初探
  15. 民航产业发展趋势及对策建议(2021-10-21)
  16. SSH known_hosts / authorized_keys 的解释
  17. 连接超时与读取超时概述
  18. 中国计算机语言学,【CCL 2019】中国计算语言学大会(CCL 2019)技术评测报告以及研讨会...
  19. 模拟网易云的H5音乐播放器
  20. 【HDLBits 刷题】所有答案直达链接汇总

热门文章

  1. P6880-[JOI 2020 Final]オリンピックバス【最短路】
  2. P4351-[CERC2015]Frightful Formula【组合数学,MTT】
  3. 欢乐纪中某B组赛【2019.1.27】
  4. 2、异步HTTP编程
  5. Spring Boot 多数据源(读写分离)入门
  6. Oracle的分页实现
  7. JavaFX图表(五)之气泡图
  8. 自然语言处理中的Attention Model:是什么以及为什么[一]
  9. 人脸注册源码faceregiste
  10. Springmvc入门案例(1)