- 博客(17)
- 资源 (2)
- 收藏
- 关注
转载 Spring Boot集成mysql与Redis
原文:Spring Boot集成mysql与Redis在项目搭建初期,我们便集成了mysql数据库,但是在现代的分布式架构中,往往还需要一种更高访问性能的键值数据库Redis。mysql结合redis解决了大多数软件系统的痛点,当然还有一些特殊的系统,需要保存大量的归档资料而用到分布式文件系统(比如GFS),需要同时满足数据强一致与高性能而自研了分布式数据库(比如OceanBase)。本篇文章介绍我自己在Spring boot项目中,集成mysql与redis的过程,一些有关连接池的概念,遇到的一些坑,
2021-03-07 15:38:36 842
转载 RocketMQ在项目中的简单实践
原文:RocketMQ在项目中的简单实践本文由一个特定的问题展开,讲述在项目中引入消息队列中间件的起因、过程与思路总结。待解决的问题在mytalk项目中,需要设计一个添加议题接口(由标题和内容等信息组成,相当于发一个微博话题),议题创建除了需要在数据库中添加记录外,还需要执行以下步骤:通知议题相关的小组成员通知搜索引擎该议题上线给议题提出者增加积分未来可能增加的新的需求更具体一些,我们希望第1,2两点的执行结果不影响议题本身的创建结果,最好也不要拖累创建议题这个基本业务的执行。也就是说,
2021-03-07 15:37:10 1517
转载 不要重复它!幂等性的设计
原文:不要重复它!幂等性的设计面向对象编程中有个重要的原则:Don’t repeat yourself!(不要重复你自己,简称DRY),指系统中的每一部分都必须有一个单一的、明确的、权威的代表,劝导程序员不要写重复代码,做重复设计。由此引申出来一个概念:Don’t repeat it!(不要重复它)也非常有趣,指面向用户提供的公共方法或者接口服务不会对同一件事情重复去做。如果以前已经计算过这个结果,那么直接返回它,如果以前已经执行了这个事务,那么直接跳过这个事务。也就是说,软件设计要支持幂等性。幂等是一
2021-03-07 15:34:47 271
转载 如何设计一个网络程序
原文:如何设计一个网络程序一天,小汪同学在学习C语言时,有个问题一直困扰着它,于是去找班上乐于助人、爱学习、聪明的小喵同学。*小汪:*哎呀,厉害了!那我问问你,下面的C函数有什么作用?int add(int a, int b){ return a + b;}*小喵:*给两个数求和啊,你问这个干什么?*小汪:*但是这个程序只能在我的计算机上运行,这太令人沮丧了,我希望它是一个网络程序,一个所有人都可以使用的程序,就像这个程序提供了某种服务一样。但关于网络程序,我完全不知如何下手。*小喵:
2021-03-07 15:30:44 897
原创 任何程序员都应该知道的服务发现与负载均衡
在早期的单点系统中,一个API只由一个服务器提供,客户端直接根据确定的IP访问这个服务。随着用户规模的增长,单凭一个服务器已不能支撑其庞大的流量,这就需要多台服务器组成一个集群,共同支持起一个API的流量。但是客户端并不知晓有哪些真实服务器可以提供所需要的API,也不知晓应该向哪个API提供者发起请求,这就需要一个组件来完成服务发现(发现有哪些服务提供者)和负载均衡(向哪个服务提供者发起请求)。服务发现和负载均衡是服务端架构中非常基本的问题,涉及的领域比较广,本篇文章以我个人的见识介绍并分析这些问题,希望
2021-02-25 11:11:53 862 1
原创 动画精灵的实现
在flash中,只有关键帧由用户提供,其余帧通过补间完成,而这次设计的动画精灵的所有帧全部由用户提供(来源于图片素材),这样大大简化了设计。
2014-08-15 21:00:37 1497
原创 新手入门书籍推荐
以自己的阅读经历来评点一下我所阅读过的书。1. 写给大家看的C语言书 ——第一次接触编程的入门书籍在阅读之前,我连字符是什么都不知道,这本书以最简洁易懂的方式讲述C语言,帮我解决了很多疑惑。在书的最后有一个完整的21点游戏程序代码,当时我非常惊讶于居然会有如此复杂的代码,在亲自手抄了一遍,研究了一遍,敲了一遍后才能勉强理解。但这是极具价值的。2. C语言陷阱与缺陷 ——
2014-07-06 00:04:11 1500
原创 以引用对象取代单例模式
在系统中引入单例模式往往并没有起到明显的效果却增加了系统的复杂性。不能仅仅因为某个类只需要一个实例而采用单例模式,这些完全可以用引用对象取代。
2014-06-11 13:59:18 1174 1
原创 从DIV到语义标记
Div+CSS模式 div+css是一种网页的布局方法,这一种网页布局方法有别于传统的HTML网页设计语言中的表格(table)定位方式,可实现网页页面内容与表现相分离。传统的网页结构以表格为基础,而现在绝大多数的网页采用div块标记作为网页的主要结构.div可以更灵活、更简洁的设计网页结构.HTML5语言标记 相比与div,语义标记是更新颖的”规范”,即用有意
2014-05-25 10:35:33 1045
原创 数据表设计的思考
在学习sql的时候,强调避免数据冗余,在软件设计的时候,强调查询性能。然而规范化设计数据表往往与程序性能是冲突的,这就需要在规范和性能两个方面做好取舍. 规范的数据表的设计,要求避免数据冗余,同样含义的数据不应该出现两次,能够通过表连接计算得到的数据不应该设置为新的字段.这样的话,存储空间可以得到最大的节省,不过最大的优点还是维护的方便,表与表之间相对独立,仅仅通过外键关联,增强了增
2014-05-25 10:29:55 631
原创 指针与引用
指针和引用的唯一区别就是引用是自动解引用的指针。就像是C#中的关联字段,指针在读取和赋值的时候先被解除引用,就是引用. 这篇文章本该到此结束,不过我还是想详细解释一下.1. 引用是变量,是占内存的。引用可以被理解为变量的别名,但内部实现未必就是这样,变量是依靠地址来区别的,只有通过存储引用变量的地址,在运行时才能准确定位被引用的变量。2. 引用变量存储的就是被
2014-05-25 10:20:53 616
原创 深度复制
先从一个问题开始探讨:编写一个类,其中有一个动态的字符数组存储字符串,还有一个整型成员存储字符串的长度,并重载 显然,类的定义应该是: class Test{private: char *str; //字符串的长度是不固定的,需要使用字符指针 int len;public:
2014-05-25 10:17:45 571
原创 如何设计21点游戏
21点游戏的设计能够充分体现C语言结构化程序设计的思想,如果你是C语言的初学者,本文对你一定有帮助. 21点游戏的规则如下:扑克牌A、2、3、4、、、、、、10、J、Q、K、大小鬼分别代表数字1、2、3、4、、、、、、10、11、12、13、21;人和电脑轮流坐庄,庄家先发牌。胜利条件:将所取牌点数相加凑成 "和"是21,谁先凑成21就胜出,如果没有人凑到"和"是21,就定"和"最接
2014-05-25 10:13:56 4793 1
原创 C#程序设计分析之俄罗斯方块
前言: 设计俄罗斯方块程序非常考验程序设计能力,也是学习编程的一个非常好的实践案例。能用设计出这个程序说明对C#语法的掌握基本没有问题了,但是不一定就说明编程能力就很强。我们应该追求的是良好的设计,而不仅仅是可运行的程序, 聪明的程序员应该设计出易读性的代码。我就以这个程序为案例,介绍一下我认为合理的设计方法,牵引大家的视角从学习”语言”转移到学习”设计”上来。
2014-05-25 10:12:58 1583 1
我的C# Myqq程序源代码
2013-07-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人