在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。 Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这个例外是unchecked 如果遇到checked意外就不回滚。 如何改变默认规则: 1 让checked例外也回滚:在整个方法前加上 @Transactional(rollbackFor=Exception.class) 2 让unchecked例外不回滚: @Trans
你是不是还在使用todolist管理每天要做的事情?你是不是感觉自己每天忙忙碌碌但是又不知道忙了些啥?今天这篇文章用于分享下我的时间管理经验,希望你能有所收获。
集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里。比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸。
第一个隐患很明显,但它是开发新手最容易犯的一个错误。如果您忽略函数的返回状态,当它们失败或部分成功的时候,您也许会迷失。反过来,这可能传播错误,使定位问题的源头变得困难。
4个费劲心思却走向编程地狱的陷阱 优化你的代码、创建编程抽象、编写跨平台的应用程序,几乎所有遵守这些戒律的程序员不出意外都拿着一等票去往了一个没有休憩时间,项目总能准时完成,代码库永远不会过时,而且他们也不必写任何文档的天堂——你懂的。 但是,要是情况不是这样的呢?要是那些技术将你带往的不是天堂,而是地狱呢?要是并非死后到达地狱,反而是现在呢?要是地狱充满了无数的不眠之夜,超出的最后期限,破碎的自尊心和狂怒的项目经理呢?我们更多地将到达地狱的原因归咎于这样一个事实,当涉及到一些具体——和常见——的情况时,那
在我最近的培训课上,有一位学生问:“验收条件(Acceptance Criteria,AC) 和 完工标准(Definition of Done,DoD) 究竟有什么不同呢?”
优化你的代码、创建编程抽象、编写跨平台的应用程序,几乎所有遵守这些戒律的程序员不出意外都拿着一等票去往了一个没有休憩时间,项目总能准时完成,代码库永远不会过时,而且他们也不必写任何文档的天堂——你懂的。
一、兴趣爱好,能力成长,利益价值的职业金三角可能是一种很好的多维度、评价职业事业的方法,包含了动态的、相互影响的、个人爱好到社会价值的相互关系,请说你对这个认识,认为的优点和缺点
代码审查是许多高效团队的工程实践。即使你的软件已经有很多优点了,但团队在做代码审查时仍然会遇到一些陷阱。
本文最初发表于 Towards Data Science 博客,经原作者 Bruce H. Cottman 授权,InfoQ 中文站翻译并分享。
相反,一份没有任何规划的待办事项清单,不仅用处不大,还可能会让我们在小事里打转,忽视了重要的事情。
为了帮助你更好地成长,我们为你盘点了数据科学领域你不容错过的 TOP 15 个社区
在 Java 语言的第 1 个版本中就开始引入了传统的 for 循环,它的更简单的变体 for-each 是在 Java 5 中引入的。大部分开发人员更喜欢使用 for-each 执行日常迭代,但对于迭代一个范围或跳过范围中的值等操作,他们仍会使用 for。
这里有一些工作技巧,从编写代码和工作任务清单到工作自动化,可以使帮助测试工程师成为更好的测试开发工程师。
作者:Scott Leberknight 译者: java达人 来源:http://www.sleberknight.com/blog/sleberkn/entry/building_a_distributed_lock_revisited(点击阅读原文前往) ZooKeeper分布式协调5: 构建分布式锁 这是介绍Apache ZooKeeper系列博客的第五篇。在第四篇博客中,您看到了 ZooKeeper体系结构和数据一致性的高层次视图。在这个博客中,我们将使用到目前为止所获得的所有知识来实现一个
想象一下,你是一个分布式系统开发者。在清晨,你打开笔记本电脑,启动你的开发环境。不仅仅是环境的一部分,而是用完整的服务、消息队列和数据库启动整个系统。
本文将对 CVE-2016-0165 (MS16-039) 漏洞进行一次简单的分析,并尝试构造其漏洞利用和内核提权验证代码,以及实现对应利用样本的检测逻辑。分析环境为 Windows 7 x86 SP1 基础环境的虚拟机,配置 1.5GB 的内存。
1.1. SNMP概览 SNMP的基本知识介绍 简单网络管理协议(SNMP-Simple Network Management Protocol)是一个与网络设备交互的简单方法。该规范是由IETF在1990年五月发布的RFC 1157中定义的。SNMP通常被认为相当难懂,并且过于复杂,其可用的API似乎在本来非常简单的东西外面封装了大量的东西。现在关于SNMP的书籍又往往只是把它更加复杂化了,而没有解释清楚。 SNMP对于任何程序设计人员来说是特别易于理解的。总体的简化能够很好地把这个系统简化。一个网络设备以守护进程的方式运行SNMP代理,该守护进程能够响应来自网络的各种请求信息。该SNMP代理提供大量的对象标识符(OID-Object Identifiers)。一个OID是一个唯一的键值对。该代理存放这些值并让它们可用。一个SNMP管理器(客户)可以向代理查询键值对中的特定信息。从程序员的角度看,这和导入大量的全局变量没有多少区别。SNMP的OID是可读或可写的。尽管向一个SNMP设备写入信息的情况非常少,但它是各种管理应用程序用来控制设备的方法(例如针对交换机的可管理GUI)。SNMP中有一个基本的认证框架,能够让管理员发送公共名来对OID读取或写入的认证。绝大多数的设备使用不安全的公共名 "public" 。 SNMP协议通过UDP端口161和162进行通信的。 注意,我还没有提到MIB!MIB的重要性被大大地夸大了。刚开始时,MIB显得非常复杂,但是它们其实非常简单。OID是数字的和全局的键值对。一个OID看起来和一个IPv6的地址很象,并且不同的厂商有不同的前缀等信息。OID都非常长,使得人们难以记住,或者对他非常感冒。因此,人们就设计了一种将数字OID翻译为人们可读的格式。这种翻译映射被保存在一个被称为 “管理信息基础"(Management Infomation Base) 或MIB的、可传递的无格式文本文件里。使用SNMP或者向SNMP设备查询,你不需要使用MIB,但是,如果没有MIB,你就得猜测你正在查看的数据是什么。某些情况下,不使用MIB也非常简单,例如查看主机名、磁盘使用率数字,或者端口状态信息。其他情况下,就非常困难了,这个时候使用MIB就非常有帮助。对于准备编写的应用程序来说,为了让用户避免妥当安装MIB带来的麻烦,而严格使用数字OID很常见。安装一个MIB的动作,只是将他放置到你的SNMP客户端应用软件能够搜索到并进行上述翻译映射工作的某个位置而已。 SNMP可以按照两种方式来使用:轮询和陷阱。轮询就是说你编写一个应用程序能够设置一个发送给一个SNMP代理查看某些值的SNMP GET请求。这种方法非常有用,因为如果该设备响应了请求,你就得到了你需要的信息,如果该设备没有响应请求,你就能够知道存在某些问题。轮询是网络监控的一种主动形式。另一方面,SNMP陷阱能够被用来进行被动形式的网络监控。SNMP陷阱是通过配置SNMP设备的代理,让他在某些动作发生时联系另一个SNMP代理来实现的。 备,可以配置为在某些事件发生时发送SNMP陷阱。例如,你可以配置Cisco的IOS在某个独立事件(例如链路断开)发生时,或者在任何定义的陷阱事件发生时,发送SNMP陷阱。(IOS:snmp服务器开启了链路断开的snmp陷阱)。当陷阱事件发生时,设备中的snmp代理会发送该陷阱到一个预先配置好的通常成为陷阱主机的目标上。陷阱主机会运行有自己的SNMP代理,该代理能够接受并处理传入的陷阱。这些陷阱的处理由陷阱处理器来完成。陷阱处理器可以用任何语言编写,并且可以通过STDIN(标准输入)传入的来自发送陷阱的信息。该处理器之后可以根据陷阱进行任何想作的事情,例如发送邮件或者你想要的任何事情。 SNMP被广泛应用在NMS网络管理系统中(Network Management System)。知名的NMS包括BMC的Patrol、CA的Unicenter、Sun Mangegement控制台、IBM的Tivoli Netview、以及全球著名的HP Openview。NMS的目标是提供一个监控和管理所有开启SNMP功能的设备的单一入口。通过配置你的设备代理来接受写访问,你可以从一个应用程序中处理你的网络环境。如果你的整个环境围拢NMS解决方案架构你的环境,你就能无限制地控制、查看你的整个网络。尽管Net-SNMP提供了可用来构建你自己的NMS网管系统的所有工具,我们不会再进一步讨论关于NMS的话题。不过请记住,如果你认为你的SNMP设备厂商没有提供SNMP代理方面的详细信息,很可能是因为他们希望你购买他们的NMS网络管理系统,或者购买能够在另一个NMS平台上使用的插件。 1.2. SNMP的三大版本 SNMP的常用版本有三个:SNMPv1、SNMPv2、SNMPv3 SNMPv1是为基于公共管理的初始标准。SNMPv
Bash,Unix shell的一種,在1987年由布萊恩·福克斯為了GNU計劃而编写。1989年釋出第一個正式版本,原先是計劃用在GNU作業系統上,但能运行于大多数类Unix系统的操作系统之上,包括Linux與Mac OS X v10.4都將它作為預設shell。它也被移植到Microsoft Windows上的Cygwin與MinGW,或是可以在MS-DOS上使用的DJGPP專案。在Novell NetWare與Andriod在上也有移植。1990年後,Chet Ramey成为了主要的维护者。為Bourne shell的後繼相容版本與開放原始碼版本,它的名稱來自Bourne shell(sh)的一个双关语(Bourne again / born again):Bourne-Again SHell。
众所周知,管理虚拟环境并不是一件简单的事情,若不小心,很容易出现差错,如果不对配置管理进行规划,那么距离犯错就不远了。本文介绍管理虚拟服务器时忌犯的四个错误。 管理虚拟环境并不轻松。即使部署规模很小,管理员仍旧需要注意很多发生在幕后的故事。不进行合理的规划并密切关注变化情况,即使是很小的问题也可能导致失控。 我们向顾问专家委员会了解了他们所见到的最为常见的错误以及如何避免。 缺少对配置管理的规划 如果不对配置管理进行规划,那么距离犯错就不远了。无论是公有云还是私有云,你必须规划虚拟环境的服务器配置并掌控变化
综合来讲,这是一本介绍方法论的书,作者通过概念、模型、观测、实验手段来进行问题的剖析。另外本书的涉及范围之广,从内存、CPU、文件系统、存储硬件、网络等各个方面。并且本书通常以一个实例入手,深入的介绍系统原理,特别是在一些重点细节上,往往有超出一般的认识和方法。 本书函盖范围太广,更适合作为工具书时常翻阅,所以在阅读过程中也关注自己当前需要的方面。
在“以前”的时候,这种事很容易说清。因为设计师与开发者之间存在明确的分工,很少有人同时做两种工作。然而现在,很多网页设计师都或多或少地会一点开发或UX技术。我们的综合能力越来越强,我们需要掌握的技能变得日益增多。那么问题就来了:所谓网页设计师,究竟是一个只做设计,做设计的同时还要做一点代码,还是既做设计又做开发的人呢?在这个行业中,只满足于掌握活下去所需要的知识已经不够了,这或许是一件好事。 什么是全栈设计师,如何成为全栈设计师? 于是全栈设计师的概念便出现了。全栈设计师意味着这样一个人:他的专业是跨学科
运行时错误是在程序运行时发生的错误,除非处理该错误,否则它可以使程序在运行时停止。本课讲解什么是运行时错误以及如何在程序中处理它们。
机器学习是什么? 以它最原始的形式来说,机器学习是实践近似函数的艺术,或者说是做出有根据的推测。它与专业人士有相似的概念,比如一名资深管道工会拥有根据查看到的房屋中漏水情况,快速准确地判断造成漏水原因
网络爬取和网络抓取相辅相成,对于公共数据收集来说至关重要。电子商务企业会使用网络抓取工具从各个网站收集新数据。然后,将抓取到的信息用于改进业务和营销策略。
谈到企业安全,大多数管理者都认为一定越大越好——预算更多、范围更广、回报更大。然而,Facebook首席执行官马克·扎克伯格在最近召开的F8会议上提及Facebook网站在规避更大问题时采取了“小型”的安全策略。企业能够从这种比例缩小的安全思考中获益吗? Facebook内部经常组织“钓鱼” 《财富》杂志指出,扎克伯格已经采取了硅谷咒语“快速前进,打破陈规”的微调模式,而Facebook的版本是:“快速前进,稳固根基”。那么,Facebook是如何做到想小赢大的? 首先,它发起了诸如Hacktober
英国金融时报援引知情人士称,美国当地时间周四,拜登政府将把8家中国公司列入一份投资黑名单。
本书是Java语言的经典教材,中文版分为基础篇和进阶篇,主要介绍程序设计基础、面向对象程序设计、GUI程序设计、数据结构和算法、高级Java程序设计等内容.本书以示例讲解解决问题的技巧,提供大量的程序清单,每章配有大量复习题和编程练习题,帮助读者掌握编程技术,并应用所学技术解决实际应用开发中遇到的问题。
工作难免会有很多会议,有些甚至给我们的感觉是低效的,浪费时间的。低效会议基本是组织者的锅,比如参会人员对某个话题发散太严重了,组织者没有拉回来,导致会议时间拉很长。
经常被问及我的代码审计的流程是什么,很多时候我得到的感觉是,人们认为如果他们有一个足够详细的检查清单,就能使他们的代码安全。然而,安全不是一个检查清单,安全是一个过程,不仅在编写代码时,而且在项目和架构的设计时就得首先考虑,安全应该成为你心态的一部分。安全也不会在你部署代码时停止,随着你了解更多,看到新的机制被利用,你应该回忆你过去写的代码,并思考 这是否改变了我第一次写代码时的任何假设?。如果你开始对这种思考模式感到疲惫,并产生一种令人沮丧的偏执,这种偏执在你看代码时随时都会渗透到你的思想中,那么恭喜你,你已经走上了正确的道路。很多时候,我发现一个代码库的漏洞是通过阅读另一个代码库发现的,它以更完整的方式获取了一个边缘案例,并提醒我原来的代码库并没有这样做!这就是我的意识。正是这种的意识水平将帮助发现漏洞,无论是在你的代码中还是在别人的代码中。
英文:Mario Hoyos,翻译:36氪 http://36kr.com/p/5121154.html 科技行业里,可供人们使用的工具成百上千,你要怎么知道用哪一种上手最合适呢? 拿最近刚进入编程这行的人来说吧,大量的工具信息堆砌过来其实毫无益处,反而会无从下手。我发现在自己的开发过程中,很多安装的扩展工具不仅没有真正起到助益作用,反而常常妨碍了正常的开发工作。 我不是专家,不过随着时间的推移,我还是编制了一份工具清单,这些工具已经证明对我非常有用。如果你刚刚开始学习怎么编程的话,这个清单能给你提供一些
与传统的团队领导主导的以交谈为主的头脑风暴不同,工作坊更加强调用游戏的方式,让全体参与者,全程用全员可见的可视化方式,全身心投入沟通、协作、创新和探索的过程,达到集体心流,获得更好成效。
解决问题的核心在于拆解,即将整个问题分解成若干单元,逐一突破。不会解决问题是因为不会拆分问题的结构、无法厘清问题的种类,也没有将帮助思考的辅助工具用到极致
Solidity语言是开发以太坊智能合约的不二选择,本文列举了在solidity学习和开发 中可能对你有帮助的18个资源,包括示例代码、solidity库和预置dapp开发环境的docker镜像。
您应该采纳哪种特征去创建一个可预测的模型呢?
本文将讨论数据科学爱好者常犯的一些错误,我也会提供一些资源帮助大家避开数据科学学习上的陷阱。
"清单宣言.如何把事情做对[4] "是Atul Gawande[5]的一本书,他是著名的外科医生、作家和公共卫生领袖。马尔科姆-格拉德威尔[6]在对这本书的评论中写道:
软件开发者们真心喜爱编写代码。但根据我的经验,他们当中很少有人可以解释清楚他们为什么在编写代码。如果你不信,你可以从你的团队里找个人来测试一下:问他在做什么;接着问他为什么要做那个;继续问下去,直到你得到一个你的客户可以理解的原因。 你在做什么? 我在修复这个数据网格的排序问题。 你为什么要解决这个问题? 因为它在bug清单上。 它为什么在bug清单上? 因为有个测试人员把它作为一个bug报出来了。 为什么它被作为一个bug报出来了? 测试人员认为这个字段应该按照数字顺序来排序而不是按字母顺序。 为什么测试
相信很多前端开发在写单测的时候,最大的问题就是:“我应该测什么东西?” 没错,解决问题不是最难的,发现问题才是!知道要测哪个远比怎么测重要很多!
这次事件发生在2009年左右的一个朋友聚会上,这是该地球长期以来最严重的金融危机。街上的乔意识到抵押支持证券(MBS),次级贷款和信贷危机等因素是他困境原因。 回到我们的聚会上,我遇到了一位知情和富有同情心的老年妇女,经过几分钟的闲聊之后,这个话题出现在我的生活中。 那时,我正在为孟买一家领先的抵押贷款机构开发一个信用记分卡项目。 当我开始解释我的工作细节时,她的表情从好奇转变为焦虑和痛苦。 最终,她打断了我的话 - 你为什么要这样做? 这不是所有混乱的原因吗? 我习惯了这种反应,必须纠正她的错误观念。
过去,APQC就APQC的产品(流程管理、内容/知识管理和基准测试)详细讨论了流程分类框架®(PCF)。受同事Holly最近研究的启发,我开始思考APQC如何在企业架构(EA)领域定位自己。专注于企业架构的组织如何利用APQC的PCF实现更好的EA结果?我们的流程管理工具MosaiQ®如何加速EA工作?我们的流程管理方法如何减少返工?
转载请保留 大数据文摘翻译:Vanessa 校对:孙强 摘自:Forbes 2014/05/19 作者:Adam Ozimek 原文标题:谷歌流感(Google Flu)启示录:大数据分析的陷阱 阅读原文请点击文末左下角链接 关键词:智能房屋,大数据,房地产经济 大数据的特点之一是海量数据积累而导致传统的经济计量和统计技术无用武之地。笔者预测,这种大数据现象终将会有一天改变房地产经济学的运作。 房屋估价模型被用在很多方面,比如很多城市和郡县都采用“群评估”(Mass appraisals),这样房屋价格指
(1)UCOSII移植到不同的处理器上,所谓的移植就是将一个实时的内核能在其他的微处理器或者微控制器上运行。
$HALT包含当前暂停陷阱例程的名称。当遇到HALT命令时,应用程序将调用暂停陷阱例程。该暂停陷阱例程可以在发出HALT命令之前执行清理或日志记录处理,或者可以替代其他处理而不是暂停程序执行。
这篇文章翻译自一篇多年之前的论文,原文作者是 Tarjei Mandt。原文系统地描述了 win32k 的用户模式回调机制以及相关的原理和思想,可以作为学习 win32k 漏洞挖掘的典范。早前曾经研读过,近期又翻出来整理了一下翻译,在这里发出来做个记录。原文链接在文后可见。
EcmaScript 2015 中引入了 Proxy 代理 与 Reflect 反射 两个新的内置模块。
wq = create_singlethread_workqueue("mydrv");
源:数据科学与人工智能 作者:Igor Bobriakov 本文约2639字,建议阅读5分钟。 本文为你分享一份对金融行业影响最大的数据科学应用清单。涵盖了从数据管理到交易策略的各种业务方面,共同点
领取专属 10元无门槛券
手把手带您无忧上云