Java生产力提示:社区的热门选择

社区已经发言。 我们已将您最好和最出色的生产力技巧汇总到一篇文章中。

我们都有自己的小技巧,可以帮助我们提高工作效率,并提高生产率。 我们使用工具来避免繁琐的日常任务,并运行脚本来自动化流程。 我们所做的一切只是为了确保一切就绪,正确有效地工作。

在下面的文章中,我们决定更深入地发现那些使我们比以往更有生产力的黑客,技巧和窍门。 开始做笔记。

您自己的技巧和窍门

当要提高生产力时,我们知道总有改进的余地。 除了关闭分散注意力的社交网络并清除不需要的文件之外,还有许多其他选择正等着您使用它们。

因此,我们决定求助于博客的可信赖读者,队友和密友,并要求您提供特殊的花招。 我们得到了很多反馈,包括有用的工具,便捷的快捷方式,硬核脚本,甚至是更好地聚焦的基本技巧。

由于我们想分享财富,因此我们选择了最重要的技巧为您布置。 选择适合您和您的工作环境的任何东西,然后就去做 。

脚本:您自己的Jarvis

如果我们必须为调查选择胜出者,那就是脚本。 不足为奇的是,我们大多数人都倾向于自动化很大一部分工作量, 特别是如果这是一项日常工作,占用了我们太多时间的时候 。

你们大多数人都提到了bash脚本的使用。 费兰·德尔加多(Ferran Delgado)详细介绍了他正在进行的一个分开的项目,并告诉了我们。 它由整个公司的一个公共部分和其部门的另一个特定的Java项目组成。 他们使用脚本来监视和控制Maven步骤是否正确执行。 它还会将jar文件上载到远程计算机以进行生产前测试。

我们自己的Takipi高级软件架构师David Levanon建议使用别名命令。 意味着您只需输入几个字符就可以启动任何命令或一组命令。

由于我们在Takipi使用许多编程语言,因此重建代码,刷新IDE,重新启动系统等都需要时间。 这就是David创建环境的原因,该环境使用别名和方便的快捷方式来保存Git存储库,这些别名和方便的快捷方式可以在几分钟之内和两次击键之间进行。 这样,他可以连接到Amazon计算机并在其中工作,就像在几秒钟内在自己的计算机上工作一样。

例如,他创建了一个别名以连接到本地MySQL:

alias mysql-local="mysql -A -u root -p123456"

还有一个别名来检查Jenkins是否正在运行:

alias psjenkins="ps -ef | grep jenkins"

David还创建了一些方便的功能来帮助他完成日常任务,例如将十进制数字转换为十六进制:

function d2h()
{printf "%x\n" $1
}

还有一个提取所有zip文件并将其放置在目录中的函数:

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
}

他最喜欢的功能之一是使用当前时间和日期创建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"
}

当然,他具有杀死Tomcat进程的功能:

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,以绘制任何/所有相关的GC文件信息。

如果您在减少Java垃圾收集开销方面遇到困难,那么无论您选择使用哪种垃圾收集器, 我们都有一些技巧可能会有所帮助 。

底线:使用bash脚本,创建别名和方便的快捷方式,并在加载计算机或服务器时尝试自动执行任何操作。

文档:为下一个开发人员做准备

我们需要记住的最重要的事情之一是,我们并不是唯一需要阅读我们的代码的人。 你们中的许多人都同意我们的建议,并建议添加详尽的评论以供将来参考。

Data Geekery的创始人兼首席执行官, jOOQ的创建者Lukas Eder表示,每种软件都注定会发展壮大,并且在某个时候将不可能编写完全不言自明的代码。

这就是为什么所有不那么显而易见的逻辑都应该用单线注释记录下来,该注释引用了一个公开发布的GitHub问题,其中包含有关事物为何如此的所有历史信息。

这样,在进行任何给定的错误修复数年后,很容易找出做出任何决定的原因,否则是不可能的:

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产品工程师OlegŠelajev告诉我们,使他更具生产力的是一项技能。 他的建议是学习最大程度地使用IDE调试器。 确定并使用正确的断点类型:异常断点,方法输入,字段访问,当然还有条件断点,这些断点仅在您指定的条件为true时才会命中。 这将使单步执行代码变得容易得多,因为您将避免误报。

Oleg还补充说,当您需要添加其他日志语句时,应在它们前面添加一些可区分且荒谬的内容,这样可以很容易地对这些信息进行grep表示,并且永远不会超出代码审查范围。 他喜欢使用“熊猫说:”作为前缀,因为谁不喜欢熊猫��。

如果某些错误确实设法解决了问题,那么您应该尝试的另一种工具是Takipi 。 这将帮助您节省宝贵的时间来寻找错误的根本原因,并且在代码中断时会提醒您。 每当引发新异常或发生日志错误时,Takipi都会捕获该异常,并在方法和机器之间向您显示导致该异常的变量状态。 检查一下 。

总结:故障排除是软件开发不可分割的一部分,请学习如何充分利用它。

工具:监视和管理系统

在生产环境中工作意味着要处理频繁的部署以及大量的服务和服务器。 这需要可帮助您解决日常重复任务的工具。 实际上,我们获得了有关可以在该领域提供帮助的各种工具的大量建议。

脱颖而出的两个是厨师和木偶。 两者都是开源工具,可帮助您监视产品的性能,功能,服务器等。 如果您不确定这两个之间有什么区别,或者只是想知道应该选择哪种部署管理工具,我们将Chef与Puppet,Ansible与SaltStack与Fabric进行了比较 。

说到发现差异,我们还为各种差异工具提供了很多建议,包括:

  • 比较++
  • 吉菲
  • Kompare

我们求助于塔基皮(Takipi )的团队负责人Tzofia Shiftan ,并询问她将使用什么工具。 她使用Meld比较文件和目录,查看代码更改并在合并影响代码之前了解合并。

Tzofia还使用另一个方便的工具Indicator ,可以帮助她监视系统。 它显示了CPU,网络活动,内存和您要检查的任何其他系统资源的性能图。 如果您想知道,David会使用htop监视他的系统。

如果您正在寻找在编写代码时会有所帮助的工具,则可能需要研究JRebel 。 它会立即重新加载您的代码更改,因此您无需重新启动Java进程即可查看所做的更改。

有关其他有用的工具,它们将帮助您了解应用程序和环境在生产中的行为,请查看以下文章 。

底线:在需要帮助时,都会使用工具来帮助您。 使用它们来跟上您的代码,检查系统和整个环境。

杂项:关闭您的Chrome浏览器,消除嗡嗡声

现在,您已经掌握了快捷方式,脚本和工具,现在该开始工作了。 但是对于我们中的某些人来说,专注于我们的任务可能是最难的事情。 我们知道我们很难坐下来写这篇文章。 这就是为什么我们决定从我们的团队那里获得一些提示:

  • 每天仅阅读一两次电子邮件
  • 每天设置可实现的目标(并实际完成)
  • 找到合适的音乐来帮助您保持专注
  • 清理桌面并隐藏不需要的所有内容
  • 关闭您不使用的浏览器标签
  • 站立的工作站,有助于血液流动
  • 记得每隔一段时间休息一下

底线:生产力并非总是容易的,您应该找到能为您设定正确工作氛围的任何东西。

TL; DR

您正忙于工作,想快速了解一下我们在帖子中提到的所有内容吗? 这是我们涵盖的所有内容:

  • 别名–只需单击几下即可启动一组方便的命令
  • JFreeChart –在应用程序内部显示图表
  • 文档–使您的代码对于将来的开发人员而言是易于理解的
  • 故障排除–了解如何简化错误和错误查找
  • Takipi –了解为什么Java代码在生产中失败
  • Chef + Puppet –使用工具来概述和管理系统
  • Compare ++ , Guiffy , Kompare , Meld –使用差异和合并工具比较和检测更改
  • htop 指标 –实时监控您的系统和资源
  • JRebel –立即重新加载代码更改

最后的想法

即使我们大多数人都有自己的工作流程和习惯,也很高兴听到其他人所提供的东西。 共享很重要,您始终可以了解有助于提高工作效率的新工具或快捷方式。

我们希望您至少学到了一种新的技巧,对您有帮助。当然,如果您还有其他窍门或技巧,我们希望在下面的评论中听到。

翻译自: https://www.javacodegeeks.com/2016/08/java-productivity-tips-top-picks-community.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA获取Classpath根路径的方法

方法一: String path Test.class.getResource("/").toString(); System.out.println("path " path); 此方法在tomcat下面没有问题,可以取到WEB-INF/classes path file:/home/ngidm_db2/AS_Tomcat7_0_29/webapps/NGIDM/WEB-INF/c…

Navicat 9.1、10.0 简体中文最新版,注册码(For Mysql)

Navicat 9.1、10.0 简体中文最新版,注册码(For Mysql) by 尘缘 on 七月 17th, 2011 // Filed Under → MySQL Navicat属于偶的必备开发工具,最新版的自动提示,SQL格式化比较好用。 今天测试过Navicat 9.1.11,注册码可以使用。 下…

win10休眠设置_电脑总是“打瞌睡”?教你如何简单关闭自动休眠

电脑休眠指的是将当前处于运行状态的数据保存在硬盘中,整机完全停止供电。通常电脑的自动休眠是有一个电源计划的,电脑如果在设定的时间内没有使用,那么就会进入自动休眠状态。然而许多人长时间不操作电脑,只是想让电脑继续执行一…

nohup 命令 用途:不挂断地运行命令

简单而有用的nohup命令在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止。要实现守护进程,一种方法是按守护进程的规则去编程(本站有文章介绍过)&#xff0…

让VC编译的程序链接到系统的 msvcrt.dll 的方法

安装 DDK 或者 WDK ,提取里面的 msvcrt.lib 和 msvcrtd.lib ,这两个文件分别对应 release 和 debug 版本。 然后再按下图进行设置: 编译生成的程序,就直接链接系统的 msvcrt.dll 上了,debug 版是链接到 msvcrtd.dll。

局域网arp攻击_网络安全基础之ARP攻击和防御

本文转载于 SegmentFault 社区作者:吴小风前言在看这篇文章之前,请大家先看下交换机的工作原理,不知大家有没有想过数据链路层中头部协议数据帧的目的MAC地址是如何获取的呢?这就是今天的主角ARP协议,通过广播来获取IP…

SocketServer模块,hmac模块验证client合法性

hmac模块: 1.模块初识: import hmac # h hmac.new() #括号里要给它连个bytes类型,一个是自定义的secret_key,一个是你想进行加密的bytes # 密文 h.digest() # hmac.compare_digest() #括号内传另外一个密文,看是否相…

以实例让你真正明白mapreduce---填空式、分布(分割)编程

问题导读:1.如何在讲mapreduce函数中的字符串等信息,输出到eclipse控制台?2.除了使用下文方法,还有其它方法输出到控制台?3.map中,系统默认接受的value值是什么?4.reduce输出不是自己想要的结果…

使用Spring编写和使用SOAP Web服务

在RESTful Web服务时代,我有机会使用SOAP Web Service。 为此,我选择了Spring ,这是因为我们已经在项目中使用Spring作为后端框架,其次它提供了一种直观的方式来与具有明确定义的边界的服务进行交互,以通过WebServiceT…

前端---vscode 的基本使用

1. vscode 的基本介绍 全拼是 Visual Studio Code (简称 VS Code) 是由微软研发的一款免费、开源的跨平台代码编辑器,目前是前端(网页)开发使用最多的一款软件开发工具。 2. vscode 的安装 下载网址: Download Visual Studio Code - Mac, Linux, Windows选择对应…

建立Win32 Console Project时会出“error LNK1123” 错误

VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。在建立VS2010 Win32 Proje…

将同时共享的用户数量限制为20_共享充电宝市场需求及计划

18269363827 冯从2016-2018年这些时间中共享充电宝市场空间巨大,据权威数据显示共享充电宝市场整个用户数量实现了从0-5888万的巨大增幅,2019年共享充电市场用户规模将继续保持大幅增长至年底达1亿用户规模。在2019年充电宝租赁市场气势盛大,…

mysql中limit用法

使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已 经为我们提供了这样一个功能。 SELECT*FROMtableLIMIT [offset,]rows |rows OFFSET offsetLIMIT 子句可以被用于强制 SELECT 语句返回…

Redis实现之整数集合

整数集合 整数集合(insert)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。举个栗子,如果我们创建一个只包含五个元素的集…

启动rocketmq 报错_RocketMQ为什么要保证订阅关系的一致性?

前段时间有个朋友向我提了一个问题,他说在搭建 RocketMQ 集群过程中遇到了关于消费订阅的问题,具体问题如下:然后他发了报错的日志给我看:the consumers subscription not exist我第一时间在源码里找到了报错的位置:or…

scala rest_使用路标的Scala和Java的Twitter REST API

scala rest如果您已经阅读了此博客上的其他文章,您可能会知道我喜欢创建各种数据集的可视化。 我刚刚开始一个小项目,在这里我想可视化来自Twitter的一些数据。 为此,我想直接从Twitter检索有关关注者的信息和个人资料信息。 我实际上开始寻找…

MySql中关于某列中相同数值连续出现次数的统计

MySql中关于某列中相同数值连续出现次数的统计 原表如下: www.2cto.com 100 101 102 100 100 103 104 102 102 105 106 101 101 输出如下: www.2cto.com 100 1 101 2 102 3 100 4 100 4 103 5 104 6 10…

设计模式之- 外观模式(Facade Pattern)

外观模式 外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式&…

python的while和for循环

while语句,提供了编写通用循环的一种方法,而for语句是用来遍历序列对象内的元素,并对每个元素运行一个代码块。break,continue用在循环内,跳出整个循环或者跳出一次循环。 一、while循环 1、一般格式 格式:首行以及测试…

go build 无文件_GO笔记之详解GO的编译执行流程

上篇文章介绍了Golang在不同系统下的安装,并完成了经典的Hello World案例。在这个过程中,我们用到了go run命令,它完成源码从编译到执行的整个过程。今天来详细介绍下这个过程。简单理解,go run 可等价于 go build 执行。 build命…