最近因为自研日常开发工具的需求,决定重新拾起PyQt5之类的桌面工具开发技术栈,为啥选用PyQt,一是因为笔者比较精通python,二是因为不需要在外观上做什么特别的东西。经过一番调研,发现当前的PyQt5版本已经过时,用pyside6会更加贴合现在的需求。因此笔者也简单部署了下pyside6的开发环境,通过这篇文章分享一下如何操作。
先强调一点是,所有的资料都可以在官网查到。如果有特别疑问的地方,参考官网,实在不行就stackoverflow或者gpt,也许可以更快解决问题。
最近因为自研日常开发工具的需求,决定重新拾起PyQt5之类的桌面工具开发技术栈,为啥选用PyQt,一是因为笔者比较精通python,二是因为不需要在外观上做什么特别的东西。经过一番调研,发现当前的PyQt5版本已经过时,用pyside6会更加贴合现在的需求。因此笔者也简单部署了下pyside6的开发环境,通过这篇文章分享一下如何操作。
先强调一点是,所有的资料都可以在官网查到。如果有特别疑问的地方,参考官网,实在不行就stackoverflow或者gpt,也许可以更快解决问题。
在后端开发领域,Golang已经成为非常流行的编程语言之一,并且生态也非常成熟。虽然在应用规模上离Java还有一段距离,但其中很多编程技巧跟思路还是值得学习的,一是没有什么太多的coding约束,二是实际工作中也有可能用的上。
在近一两年,笔者的工作也逐渐从主python转为主go语言,对于Golang也有一些简单的学习心得。借助今天这个机会,也将《从零单排Golang》系列做了精编,整合成电子书对外发布。这个系列其实拖了比较久的时间才搞定,一开始因为做运维平台开发的需要,前几篇文章主要举了docker、k8s相关的一些实战案例,没有对Golang的基础原理做太多的深挖,然后也因为个人原因搁置了一段时间。但几年后因为转行,需要主Golang,于是也抽空把Golang的一些基本机制给深入探索了些。
总的来说,这个系列沉淀的都是自己的想法,没什么形而上学的东西,更多是从一个coding经验者转Golang的视角来撰写内容。不论你是初学Golang,还是从其他语言转过来,都可以参考这个系列,帮助你在学习Golang的过程中找到一些思路和灵感。
以下是相关资料:
上周某天下班前,接到同事转来一个bug要排查,症状是代码重构之后某些业务效果不符合预期,由于代码重构人是笔者,于是blame到笔者这边。经过10min左右的排查和尝试后,解决了这个问题:既往逻辑没有改动,重构时候出笔误了。
简单来讲,重构之前的代码大概是这个样子:
对于一个成熟的工程项目而言,因为项目未来发展或是和企业内部更深度融合的需要,我们可能需要对既有业务逻辑做很大规模的改动,涉及到多方面的逻辑迁移和代码重构,才能够达到下一代产品所需要的效果。
今天这篇文章,就来剖析一下如何做好这件事情,尤其是在历史积淀非常厚重的场景,需要通过怎么样的手段,把这个问题解决好。
最近逐渐开始写一些简单且稍微务虚的文章。原因有挺多,其一是,自己的工作内容和企业的内部情况绑定的更加深入了,许多信息如果要在互联网上分享,需要考虑在很多地方做加工;其二是,过分拘泥于非常深度的技术挖掘,可能只能涉及到一些特定的领域,不利于技术博客的持续运营,并且从读者的视角,形式简单但内容富有思考的干货,才是真正有价值的产出。
因此,今天这篇文章,就从笔者自己的角度,谈一下代码架构治理的四层境界,把读者自己最深层的思考内容给解剖出来。希望这篇文章能够帮助到一些在代码架构治理工作方面,感受到痛点的同行们,让大家可以通过文章提到的一些思维工具,去解决实际工作中代码架构治理方面的问题。
这四层境界分别是:
第一次在技术博客里面写生活日记,也算是破了个小天荒。个人以为,博客是个人生活思考的载体,而技术只占生活的一部分,那么博客里为什么一定要限制只能够写技术内容,不能写点其它生活上的东西呢?思来想去,近几年在深圳万象天地和她一起探过不少餐馆,吃过不少东西。于是乎,决定写一篇万象天地餐馆探店点评,给没来过或者想来深圳万象天地的人一些参考,少点踩坑。
本文评价纯粹综合她和自己的主观意见,胃口分布于北京、江南跟广东,稍偏咸口。有些店可能很长时间没去了,所以只能基于主观印象给分。满分5星,4星以上推荐在线下做多刷。详细评分内容如下:
今天灵光一闪,决定调研一下自己的技术博客,可以怎样方便迁移到其它社媒平台。想要达到的效果是,把自己在掘金的专栏:从1到∞精通Python,迁移到知乎上面去。
简单花了两三小时时间,找到一个比较快捷的方法,就是结合python爬虫、clean-mark工具和zhihu-on-vscode插件,实现从掘金到知乎的文章搬运。
正直劳动节,翻了下2023年美团的技术年货,挑选了一些和变更风险防控和稳定性建设相关主题的文章做了下浅读。本文仅简单记一下阅读笔记。
总共选读了3篇文章,分别是《基于AI+数据驱动的慢查询索引推荐》、《代码变更风险可视化系统建设与实践》,以及《AIOps在美团的探索与实践——事件管理篇》。
在基于Golang的后端开发中,channel是一个必须要掌握的并发编程概念。和python的queue一样,channel在不同的goroutine里承担着传递信息的作用,使得业务逻辑的状态上下文可以在不同的goroutine中共享。今天,我们就来看一下channel的用法还有一些使用上的基本原则。
首先,我们需要知道什么场景下会用到channel。一个简单的例子是,在主流程里,我们希望启动一个方便处理panic的goroutine,异步跑一个任务,然后主流程等待这个goroutine给join进来。解决这个问题,就可以用到channel,代码这样写: