软件架构设计原则和模式(上):分层架构设计

绪论本文打算探讨一下软件架构设计的一些设计原则与经过实践验证的设计模式。 前端(MVC模式)和后端(接口层-业务层-助手层)的分层设计经过了几十年大量软件的证明。分层的思想,就是每一个层次专注做一件事情。每一个层次都为上层提供服务。每一个层次对于其上层来说,都是可以复用的。分层设计的软件,结构清晰,代码各司其职,能够最大限度地重用代码。本文还给出了一套笔者使用多年的数学建模和识别领域对象的方法。...
阅读(4760) 评论(2)

用Redis轻松实现秒杀系统

秒杀系统,是典型的短时大量突发访问类问题。对这类问题,有三种优化性能的思路: 写入内存而不是写入硬盘 异步处理而不是同步处理 分布式处理 用上这三招,不论秒杀时负载多大,都能轻松应对。更好的是,Redis能够满足上述三点。因此,用Redis就能轻松实现秒杀系统。 用我这个方案,无论是电商平台特价秒杀,12306火车票秒杀,都不是事:)...
阅读(19155) 评论(12)

Excel的数据类型转换方法

最近在用程序读写excel文件,碰到了一些excel单元格的数据类型的相关问题。总结了几个小技巧。对于用程序操作excel,或者需要用excel函数的朋友会有一些助益。...
阅读(2904) 评论(0)

本博客在2016/02/28被入侵了

本博客在2016/02/28被入侵了本博客在2016/02/28被入侵了。我不清楚黑客到底用我的帐号做了什么。无论做过什么,都与我无关。...
阅读(2147) 评论(0)

Git超级简明手册

Git超级简明手册,是一篇完整覆盖从git服务器搭建到使用的完整实战参考手册。一册在手,git无忧!...
阅读(3601) 评论(0)

最简单实现跨域的方法----使用nginx反向代理

跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。 现在随着RESTFUL的流行,很多应用提供http/https接口的API,通过xml/json格式对外提供服务,实现开放架构。 Web应用也在向单页面方向发展。 越来越多的web应用现在是这样的架构: 静态单个web页面 ajax调用 RESTFUL服务 我们本可以利用各个网站提供的API,做出很多精彩的Web应用。但浏览器执行javascript时的跨域限制,...
阅读(16090) 评论(2)

关系型数据库表结构的两个设计技巧

设计关系型数据库的表时,需要给表添加一个ID字段(自增字段,或者uuid字段)和一个version字段(数值类型)。ID字段作为物理主键,用于保证记录的不可重复性和用作外键关联。 version字段用于实现乐观锁,提供比悲观锁更好的性能。特别是对于UI显示并可能出现并发更新的数据,更需要使用乐观锁来提升数据库访问性能。 对于后台自动更新的任务,可以使用乐观锁实现。但需要在冲突发生时实现自动退让。也可以使用悲观锁在数据库上对事务进行排队来解决更新冲突问题。 对于不关...
阅读(4308) 评论(0)

编程能力层次模型

程序员的编程技能随着经验的积累,会逐步提高。我认为编程能力可以分为一些层次。 下面通过两个维度展开编程能力层次模型的讨论。 一个维度是编程技能层次,另一个维度是领域知识层次。 ...... 有些程序员可能把精力都花在提升编程技能上了,领域知识知之甚少,这其实在日常工作中也是极其有害的。有些需求可能早已经有了现成、开源免费的解决方案,或者只需要组合几个现有软件就可以快速搞定,而他们却不得不自己花大量时间去开发。另外,缺少领域知识,在程序出现非预期状况时,很难快速定位到问题的根源,很难解决bug。...
阅读(11416) 评论(10)

物理学和天文学的最新进展

科幻大片《星际穿越》正在热映中,作为一名经常看科普图书的青年,在这里给大家汇报一下近几年物理学和天文学的最新进展。由于本人是物理学和天文学小白,本文定有很多错误,请大家原谅。主要介绍宇宙年龄,宇宙半径,多重宇宙,宇宙最终命运等最新发现。...
阅读(5802) 评论(0)

修改、重新生成和安装srpm源码包

RHEL/CentOS/Fedora/Suse等Linux发行版都使用rpm包作为软件包格式。另外还有一个相关的格式srpm包(后缀是.src.rpm),它包含了源代码,可以用它重新生成rpm包。如果rpm包有问题,我们可以去http://ftp.redhat.com/redhat/linux/enterprise/6Server/en/os/SRPMS/下载对应的src.rpm包,然后把它解开后修改源代码,重新编译和生成rpm包,进行分发和安装。本文讲解如何修改、重新生成和安装srpm源码包。...
阅读(7971) 评论(0)

qemu虚拟机与外部网络的通信

一、基本概念为了使虚拟机能够与外界通信,Qemu需要为虚拟机提供网络设备。Qemu支持的常用网卡包括NE2000、rtl8139、pcnet32等。命令行上用-net nic为虚拟机创建虚拟机网卡。例如,qemu的命令行选项                            -net nic,model=pcnet表示为虚拟机添加一块pcnet型的以太网卡。如果省略model参数则qemu会默...
阅读(4585) 评论(1)

Git常用命令备忘

from  http://robbinfan.com/blog/34/git-common-commandGit配置git config --global user.name "robbin" git config --global user.email "fankai@gmail.com" git config --global color.ui true git config --glo...
阅读(4262) 评论(0)

QT4项目移植到QT5项目的方法

QT4项目在QT5中打开,常常会报告一些莫名奇妙的错误。QLabel,QApplication,QPushButton等常用的头文件都报告找不到。       到qt的安装目录中一看,却是存在的。这是怎么回事呢?       原来,QT5中很多常用的QT头文件都被移到core gui widgets 等模块中去了。在QT5中,.pro文件需要增加额外的一行:QT += core gui widge...
阅读(11929) 评论(7)

处理空格的就地字符串处理函数的实现

处理空格的就地字符串处理函数的实现...
阅读(4343) 评论(0)

把物理机转换为虚拟机的简单方法

把物理机转换为虚拟机简单方法...
阅读(13142) 评论(0)
239条 共16页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1694011次
    • 积分:17681
    • 等级:
    • 排名:第536名
    • 原创:188篇
    • 转载:47篇
    • 译文:4篇
    • 评论:1798条
    最新评论