草庐IT

面向“运维”编程,不考虑运营成本的编码都是耍流氓!

面向运维编程?我们小组里的明辉同学做到了,他对面是世伟同学,世伟是我们技术团队的运维大哥,明辉同学每天编程都面对着世伟。这里的运维可不是指运维同学,而是说,我们的系统在生产运行过程中的维护(SystemMaintenance)工作,通常理解为代码调优、日志埋点、问题排查等工作。   今天下午,系统运营群里反映问题。我们查看生产日志排查问题时,发现有大文本日志不停在刷屏,严重干扰了我们对问题的定位。 大日志刷屏现(wèn)象(tí)由来已久,生产环境每天都在打印海量的log,日志文件动辄10G或20G。这些大文本通常是一些api接口签名串、数据加密串、图片文件base64串/hex串、从db或r

为什么标准库的模板变量都是inline的

最近在看标准库里的type_traits的时候发现了个有趣的地方,几乎所有在标准库里的变量模板都是inline的!不仅常见的实现上(libstdc++、libc++、msstl)都是inline的,标准里给的形式定义也是inline的。比如微软开源的stl实现:https://github.com/microsoft/STL/blob/main/stl/inc/type_traits#L73_EXPORT_STDtemplate_INLINE_VARconstexprboolnegation_v=negation::value;_EXPORT_STDtemplate_INLINE_VARcon

为什么标准库的模板变量都是inline的

最近在看标准库里的type_traits的时候发现了个有趣的地方,几乎所有在标准库里的变量模板都是inline的!不仅常见的实现上(libstdc++、libc++、msstl)都是inline的,标准里给的形式定义也是inline的。比如微软开源的stl实现:https://github.com/microsoft/STL/blob/main/stl/inc/type_traits#L73_EXPORT_STDtemplate_INLINE_VARconstexprboolnegation_v=negation::value;_EXPORT_STDtemplate_INLINE_VARcon

这几年落地的DDD,都是智商税和大忽悠?

牛B的人物,早已经厌倦了中英文混杂,他们更进一步,使用中英文缩写,对普通人进行降维打击。更厉害的,造就新的名词,并科普出去。有几项技术,我从心底里鄙视和厌恶,但每次在技术方案中,都默默的把它们加进去,而且给足了它们分量。因为它们对于方案的成功与否,起着重要的概念性指导作用。它们就是中台、低代码,以及DDD。这三个不同领域中的技术,肩负着同样的责任,那就是往死里忽悠。这三个词,很伟大,它们有一个共同点,都是很容易说服非技术但能决策的人员,然后向下铺开,非常具有营销型,是职业经理人和CTO的最爱。也是咨询类公司的最爱。这些玩意儿,有的可以忽悠大公司,有的可以忽悠小公司,反正谁也别想逃掉。但毒瘤如果

这几年落地的DDD,都是智商税和大忽悠?

牛B的人物,早已经厌倦了中英文混杂,他们更进一步,使用中英文缩写,对普通人进行降维打击。更厉害的,造就新的名词,并科普出去。有几项技术,我从心底里鄙视和厌恶,但每次在技术方案中,都默默的把它们加进去,而且给足了它们分量。因为它们对于方案的成功与否,起着重要的概念性指导作用。它们就是中台、低代码,以及DDD。这三个不同领域中的技术,肩负着同样的责任,那就是往死里忽悠。这三个词,很伟大,它们有一个共同点,都是很容易说服非技术但能决策的人员,然后向下铺开,非常具有营销型,是职业经理人和CTO的最爱。也是咨询类公司的最爱。这些玩意儿,有的可以忽悠大公司,有的可以忽悠小公司,反正谁也别想逃掉。但毒瘤如果

你应该知道的数仓安全:都是同名Schema惹的祸

摘要:我是管理员账号,怎么还没有权限?当小伙伴询问的时候,我第一时间就会想到都是用户同名Schema惹的祸本文分享自华为云社区《你应该知道的数仓安全——都是同名Schema惹的祸》,作者:zhangkunhn。典型场景经常遇到小伙伴问到:我是管理员账号,怎么还没有权限?管理员给我赋权了啊,怎么还没有权限?当小伙伴询问的时候,我第一时间就会想到都是用户同名Schema惹的祸。同名Schema是私有Schema我们知道,CREATEUSER语法在创建用户的同时会在当前数据库中创建一个与用户同名的SCHEMA。这个Schema很特殊,只有两种用户能在这个Schema下面创建表、视图、函数等对象:用户

你应该知道的数仓安全:都是同名Schema惹的祸

摘要:我是管理员账号,怎么还没有权限?当小伙伴询问的时候,我第一时间就会想到都是用户同名Schema惹的祸本文分享自华为云社区《你应该知道的数仓安全——都是同名Schema惹的祸》,作者:zhangkunhn。典型场景经常遇到小伙伴问到:我是管理员账号,怎么还没有权限?管理员给我赋权了啊,怎么还没有权限?当小伙伴询问的时候,我第一时间就会想到都是用户同名Schema惹的祸。同名Schema是私有Schema我们知道,CREATEUSER语法在创建用户的同时会在当前数据库中创建一个与用户同名的SCHEMA。这个Schema很特殊,只有两种用户能在这个Schema下面创建表、视图、函数等对象:用户

当我会AOP之后,去丈母娘家都是挺着胸脯!

  当和朋友谈到AOP时,第一映像会说AOP的应用层面,比如拦截器、过滤器,实现复用等等使用层面上。 这些应用层面上的回答远远没有深入AOP的思想。是的,AOP是思想,面向切面思想。 既然是编程思想,那我们就有必要了解AOP的整个过程,以及AOP思想出现的原因。 AOP面向切面编程思想,能够解决什么问题,我们回顾一下编程思想的发展路线...... 早期的POP面向过程编程,即是以功能为中心来进行思考和组织的一种编程方法,强调的是功能。 分析解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用的时按顺序依次调用,严格按照顺序,侧重解决步骤,着眼局部或具体。 实际是一种单一的思考方式,符合人类

当我会AOP之后,去丈母娘家都是挺着胸脯!

  当和朋友谈到AOP时,第一映像会说AOP的应用层面,比如拦截器、过滤器,实现复用等等使用层面上。 这些应用层面上的回答远远没有深入AOP的思想。是的,AOP是思想,面向切面思想。 既然是编程思想,那我们就有必要了解AOP的整个过程,以及AOP思想出现的原因。 AOP面向切面编程思想,能够解决什么问题,我们回顾一下编程思想的发展路线...... 早期的POP面向过程编程,即是以功能为中心来进行思考和组织的一种编程方法,强调的是功能。 分析解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用的时按顺序依次调用,严格按照顺序,侧重解决步骤,着眼局部或具体。 实际是一种单一的思考方式,符合人类

解密秒杀系统架构:不是所有的秒杀都是秒杀

摘要:究竟什么样的系统算是高并发系统?今天,我们就一起解密高并发业务场景下典型的秒杀系统的架构。本文分享自华为云社区《【高并发】秒杀系统架构解密,不是所有的秒杀都是秒杀(升级版)!!》,作者:冰河。究竟什么样的系统算是高并发系统?今天,我们就一起解密高并发业务场景下典型的秒杀系统的架构。电商系统架构在电商领域,存在着典型的秒杀业务场景,那何谓秒杀场景呢。简单的来说就是一件商品的购买人数远远大于这件商品的库存,而且这件商品在很短的时间内就会被抢购一空。比如每年的618、双11大促,小米新品促销等业务场景,就是典型的秒杀业务场景。我们可以将电商系统的架构简化成下图所示。由图所示,我们可以简单的将电