声明:本文内容源自腾讯游戏学院程序公开课。
游戏后台开发==游戏服务器开发
满足海量游戏用户的稳定和高质量的服务需求
延迟敏感
实时的高强度交互
业务逻辑复杂,内部耦合度高
变更频度高,幅度大
性能来自于
持续运行,意味着:稳定最重要;容错;日志和监控。
(1)服务稳定包含的因素
(2)如何才能做到稳定?
KISS==Keep It Simple&Stupid (一看就懂)
容错方面
(1)错误不可避免(逻辑自身bug、程序运行环境、外部影响)
(2)基本要求 - 错误范围可控
(3)基本应对 - 错误隔离和可快速恢复。
(1)本质上是应对海量服务的问题。
(2)出发点:两种不同的困难
(3)方法论 - 分治
大的问题分解成小问题,小问题继续分解,最终在合适的力度下得到解决。
服务分布化
内部复杂度应对:分层分块。
(4)方法论 - 灰度
什么是灰度:抛弃0/1思维;在不同的场景下提供不能的服务。
在不同范畴维度的应用:服务降级;灰度分布。
感悟:任何事情都不是非黑即白的,可以灰度发布,灰度服务(取中间值)。
开发者:服务器程序员。
开发伙伴:客户端程序员,游戏策划。
构建-测试:测试工程师。
部署维护:运维工程师。
(1)了解常见查找/排序算法的特点:利用算法来改善性能,胜于通过编译器选项、编程技巧;
(2)根据业务情况合理的选择算法
(1)对操作系统基础知识的了解
(2)对Linux操作系统的了解
(1)选择编程语言的几个因素
(2)C/C++技能要求
(1)Shell脚本
(2)程序内嵌脚本语言
(1)化繁为简的重要途径:区分“变化性”是其中的关键。
(2)设计原则 - SOLID
(3)设计模式:可以视为设计原则的应用。
想清楚:用到这些方法、方式,它的原因是什么?
(1)关系数据库
(2)NoSQL
(3)文件
(4)网络接入,协议
在拿到offer的那一刻,我不知道游戏服务器端是做什么的。在部门大佬的指导和介绍下,我打开了本课程开始学习。课程总共有16节,我争取学习完一节课程后就整理,总结,吸收好这节课的内容,然后发布到博客上,希望我能坚持到底!
如果有写的不好或需要补充的地方请及时提出来,我看到后会及时更新的。^_^