美高梅娱乐4858.com手机网游开发指南-付费接口-收到付费通知后的数目传递

 

Agent`K将在本文中牵线:手机网游开发中之用户付费接口在收到付费通知后底数据传递。(本文自博客园底Agent`K,转载请注明)

程序员技术练级攻略

2011年7月18日 陈皓
见报评论
看评论
83,128 人阅读    

美高梅娱乐4858.com 1月光博客6月12日见报了《描绘为新手程序员的如出一辙封闭信》,翻译自《An
open letter to those who want to start
programming》,我之爱人(他当本站的id是Mailper)告诉自己,他想以酷壳上看看同一篇更有可操作性的文章。因为他呢是喜欢编程和技能的军火,于是,我让他拿他的片段学Python和Web编程的一部分星星总结一下。于是他于自身发来了一部分外的心得和更,我以拿他的感受做了不多的增改,并依据自家之经验多了“进阶”一节。立是同一首由新手和自己这个老家伙根据我们的经历就的篇章

本身之是朋友把当时首文章获得名叫Build Your
Programming Technical Skills,我实在不知晓用汉语怎么翻译,但自己当形容的进程中,自家觉着这大像一个打网游开任务升级之一个历程,所以取名叫“技术练级攻略”,题目来硌老,呵呵,这个题目纯粹是为好玩此地仅是当享受Mailper和自个人的就学经历。(注:省去了自身当一个初家早已上过的有的技艺(今天明明过时了),如:Delphi/Power
builder,也节约了我学过的片己觉着没意思的技巧Lotus
Notes/ActiveX/COM/ADO/ATL/.NET ……)

关于付费接口的证实,请参考
《手机网游开发指南-付费接口》。

前言

乃是不是认为好打该校毕业的时光就做了多少玩意儿一样的次第?走符合职场后即使没有什么更啊得将以下这些课外练习走相同全套(朋友之抱怨:学校课程总是打理论出发,作业项目还扣留无产生有啊实际作用,不如从工作被的要求出发)

建议:

  • 毫不胡乱买书,不要乱追新技巧新名词,基础的事物通过特别丰富时攒而且还会见在未来起码10年通用。
  • 遥想一下历史,看看历史及时线及技巧之上扬,你才能够亮明天会见是怎么。
  • 肯定要是下手,例子不管多简单,建议至少自己亲手敲一百分之百看看是不是知晓了里头之枝叶。
  • 早晚要学会思考,思考为什么而如此,而不是那样。还要举一反三地琢磨。

:你可能会十分想得到为什么下面的事物坏偏Unix/Linux,这是因自身觉得Windows下之编程可能会见当未来颇无前途,原因如下:

  • 当今底用户界面几乎让简单只东西主宰了,1)Web,2)移动装备iOS或Android。Windows的图形界面不吃红了。
  • 更多的柜当就此成本低性能大的Linux和各种开源技术来构架其系,Windows的资产不过强了。
  • 微软的事物变得极度抢了,很不持久,他们了是于玩弄程序员。详情参见《Windows编程革命史》

从而,我个人认为今后的趋势是前者是Web+移动,后端是Linux+开源。开发这边基本上没Windows什么事。

正好使付费接口中所说,支付提供商会在付费成功后,回调游戏厂商的通报地址,http形式的。而耍服务器程序、认证服务器程序都并非web应用程序。怎么在拍卖付费通知的web程序与娱乐程序中传递数据呢?

启蒙入门

1、 学习一宗脚本语言,例如Python/Ruby

足叫您摆脱对根语言的恐惧感,脚本语言可以让你速开发出能用得及的有些程序。实践类:

  • 拍卖文件文件,或者csv (关键词 python csv, python open, python sys)
    读一个本土文件,逐行处理(例如 word count,或者处理log)
  • 遍历本地文件系统 (sys, os,
    path),例如写一个序统计一个目下有文件大小并循各种标准排序并保留结果
  • 和数据库打交道 (python sqlite),写一个粗本子统计数据库里条目数量
  • 学会用各种print之类简单粗暴的方法进行调剂
  • 学会用Google (phrase, domain, use reader to follow tech blogs)

干什么而效仿脚本语言,因为他俩实际是极其好了,很多下咱们得写点多少器或脚本来帮忙咱缓解问题,你尽管会见发现正规的编程语言最难用了。

2、 用熟一种植程序员的编辑器(不是IDE) 和有些为主工具

  • Vim / Emacs / Notepad++,学会如何安排代码补全,外观,外部命令等。
  • Source Insight (或 ctag)

采用这些东西不是为Cool,而是这些编辑器在翻看、修改代码/配置文章/日志会再快还有效率。

3、 熟悉Unix/Linux Shell和广阔的命令行

  • 设您用windows,至少学会用虚拟机里的linux, vmware
    player是免费之,装个Ubuntu吧
  • 早晚要是掉用少用图形界面。
  • 学会以man来查看帮助
  • 文件系统结构与基本操作
    ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
  • 学会运用部分文件操作命令 sed/awk/grep/tail/less/more …
  • 学会用有管制命令 ps/top/lsof/netstat/kill/tcpdump/iptables/dd…
  • 刺探/etc目录下之各种配置文章,学会查看/var/log下的系统日志,以及/proc下之网运作信息
  • 打听正则表达式,使用正则表达式来查找文件。

对程序员来说Unix/Linux比Windows简单多了。(参看我四年前CSDN的博文《其实Unix很简单》)学会运用Unix/Linux你会意识图形界面在一些时候其实是无限难用了,相当地相当地下降工作效率。

4、 学习Web基础(HTML/CSS/JS) + 服务器端技术 (LAMP)

前程必定是Web的社会风气,学习WEB基础之顶尖网站是W3School。

  • 习HTML基本语法
  • 上CSS如何选中HTML元素并使有的为主样式(关键词:box model)
  • 学会用  Firefox + Firebug 或 chrome
    查看你当那个炫的网页结构,并动态修改。
  • 上学应用Javascript操纵HTML元件。理解DOM和动态网页(http://oreilly.com/catalog/9780596527402)
    网上有免费之段,足够用了。或参照
    DOM 。
  • 学会用  Firefox + Firebug 或 chrome
    调试Javascript代码(设置断点,查看变量,性能,控制台等)
  • 每当同样宝机器及部署Apache或
    Nginx
  • 学习PHP,让后台PHP和前台HTML进行数据交互,对服务器相应浏览器请求形成开始认识。实现一个表单提交和反显的功用。
  • 把PHP连接本地或远程数据库 MySQL(MySQL 和 SQL现学现用够了)
  • 同了一个名校的大网编程课程(例如:http://www.stanford.edu/~ouster/cgi-bin/cs142-fall10/index.php )
    不要以为用多于一学期时间,大学生是全职一学期选3-5门课,你业余时间一定可以和达到
  • 上学一个javascript库(例如jQuery 或 ExtJS)+  Ajax
    (异步读入一个劳动器端图片或数据库内容)+JSON数据格式。
  • HTTP: The Definitive Guide
    读了前4段而便明白您每日上网用浏览器的时光发的政工了(proxy,
    gateway, browsers)
  • 召开只稍网站(例如:一个有点之留言板,支持用户登录,Cookie/Session,增、删、改、查,上污染图片附件,分页显示)
  • 购入只域名,租个空中,做个温馨之网站。

Agent`K
建议读者以看后的情前面先自己想同一相思,以避免思维中干扰、限制。

进阶加深

1、 C语言与操作系统调用

  • 重学C语言,理解指针和内存模型,用C语言实现转各种经典的算法和数据结构。推荐《电脑程序设计方》、《算法导论》和《编程珠玑》。
  • 学习(麻省理工免费课程)计算机是与编程导论
  • 学习(麻省理工免费课程)C语言内存管理
  • 攻Unix/Linux系统调用(Unix高级环境编程),,了解系统层面的东西。
    • 为此这些体系知识操作一下文件系统,用户(实现一个足以拷贝目录树的微序)
    • 因此fork/wait/waitpid写一个几近进程的次第,用pthread写一个大多线程带同步还是互斥的顺序。多进程多进程购票的次。
    • 用signal/kill/raise/alarm/pause/sigprocmask实现一个差不多进程中的信号量通信的次序。
    • 学会使用gcc和gdb来编程和调试程序(参看我之《就此gdb调试程序》)
    • 学会用makefile来编译程序。(参看我之《及自己伙写makefile》)
    • IPC和Socket的事物好停放高级中来实施。
  • 学习Windows SDK编程(Windows
    程序设计 ,MFC程序设计)

    • 描绘一个窗口,了解WinMain/WinProcedure,以及Windows的信机制。
    • 形容一些主次来操作Windows
      SDK中的资源文件或者各种图片控件,以及作图的编程。
    • 念怎么样运用MSDN查看相关的SDK函数,各种WM_消息及有例程。
    • 立即本开被有成百上千例程,在实践中请不要照抄,试着祥和写一个投机的例程。
    • 并非太多于精通这些事物,因为GUI正在被Web取代,主要是了解一下Windows
      图形界面的编程。@virushuo 说:“ 我认为GUI确实无那么吃香了,但尽量掌握GUI工作规律是挺要紧之。包括活动装备支出,如果没基础知识仍然十分困难。或者说走装备开支要明白GUI工作,或者以win那边学,或者以mac/iOS上学”。

2、学习Java

  • Java 的攻要是看藏的Core Java 《Java
    核心技术编程》和《Java编程思想》(有半点窝,我单独链了第一卷,足够了,因为Java的图形界面了解就得了)
  • 修JDK,学会查阅Java API
    Doc http://download.oracle.com/javase/6/docs/api/
  • 问询一下Java这种虚拟机语言及C和Python语言在编译和实践及之差距。从C、Java、Python思考一下“跨平台”这种技术。
  • 学会以IDE Eclipse,使用Eclipse 编译,调试和支付Java程序。
  • 修建一个Tomcat的网站,尝试一下JSP/Servlet/JDBC/MySQL的Web开发。把前所说的老PHP的略类试着用JSP和Servlet实现转。

3、Web的安康暨架构

  • 上学HTML5,网上发很多浩大课,以前酷壳呢介绍过许多,我当此处虽未列支了。
  • 习Web开发的安全题材(参考初浪微博于攻击的此事,以及Ruby的马上篇稿子)
  • 学学HTTP
    Server的rewrite机制,Nginx的反向代理体制,fast-cgi(如:PHP-FPM)
  • 学习Web的静态页面缓存技术。
  • 上学Web的异步工作流处理,数据Cache,数据分区,负载均衡,水平扩展的构架。
  • 履行任务:
    • 以HTML5的canvas 制作有Web动画。
    • 品当头里开发了之充分Web应用被展开SQL注入,JS注入,以及XSS攻击。
    • 把前开发过的要命Web应用改化构造在Nginx + PHP-FPM +
      静态页面缓存的网站

4、学习关系项目数据库

  • 乃可装MSSQLServer或MySQL来学数据库。
  • 学读本里数据库设计的那么几独范式,1NF,2NF,3NF,……
  • 攻数据库的存过,触发器,视图,建索引,游标等。
  • 学学SQL语句,明白表连接的各种概念(参看《SQL
     Join的图示》)
  • 读书怎样优化数据库查询(参看《MySQL的优化》)
  • 推行任务:设计一个论坛的数据库,至少满足3NF,使用SQL语句询问本周,本月的行篇章,评论顶多的篇章,最活跃用户。

5、一些开发工具

  • 学会使用SVN或Git来管理程序版本。
  • 学会用JUnit来针对Java进行单元测试。
  • 上学C语言和Java语言的coding standard 或 coding
    guideline。(我N年前写了同样首关C语言非常简单的篇章——《编程修养》,这样的东西你可上网查一下,一不行堆)。
  • 引进阅读《代码大全》《重构》《代码整洁的道》

哼吧,假得你既想煞了。

高级深入

1、C++ / Java 和面向对象

自我个人认为学好C++,Java也尽管是举手之劳。但是C++的念曲线相当的突兀。不过,我看C++是不过要效法好的语言了。参看两篇趣文“C++学习信心图”
和“21天学好C++”

  • 学习(麻省理工免费课程)C++面向对象编程
  • 读我的
    “什么样学好C++”中所推荐的那些书至少少周以上(如果你针对C++的知道能够一针见血到像我所描绘的《C++虚函数表解析》或是《C++对象内存存局(上)(下)》,或是《C/C++返回内部静态成员的陷阱》那便那个对了)
  • 接下来反思为什么C++要干成这么,Java则未是?你早晚要是学会对比C++和Java的不同。比如,Java中之初始化,垃圾回收,接口,异常,虚函数,等等。
  • 履任务:
    • 故此C++实现一个BigInt,支持128号之整形的加减乘除的操作。
    • 从而C++封装一个数据结构的容量,比如hash table。
    • 用C++封装并贯彻一个智能指针(一定要下模板)。
  • 《设计模式》必用一读,两尽以上,思考一下,这23独模式之应用场景。主要是简单碰:1)钟爱组合要不是连续,2)钟爱接口而非是兑现。(也推荐《通俗设计模式》)
  • 执行任务:
    • 行使工厂模式实现一个舅存池。
    • 运政策模式制做一个看似那好管公文文件进行不当对同步,右对共同和遭受针对共同。
    • 动命令模式实现一个发令执行计算器,并支持undo和redo。
    • 使用修饰模式实现一个酒家的房价格订价策略——旺季,服务,VIP、旅行团、等影响价格之素。
  • 读书STL的用法及其计划概念  –
    容器,算法,迭代器,函数子。如果可能,请读一下夫源码。
  • 实行任务:品味以面向对象、STL,设计模式、和WindowsSDK图形编程的各种技术
    • 做一个贪吃蛇或是俄罗斯四方的娱乐。支持不同之级别与难度。
    • 做一个文本浏览器,可以浏览目录下的文书,并可以针对两样之文本发出不同的操作,文本文件可以打开编辑,执行文书则执行的,mp3还是avi文件可以播放,图片文件可以显得图片。
  • 上C++的一对类库的规划,如:
    MFC(看看候捷先生的《浅MFC》)
    ,Boost, ACE,  CPPUnit,STL
    (STL可能会见无限为难了,但是如果你能够了解中的设计模式和设计那就是最好好了,如果你能够深深到本人形容的《STL
    string类的勾时拷贝技术》那就是够呛不利了,ACE需要特别强于的系知识,参见后面的“加强针对系统的了解”)
  • Java是真的的面向对象的语言,Java的设计模式多得不可知重多,也是为此来学习面向对象的设计模式的超级语言了(参看Java中之设计模式)。
  • 推介阅读《Effective Java》
    and 《Java解惑》
  • 学学Java的框架,Java的框架为是大半,如Spring, Hibernate,Struts
    等等,主要是读书Java的规划,如IoC等。
  • Java的技术吗是腐朽多,重点学习J2EE架构和JMS, RMI,
    等消息传递和长距离调用的技艺。
  • 修应用Java举行Web Service
    (法定教程在此地)
  • 实行任务: 尝试当Spring或Hibernate框架下构建一个发出网络的Web
    Service的远距离调用程序,并得以以少个Service中经JMS传递消息。

C++和Java都不是能于短缺日内能够学好的,C++玩是的不行,Java玩的是广,我建议双方选一个。我个人的习经历是:

  • 追究C++(我深究C/C++了十来年了)
  • 学习Java的各种设计模式。

2、加强系统了解

要阅读下面的几按开:

  • 《Unix编程艺术》了解Unix系统领域受到的宏图与出哲学、思想文化系统、原则及经验。你早晚会时有发生一样栽醍醐灌顶的感到。
  • 《Unix网络编程卷1,套接字》这是千篇一律遵照看罢而便掌握网络编程的开。重要注意TCP、UDP,以及多路复用的体系调用select/poll/epoll的别。
  • 《TCP/IP详解 卷1:协议》-
    这是同一按看罢后而便可以当网络黑客的开。了解因太网的的运转规律,了解TCP/IP的说道,运作规律同哪TCP的调优。
  • 行任务:
    • 知晓什么是死(同步IO),非阻塞(异步IO),多路复用(select,
      poll, epoll)的IO技术。
    • 形容一个大网聊天程序,有拉服务器和多独扯客户端(服务端用UDP对有要富有的的谈天客户端上Multicast或Broadcast)。
    • 形容一个简短的HTTP服务器。
  • 《Unix网络编程卷2,进程中通信》信号量,管道,共享内存,消息等各种IPC……
    这些技能类有些老掉牙了,不过还是值得询问。
  • 履任务:
    • 首要实施各种IPC进程序通信的方式。
    • 品尝写一个管道程序,父子进程经过管道交换数据。
    • 尝试写一个共享内存的先后,两个经过经过共享内存交换一个C的结构体数组。
  • 学习《Windows核心编程》一写。把CreateProcess,Windows线程、线程调度、线程同步(Event,
     信号量,互斥量)、异步I/O,内存管理,DLL,这几特别块来通。
  • 实行任务:应用CreateProcess启动一个记事本或IE,并监督该次的运作。把前面写了之良简单的HTTP服务用线程池实现转。写一个DLL的钩子程序监控指定窗口的关事件,或是记录有窗口的按键。
  • 产生了大半线程、多进程通信,TCP/IP,套接字,C++和设计模式的核心,你可以研究一下ACE了。使用ACE重写上述的拉程序及HTTP服务器(带线程池)
  • 实践任务:经上述之保有知识,尝试
    • 描绘一个服务端给客户端传大文件,要求管100M的带宽用到80%上述。(注意,磁盘I/O和网络I/O可能会见特别有题目,想同一相思怎么化解,另外,请留心网络传输最可怜单元MTU)
    • 打探BT下载的行事规律,用多进程的道模拟BT下载的规律。

3、系统架构

  • 负载均衡。HASH式的,纯动态式的。(可以到Google学术里查抄一些有关负载均衡的文章读读)
  • 大多重叠分布式系统 –
    客户端服务结点层、计算结点层、数据cache层,数据层。J2EE是藏的多重合结构。
  • CDN系统 –
    就近访问,内容边缘化。
  • P2P式系统,研究一下BT和电驴的算法。比如:DHT算法。
  • 服务器备份,双机备份系统(Live-Standby和Live-Live系统),两雅机器如何通过心跳监测对方?集群主结点备份。
  • 虚拟化技术,使用这技能,可以将操作系统当应用程序一下切换或重新配置和配备。
  • 学习Thrift,二进制的胜性能的报道中间件,支持数据(对象)序列化和多种类型的RPC服务。
  • 学习Hadoop。Hadoop框架中不过基本的宏图虽是:MapReduce和HDFS。MapReduce的合计是由Google的相同首论文所提及要被传出的,简单的同句子话讲MapReduce就是“任务的说明同结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop
    Distributed File System)的缩写,为分布式计算存储提供了底部支持。
  • 了解NoSQL数据库(有人说可能是一个紧接炒作之技术),不过为超大规模以及高并发的纯动态型网站日渐变成主流,而SNS类网站于多少存取过程中具备实时性等刚性要求,这让目前NoSQL数据库慢慢成为了众人所关心的关节,并大有成为取代关系项目数据库而变成未来主流数据存储模式的可行性。当前NoSQL数据库很多,大部分还是开源的,其中较出名的有:MemcacheDB、Redis、Tokyo
    Cabinet(升级版本也Kyoto
    Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。

描绘了那基本上,回顾一下,觉得自己一定之发出成就感。希望大家不要吓着,我要好立即十来年呢于不停地读书,今天自哉当读书中,人生本来就是一个频频学习与练级的过程。然,一定生漏的,也来邪的,还期待大家补充和更正。(我会根据大家之上报随时更新此文)欢迎大家通过自身之微博(@左耳朵耗子)和twitter(@haoel)和自己交流。

—– 更新  2011/07/19 —–

1)有对象奇怪为什么我以马上首文章开始说了web+移动,却从不于末端提到iOS/Android的前端开发。因为我心头发生同样种感觉,移动装备及之UI最终为会见被Javascript取代。大家可据此iPhone或Android看看google+,你就算见面掌握了。

2)有朋友说自这里的事物最好多了,不克为求学而读书,我挺同意。我当文章的前头吧说了要琢磨。另外,千万不要看自己说的这些事物是片初的艺,这卖攻略里95%之上的净是基础。而且都是锤炼的根基技术。即凡是得叫您一样通百通的技艺,也是好为你找到同样卖不错工作之技术。

3)有情侣说学这些事物学了都40了,还无苟考虑怎么去挣钱。我思报大家,一是本人今年还不曾40春,二凡学无止境啊,三是自己未看赚钱有多麻烦,难之是怎么给你值那么基本上钱?无论是打工或创业,是呀事物吃您自己之价值,让你公司的价再次贵?别的地方我莫敢说,对于互联网或者IT公司来说,技术实力绝对是内有。

4)有朋友说技术还是工具,不应这么着迷这句话没错,有时候我们要再多的凡抬起头来看看技术外的作业,或者是说俺们在发作技术之时段不失琢磨为什么会出之技术,为什么未是别的,问题未在技术,问题在于我们格外读书,读死书,成了技术的书呆子。

5)
对于NoSQL,最近可比火,但自己对那有些保守,所以,我只是说了解就好。对于Hadoop,我道那个以分布式系统上产生巨大的潜力,所以要上。 对于涉嫌项目数据库,的确是生要紧之物,这点是自我的疏忽,在原文里补充。

(全文完,转载时恳求注明作者及出处)

 

解决方案如下(出现顺序和引进程度无关):

  1. 在证实程序中坐web服务(比如java的顺序可以镶嵌入jetty),这样即便无存数量传递的题目了。
  2. web程序自行开展逻辑处理,完毕后通知认证程序(比较常用的法是为此socket连接发送通知)。
  3. web程序不开展任何逻辑处理,直接拿post过来的数码或者get的询问字符串发送给认证程序。
  4. web程序将post过来的多寡或者get的查询字符串存入数据库,认证程序定时进行查询并进行拍卖。

比有震慑的不利因素是,支付商可能会见要求回调地址必须是于80端口。如果既出或将来会发出web应用得配置,显然,你莫多少选择的余地了:方案1非可能;方案2以及3需要web程序能够便宜的进展socket连接才行。

假若你想到了外解决方案,欢迎分享哟。

(本文来源博客园之Agent`K,转载请注明)

发表评论

电子邮件地址不会被公开。 必填项已用*标注