Go 去找个对象吧 前言我的读者中应该大部分都是 Java 从业者,不知道写 Java 这些年是否真的有找到对象? 没找到也没关系,总不能在一棵树上吊死,我们也可以来 Go 这边看看,说不定会有新发现。 开个玩笑,本文会以一个 Javaer 的角度来聊聊 Go 语言中的面向对象。 2021-02-24 基础原理 #Java #Go #OOP #鸭子类型
Python 中的面向接口编程 前言”面向接口编程“写 Java 的朋友耳朵已经可以听出干茧了吧,当然这个思想在 Java 中非常重要,甚至几乎所有的编程语言都需要,毕竟程序具有良好的扩展性、维护性谁都不能拒绝。 2021-01-14 基础原理 #Python #OOP #鸭子类型
一文搞懂参数传递原理 前言最近一年多的时间陆续接触了一些对我来说陌生的语言,主要就是 Python 和 Go,期间为了快速实现需求只是依葫芦画瓢的撸代码;并没有深究一些细节与原理。 就拿参数传递一事来说各个语言的实现细节各不相同,但又有类似之处;在许多新手入门时容易搞不清楚,导致犯一些低级错误。 2021-01-11 基础原理 #Java #Python #Golang
一个小时学会用 Go 编写命令行工具 前言最近因为项目需要写了一段时间的 Go ,相对于 Java 来说语法简单同时又有着一些 Python 之类的语法糖,让人大呼”真香“。 2020-12-08 Golang #Golang #cli
不同语言对单例模式的不同实现 前言前段时间在用 Python 实现业务的时候发现一个坑,准确的来说是对于 Python 门外汉容易踩的坑; 大概代码如下: 1234567891011121314class Mom(object): name = '' sons = []if __name__ == '__main__': m1 = Mom() m1.name = 2020-10-09 设计模式 #Java #Python #Golang
ElasticSearch 索引 VS MySQL 索引 前言这段时间在维护产品的搜索功能,每次在管理台看到 elasticsearch 这么高效的查询效率我都很好奇他是如何做到的。 这甚至比在我本地使用 MySQL 通过主键的查询速度还快。 2020-08-24 数据结构 #MySQL #Elasticsearch #倒排索引 #B+ 树
撸了一个 Feign 增强包 前言最近准备将公司的一个核心业务系统用 Java 进行重构,大半年没写 Java ,JDK 都更新到 14 了,考虑到稳定性等问题最终还是选择的 JDK11。 在整体架构选型时,由于是一个全新的系统,所以没有历史包袱,同时团队中也有多位大牛坐镇,因此我们的选项便大胆起来。 最终结果就是直接一把梭,直接上未来的大趋势:Service Mesh,直接把什么 SpringCloud、Dubbo 这类分 2020-07-28 轮子 #Java #SpringBoot #Feign
动态代理与RPC 前言随着最近关注 cim 项目的人越发增多,导致提的问题以及 Bug 也在增加,在修复问题的过程中难免代码洁癖又上来了。 看着一两年前写的东西总是怀疑这真的是出自自己手里嘛?有些地方实在忍不住了便开始了漫漫重构之路。 2020-04-28 cim > rpc > 动态代理 #Java #Netty
动态代理的实际应用 前言最近在用 Python 的 SQLAlchemy 库时(一个类似于 Hibernate 的 ORM 框架),发现它的 Events 事件还挺好用。 简单说就是当某张表的数据发生变化(曾、删、改)时会有一个事件回调,这样一些埋点之类的需求都可以实现在这里,同时和业务代码完全解耦,维护起来也很方便。 例如当订单状态发生变化需要发异步通知这样的需求也可以利用这个实现。 根据我之前使用 Mybati 2020-03-30 cicada > 动态代理 > 轮子 #Java #HTTP #Netty
词法分析器的应用 前言最近大部分时间都在撸 Python,其中也会涉及到将数据库表转换为 Python 中 ORM 框架的 Model,但我们并没有找到一个合适的工具来做这个意义不大的”体力活“,所以每次新建表后大家都是根据自己的表结构手写一遍 Model。 一两张表还好,一旦 10 几张表都要写一遍时那痛苦只有自己知道;这时程序员的 slogan 再次印证:一切毫无意义的体力劳动终将被计算机取代。 2020-03-23 编译原理 #Java #递归 #DDL