自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Thinkry的Blog专栏

山川在眼 经纬归心

  • 博客(23)
  • 收藏
  • 关注

原创 技术管理从入门到提高:RRR技术管理框架

技术管理如何实践落地,如何从入门到提高?RRR技术管理框架结合角色、例行工作、管理认知,提出一套框架工具,帮你管理落地!

2017-01-04 16:35:13 2147

原创 主程的晋升攻略(9):数据层的演进(下)

为什么memcached的性能比mysql高?首要因素是memcached的数据都是位于内存中,mysql的数据可能是位于磁盘里。从IO速度来说,内存IO比磁盘IO会快几个数量级,memcached也就比mysql性能更高。架构和性能优化做到后面,会发现最终限制性能的是硬件瓶颈。例如nginx做静态webserver时,出口流量往往能达到网卡的最大值或出口带宽的最大值。mysql是个性能还

2015-02-12 10:57:09 1254 2

原创 主程的晋升攻略(8):数据层的演进(上)

我们用一个做手游的故事来聊聊数据层不断优化提升的演进过程。10:简单设计有一天,老板突然说做个山寨版的糖果传奇手游,你接到任务后,分析出游戏的交互频率不大,都是点查询,用mysql能简单搞定。对游戏来说,你很少有机会用orcale这种上流货,mysql是物美价廉的选择。建个表,设好主键和索引,你轻松搞定数据库设计,惬意的泡了杯茶边喝边敲代码。这里说的“点查询”,是指基于指定主键

2014-12-23 18:22:46 1429

原创 主程的晋升攻略(7):服务器模型谈

在上一篇《主程的晋升攻略(6):CGI和FastCGI》中,讲到Web服务器和CGI/FastCGI能动态输出内容,从而提供更强大的业务处理能力。Web服务器这种架构,我称之为Web模式,与之相对的是Svr模式。Web模式和Svr模式是互联网项目的后台最常见的两种模式。先介绍几个概念。同步通讯 vs 异步通讯同步通讯是指在一个连接中,一个请求的应答没回来前,不能发送下一个请求,整个通讯

2014-11-24 15:58:21 2045

原创 主程的晋升攻略(6):CGI和FastCGI

消息经过网络传输,到达了服务器端,最常见的服务器是Web服务器,做PHP的同学都知道FastCGI模式的PHP比普通PHP更高效,这篇就聊聊其中的原理。古老但常见的CGIWeb服务器能解析HTTP请求,返回静态资源(HTML页、图片等),但要输出动态内容,必须得PHP/C#/Ruby/Java/Python/C/C++这些外部程序来实现。早期有个技术叫CGI(Common Ga

2014-11-21 11:24:43 2490

原创 主程的晋升攻略(5):HTTP协议和二进制协议的对比

在上一篇《主程序员的练成:TCP、消息分包和协议设计》中谈了协议设计的一些话题,这里补充聊聊HTTP协议和二进制协议的对比。HTTP协议是一种文本协议,也是一种Name-Based协议,就从这两方面来说。文本协议 vs 二进制协议文本协议的特点:    便于人    易于阅读、理解、调试、构造    解析复杂、冗余多    需要考虑字符转义二进制协议的特

2014-11-21 11:15:41 4914

原创 主程的晋升攻略(4):TCP、消息分包和协议设计

在《主程的晋升攻略(3):IP、DNS和CDN》中,一次网络请求经过DNS解析知道了目的IP,现在就要发出网络包,这里我们说一说TCP的相关话题。TCP是一种流式协议讲网络编程的教科书一般都会对TCP的可靠传输,api用法做详细说明,但对于TCP是一种流式协议讲解的不多,但这背后隐藏着很重要的一个知识点。先做个名词定义方便交流,这里的“消息”是指应用层的一个完整的协议包。流式协议的特

2014-11-17 12:47:26 6587 1

原创 主程的晋升攻略(3):IP、DNS和CDN

有段时间我面试程序员时,喜欢问这个问题:局域网IP有哪些IP段?由这个问题再追问NAT(网络地址转换)。为什么不是每个设备一个公网IP?先说个关于QQ的小故事,最早开发QQ时,小马哥他们也没想到QQ会发展成中国互联网基础设施,就用4字节整形表示QQ号了。早期内部的一些项目有用int表示QQ号,能表示的最大值是2^31-1,即21亿多。在QQ号发放近20亿时,腾讯内部搞了个22亿QQ号测

2014-11-13 10:38:42 3827 2

原创 主程的晋升攻略(2):技术篇概要

技术是程序员安身立命的家伙,主程的技术不强,向下难以服众,向上有负重托。或许有人会问:技术深度上该挖多深才能做好主程?程序员至少有两个高阶成长方向:1、技术型专家非常热爱技术本身,往往会钻研得非常深,甚至可以不承担管理职责(你心目中的榜样是谁?);2、项目型专家着力于更好更快的实现项目,主导项目的团队组建、技术选型、架构设计、项目进度和质量管理等等,技术深度上不像技术型专家那么深,

2014-11-12 15:10:53 4714

原创 主程的晋升攻略(1):重要的引言

虽然是引言,但也很重要。程序员如何成长?这个话题百度有大约170万个相关结果,介绍了不少从菜鸟到老鸟的经验,但如何成长为主程序员(以下简称主程),网上的“帮助文档”不完善,也缺少实践指南。本系列文章主题就是说说主程如何练成。为什么用“练”这个字,因为主程的很多技能光知道怎么做远远不够,还需要在实践中不断“训练”才能运用好。只有不断训练才能从知到行,从“知道”成长为“做到”。团队在任

2014-11-12 10:24:50 5793

原创 Web后台开发的问题分析方法

 Web后台开发中遇到的问题五花八门,分析问题涉及到的方方面面挺多的,不容易下手。本文分享工作中遇到的一些解决问题的方法仅供参考。如果您有好方法和案例,欢迎分享。 1一些系统知识ulimit -a里的各种限制,特别是open files和core file size共享内存大小受/proc/sys/kernel/shmmax控制32位OS下默认写文件超过2G会cored

2010-03-03 17:48:00 1624 1

原创 高性能动态Web服务器的一些探讨

现在设计高性能Web网站时,一般都把动态和静态分开处理。静态资源(html/image/js/css/swf)一般使用nginx/lighttpd这类Web服务器,把静态资源缓存到内存或用sendfile,CPU和磁盘IO一般不是瓶颈,性能很高,直接用就行,本文不讨论。 至于动态部分,我们一般使用Apache,用C++编写CGI/FastCGI。FastCGI因为比CGI少了fork和初始

2010-03-02 13:18:00 1466 1

原创 统一完成端口Iocp和Epoll

 在《完成端口Iocp与Epoll的区别》中说了两者的重要区别是Iocp是动作完成后的通知,Epoll是告知动作可以做,类似select。 ENP中如何支持Linux和Windows,统一Iocp和Epoll呢?ENP开始编写的是Epoll部分,增加Iocp部分时发现继续采用Epoll的逻辑设计是行不通的。后来灵光突现,既然Iocp不能采用Epoll的逻辑设计,那么采用Iocp的逻辑设

2006-09-27 19:11:00 2739

原创 完成端口Iocp与Epoll的区别

Windows下高并发的高性能服务器一般会采用完成端口IOCP技术,Linux下则会采用Epoll。最近写enp时发现Iocp和Epoll的一个根本区别是Epoll是返回多个socket中有事件发生的socket,类似select,不过性能更高;Iocp则是在动作完成后返回通知(完成端口中的“完成”就是这个意思)。两者都能够把socket和一个4字节Key字段绑定在一起,Epoll中是

2006-09-27 19:09:00 7851 3

原创 服务器编程中的日志

 今天leader提了一份服务器编程的规范,其中一个是日志问题。一般的,日志级别分为Fatal、Error、Warning、Info、Debug和Trace,输出哪些级别的日志要能动态配置,但Fatal、Error和Info是必须要输出的,而且Debug/Trace日志要能反映程序运行的情况,为在线调试提供足够的信息,这就要求编码时就要考虑可能出错调试的情况:编码时多写点,出bug时就少些烦劳

2006-09-27 19:07:00 1821

原创 现代人如何减压——《心灵太极:现代工作革命》

《心灵太极:现代工作革命》柯云路著很多职场人士拼命工作累得疾病缠身,有人说他们“只会工作不会休息”。我们说他们不是“不会休息”,而是没有余力休息。这一切的根源,恰恰因为他们“不会工作”。所以今天我们要完成“工作革命”。心灵太极告诉我们如何做一个超常成功又健康自在的现代人。本书研究的是现代人在生存压力下如何自我调节状态,应对生存危机的问题。它可以说是面向所有认真而忙碌的现代人的。腾讯读书上有

2006-01-15 15:09:00 1552

原创 源代码管理软件CodeHelp发布2.0版本

软件主页:http://www.nulldo.com/codehelp下载地址:http://www.nulldo.com/codehelp/codehelp2.0.rar界面预览:主要功能★ CodeHelp是专门为我们程序员设计的一款源代码管理软件。它能方便的管理您在编程和学习中有用的源代码,减少经常到处查找资料的劳动,节省您在开发中的时间和精力。★ 知识管理越来越被大家所重视

2005-01-11 13:50:00 5042 6

原创 在Access中创建表及如何指定字段类型

在Access中创建表一般是用ADO来执行SQL语句来创建表。Access中的字段类型在SQL语句中是什么呢?在MSDN中有篇文章介绍得很详细:http://msdn.microsoft.com/office/understanding/access/codesamples/default.aspx?pull=/library/en-us/dnacc2k/html/acintsql.asp下面是我

2004-12-03 11:52:00 8079 1

原创 [VC]得到/设置DropDown ComboBox的文字

在使用DropDown类型的ComboBox时,如果使用者输入非ComboBox中列出的值,那么ComboBox的GetCurSel()的值是CB_ERR,相关的GetLBText()和GetLBTextLen()因为没有index也就无法工作。在DDX时,可以把ComboBox和CString对应起来,采用它的原理,就可以自己来得到或设置DropDown ComboBox的文字了。//得到Com

2004-10-08 10:54:00 2607

原创 用JScript实现MembersTable

在msdn online上讲解某个类的属性、方法、事件时,用到了一个MembersTable的表格。类似下图:笔者研究其中的代码,经过简化也实现了这种效果,提供类似如下的 TABLE,通过JScript,能够自动生成类似上图的MembersTable:        属性                            属性          说明                      

2004-09-06 00:58:00 1336

原创 生产者-消费者模型的解决思路——自建队列

笔者曾遇到这样的需求:某软件在运行中随时有可能向外发送短信,一方面发送短信的设备是个独占资源,另一方面有多个线程要发短信。按照“把不稳定因素限定在一个实体中”的原则,自然就用一个专门的线程来操作短信设备,它的任务是从消息队列中取出要发送的短信,通过短信设备发送出去。这是比较常见的生产者-消费者模型,即一个模块产生数据,另外模块取得数据并进行处理。如何实现互斥?如何让生产者和消费者都能够方便的工

2004-09-02 13:41:00 2622

原创 在Web上用style实现完美颜色渐变

上微软中国网站时发现页面上方的颜色渐变非常好,如图:查看其源代码,发现在内部用了类似如下的样式:style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr=#FFFFFF, endColorStr=#98B2E6, gradientType=1)"然后我写了个测试网页试了试,果然可以。代码如下: 

2004-09-01 22:37:00 2600 3

原创 CMSChart 示例

一、在工程中加入mschart菜单->Project->Add To Project->Components and Controls->Registered ActiveX Controls->    Microsoft Chart Control, version 6.0 (OLEDB)二、在CDemoView中加入CMSChart m_Chart三、创建及设置m_Chart3

2003-12-31 10:18:00 2265

空空如也

空空如也

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

TA关注的人

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