Java生产力提示:社区的热门选择
社區(qū)已經(jīng)發(fā)言。 我們已將您最好和最出色的生產(chǎn)力技巧匯總到一篇文章中。
我們都有自己的小技巧,可以幫助我們提高工作效率,并提高生產(chǎn)率。 我們使用工具來避免繁瑣的日常任務(wù),并運(yùn)行腳本來自動化流程。 我們所做的一切只是為了確保一切就緒,正確有效地工作。
在下面的文章中,我們決定更深入地發(fā)現(xiàn)那些使我們比以往更有生產(chǎn)力的黑客,技巧和竅門。 開始做筆記。
您自己的技巧和竅門
當(dāng)要提高生產(chǎn)力時,我們知道總有改進(jìn)的余地。 除了關(guān)閉分散注意力的社交網(wǎng)絡(luò)并清除不需要的文件之外,還有許多其他選擇正等著您使用它們。
因此,我們決定求助于博客的可信賴讀者,隊(duì)友和密友,并要求您提供特殊的花招。 我們得到了很多反饋,包括有用的工具,便捷的快捷方式,硬核腳本,甚至是更好地聚焦的基本技巧。
由于我們想分享財(cái)富,因此我們選擇了最重要的技巧為您布置。 選擇適合您和您的工作環(huán)境的任何東西,然后就去做 。
腳本:您自己的Jarvis
如果我們必須為調(diào)查選擇勝出者,那就是腳本。 不足為奇的是,我們大多數(shù)人都傾向于自動化很大一部分工作量, 特別是如果這是一項(xiàng)日常工作,占用了我們太多時間的時候 。
你們大多數(shù)人都提到了bash腳本的使用。 費(fèi)蘭·德爾加多(Ferran Delgado)詳細(xì)介紹了他正在進(jìn)行的一個分開的項(xiàng)目,并告訴了我們。 它由整個公司的一個公共部分和其部門的另一個特定的Java項(xiàng)目組成。 他們使用腳本來監(jiān)視和控制Maven步驟是否正確執(zhí)行。 它還會將jar文件上載到遠(yuǎn)程計(jì)算機(jī)以進(jìn)行生產(chǎn)前測試。
我們自己的Takipi高級軟件架構(gòu)師David Levanon建議使用別名命令。 意味著您只需輸入幾個字符就可以啟動任何命令或一組命令。
由于我們在Takipi使用許多編程語言,因此重建代碼,刷新IDE,重新啟動系統(tǒng)等都需要時間。 這就是David創(chuàng)建環(huán)境的原因,該環(huán)境使用別名和方便的快捷方式來保存Git存儲庫,這些別名和方便的快捷方式可以在幾分鐘之內(nèi)和兩次擊鍵之間進(jìn)行。 這樣,他可以連接到Amazon計(jì)算機(jī)并在其中工作,就像在幾秒鐘內(nèi)在自己的計(jì)算機(jī)上工作一樣。
例如,他創(chuàng)建了一個別名以連接到本地MySQL:
alias mysql-local="mysql -A -u root -p123456"還有一個別名來檢查Jenkins是否正在運(yùn)行:
alias psjenkins="ps -ef | grep jenkins"David還創(chuàng)建了一些方便的功能來幫助他完成日常任務(wù),例如將十進(jìn)制數(shù)字轉(zhuǎn)換為十六進(jìn)制:
function d2h() {printf "%x\n" $1 }還有一個提取所有zip文件并將其放置在目錄中的函數(shù):
function unzipAll() {for file in `ls | /bin/grep zip`; do local base_name="${file%.*}"rm -rf $base_name mkdir $base_nameunzip $file -d $base_namerm $filedone }他最喜歡的功能之一是使用當(dāng)前時間和日期創(chuàng)建CD并將其保存到臨時目錄:
function temp() {local root_dir=~/temp/templocal date_seconds=date +%slocal temp_dir="$root_dir/$date_seconds"mkdir -p "$temp_dir"cd "$temp_dir" }當(dāng)然,他具有殺死Tomcat進(jìn)程的功能:
function killtomcat() {running_tomcats=ps -ef | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }' | tail -1kill -9 $running_tomcats }Monica Beckwith ,Java / JVM性能顧問和JavaOne搖滾明星也有一些幫助她的腳本。 她使用自動化腳本生成JFreeChart,以繪制任何/所有相關(guān)的GC文件信息。
如果您在減少Java垃圾收集開銷方面遇到困難,那么無論您選擇使用哪種垃圾收集器, 我們都有一些技巧可能會有所幫助 。
底線:使用bash腳本,創(chuàng)建別名和方便的快捷方式,并在加載計(jì)算機(jī)或服務(wù)器時嘗試自動執(zhí)行任何操作。
文檔:為下一個開發(fā)人員做準(zhǔn)備
我們需要記住的最重要的事情之一是,我們并不是唯一需要閱讀我們的代碼的人。 你們中的許多人都同意我們的建議,并建議添加詳盡的評論以供將來參考。
Data Geekery的創(chuàng)始人兼首席執(zhí)行官, jOOQ的創(chuàng)建者Lukas Eder表示,每種軟件都注定會發(fā)展壯大,并且在某個時候?qū)⒉豢赡芫帉懲耆谎宰悦鞯拇a。
這就是為什么所有不那么顯而易見的邏輯都應(yīng)該用單線注釋記錄下來,該注釋引用了一個公開發(fā)布的GitHub問題,其中包含有關(guān)事物為何如此的所有歷史信息。
這樣,在進(jìn)行任何給定的錯誤修復(fù)數(shù)年后,很容易找出做出任何決定的原因,否則是不可能的:
if {// [#1145] Bind variables only for true prepared statements// [#2414] Even if parameters are inlined here, child// QueryParts may override this behaviour!executePreparedStatements(c.settings()) &&// [#1520] Renderers may enforce static statements, too!Boolean.TRUE.equals(ctx.data(DATA_FORCE_STATIC_STATEMENT))) {...底線:盡一切可能解釋,這樣將更容易(或僅可能)理解您的代碼并使用它。
故障排除:錯誤后的追求
ZeroTurnaround產(chǎn)品工程師Oleg?elajev告訴我們,使他更具生產(chǎn)力的是一項(xiàng)技能。 他的建議是學(xué)習(xí)最大程度地使用IDE調(diào)試器。 確定并使用正確的斷點(diǎn)類型:異常斷點(diǎn),方法輸入,字段訪問,當(dāng)然還有條件斷點(diǎn),這些斷點(diǎn)僅在您指定的條件為true時才會命中。 這將使單步執(zhí)行代碼變得容易得多,因?yàn)槟鷮⒈苊庹`報(bào)。
Oleg還補(bǔ)充說,當(dāng)您需要添加其他日志語句時,應(yīng)在它們前面添加一些可區(qū)分且荒謬的內(nèi)容,這樣可以很容易地對這些信息進(jìn)行g(shù)rep表示,并且永遠(yuǎn)不會超出代碼審查范圍。 他喜歡使用“熊貓說:”作為前綴,因?yàn)檎l不喜歡熊貓��。
如果某些錯誤確實(shí)設(shè)法解決了問題,那么您應(yīng)該嘗試的另一種工具是Takipi 。 這將幫助您節(jié)省寶貴的時間來尋找錯誤的根本原因,并且在代碼中斷時會提醒您。 每當(dāng)引發(fā)新異常或發(fā)生日志錯誤時,Takipi都會捕獲該異常,并在方法和機(jī)器之間向您顯示導(dǎo)致該異常的變量狀態(tài)。 檢查一下 。
總結(jié):故障排除是軟件開發(fā)不可分割的一部分,請學(xué)習(xí)如何充分利用它。
工具:監(jiān)視和管理系統(tǒng)
在生產(chǎn)環(huán)境中工作意味著要處理頻繁的部署以及大量的服務(wù)和服務(wù)器。 這需要可幫助您解決日常重復(fù)任務(wù)的工具。 實(shí)際上,我們獲得了有關(guān)可以在該領(lǐng)域提供幫助的各種工具的大量建議。
脫穎而出的兩個是廚師和木偶。 兩者都是開源工具,可幫助您監(jiān)視產(chǎn)品的性能,功能,服務(wù)器等。 如果您不確定這兩個之間有什么區(qū)別,或者只是想知道應(yīng)該選擇哪種部署管理工具,我們將Chef與Puppet,Ansible與SaltStack與Fabric進(jìn)行了比較 。
說到發(fā)現(xiàn)差異,我們還為各種差異工具提供了很多建議,包括:
- 比較++
- 吉菲
- Kompare
我們求助于塔基皮(Takipi )的團(tuán)隊(duì)負(fù)責(zé)人Tzofia Shiftan ,并詢問她將使用什么工具。 她使用Meld比較文件和目錄,查看代碼更改并在合并影響代碼之前了解合并。
Tzofia還使用另一個方便的工具Indicator ,可以幫助她監(jiān)視系統(tǒng)。 它顯示了CPU,網(wǎng)絡(luò)活動,內(nèi)存和您要檢查的任何其他系統(tǒng)資源的性能圖。 如果您想知道,David會使用htop監(jiān)視他的系統(tǒng)。
如果您正在尋找在編寫代碼時會有所幫助的工具,則可能需要研究JRebel 。 它會立即重新加載您的代碼更改,因此您無需重新啟動Java進(jìn)程即可查看所做的更改。
有關(guān)其他有用的工具,它們將幫助您了解應(yīng)用程序和環(huán)境在生產(chǎn)中的行為,請查看以下文章 。
底線:在需要幫助時,都會使用工具來幫助您。 使用它們來跟上您的代碼,檢查系統(tǒng)和整個環(huán)境。
雜項(xiàng):關(guān)閉您的Chrome瀏覽器,消除嗡嗡聲
現(xiàn)在,您已經(jīng)掌握了快捷方式,腳本和工具,現(xiàn)在該開始工作了。 但是對于我們中的某些人來說,專注于我們的任務(wù)可能是最難的事情。 我們知道我們很難坐下來寫這篇文章。 這就是為什么我們決定從我們的團(tuán)隊(duì)那里獲得一些提示:
- 每天僅閱讀一兩次電子郵件
- 每天設(shè)置可實(shí)現(xiàn)的目標(biāo)(并實(shí)際完成)
- 找到合適的音樂來幫助您保持專注
- 清理桌面并隱藏不需要的所有內(nèi)容
- 關(guān)閉您不使用的瀏覽器標(biāo)簽
- 站立的工作站,有助于血液流動
- 記得每隔一段時間休息一下
底線:生產(chǎn)力并非總是容易的,您應(yīng)該找到能為您設(shè)定正確工作氛圍的任何東西。
TL; DR
您正忙于工作,想快速了解一下我們在帖子中提到的所有內(nèi)容嗎? 這是我們涵蓋的所有內(nèi)容:
- 別名–只需單擊幾下即可啟動一組方便的命令
- JFreeChart –在應(yīng)用程序內(nèi)部顯示圖表
- 文檔–使您的代碼對于將來的開發(fā)人員而言是易于理解的
- 故障排除–了解如何簡化錯誤和錯誤查找
- Takipi –了解為什么Java代碼在生產(chǎn)中失敗
- Chef + Puppet –使用工具來概述和管理系統(tǒng)
- Compare ++ , Guiffy , Kompare , Meld –使用差異和合并工具比較和檢測更改
- htop 指標(biāo) –實(shí)時監(jiān)控您的系統(tǒng)和資源
- JRebel –立即重新加載代碼更改
最后的想法
即使我們大多數(shù)人都有自己的工作流程和習(xí)慣,也很高興聽到其他人所提供的東西。 共享很重要,您始終可以了解有助于提高工作效率的新工具或快捷方式。
我們希望您至少學(xué)到了一種新的技巧,對您有幫助。當(dāng)然,如果您還有其他竅門或技巧,我們希望在下面的評論中聽到。
翻譯自: https://www.javacodegeeks.com/2016/08/java-productivity-tips-top-picks-community.html
總結(jié)
以上是生活随笔為你收集整理的Java生产力提示:社区的热门选择的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何给文件夹加密电脑桌面文件如何加密
- 下一篇: scala rest_使用路标的Scal