pmd

Suppressing violations in pmd

℡╲_俬逩灬. 提交于 2021-02-14 18:49:47
问题 When I run a PMD analysis I receive violation: Each class should declare at least one constructor This violation is on a Spring controller. This controller is instantiated by Spring, so I shouldn't need to invoke this class. What is recommended way of ignoring this violation? According to http://pmd.sourceforge.net/pmd-4.3/suppressing.html can use //NOPMD but I just want to ignore specific violation. 回答1: PMD also supports the @SuppressWarnings annotations: // This will suppress all the PMD

Devops面试题 jenkins

て烟熏妆下的殇ゞ 提交于 2021-02-12 04:31:25
容器化、云、CI/CD https://www.edureka.co/blog/interview-questions/top-devops-interview-questions-2016/ 【jenkins】 jenkins就那些嘛,按代码扫描、编译、测试、报告之类的各阶段理一理,基本上各种常用的开源工具都有插件集成的 【插件】 Job Generator Plugin, 对于大团队来说,整个持续集成流程应该类似,不同的项目的区别主要就是代码分支等。该插件可以让团队的配置管理员为整个团队定义一个参数化的模板,项目开发人员可以通过这个模板快速的在 Jenkins 上创建出任务。 Performance Plugin, JUnit/JMeter, 【jenkins MAVEN插件】 maven的代码扫描:checkstyle、findbugs、pmd、覆盖率cobertura checkstyle Checkstyle 是 SourceForge 的开源项目,通过检查对代码编码格式,命名约定,Javadoc,类设计等方面进行 代码规范和风格 的检查,从而有效约束开发人员更好地遵循代码编写规范。 FindBugs FindBugs 是由马里兰大学提供的一款开源 Java 静态代码分析工具。基于Bug Patterns概念,查找javabytecode(.class文件)中的

Fix-Mapped Addresses

不问归期 提交于 2021-02-12 01:44:27
一、前言 某天,wowo同学突然来了一句:如果要在start_kernel中点LED,ioremap在什么时间点才能调用呢?我想他应该是想通过点LED灯来调试start_kernel之后的初始化的代码(例如DTB解析部分的代码)。那天,我们两个花了二十分钟的时间,讨论相关的问题,我觉得很有意思,因此决定写fix mapped address这样的一份文档。 在汇编代码中,由于没有打开MMU,想怎么访问外设都很简单,直接使用物理地址即可,然而,进入start kernel之后(打开了MMU),想要访问硬件都是那么的不方便,至少需要通过ioremap获取了虚拟地址之后才可以访问。但是,实际上,在内核的启动的初始阶段,内存管理子系统还没有ready,ioremap还不能调用(在mm_init之后可以正常使用)。 实际上,这个需求是和early ioremap模块相关,此外,还有一些其他的需求,内核合并了这些需求并提出了fix mapped address的概念。本文就是描述关于fix mapped address的方方面面,BTW,本文的代码来自4.4.6内核,体系结构相关的代码依然选择的是ARM64。 二、什么是fixmap? Fix map中的fix指的是固定的意思,那么固定什么东西呢?其实就是虚拟地址是固定的,也就是说,有些虚拟地址在编译(compile-time

How to mock HttpClient using Mockito

ⅰ亾dé卋堺 提交于 2021-02-11 12:28:56
问题 This is my Actual class for which i am writing junit. I have HtpClient as private and final. public class KMSHttpClientImpl implements KMSHttpClient { /** * ObjectMapper Instance. */ private final ObjectMapper objectMapper = new ObjectMapper (); /** * KMS ConnectionManager Instance. */ private final KMSHttpConnectionManager kmsHttpConnectionManager = new KMSHttpConnectionManagerImpl (); /** * HttpClient object. */ private final HttpClient httpClient; /** * KMSHttpClient constructor. */ public

代码审计工具

早过忘川 提交于 2021-02-03 01:58:05
使用checkmarx分别对java、php、android程序源代码进行安全扫描,结合日常工作中使用的商业安全工具,比对结果如下: 在互联网企业中,有使用find bugs。 也有些企业使用Sonar. Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。 同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。 此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。 不同企业根据自己系统/平台的框架来选型。 来源: oschina 链接: https://my.oschina.net/u/2315260/blog/3022480

写代码6得飞起还天天加班,是什么拖垮了你的工作效率?

爱⌒轻易说出口 提交于 2021-02-02 11:51:03
​ 日常开发工作中,有时候你是否会发现写代码时 6 到飞起顺风顺水,但一旦涉及到需求跟进、会议参与、与人沟通、目标制定等工作场景时,总是不得章法,出现表达不清楚、抓不住重点、琐事包围无法脱身、沟通过程低效等情况。 如果有,此时的你很显然需要关注到工作效率的问题。 而 本文尝试从多个方面做一些归纳总结,可能给你带来一些意识和思维上的启发。 工作效率,一般指的是工作产出与工作投入之比,我们总是渴望有高的工作效率。这意味,可以用更少的投入完成相同的产出,从而能够节省出资源在其他有意义的方面做投入。 本文尝试从意识、主观、客观、团队内部与外部沟通,工具等六个方面进行工作效率提升的梳理,以期尽可能多视角归纳出工作效率改进的方向,对有相关困扰的读者起到一定的学习借鉴作用。 一、意识 1、意识先行 首先我们要知道,意识是行动的先导。 意识是人的头脑对于客观物质世界的反映,如果我们有幸觉察到当前的工作习惯已经对工作产生了负面影响,那么我们就需要深挖,具体是哪些习惯以及明确哪些地方需要进行改进。 但同时需要注意的是,能够意识到要进行效率改进仅仅是小小的起点,用科学的方法去制定阶段性目标,不断模仿与学习、改进过程、获得效率的提升才是主要目的。 总的来说,意识和行动要相互配合,协同前进。 2、名词解释 以下几个关键名词合在一起念好像很普通,但拆开来看我们发现其实蕴含了对于我们效率改进来说非常有价值的信息

DPDK的基本原理、学习路线总结

て烟熏妆下的殇ゞ 提交于 2021-01-30 09:32:04
一、DPDK原理 网络设备(路由器、交换机、媒体网关、SBC、PS网关等)需要在瞬间进行大量的报文收发,因此在传统的网络设备上,往往能够看到专门的NP(Network Process)处理器,有的用FPGA,有的用ASIC。这些专用器件通过内置的硬件电路(或通过编程形成的硬件电路)高效转发报文,只有需要对报文进行深度处理的时候才需要CPU干涉。 但在公有云、NFV等应用场景下,基础设施以CPU为运算核心,往往不具备专用的NP处理器,操作系统也以通用Linux为主,网络数据包的收发处理路径如下图所示: 在虚拟化环境中,路径则会更长: 由于包处理任务存在内核态与用户态的切换,以及多次的内存拷贝,系统消耗变大,以CPU为核心的系统存在很大的处理瓶颈。为了提升在通用服务器(COTS)的数据包处理效能,Intel推出了服务于IA(Intel Architecture)系统的DPDK技术。 DPDK是Data Plane Development Kit的缩写。简单说,DPDK应用程序运行在操作系统的User Space,利用自身提供的数据面库进行收发包处理,绕过了Linux内核态协议栈,以提升报文处理效率。 DPDK是一组lib库和工具包的集合。最简单的架构描述如下图所示: 上图蓝色部分是DPDK的主要组件(更全面更权威的DPDK架构可以参考Intel官网),简单解释一下: PMD:Pool

static analysis custom rule to enforce unchecked exception handling

一笑奈何 提交于 2021-01-28 22:33:57
问题 I have a runtime exception that I have created in my project, and I want to make sure that it is caught in one of my classes, so that the whole program doesn't explode when it occurs (i.e. if anyone deletes the try/catch statement I want to know by having something in the build or static analysis tools fail). Unfortunately, as java doesn't enforce me to have the try/catch statement for this unchecked exception, there is no way to enforce it on compile time. (I cannot change my exception to be

2020 JUSTCTF F@k3 0ff1c@l REVERSE WP

谁说胖子不能爱 提交于 2020-12-16 03:29:46
写在前面:首先感谢出题人和运维的辛苦付出,让jkd有了第一届CTF,祝比赛越办越好 第一次写wp,同时由于自己太菜,赛中很多是参考了类似题的wp才能做出来,大部分直接手撕。为了让这篇wp显得不那么拉跨,于是参考了某究极卷王黄爷爷的脚本和出题人原汁原味的两道wp。 1. 下载附件,点开一看 丢进exeinfope,是个64位的 打开ida64,shift+f12,搜索字符串 2. 应该是非预期解(我大概也没有哪个题是预期解 做题参考博文: https://blog.csdn.net/xiangshangbashaonian/article/details/83476084?utm_source=app (此处感谢安卓出题人,同样也是这道题的出题人,让孩子去你的博客找base64解法,没找到,却找到了这题的解法) 以下是反编译的代码 关键代码是第23行,需要将数组md5s的四组十进制数转回十六进制,再每组进行md5解密,最后拼在一起,就是flag 然后对着博文里的抄转十六进制的代码 第三组少了一位,应该是转十六进制的时候出了问题,赛后看了黄爷爷的wp后才知道最前面少了一个0,分组去在线md5网站解密 网站: https://pmd5.com/ 或者使用前面所提及的博文中的脚本进行爆破 #937b8b318c5691f3 = JUST{ #b9ed7cb8a2f0bafe = you_a

crr5

和自甴很熟 提交于 2020-12-06 11:31:25
Code Review 翻译成中文是代码评审,具体的定义可以看 wiki 。这篇 wiki 介绍说 Code Review 在帮助团队找到代码缺陷这件事上作用巨大:“代码审查一般可以找到及移除约65%的错误,最高可以到85%”。实际上, Code Review 的好处远不止这一条,它至少能在以下三个方面帮到我们: 传播知识 。 相信很多人第一次提交 Code Review 都有类似的经历:短短几百行代码,却被提了密密麻麻几十条 comments,更新了十多次代码,才最终被 accept 。其实当代码被 accept,提交代码的工程师通过这次 review 就学习到了代码规范和很多好的实践。同时,通过 review 更资深工程师的代码,年轻的工程师也更直观地学习架构和编码;另外,工程师之间也可以通过 review 代码来共享项目知识,看代码实现在绝大多数时候是了解项目的最好方式。 2、增进代码质量 。 这点也很容易理解,有经验的工程师可以在架构设计、代码细节等各个方面帮助到初学者。不同工程师也会有知识盲点,互相 review 进步也很快。另外,被 review 的代码质量更高还有一个很多人注意不到的心理因素:在状态不佳的时候,工程师难免会匆忙写些“潦草”的代码,但是当你知道自己的代码会被review 的工程师提交 comment 打回来,自然会更仔细些 : -) 3、找出潜在的