脱尔烦 强迫症症是不是一想他烦最好是不是不要想他,

查看: 4|回复: 0
拯救Java Code Style强迫症
主题帖子金钱
论坛元老, 积分 75566, 距离下一级还需 9924433 积分
论坛元老, 积分 75566, 距离下一级还需 9924433 积分
文/周宇刚&&关注,有帮助!
拥有&&年的 JAVA EE 开发经验,在 ThoughtWorks 担任高级咨询师。在加入 ThoughtWorks 之前,在一家国内领先的航旅企业担任架构师,专注于持续交付实践和大型企业应用架构治理。
  这篇文章缘起于上一个持续交付的咨询项目,当时正在指导客户团队的 Java 工程师做 Code Review,发现一个很有意思的现象:有一位工程师对 Code Style 特别在意,所以在 Code Review 的大部分时间中都是该工程师在指出哪里哪里的格式不对,但是团队并没有找到改进方法,每次的结论都是下次我注意一点。我挺欣赏这位工程师对 Code Style 的认真态度,所以就萌生了怎么拯救 Code Style 强迫症的想法。
Code Style 不是个人喜好问题,它会影响工作效率,团队应将其当做工程实践予以重视。
Code Style 需要端到端的工具支持,尽早解决问题,避免技术债。
以 Checkstyle 作为核心工具支撑 Java 项目的 Code Style 实施方案。
  Code Style 是一项工程实践
  我是右侧风格的忠实拥趸,如果让我在工作的项目中看到左侧风格的代码,你猜猜我的反应是什么。
  嗯,可能我对代码风格确实有些强迫症,但事实上,Code Style 并不仅仅是代码是否好看那么简单,如果没有按照惯例来编写代码,甚至会让阅读者产生疑惑。
private Listener listener = new Listener () // So Listener looks like a class? {}; // Oops, it is an interface
  如果代码可读性还不足以打动你,那么想象一下这个场景,你的同事说他修复了两个空指针问题,请你帮忙 Code Review,你查看了这个文件的修订历史,乍看之下有许多改动,看来是个大动作。然而事实上,绝大部分改动是代码格式调整,只有两处改动与需要 Review 的问题相关。
  (看来这位同事的 IDE 使用了不同的自动缩进设置,导致所有行都产生了缩进)
  之所以会产生以上这些影响工作效率的问题,是因为团队没有重视 Code Style,没有把它当做一项工程实践,既没有对其达成一致,也没有正确地使用工具帮助实施。
  那就按照工程实践的标准来实施 Code Style
  本文将重点介绍 Java 项目中 Code Style 的工具支持,但在此之前,你的团队需要一起做一些决定:
使用哪种 Code Style?
  每个人可能都有偏好的 style,但在团队协作面前,需要一定的妥协。有些公司或组织有着统一的 Code Style 指导标准,萧规曹随是个不错的选择(但是要确保这类统一指导标准在制定时参考了开发人员的意见,是切实可行的),你的团队也可以自己裁剪,但至少要保证项目(Repository)级别上使用同一种 Style。
如何处理不符合 Code Style 的提交?
  大家往往懈怠于事后补救的方式,我的建议是不要让不符合约定的代码流入代码库。对于遗留项目,尤其是大型项目,可以选择一部分代码作为实施范围,集中修复 Style 问题后严格实施,切忌操之过急,最后团队疲惫不堪只得放弃。
  我们都知道人工监督检查的方式是不可持续和不可靠的,来看看有哪些工具可以提供帮助吧。
  懒惰是第一生产力
  工程实践不能没有自动化工具支持,在 Java 生态圈中,Code Style 工具最出名的应该是 Checkstyle 了,它可以通过 XML 形式的外部 DSL 来定义 Code Style 的检查风格,比如你可以从这里找到 Google 的 Java Checkstyle 配置文件。这里我不会详细介绍 Checkstyle 本身,相反,我会更多地探讨如何工程化地使用 Checkstyle,在交付代码的各个活动中,我们都可以用到 Checkstyle,进行 &无死角的检查。
  (和 Code Style 相关的代码交付生命周期)
  守住提交的质量关口
  为了贯彻不让不符合约定的代码流入代码库的决定,可以优先在服务端设置 Code Style 的检查关卡。
  (优先守住代码提交时的服务端检查,可以考虑使用 CI 服务器来实现)
  从实现层面上说,有两种方式:
  一是在 SCM(Source Control Management,例如 Git/SVN)服务端设置检查项,如果不达标则拒绝提交,但这种方式相对不容易实现,而且一般 SCM 服务端也不由开发团队管理,设置起来不灵活也不方便。
  二是利用持续集成服务器,开发团队的每一次提交都会触发一次构建,我们可以在构建脚本中加入 Checkstyle 检查,如果有不达标的代码则让构建失败,以便告诉提交者立即修复 Style 问题。我更推荐这个方案,因为相关的工具支持都很成熟,实现简单,而且构建过程可以在开发者的本地环境复制,以便在后续改进中将 Checkstyle 检查前移,提供更快的反馈。如果团队使用 Maven/Gradle 等构建工具,可以用插件的方式实现 Checkstyle 检查并嵌入到整个构建过程中。这样 CI 服务器只要调用构建脚本就行了。
  在开发者本地验证 Style
  (在开发者本地实现验证,反馈关口前移)
  在实现了 CI 验证后,就可以着手实现开发者本地验证了,这样开发者就不用等到提交代码到服务端后才会获得反馈了。由于之前采用的是构建工具的插件方案,所以开发者在本地运行构建就能实现验证了。比如 Gradle 提供了 Checkstyle 插件支持,你可以在这里找到 Gradle Checkstyle Plugin 的详细配置文档,如果你使用 Maven,则可以参考这里。现在只需要一条命令,开发者久能在本地验证 Code style 了。
# build.gradle
# omitted plugins
apply plugin: 'checkstyle'&&
checkstyle {& &&&
& & configFile = file (&config/checkstyle.xml&) //指定 checkstyle 配置文件& &&&
& & toolVersion = &.& //指定 checkstyle 工具的版本,部分 style 规则有版本要求
checkstyleTest.exclude &**/ContractVerifierTest**& // 忽略检查生成代码,这个锅我们不背&&
// 如果出现 checkstyle warning 也使构建失败,插件默认只支持 checkstyle error 失败
// Fail build on Checkstyle Warning Violation&&Issue #
tasks.withType (Checkstyle) .each { checkstyleTask -&& &&&
& & checkstyleTask.doLast {& && && &
& && &&&reports.all { report -&& && && && &
& && && && &def outputFile = report.destination& && && && &
& && && && &if (outputFile.exists () && outputFile.text.contains (&&error &)) {& &
& && && && && & throw new GradleException (&There were checkstyle warnings! For more info check $outputFile&)& && && && &
& && && && &}& && && &
& && &&&}& &&&
  现在只需要一条命令,每个开发者就能在本地验证 Code Style 了。你可以在这里找到 Gradle Checkstyle Plugin 的详细配置文档,如果你使用 Maven,则可以参考这里。
?&&court-booking-backend (master) ? gradlew check
Starting a Gradle Daemon (subsequent builds will be faster)
:compileJava
:processResources UP-TO-DATE
:checkstyleMain [ant:checkstyle]
& & [WARN] /Users/twer/Workspace/restbucks/court-booking-backend/src/main/java/com/restbucks/courtbooking/http/CourtRestController.java::
& & 'method def' child have incorrect indentation level , expected level should be . [Indentation] :checkstyleMain FAILED&&
FAILURE: Build failed with an exception.
  本地验证很不错,但我有时候会忘记执行
(让机器代劳琐事)
  有时候,开发者修改了代码后会忘记执行本地检查就提交代码了,最好能够在提交代码前自动执行检查。如果你使用 Git 的话,可能会想到 Git commit hook,比如这是我常用的 pre-commit hook
# From gist at https://gist.github/chadmaughan/
# stash any unstaged changes
git stash -q --keep-index
# run the tests with the gradle wrapper
gradlew clean build
# store the last exit code in a variable
# unstash the unstashed changes
git stash pop -q
# return the 'gradlew build' exit code
exit $RESULT
  将该脚本拷贝到.git/hooks/下,在执行git commit的时候就会自动触发检查了,如果检查失败则提交失败。但问题是.git并不能提交到远程代码仓库,那么除了人工分发和拷贝外,有没有更好的方式在团队中共享这个机制呢?
  可以曲线救国!把 pre-commit 纳入版本控制(如下面的config/pre-commit),再使用构建工具的扩展机制来自动完成拷贝工作,这样可以间接实现 git hooks 的团队间共享。
# build.gradle
task installGitHooks (type: Copy) { //将 pre-commit 拷贝到指定位置
& & from new File (rootProject.rootDir, 'config/pre-commit')
& & into {
& && &&&new File (rootProject.rootDir, '.git/hooks')
& & fileMode
build.dependsOn installGitHooks //设置执行 build 任务时会自动触发 installGitHooks 任务
  关闭包围圈,编辑时反馈
(实时反馈)
  之前基于构建工具的方案都很好,但是对于开发者来说,最好能将反馈前移到编辑时,并且可视化。所幸的是,Checkstyle 的生态系统非常成熟,各主流 IDE 都有插件支持,以 Intellij Idea 为例,可以使用 checkstyle-idea 插件,让团队成员手工设置插件,使用项目的 checkstyle 配置文件即可(我目前还没有找到自动化配置的方式,或许 gradle idea 插件可以?)
(checkstyle-idea 插件配置和效果)
  有了自动实时检查,最好还能将 IDE 的自动格式化与 Checkstyle 配置文件挂钩,否则自动格式化反倒给你添麻烦了。
(为 IDE 导入 checkstyle 配置文件作为自动格式化的依据)
  如果你连自动格式化都懒得按,那可以试试 Save Actions 插件,它可以在 Intellij 保存文件时自动执行代码格式化等动作。
(这个插件目前对部分文件有些问题,可以通过 File path exclusion 忽略)
Code Style 影响工作效率,团队应将其当做工程实践予以重视。
Code Style 不能靠人工监督和检查,应该提供端到端的工具支持
服务端检查(推荐集成到 CI 的构建步骤中)
开发环境检查(使用各构建工具的 Checkstyle 插件)
自动提交检查(git pre-commit hook 与共享)
IDE 增强(checkstyle 插件实时可视化反馈/自动的自动格式化!)
以上的工具都要依据为同一份 Checkstyle 配置文件,并纳入版本控制
  希望以上这些招数可以解救 Java Code Style 强迫症 :)
Powered by失眠很烦躁想打人是不是强迫症?
ask_zBv68w
失眠,好像有强迫症,听到一些声音很烦躁。有时听到一些声音想打人,但是自己又知道不能这样,可是心里就是很烦
最新热门推荐
因不能面诊,医生的建议仅供参考共1条医生回复
精神心理科-精神科
精神分裂症,心境障碍,强迫症,恐惧症,抑郁症,焦虑症,躁狂症,失眠
病情分析:你好
失眠,好像有强迫症,听到一些声音很烦躁。有时听到一些声音想打人,但是自己又知道不能这样,可是心里就是很烦躁
这种情况有多长时间呢
平时工作生活压力大吗,有没有遇到什么烦心的事呢
这一两年失眠很严重,经常要等得实在困了才能睡
头发都掉了一大把
心里听到些声音会烦已经挺久了
恩,这些声音是不是自己的想法呢
反复的涌入到头脑内不能自拔呢
而且不开心,就会吃。不喜欢哭,就是吃,觉得好吃的才让我舒服
平时不开心,心烦,做起事没有兴趣,悲观多吗
是听见比如,别人碎碎念啊,嚼东西啊,抖脚,摩托车声音
当时和你在一起的人能不能听到那些声音呢
其实别人都觉得我开朗乐观,但是其实自己心里想法也就自己知道。总觉得自己只是在做一场梦,有时候觉得死倒是一种解脱,可是又不会轻易去死。只是觉得人生可怜,活着还是要死,活着的时候有的一切死了就都没了
应该可以吧!只是我对那些声音特别敏感
恩,这种情况存有抑郁症伴有焦虑及强迫想法
刚刚,吃饭,男朋友嚼东西声音很大,我就吃不下去了。很烦,但是又知道只有我自己这么敏感,所以又要压抑自己不能表现出来让他也不高兴
恩,建议平时适当减减压,多寻求家人朋友的支持帮助,妥善处理好相应的生活事件,多看看事情好的方面,不要太去理会不开心。
可是,我坐在旁边觉得耳朵像针刺一样,里面扎扎的
平时放宽心态,不要刻意去理会那些想法,把注意力放在外界有意义行为上
可以选择深呼吸,肌肉放松等缓解紧张焦虑
我不喜欢和别人说,我觉得好像只可以信任自己,我觉得我分内外,外面这个我坚强,努力,由她来保护里面那个我,里面那个自己还是个孩子
其实没有必要这样去做,当你把自己保护严严实实其实对你的成长并不好
尽量选择合适的朋友去沟通交流,通过倾诉运动等宣泄不良情绪
不要让不良情绪越积越多。
我经常躺着想事情,睡不着,明明已经想到解决方法的事情,还是会突然在脑子里出现。我只能一遍一遍告诉自己我已经有办法了,然后它才会不那么经常出现在脑子了
恩,建议按照我上面建议去做起来,不要刻意去理会那些没有意义想法
要说也不知道找谁
平时规律作息生活,晚间避免熬夜,没有睡意尽量不要躺在床上,可以做点其他事情等有睡意再去睡
我没什么朋友,也不会和朋友说这些,我觉得对别人也是负担吧!
实在不行可以选择自己的亲人交流
我只有妈妈
真正关心你的人是不会觉得这是累赘
她们会耐心听你诉说,会给你支持帮助的
可是妈妈像男人,不温柔也不细心
她根本不会当回事的
恩,妈妈本性是不会变
我有时候耳鸣也是因为我紧张吗?
是的,和你紧张不开心情绪有关系
耳鸣很久很久了,小时候我觉得那不是耳鸣,大了我才发现外面根本没有声音,我耳朵里嗡嗡的就是耳鸣
医生,我不开心就会吃,我怎样可以克制自己
我觉得吃很放松
尽量选择适合自己方式去宣泄不良情绪
比如运动,倾诉,唱歌,写日记等
我有次不记得是什么事很难过了,把家里调味料都给吃了
是我想乱吃的时候,要转移注意力吗?
尽量选择合适的方式宣泄不良情绪吧
好吧!那医生我失眠怎么办?
晚间可以吃点安神补脑液等改善睡眠
不客气,积极按照我建议做起来
祝你早日康复,再见
最新热门文章
强迫症去医院必看
挂什么科:
精神心理科
需做检查:
神经系统检查、体格检查、量表测查、实验室的辅助检查
常见药物:
氯米帕、氟西汀、帕罗西汀、氟伏沙明
治疗费用:
根据不同医院,收费标准不一致,市三甲医院约(元)
哪些症状:
强迫思维、强迫意向、强迫行为、强迫观念
引发疾病:
一般无特殊并发疾病
治疗方法:
心理治疗、药物治疗
好发人群:
有不良个性特征的群体
是否传染:
失眠 相关药品
功能主治:清心安神,化痰醒脑,活血通络。本品主...
参考价格:¥39
功能主治:补气,养血,安神。本品用于心气虚寒,...
参考价格:¥8.8
最新相关问题长沙长峰精神科医院专家不建议强迫症患者进行自我治疗
18:24:42 本文行家:
&&你是否有过寄信时反复检查信中的内容,或者把书桌上的物品不厌其烦的反复对齐整理,抑或是出门时反复检查门窗……这样的行为,一旦自己不这样做就会变得烦躁和焦虑不安,表明你可能已经有“强迫趋势”,如果对于这些行为你觉得自己非做不可,甚至影响了正常生活及工作,表明你很有可能已身患强迫症。很多人为避免影响工作、学习或者是害怕接受医院治疗,希望通过自我治疗的方式解决这种痛苦。那么,这样做行吗?长沙长峰精神科医院告诉您;  强迫症患者进行自我治疗好吗?  这样的自我治疗你是否会接受呢?  药物治疗:市场上有大量出售治疗强迫的药物,标榜见效快、价格低,携带方便不用去医院就诊,是大部分强迫症人群自主选择的治疗方式。但是临床发现,药物会对人体产生巨大的副作用,长期服用会对药物产生依赖性或成瘾性,而且药量越加越重,给身体带来的健康隐患不言而喻。&  心理治疗:部分强迫患者采取心理咨询的方式,希望能从强迫症状中走出来,但心理治疗只对精神起到一定的缓解作用,不能作为根本的疗法,作为辅助性疗法或许有效。&  &从以上治疗方式看来,虽说或多或少有点治疗效果,但却治标不治本,无法得到临床的治疗。患上强迫症如果不趁早治疗,还会导致患者出现连续头晕或暂时失去记忆、脉搏加速、慢性背痛、情绪过度紧张无法承受等症状。研究表明,焦虑、紧张的不良情绪可能会使女孩身高变矮,紧张焦虑的女孩平均身高会比开朗快乐的女孩矮5厘米。亲朋好友长期生活在强迫症患者的周围,患者的强迫情绪极易“传染”给他们,特别是家里有小孩的,如果长期生活在强迫气氛里的家庭里,不只严重更不利小孩的心理成长。&  长沙长峰精神科医院专家不建议强迫症患者进行自我治疗  &对于强迫症患者进行的自我治疗长沙长峰精神科医院专家表示并不赞同,专家指出,之所以会产生强迫症,是由于脑神经递质细胞受损,导致大脑神经递质紊乱造成的。为此,长沙长峰精神科医院联合国内外医生长期致力于对强迫症的临床试验和科研,经多年的理论积累和临床实验研究出一整套诊疗疗法——N+1脑神经因子再生体系,从全面修复脑神经递质细胞,平衡大脑神经递质出发治疗强迫症反复发作的问题,经众多康复患者临床验证结果表明,N+1脑神经因子再生体系是目前治疗强迫症的最好疗法。&  N+1脑神经因子再生体系 治疗强迫症疗效好,康复率创新高  &N+1脑神经因子再生体系是国内首个系统治疗精神心理疾病的诊疗体系,该诊疗体系包括4D全景聚焦脑功能检测、高端物理治疗、立体定向植入技术、心理辅导及中医熏蒸治疗七大诊疗方法。该体系可准确查明病因,根据患者具体病因个人身体素质采用1-4种疗法相互配合进行系统全面的治疗,康复各种强迫症。该诊疗体系投入临床应用3年以来,已经康复超过众多强迫患者,康复率创新高,后期跟踪采访未发现复发病例。&  N+1脑神经因子再生体系技术优势:  1.靶向定位、直达病灶  &先进的德国全数字三维立体定向设备,可以快速精准地定位失衡、紊乱的脑神经位置,直接介入活性因子,同化或清除病变神经因子。&  2.中西结合 疗效迅速  &运用西医的介入治疗和中药精华的调节,在对休眠、死亡神经因子修复的同时,立足于整体调整,真正做到标本兼治,一般当天即可见效。&  3.无痛苦,无副作用  &采用现代生物基因技术,不含任何激素,无依赖性,无毒副作用和不良反应。&  4.安全可靠,杜绝复发  &双向调节机体功能,保持植入因子的持久、稳定,改善神经因子活性,提高代谢能力,彻底复活大脑神经因子正常功能,杜绝复发。&
百科的文章(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。如需转载,请注明来源于。
主编发稿联系QQAccess denied | www.51xuedu.com used Cloudflare to restrict access
Please enable cookies.
What happened?
The owner of this website (www.51xuedu.com) has banned your access based on your browser's signature (43c6d2e200cf98ad-ua98).

我要回帖

更多关于 脱尔烦 强迫症 的文章

 

随机推荐