
学习笔记
文章平均质量分 91
csdnYF
Running ···
展开
-
如何低成本的搭建一个真实的Kubernetes集群
引言:kubernetes作为当前事实上的容器编排标准,其势头可谓是如日中天,然而,kubernetes一直以来被人诟病的就是其复杂的搭建成本,作为个人,除了用miniKube等工具在个人电脑上模拟一个集群,或者通过虚拟机模拟一个集群,但终归,真实集群和虚拟集群是不同的。我一直在想,如今云服务器已经十分成熟,难道就不能作为搭建kubernetes平台的基础设施吗?一、架构规划其实对于现在的云服务来说,各家竞争激烈,价格也打得比较低,但是存在一个问题:为了吸引新用户,云服务厂商一般都对产品首单、新用户.原创 2022-02-24 21:56:28 · 1495 阅读 · 0 评论 -
Go 服务端开发总结
服务端开发一般是指业务的接口编写,对大部分系统来说,CURD的操作占了绝大部分。然而,网络上总有调侃“CURD工程师”的梗,以说明此类开发技术并不复杂。我个人认为,如果仅仅为了找个框架填充点代码完成任务,确实是简单,但是人类贵在是一根“会思考的芦苇”,如果深入的思考下去,在开发过程中还是会碰到很多通用的问题的。如用go的开发框架举例子,就有两种分化形式:一种以beego为代表的,goframe继续发扬广大的框架类型,它们的特点就是大而全,提供各种各样的功能,你甚至不需要做多少选择,反正按照文档使用就是了。原创 2021-12-20 09:13:36 · 2518 阅读 · 0 评论 -
凤凰架构读书笔记
演进中的架构笔记: 我理解的架构之道,一定是在了解架构发展的历史基础上扩展,非历史而不能明真理。 最先和最初的单体架构,老而弥坚。很赞同作者说的单体并不是反例,实际上我们很多系统刚开始就是单体架构,单体只意味着: 1. 随时间维度增长带来的维护困难 2. 技术栈的单一 3. 一荣俱荣一损俱损 对一些小系统而言,单体无疑是最简单正确的选择。同时,单体不意味着维护困难,这点要格外注意。只有在时间增长带来的系统复杂度增长的情况下,才会出现维护困难。同时,技术栈单一也原创 2021-11-16 10:19:12 · 1485 阅读 · 0 评论 -
分布式任务调度框架(Temporal)介绍
分布式任务调度框架基本能力:任务管理能力(增删改查、执行、定时执行、延时执行、健康监控)集群管理能力(扩展简单、效率高)编程能力(运行代码)Web界面管理目前市面上有很多可用于处理分布式任务的开源框架,比如Elastic-Job、XXL-Job、Quartz等等,它们或多或少都能满足以上列出的各项基本能力,然而,它们都是以Java系语言编写的,这不禁让人产生疑问,难道Go就没有自己的开源任务调度框架吗?经过在网络上一番翻箱倒柜,找到了类似gocron、gocraft/work、robfi.原创 2021-09-18 15:02:28 · 8465 阅读 · 0 评论 -
对设计模式中工厂模式的理解和感悟
回想刚开始学习设计模式时,被23种设计模式冲昏头脑,很想学好,但是越看越晕。工作几年后,回头在看,略有些心得,因此做个小总结,也希望能带给后来的小伙伴一点点启发。一、设计模式之道 很喜欢一些大佬们对知识的分类法,他们会把知识分成“道法术器”(也是源自道家的思想)。所谓“道”,我理解指的就是根源和初心了,它的特点就是高度概括,包罗万象;所谓“法”,我理解就是运行的法度、制度、规章,它的特点就是保证系统的正确运转;所谓“术”,就是一些做事的方法,它的特点就是有条理,有步骤;所谓“器”,则是一些辅助工具.原创 2021-07-24 15:49:09 · 585 阅读 · 0 评论 -
Goreleaser + TraivsCI 发布 gopo 项目
很久没有更新过博客,想来也是十分惭愧,每日都在公司和家庭之间来回往返,闲下来时也浑浑噩噩。古人云吾日三省吾身,博客就是一个很好的反省和总结的手段,只是难的不是写一篇或两篇,而是那份滴水穿石的毅力。以上扯了些废话,下面进入分享正题。Goreleaser和TraivsCI 这边就不再过多介绍,可以去它们官网上了解。这边主要是介绍gopo以及如何把它发布出去供人使用。那这篇文章也相应的分为两个部分。gopogopo 说白了就是解析go中的结构体,生成对应的结构体字段常量表。也就是说:type SomeTa原创 2021-01-24 19:47:26 · 726 阅读 · 0 评论 -
Flutter学习 ---- TravisCI加持
Flutter号称统一Android端和IOS端开发,做到一份代码同时运行在两个平台上,从实际效果来看,流畅的体验、完善的文档,还是很值得一试的。不过其中却藏了一个神坑(对我来说),那就是你的Flutter应用要在IOS上运行,必须在macOS主机上打包才可以,吃着苹果的童鞋自然不用担心了。然而本人一台y400征战多年,目前资金池也处于资源紧缩状态,换苹果机这种高消耗的任务基本是排在优先级队...原创 2018-06-13 14:20:08 · 856 阅读 · 0 评论 -
Flutter学习 ---- 屏幕截图和高斯模糊
废话不多说,先上本次要实现的效果图。 Gif格式是渣像素,实际效果要自然的多。这个项目其实是看到小池记账小程序后实现的一个类似效果,小池比较闪光的一点就是这个主界面的动态高斯模糊效果,不过小池的动态模糊效果就不如Flutter可以做的这么自然流畅了,模糊时还是有肉眼可见的卡顿的。大家可以搜索小池记账对比一下,下面进入正文。知识点Flutter中如何截取当前屏幕的Widget图片。...原创 2018-05-24 08:44:34 · 8051 阅读 · 1 评论 -
为什么在Go语言中要少用interface{}
记得刚从Java转Go的时候,一个用Go语言的前辈告诉我:“要少用interface{},这玩意儿很好用,但是最好不要用。”那时候我的组长打趣接话:“不会,他是从Java转过来的,碰到个问题就想定义个类。”当时我对interface{}的第一印象也是类比Java中的Object类,我们使用Java肯定不会到处去传Object啊。后来的事实证明,年轻人毕竟是年轻人,看着目前项目里漫天飞的interf...原创 2018-04-14 17:40:08 · 1454 阅读 · 1 评论 -
Beego框架的一条神秘日志引发的思考
公司目前的后台是用Beego框架搭的,并且为了服务的不中断升级,我们开启了Beego的Grace模块,用于热升级支持。一切都跑井然有序,直到有一天,领导甩出一些服务日志,告知程序一直报错:2018/03/08 17:49:34 20848 Received SIGINT.2018/03/08 17:49:34 20848 [::]:5490 Listener closed.2018/0...原创 2018-03-12 09:57:14 · 3648 阅读 · 2 评论 -
使用Go默写古诗词
“白日依山尽,___”。下句自然填黄河入海流,那么“日月忽其不淹兮,___,___,恐美人之迟暮”,中间两句怎么填呢? 最近工作中有个需求,就是1500道语文诗词填空题没有答案,现在需要给这些题目大爷们匹配它们对应的答案,好在题目信息都很完整,指出了诗词出处、作者信息。自然想到到网上爬取对应文章信息然后字符串匹配答案。目前做完,效果还可以,基本上所有题目的答案都有了,现把操作流程记...原创 2018-03-06 21:22:44 · 684 阅读 · 0 评论 -
SublimeText3 插件开发记录 --- 划词翻译
最近正研究怎么使用SublimeText3开发Python,然而对Python英文文档的阅读是一个比较头疼的问题,在AndroidStudio中有自动翻译插件ECTranslation,能方便的翻译单词和句子。因此想仿照ECTranslation,自己写一个翻译插件,正好也能加深对Python的印象。(在SublimeText3中,似乎没有特别好用的划词翻译插件)开发ST3的插件,网上只有简单的入门原创 2017-01-02 21:48:04 · 4590 阅读 · 4 评论 -
实现一个长表格控件 ---- 自定义LayoutManager学习
Android 学习之路从自定义View,自定义ViewGroup走到现在,难度越来越大,当然也能学到很多东西,而自定义RecyclerView的LayoutManager既是对之前所了解的View绘制机制\事件传递机制的巩固,也是一种提升。Google自定义了一个ViewGroup叫做RecyclerView,却不走寻常路,把这个ViewGroup的测量和布局交给另一个类完成,为什么要这样做?能带原创 2017-09-08 20:11:03 · 786 阅读 · 0 评论 -
实现Activity和Service通信的几种方案
Service作为Android四大组件之一,一直默默无闻的在后台保证程序能正常运作。按照Google的定义,Service能在后台执行长时间的运行操作而不使用用户界面,它与后台线程的区别是它是整个程序的一部分,比如说Activity在运行的同时需要播放一些音乐,这完全可以通过开启一个后台线程来完成;但想要在应用进入后台运行时依然能播放音乐,则必须使用Service来完成了。 用户感知Servic原创 2016-06-10 20:31:22 · 4571 阅读 · 0 评论 -
从ActiveAndroid到Realm的爬坑之路(二)
Realm是作为一个Gradle插件集成到项目中的,怎么配置 文档 里说的也很清楚了,需要注意的是在官方的GitHub上是这么添加依赖的: dependencies { classpath "io.realm:realm-gradle-plugin:<version>-SNAPSHOT" } 但copy的时候中间的version 应该替换成最新的版本号。然后,原创 2016-08-14 17:02:45 · 2902 阅读 · 0 评论 -
从ActiveAndroid到Realm的爬坑之路(一)
公司的项目一直都是使用的ActiveAndroid,这是一个很传统的ORM框架,不过无论是与Gson的配合使用,还是连接查询或者分页查询,传统数据库的理念它都能支持的很好。无奈的是这个项目在GitHub上的最近更新时间还是在两年前,它对AndroidStudio的InstantRun特性支持的不是很好(编译时间就是程序员的生命啊,感谢Google推出的这一神器 )。强行使用的话可能会报如下错误: 第原创 2017-09-08 20:09:14 · 727 阅读 · 0 评论 -
学习笔记----快速排序的java实现
快速排序算法是我们学习数据结构必学的算法之一,虽然在java中,对列表的排序可直接使用Collections.sort(List l) (这使用的是归并排序算法) ,对基本类型的数组也有Arrays.sort()(这使用的是改进的快速排序算法),但实现一个快速排序,仍能给自己很多启发。 很多算法书上都使用c或者c++实现快排算法,但是作为一个写惯了java的程序员,再去写c或c++有着各种水土不服原创 2016-05-24 18:21:20 · 689 阅读 · 0 评论