自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(8)
  • 资源 (13)
  • 问答 (1)
  • 收藏
  • 关注

原创 关于代码质量退化的思考

一个软件项目从探索阶段到发展方向明确阶段,会经历从简单到复杂的一个过程,需求的不断叠加,会让系统越来越庞大,功能繁多,公司业务的扩展也让软件系统的生命周期变的更长。在业务变复杂软的过程中,各种原因的驱使,代码质量会退化,维护和开发新功能的成本也会相应的变高,推倒重新开发的成本也是高的吓人。 代码质量退化的步骤 大多情况下编码设计质量最高的时候是根据第一版需求进行编码实现的时候,但只要需求一变更,...

2022-01-10 09:55:00 15

原创 一次奇怪的的bug排查过程

公司对底层基础库进行了重构,线上稳定跑了几天,在查看订单系统的log时,有几条error信息非常的奇怪, orderID:80320180 statemachine error: no event [Revoked] at current state [Paid] orderID:81983045 statemachine error: no event [Refund] at current...

2021-11-30 10:00:00 22

原创 分解uber依赖注入库dig-源码分析

上一篇帖子 分解uber依赖注入库dig-使用篇 把如何使用dig进行代码示例说明,这篇帖子分析dig的源码,看他是如何实现依赖注入的。 dig实现的中心思想:所有传入Provide的函数必须要有除error外的返回参数,返回参数供其他函数的形参使用。 比如上一篇的第一个例子里,一个函数func() (*Config, error)返回Config 另一个函数func(cfg *Config...

2021-05-08 09:36:00 55

原创 分解uber依赖注入库dig-使用篇

golang的依赖注入库非常的少,好用的更是少之又少,比较好用的目前有两个 谷歌出的wire,这个是用抽象语法树在编译时实现的。 uber出的dig,在运行时,用返射实现的,并基于dig库,写了一个依赖框架fx 本系列分几部分,先对dig进行分析,第一篇介绍dig的使用,第二篇再从源码来剖析他是如何通过返射实现的的依赖注入的,后续会介绍fx 的使用和实现原理。dig主要的思路是能过Prov...

2021-05-06 09:43:00 16

原创 dot 语法总结

在使用pprof分析go的项目时,经常会查看各项指标的有向图 原理是使用Graphviz(Graph Visualization Software)解析生成的dot脚本得到最终展示给我们的图信息。dot是Graphviz用于画有向图和无向图语言,语法简单。dot的抽象语法 [ strict ] (graph | digraph) [ ID ] '{' stmt_list '}' dot支持无向图...

2021-03-29 09:46:00 78

原创 grpc系列- protobuf详解

Protocol Buffers 是一种与语言、平台无关,可扩展的序列化结构化数据的方法,常用于通信协议,数据存储等等。相较于 JSON、XML,它更小、更快、更简单,因此也更受开发人员的青眯。 基本语法 syntax = “proto3”; package model; service MyServ { rpc Query(Request) returns(Reply); } messag...

2020-12-30 13:46:00 43

原创 c++ 解析yaml文件

一直用c++操作`ini`做配置文件,想换成`yaml`,在全球最大的同性交友网站`github`上搜索,看有没有开源的库,功夫不负有心人,找到了[yaml-cpp](https://github.com/jbeder/yaml-cpp),试着解析了一个`yaml`文件,给个满分。分享一下如何使用他。 先`git clone [email protected]:jbeder/yaml-cpp.gi...

2020-12-15 10:33:00 30

原创 白话k8s-Pod的组成

k8s的所有功能都是围绕着Pod进行展开的,我们经常会看到类似这样一张图 告诉我们,Pod是一组container的集合,container之间可以通过localhost:port的方式直接访问。 感觉很神奇,明明是不同的container怎么做到共用一个IP的,在随便一个容器内通过localhost访问就能访问其他容器的服务,通过例子和阅读源码找到了原因: 创建一个简单的Pod apiVers...

2020-10-20 11:58:00 20

QQ软件的图片

QQ软件的图片 相当全 QQ Resource

2014-08-20

程序员的数学

如果数学不好,是否可以成为一名程序员呢?答案是肯定的。 本书最适合:数学糟糕但又想学习编程的你。 没有晦涩的公式,只有好玩的数学题。 帮你掌握编程所需的“数学思维”。 日文版已重印14次! 编程的基础是计算机科学,而计算机科学的基础是数学。因此,学习数学有助于巩固编程的基础,写出更健壮的程序。 本书面向程序员介绍了编程中常用的数学知识,借以培养初级程序员的数学思维。读者无需精通编程,也无需精通数学,只需具备四则运算和乘方等基础知识,就可以阅读本书。

2013-10-31

笔记本电池校正工具

笔记本电池校正修复工具 自己在用 电池校正工具

2012-11-28

AcronisDisk

AcronisDiskDirectorServe 很好用的分区工具 不会损坏硬盘 可以在server 上完美运行

2012-11-22

SQL Server Profiler

SqlServer2005Express下的事件探查器

2012-11-09

小型 ftp软件

小型 ftp软件 很小的ftp 很实用

2012-08-15

wpf裁剪图片

自己优化的国外的一个程序 ,内存问题也已经解决。

2012-07-25

wpf 拖拽大全

wpf 拖拽 ListView拖拽 图形拖拽 Tab拖拽 Button拖拽 文本 拖拽

2012-06-12

wpf ListView 拖拽

wpf ListView 拖拽 wpf ListView Item 拖拽 拖拽到其它的ListView

2012-06-12

WinForm 关闭子窗体时刷新父窗体的数据

WinForm 关闭子窗体时刷新父窗体的数据WinForm 关闭子窗体时刷新父窗体的数据

2011-10-18

iReaper msdn

msdn ipreaper 管理你的msdn下载的课

2011-02-24

一步一步学asp.net MVC

MVC 一步一步学MVC 学MVC的必有武器好多东西在我的csdn

2011-02-23

ASP.NET自定义控件实例教程

ASP.NET自定义控件

2011-02-22

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除