java开发五年面试经验_只有经验丰富的开发人员才能教您有关Java的5件事
java開發(fā)五年面試經(jīng)驗
深入研究Java之前需要了解的所有內(nèi)容的概述
有許多工具,方法,環(huán)境和功能會改變您處理代碼的方式,而這些通常是在學年期間不會遇到的。 雖然它在Java開發(fā)世界中邁出了第一步,但大多數(shù)實際學習都是在工作中進行的。
在下面的文章中,我們將介紹一些關鍵要素,您只有在獲得更多經(jīng)驗后才能了解這些要素。 這些將包括基礎知識和某種哲學的融合。 準備好筆記本,現(xiàn)在回到學校了。
恭喜,您即將開始忙碌
在學習編碼時,我們面臨著純粹的問題:弄清楚算法如何工作,確定要使用的正確數(shù)據(jù)結(jié)構(gòu)以及知道如何修正自己編寫的代碼。 但是,現(xiàn)實世界中存在許多我們從未遇到過的新問題:調(diào)整代碼以適應團隊的編碼標準,了解其他人的代碼,以及……在附近找到最好的炸玉米餅卡車。
我們將編寫的第一行代碼可能與第10,000行有所不同,因為我們一直在學習,調(diào)整和發(fā)展。 作為此過程的一部分,我們可能會失敗或大做文章,這是可以的,因為它是任何學習曲線的一部分。 但是,我們可以提前做好一些準備,以盡量減少對我們正在處理的代碼,數(shù)據(jù)庫或應用程序的破壞。
寫入,合并,調(diào)試,重復
每個工程師都知道編碼是工作的重要組成部分,但編寫代碼可能是最簡單的部分。 圍繞它的調(diào)整和要素使它成為一個挑戰(zhàn)。 這里有很多主題,但是我們決定從以下方面開始著重于您可以實際學習的主題:
1.合并文件
聽起來很基本,但是有很多方法可以解決這個問題。 您會遇到的最常見操作之一是合并。 這是將兩個(或多個)開發(fā)歷史記錄,文本文件,數(shù)組或任何其他對象結(jié)合在一起的動作。 例如,提交整個分支是非常基本的,但是如果只想提交其中的一部分怎么辦? 在弄亂大家的硬語之前,您最好學習如何實際操作。 這就是為什么重要的是要知道此過程中發(fā)生了什么,在提交之前能夠查看和理解代碼。
您可以使用手動方法,實際上是查看文件,識別更改并查看它們可能如何影響代碼,或者您可以選擇一種有助于發(fā)現(xiàn)更改的工具。 您可以使用許多工具,例如IntelliJ IDEA的沖突解決工具 , KDiff3 , Meld , Guiffy , Kompare等。
IntelliJ IDEA的沖突解決工具
2.了解調(diào)試過程
一旦您的代碼泛濫成災,或者至少在您的開發(fā)環(huán)境上運行,就該看看它是否真正起作用了。 調(diào)試過程本身是非常基本的,但是為了使其更有用,您需要關注日志。
有不同級別可供選擇:
- 跟蹤 –最詳細的信息
- 調(diào)試 –寫入日志的詳細消息
- 信息 –在控制臺上可見的運行時事件
- 警告 –有關潛在問題的消息
- 錯誤 –意外情況
- 致命 –嚴重錯誤
盡管有一些框架可以為您編寫這些消息,但重要的是要提供盡可能多的信息,以了解如何處理和解決不同的問題。
首先,您需要確定每條消息的正確級別。 例如,使用Debug記錄程序中發(fā)生的所有事件,以便更好地調(diào)試代碼并了解將要發(fā)送的代碼,然后再將其發(fā)送到生產(chǎn)環(huán)境。 使用“信息”可以知道用戶創(chuàng)建了哪些操作,并使用“警告”標記可能最終以錯誤結(jié)束的事件(如果您愿意并當然要跟蹤它們的話)。
其次,請確保您提供所需的日志信息。 當然,您現(xiàn)在知道這意味著什么:
public void doSomething() {// your awesome codelogger.debug("Forgot the keys inside the car, BRB"); }但是您必須考慮您的同事試圖理解您的代碼。 您不希望他們在假期期間打電話給您詢問您在談論什么車,并且您也不想從今天起2年后發(fā)現(xiàn)自己想知道編寫本文時的想法。 以盡可能多的信息來對待您的代碼,盡可能多地獲取信息,以便其他人知道如何處理它。
另外,如果您練習良好的日志記錄技能,那么注定會使每個人都做同樣的事情。
3.為您的優(yōu)勢使用例外
Java中有很多異常,最近我們發(fā)布了一些技巧和見解,以處理許多Java異常 。 但是,在開發(fā)階段如何為自己的利益使用異常呢? 通過斷點。
您可以為拋出的異常手動設置斷點,并標記在開發(fā)中運行應用程序時應該在哪里暫停執(zhí)行。 每當執(zhí)行斷點時,都會在調(diào)試器控制臺中顯示一條消息,其中包含所需的相關信息。
就像您的應用程序的暫停按鈕一樣,它使您可以檢查并確切查看直到那時為止發(fā)生了什么。 有多種類型的斷點會阻止您的應用程序執(zhí)行到特定方法,類,變量或代碼行的執(zhí)行,因此您可以隨意播放和測試。
另一方面,如果您正在尋找一種工具來幫助您了解代碼在生產(chǎn)中何時,何地以及為什么中斷,則可以嘗試OverOps。 它是唯一為您顯示整個調(diào)用堆棧中每個異常,已記錄警告和錯誤的完整源代碼和變量狀態(tài)的工具。 檢查一下 。
4.處理生產(chǎn)環(huán)境
經(jīng)過所有艱苦的工作,您已經(jīng)部署了代碼,并且可以在生產(chǎn)環(huán)境中使用它。 如果您編寫了有意義的日志消息,您將能夠知道何時引發(fā)異常,但有時很難理解異常發(fā)生的原因。
過渡到生產(chǎn)時,您必須牢記的一件事是。 我們不是在談論鐵路乘客和火車,而是在談論您當?shù)氐沫h(huán)境與生產(chǎn)。 這是產(chǎn)生許多錯誤的良方,這些錯誤會浪費您的時間來試圖找出它們的來源以及原因。
您需要了解這些環(huán)境為何不同,以及如何解決這一差距。 如果您正在尋找一些高級Java調(diào)試技術, 請查看這篇文章 。 可以使用Docker實現(xiàn)針對多種環(huán)境配置應用程序的另一種方法,您可以在此處閱讀快速指南 。
5.考慮未來的隊友
我們?yōu)槟峁?個字:向后兼容。 想象一下:您的機器上安裝了Java 8,而生產(chǎn)運行Java 6,而您卻不明白事情為什么會中斷。 也許某個客戶正在運行該應用程序的舊版本,而您的最新功能不適用于他們。 這種棘手的情況很容易避免。
您需要記住,每個團隊都有過去,并且列出了很久才到達的決策清單。 這就是為什么您必須思考過去才能前進的原因(我們說過我們會變得哲學上的,對嗎?)。
在編寫新代碼時,請花時間進行測試,識別和修復可能破壞應用程序舊版本的內(nèi)容。 它會一路為您提供幫助,并使每個人都更加快樂,因為對于不愿更新其應用程序版本的大客戶,他們不必面對舊的甚至是令人驚訝的錯誤。
還有什么?
工作中最困難的部分是進入?yún)^(qū)域。 我們不是在談論早上喝杯咖啡,而是在談論提高生產(chǎn)力的方法,這些方法可以幫助您提高工作效率并幫助您做得更好。
您可以使用許多功能,例如特殊的bash腳本,自制的命令行黑客,甚至特殊的工具,可以幫助您更好地監(jiān)視一切。 如果您正在尋找一些技巧和竅門,請查看我們從Java社區(qū)收集的一些生產(chǎn)力技巧 。
最后的想法
最困難的部分是入門。 不管是新工作的第一天,還是關于它的新博客發(fā)布,都沒有關系–在此過程中有很多研究和學習。 不要害怕問盡可能多的問題,因為這是了解團隊,代碼和應用程??序如何工作的最佳方法。
如果您認為我們錯過了新員工的其他關鍵功能,我們很樂意在下面的評論中聽到他們的消息!
翻譯自: https://www.javacodegeeks.com/2016/11/5-things-experienced-developers-can-teach-java.html
java開發(fā)五年面試經(jīng)驗
總結(jié)
以上是生活随笔為你收集整理的java开发五年面试经验_只有经验丰富的开发人员才能教您有关Java的5件事的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今年9月华为一手好牌打得太漂亮了 博主感
- 下一篇: 电脑共享网络打印机怎么连接起来使用如何把