自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

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

当我们在程序员的岗位做得出色,被任命为技术经理(组长、主程序)时,除了提拔的喜悦,还会有种面对新问题域的茫然感:以前只用做好自己的工作,现在需要负责团队的绩效以前只用和产品、测试沟通,现在明显发现要参加各种会以前有困难可以找到上级,现在发现自己就是最后的防线以前每周还时不时可以按时下班,现在发现每天都是最晚走。。。优秀员工 ≠ 优秀经理,这种转变不会自然发生,需要有指...

2017-01-04 16:38:09 172

本地存储密码的安全设计

有些应用需要把用户密码保存在本地,本方案设计了一种较为安全的密码本地存储的方案。[size=large][b]1 安全要求[/b][/size][size=medium]1.1 要实现的[/size][list=1][*]防止攻击者得到用户密码的明文[*]防止攻击者拿到自动登录token后,一直都可以登陆[*]即使两个用户的密码相同,服务器保存的密文密码也不一样[*...

2015-05-21 19:56:28 139

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

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

2015-02-12 11:02:03 101

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

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

2014-12-23 18:26:00 90

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

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

2014-11-26 13:05:37 81

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

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

2014-11-26 13:03:26 88

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

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

2014-11-26 12:57:02 177

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

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

2014-11-25 09:15:04 115

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

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

2014-11-25 09:08:03 87

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

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

2014-11-24 16:17:19 114

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

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

2014-11-24 16:13:48 208

android下的gdb调试

我在android上调试native程序时,参考了网上不少文章,这里结合我的经历做些注解 第一步、先列清楚我使用的环境手机:是台真实手机,不是模拟器,已经root了电脑:是windows7系统,网上不少是用linux来讲解的AndroidSDK:路径假定是%ANDROID_SDK%,那么建议把%ANDROID_SDK%\platform-tools目录加到PATH环境变量中,...

2014-07-12 09:55:23 177

原创 OpenFL引擎使用总结

我们使用OpenFl引擎开发了手机网游《超级足球》,已经在删档内测了,估计是国内第一款用OpenFL引擎做的手机网游了。本文就来总结下使用OpenFL引擎的心得。一、OpenFL的特色OpenFL是Open Flash Library的简写,从名字能看出它的目标是兼容Flash  API,实际也正是如此,具体来说有以下特色:    1、它实现了Flash as3绝大部分的API(不...

2014-06-20 16:52:02 1319

haxe中Int64和Date比较的坑

var a: Int64 = Int64.make(0xFFFFFFFF, 0x10); //0xFFFFFFFF00000010var b: Int64 = Int64.make(0xFFFFFFFF, 0x10);var c = b;trace(a == b); //result falsetrace(Int64.compare(a, b) == 0); //result...

2013-09-06 11:34:46 128

haxe中的内置Int和haxe.Int32

在做网络协议编解码时,发现haxe.io.BytesOutput里有writeInt31、writeInt32这2个方法。继续追查下去,发现了有内置Int和haxe.Int32这两种类型。不太明白为什么有两种,google后了解到,内置Int在neko平台下是31-bits,而haxe.Int32是各平台一致的32-bits。 由于我使用的target是flash/cpp/html5,...

2013-07-17 00:29:14 223

haxe中#if macro代表什么意思

在看haxe的UI库StablexUI时,UIBuilder.hx中出现了#if macro和#if !macro的条件编译。先按经验理解为“当haxe支持宏时”,但看代码逻辑又发现这个解释与代码不符,想了下猜测是“当haxe进行预编译(宏处理)阶段有效”。就像C++先做预编译(宏处理),再执行编译过程那样,#if macro的代码在haxe做预编译(宏处理)时生效,#if !macro的代码则...

2013-06-28 23:45:17 126

原创 haxe的cpp_target是如何加入内置调试功能的

在gamehaxe.com上huge介绍了hxcpp模块的内置调试功能,我有些好奇它是怎么实现的,就开始翻看相应的代码。 首先,从haxe源码看,haxe是用OCaml编译出来的(OCaml不太熟悉),而haxe的作用是先把hx源码转为对应的as3/cpp/java代码,再编译成目标程序。从haxe源码中的gencpp.ml里能看到许多HXCPP_DEBUGGER和HX_STACK_X...

2013-04-25 11:51:04 443

IDEA12 编译haXe项目出现CreateProcess error=267的解决

在使用IDEA 12编译时,出现haxe: process throw exception: Cannot run program "C:/Motion-Twin/Haxe/haxelib.exe" (in directory "E:\svn\haxe_project\samples\PiratePig\out\production\piratepig\debug"): CreateProces...

2013-04-18 09:08:03 2354

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

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

2010-03-03 17:51:08 80

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

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

2010-03-02 15:32:48 82

空空如也

空空如也

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

TA关注的人

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