11
FarYang<[email protected], faryang@faryang. PHP 技技技技 海海海海海 PHP 海海海海 技技技技 PHP 技技技技

Island arch

  • Upload
    faryang

  • View
    1.471

  • Download
    6

Embed Size (px)

Citation preview

Page 1: Island arch

FarYang<[email protected], [email protected]>PHP 技术交流

海岛架构和 PHP 编码规范

海岛架构 PHP 编码规范

Page 2: Island arch

一、海岛后端介绍 Linux + Nginx + MySQL + TokyoTyrant+

PHP5 + redis/memcached? 协议: AMF ——Action Message Format

海岛具体实现优点:容短暂宕机 PHP5(fastcgi/phpfpm) —— 基于 AMFPHP ,使用 Zend Framework 组件, gettext

国际化 MySQL

—— InnoDB, (todo: Master/Slave)

TokyoTyrant( 放弃 ) ——(todo:backup, Master/Slave)

Nginx

Page 3: Island arch

island

backend

后台

Zend_MVC

/Models

Paginator -> Google Charts,

后端

游戏交互

Controllers

Models

Zend_Db

Mysql

PostgreSQL

TT/Memcached

Redis?

VO

社区交互

管理

实现

配置

其他

国际化

Library

Amfphp

Zend

Platform

异常处理

AlertException

ApiException

TEST, CI, ???

工具集

Amfbrower

Nginx status

phpMyAdmin

phpinfo.php

frontend

一台服务器谈系统架构 ? => Web (程序设计)架构

Web

程序“

构”

amf

Page 4: Island arch

Entrances

Platform entry

Game entry

PH

P

代码目录结构

Page 5: Island arch

海岛后端 A. 社区交互部分 B. 游戏交互部分

/player_id => 拆分 会话,单点登录,异常处理, supersid ,在线管理员

( role=admin ) 国际化,在线 debug ,

C. 配置 config.xml <( 规范 ) config-dist.xml 4399.xml < 4399-dist.xml flash.xml < flash-dist.xml

Debug options , supersid( 本地测试 ) – Online debug 部署

bin :备份所有相关 shell 脚本 配置项( php.ini, my.cnf,nginx.conf,crontab,

init.d/service,sync ) D. 工具

Page 6: Island arch

WebService 简介

Flex ClientAmf Server

Persist

Amf protocol

Page 7: Island arch

MySQL/NoSQL 命名 gm_, vo_, stat_

字段小写,下划线 数据一致性,可追溯

外键, _delete

扩展 (<-models) 每个表 _ .player_id => 拆分 表级别水平拆分: gm_players (player_id, level, gold)=>

tt.players 非核心业务存储拆分( Memcached/Redis )

备份 Master/Slave

分析 重启 ? => 每秒 query 660->330 ,还会重现 ?

此 MySQL 服务器已经运行了 1 天 19 小时, 33 分 4 秒,启动时间为 2010 年 06 月 28 日 14:45 。

Stat=> 方案 => buildings,decorations… 转移到 Redis(MySQL 只做备份用 )?

Page 8: Island arch
Page 9: Island arch

二、 PHP 编码规范 目标 /Zend Framework Coding Standard

http://framework.zend.com/manual/zh/coding-standard.html 编码标准对任何开发项目都很重要,特别是很多开发者在同一项目上工

作。编码标准帮助确保代码的高质量、少 bug 和容易维护。 做法

智能提示 , 语法错误 ,error, warning 运行 - 正确 -( 再优化 ) 重构

低层次: 提炼方法 (100rows?) ,提炼接口(CronInterface) ,提炼超类(AbstractController) ,上移方法 (_getFarm) ,重命名 (rename)

高层次:多态替换条件语句 ( 策略 dp) ,委托替换继承 ?

Page 10: Island arch

CODE REVIEW?

1. 代码完整性2. 一致性3. 正确性4. 可修改性5. 可预测性6. 健壮

http://www.cnblogs.com/xugang/archive/2007/11/14/959125.html

SVN STANDARD, 单元测试, PM…?

Page 11: Island arch

?