实现方式统一使用: Logback框架 打日志的正确方式 什么时候应该打日志 当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统,是可以通过日志进行问题定为的。...当你碰到if…else 或者 switch这样的分支时,要在分支的首行打印日志,用来确定进入了哪个分支 经常以功能为核心进行开发,你应该在提交代码前,可以确定通过日志可以看到整个流程 基本格式 必须使用参数化信息的方式...不同级别的使用 ERROR: 基本概念 影响到程序正常运行、当前请求正常运行的异常情况: 打开配置文件失败 所有第三方对接的异常(包括第三方返回错误码) 所有影响功能使用的异常,包括:SQLException...logger.error(errorMessage,ex); throw new UserServiceException(errorMessage,ex); } WARN 基本概念 不应该出现但是不影响程序...) 生产环境需要关闭DEBUG信息 如果在生产情况下需要开启DEBUG,需要使用开关进行管理,不能一直开启。
而容器中也是由init进程直接或间接创建了Namespace中的其他进程。 linux信号 而为什么不能在容器中kill 1号进程呢?进程在收到信号后,就会去做相应的处理。...运行命令 kill -9 1 里的参数“-9”,就是指发送编号为 9 的这个 SIGKILL 信号给 1 号进程。 为什么在容器中不能kill 1号进程? 对于不同的程序,结果是不同的。...如果信号被忽略了,那么 init 进程就不能收到指令了。 想要知道 init 进程为什么收到或者收不到信号,就要去看 sig_task_ignored()的实现。...所以C 程序和 bash 程序不能被 SIGTERM 所杀。...0000000000004000 [root@043f4f717cb5 /]# kill 1 # docker ps CONTAINER ID IMAGE COMMAND CREATED 重点总结 “为什么我在容器中不能
我想应该不仅我有这痛苦,好多人都一样碰到过,可见打好日志是多么重要,因为打好日志非常有助于排查问题,打不好呢,坏外就太多了,谈谈我看到的问题和我的使用习惯; 日志级别与配置 很多人像真的像“神”一样的存在...,着实很痛苦,而且 debug 的正确方式是优先使用日志,而不是一来就开 IDE 做 debug,这样的效率会很低,另外,生产上不可能给你这么玩; 如果是全局配置最好还是 debug 吧,以 logback...-- 我想设置我项目下主包名的级别为debug --!...生产不能老是问用户传什么了吧。...,可能还会导致高 cpu 和高 io; 正确的打法是:log 的占位符号 + 合理利用对象的 toString(当然需要重写 toString,可以使用生成工具或是 lombok@data 注解)或是先判断是否是对应日志级别再打
前言 知乎上有一个提问:为什么程序员的代码不能终生责任制? ↓↓↓ 今天,我们就这个话题,一起来做个讨论。...我们知道,诸如桥梁建造、商品房新建,这种民生建筑等建完房子之后,施工单位和相应的工程师,是需要对其质量负一定的责任的,甚至可以说这种责任是终身制的。...小伙伴们不妨先想一想,然后把你们的答案,写在评论区。 我的回答 现在,据我多年观察的现象来看,只要我们不从事非法的软件研发工作,比如赌博、早期的P2P金融类软件等等。...一些合理、合法的软件,一般开发的同学,出问题是不需要付什么法律责任的,特别是离职后的同学。...至于,为什么程序员不需要像建筑工程师那样,对工程质量付终身责任制这个问题,大家不妨发表一下你的灼见,在评论区,与我们小伙伴一起讨论。
但如果有一天,你发现我写了这样一个类: class People: def say(self): print(f'我叫做:{self.name}') def __new...__(self): raise Exception('不能实例化这个类') kingname = People() kingname.say() 一旦初始化就会报错,如下图所示:...一个不能被初始化的类,有什么用? 这就要引入我们今天讨论的一种设计模式——混入(Mixins)。 Python 由于多继承的原因,可能会出现钻石继承[1]又叫菱形继承。...显然,这样写会报错,因为两个类的实例是不能比较大小的: 但在现实生活中,当我们说 某人比另一个人大时,实际上是指的某人的年龄比另一人年龄大。...混入: 不能包含状态(实例变量)。 包含一个或多个非抽象方法。 参考资料 [1]钻石继承: https://en.wikipedia.org/wiki/Multiple_inheritance
1掌握 C++ 可不容易,但一旦你掌握了,就会获得丰厚的回报。 通常,程序员在他们的编程生涯中会使用多种编程语言。然而,我们也看到,有些程序员一直在使用同一种编程语言。...因此,现在大多数程序员都跳过了 C++ 的学习,并且更喜欢那些提供更抽象的开发环境的现代语言。 我将解释一下,为什么学习 C++ 是所有努力成为编程专家的程序员的必修课。...这就是为什么大多数程序员使用 Go 来构建高性能的云工具,因为对云环境来说,二进制文件的大小并不是问题。在高性能、轻量级的软件开发方面,程序员仍然喜欢用 C++ 而不是 Go。...因此,学习五种自己喜欢的、精心挑选的编程语言,并称它们为“我最好的编程语言”,是一个明智的决定。 如果你仔细挑选五种编程语言,从各方面进行考虑——毫无疑问,C/C++ 也会在你的名单上。...我在这篇文章里介绍了我最喜欢的编程语言:每位开发人员都应该学习的 5 种编程语言。
虽然搞了多年 Java,可许多朋友一提到“并发”就头疼: 为什么我已经学习了很多相关技术,可还是搞不定并发编程? 小公司根本遇不到并发问题,高并发经验该怎么积累?平时该怎么学习?...有这些困惑很正常,因为并发编程是 Java 语言中最为晦涩的知识点,它涉及操作系统、内存、CPU、编程语言等多方面的基础能力,而这些知识点看上去非常的零散、独立,可实则关联性又比较强,更为考验一个程序员的内功...并发编程的优势是可以提高程序的执行效率和资源利用率,短板和难点是它会涉及线程通信、同步互斥等等相关问题。那我们应该怎么学习并发编程呢?是不是一上来就去看 Java SDK 的并发包?...你知道,这些工具都是并发大师 Doug Lea 设计的,这背后都隐藏着他对并发问题的深刻认识。有宝令带你解读,你会有意想不到的收获。 为什么推荐这个专栏? 非常落地,带你掌握解决并发问题的关键。...另外,极客时间我不止一次推荐过,平台内容以及讲师都非常厉害。吸收他人的经验,提高自己“解决问题”的能力,无疑是个人成长和提升职场竞争力的最快方式。
我本来是希望 when <10 之后应该continue的,在写第一个when<0的时候头脑还是很清晰的。但是呢,当写第二个的时候就用四肢写代码了,习惯性的打了个return。...} 这里本来的意思针对请求的类型不同进行处理,但是我们在进行对比的时候,用Request的类型和Response的类型进行比较,显然存在问题。...这种问题在进行ReView代码的时候还常常想当然的认为是OK的。...accountService == null){ waitBind();//等待绑定成功、然后跨进程获取数据 } Info info = pushService.aidlGetInfo(); } 发现这个问题的现象是程序刚启动时随机出现几次...但是,我们在清除accountID时只清除了数据库,没有清除缓存,再次登录的时候用的缓存的值。这样就会导致程序陷入了死循环。所以在进行存储操作时,需要考虑好同步的问题。
今天,我们不聊程序员与产品经理工作上的爱恨情仇,因为我之前写过类似的文章了。今天我想聊得话题就是:为什么产品经理的工资不能够比程序员高?...反正我认为大部分程序员正常的反应肯定都是:不服气,凭什么?都会多多少少产生离职的念头或者想法。要是前几年我遇到这种情况,我肯定也是这种反应,但是我现在不会这么想了。为什么呢?...产品经理需要从项目初期的规划到上线乃至运营都要参与其中,很多工作都很累,很杂。 所以,我认为:一个优秀的产品经理工资应该是很高的,会比程序员高。这个前提是:你确实能够把产品做得让程序员服气才行。...我特别欣赏一句话:做产品就是拍电影,优秀的产品经理等于大导演,优秀的程序员等于那些片酬超高的演员。大导演的工资和优秀演员的片酬,谁高谁低比的就是技术。...如果在遇到上述情况,我建议大家把眼光不要盯在工资比较上,而是自己的能力上,想想自己的能力到底值多少钱?
但因为自己的贪婪,就指责他人不够开放,就有点无耻。 但世间事大抵总是如此,指责的,往往引来满堂喝彩。 譬如,这篇 SeedHeart 写的《为什么我反对微信小程序》。...你在我的平台上写稿子、聚用户,卖流量(只要不违反平台规则,赚多少钱微信是不抽成的)。平台则得到了活跃度,并通过朋友圈广告、城市服务、微信支付等方式,获取收益。...最近,腾讯推出了自己十八周年的宣传视频。在这个视频中,腾讯问了自己几个「能不能」:腾讯能不能让有价值的信息传递更高效?腾讯能不能让社交网络更有温度?腾讯能不能让社会资源配置更迅捷?...腾讯能不能让社群鸿沟更加弥合? 这些能不能,同样都是可以被指责为「虚伪」的言辞。但正如 keso 所言,即使假装的善良,也比真诚的恶要好。 至于小程序,目前来看,同样具备了这样的品质——节制。...节制的小程序,在成功之前,谁都无法预言。即使,许多独立的开发者,正梦想在全新的小程序生态下,更体面的生存。 他们,正打算趟下这趟清水。你呢?
self 自动指向方法的调用者,调用时不用手动提供 self 的值。...python 中操作 excel 的库有很多,可参考我们之前的介绍文章:Python-Excel 模块哪家强?...不过它相当于是 windows COM 的封装,自身并没有很完善的文档,新手使用起来略有些痛苦。...另外详细介绍 xlrd、xlwt、xlutils 库的文章:Python 与 Excel 不得不说的事 3 搜索引擎该如何正确使用?...正确地使用搜索引擎是学习编程的必备技能,用好 Google 或者 Baidu 也有很多技巧:编程初学者如何使用搜索引擎
前言 最近开发项目时遇到一个奇怪的问题,parseInt(0.0000005) === 5。正常情况下输出0是正确的,为什么是5呢?我们一起来探讨一下这个问题。 1. 什么时候使用parseInt?...2.关于parseInt的一些事情 根据 MDN 文档,“parseInt(string, radix) 函数解析字符串参数并返回指定基数(数学数字系统中的基数)的整数。”...: parseInt 只能将字符串的前导部分解释为整数值;它忽略任何不能解释为整数表示法一部分的代码单元,并且没有给出任何此类代码单元被忽略的指示。...Math.floor(0.00005); // => 0 Math.floor(0.000005); // => 0 Math.floor(0.0000005); // => 0 5.举一反三 现在,你能解释一下为什么...最后 感谢你的阅读,并期待你的关注和阅读更多优质文章。
当然这两者是相互联系的。 如果您的应用程序(或同一网络上的其他应用程序)生成的网络流量压倒可用带宽,则这可能会增加延迟。 延迟 延迟是在应用程序和SQL Server之间发送TCP数据包所需的时间。...专注于一个小型可重复的工作流将让您隔离问题。 接下来的问题当然是为什么要花10秒钟?缩小问题的第一个也是最简单的方法是将应用程序尽可能靠近SQL Server,在同一台机器上或在同一个LAN上运行。...请记住选择相关的网络界面,并注意您需要在与Wireshark的数据库不同的计算机上运行应用程序以查看流量。确保您没有运行任何其他本地SQL应用程序,而不是您尝试捕获的其他本地SQL应用程序。...或者,当您知道您没有带宽瓶颈时,您需要查看应用程序使用多少带宽。为此,您还需要运行靠近数据库的应用程序,捕获Wireshark中的数据包,并检查应用程序使用的带宽。...相反,我们已经看到,企业将越来越多的内存或CPU放入SQL服务器,这样做永远不会弥补网络延迟的额外时间。 如果您可以确定工作流程处理时间的真正用途,您可以以正确的方式指导您的时间和精力。
我一脸懵逼…… 我是一名程序员,长相一般,水平一般,什么都一般的普通程序员。...可在朋友眼中,我是无所不能的,只因为我是程序猿…… 一、收入肯定比我们高 毕业刚开始工作的时候,周围的同学和损友总是羡慕,刚进公司的收入就比他们高出很多,我很淡定,小小装X了一把,「今天我请客」。...后来的后来,我们就在一起了…… 三、可以破解一切密码 在我的大学时代,QQ空间和人人还是主流,很多同学总会问我,「能不能帮我破解某某某的QQ空间密码」,「能不能知道我男朋友的密码,看看聊天记录」。...谁叫我是绝佳暖男呢,可是,可是,为什么就不能再深入发展下去呢?其实原因很简单,因为我是绝佳暖男呀。 后记 其实程序员只是一类普通的职业,有混的开的,有混不好的,和其他职业一样。...我很爱我的职业,因为除了敲代码我不知道我还能做啥混口饭吃。 朋友们,你们的身边有程序猿吗?
dis_k=5036a3151e400b7b5d9cde11c9e80a1f&dis_t=1582083144 本片来自新片场创作人Ele实验室 (导演/出品人/制片人/策划/剪辑) 程序员用计算机编程的方式...看完视频你就明白为什么不能出门了,千万不要放松警惕!(@Ele实验室 ) 在家憋了一段时间的人们,耐心也在一点一点消磨中。很多人已经忍不住开始想蠢蠢欲动了。...他们总有一套自己的理论:我们城市才一点确诊病人,而且在距离我们很远的地方,我就出去一会儿,哪有那么巧合,就感染上了。没事儿的!大街上都没人,我戴着口罩又没事。...因此通过这一次的疫情防控,为了你、我、他,请以后感冒发烧生病之后,能够带个口罩,减少传染率。因为不知道你体内的这一个病毒威力如何。 ?...因此一个疫情发生,必须依靠强大有力的政府比如中国,和广大的医院医生护士等伟大的工作者们的努力,所以平时请尽量的尊重他们的这个职业。 ?
1.黑客情节 认识计算机应该是从电影上,从最初的《电子世界争霸战》,羡慕使用电脑编辑游戏并亲自到自己设计的游戏场景中“玩耍”的猪脚。到后来的《黑客帝国》,激起了我内心对计算机神秘面纱的向往。...无论是在电脑还是电视上都能看到代码创造出来得东西,我也想自己创作一个。...3.表白 可以上网了,看到新闻上好多程序员控制某个大厦灯光给女朋友告白的场面,自己心里也痒痒,什么时候我也能露一手,刷一下世贸天阶的大屏幕去,给她一个惊喜。 4.代码 计算2的10次方。...5.挣钱多 相对于其他专业,出来做程序员还是比较靠谱的,有一些经验之后工资就可以翻倍,工作机会又多,不用怕失业。而且这个行业是随着经验增加,工资随着增加的。到那个公司都吃得开。...编程如同练习功夫,做的越深入越觉得自己浅薄,觉得时间不够用的,早早晚晚慢慢完成自己程序的一生。
题图摄于广州番禺 本文记录一次关于隐私保护的事情。 近日,我去了趟某运营商的营业厅,开通一个新的手机号。入门时,扫了场所码,显示的是绿码。...营业员在帮我办理业务时,除了拍照我的身份证件外,还说要留存我的健康码和行程码。...这个要求就有点奇怪了,尽管我两个码都是正常,但作为从事隐私信息保护工作的我,对涉及自己隐私数据的事情,觉得还是要和他掰斥一下。 首先,我问他为什么需要留存我的两码?...因为我进营业厅的时候扫过各种健康码的,我于是给他扣了个大帽子:过度防疫(另一个类似的帽子是“层层加码”)。...因为我清楚地记得,行程码在使用时,用户只授权了用于防疫目的。至于其他目的,对不起,我没授权你用,就算你的理由多么冠冕堂皇,也不能随便给你。 至于他们留存我的健康码,更连个正当的理由都没有。
如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~ 本文是“为什么我建议”系列第二篇,本系列中会针对一些在高并发场景下,我对于组内后台开发的一些开发建议以及开发规范的要求进行说明和分析解读...往期回顾: 为什么我建议在复杂但是性能关键的表上所有查询都加上 force index 在业务一开始上线的时候,我们线上日志级别是 INFO,并且在日志内容中输出了代码位置,格式例如: 2022-03...在上面我给出的线程堆栈的例子中,调用打印日志方法的代码位置信息就是这一行:at com.xxx.apigateway.filter.AccessCheckFilter.filter(AccessCheckFilter.java...模拟两种方式获取调用打印日志方法的代码位置,与不获取代码位置会有多大性能差异 以下代码我参考的 Log4j2 官方代码的单元测试,首先是模拟某一调用深度的堆栈代码: 然后,编写测试代码,对比纯执行这个代码...由此,我建议:对于微服务环境,尤其是响应式微服务环境,堆栈深度非常深,如果会输出大量的日志的话,这个日志是不能带有代码位置的,否则会造成严重的性能衰减。
""; sa.TransportType = "msmq"; session.Save(sa); 保存也没有提示错误,但是就是保存不了数据,我单个保存主表也不行
现在不管领导怎么催,质量故障或不能满足客户要求的情况还是出现的越来越频繁。也正是因为这个样子,领导也开始召开专题会议,讨论怎么解决这个问题。...正文 如果只是为了提高质量,我有很多经过验证的、成熟的经验,不过这些经验很多并不适用于当前的情况。...我经常在考虑,我们公司的竞争优势在哪里,或者我们公司希望在未来的三到五年保持或者创造什么样的竞争优势?响应速度快是不是我们的优势?...但在工作中,一旦测试周期紧张了,就会有一部分测试人员会想,能不能不写计划,本来测试时间就紧张了,还要花那么多时间在计划上,值得吗?对质量提高有帮助吗?...以我面临的情况为例,会有员工觉得,我们现在迭代这么频繁,可以认为是敏捷开发了。既然敏捷开发不重文档,我们就不写了吧。 说说我的看法: 做工作要多问思考,多问为什么,比如我们是敏捷开发吗?
领取专属 10元无门槛券
手把手带您无忧上云