摘要:
Python是一个脚本语言,被解释器解释执行。它的发布方式:
.py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库。(Python官方的各种安装包就是这样做的)
.pyc文件:有些公司或个人因为机密或者各种原因,不愿意源码被运行者看到,可以使用pyc文件发布,pyc文件是Python解释器可以识别的二进制码,故发布后也是跨平台的,需要使用者安装相应版本的Python和依赖库。
可执行文件:对于非码农用户或者一些小白用户,你让他装个Python同时还要折腾一堆依赖库,那简直是个灾难。对于此类用户,最简单的方式就是提供一个可执行文件,只需要把用法告诉Ta即可。比较麻烦的是需要针对不同平台需要打包不同的可执行文件(Windows,Linux,Mac,...)。
本文主要就是介绍最后一种方式,.py和.pyc都比较简单,Python本身就可以搞定。将Python脚本打包成可执行文件有多种方式,本文重点介绍PyInstaller,其它仅作比较和参考。 阅读全文
摘要:
翻开项目的代码,处处可见成百上千行的函数,函数体里面switch-case、if、for等交错在一起,一眼望不到头的感觉。有些变态的函数,长度可能得按公里计算了。神啊,请赐予我看下去的勇气吧!先不论逻辑如何,首先这长度直接就把人给吓到了。这些超大号函数是怎么来得呢? 阅读全文
摘要:
代码就是程序员的孩子,给“孩子”取个好听的名字很重要!
我们在项目开发中,接触到的变量、函数、类多数都是项目自己定义的,往往都是为了解决一些特定的领域的问题,引入了各种各样的概念,代码里面的名字就对应着问题领域或方案领域的这些概念,所以,对于一个命名良好,代码规范,设计简洁的系统,要想非常快的理解一个系统,最直接的方式就是RTFC(Read The Fucking Code)。对于一个不断演进的系统,代码的可读性至关重要,首要要解决的问题就是名字,变量名、函数名、类名等都需要仔细斟酌,认真对待,一个能够简洁,能够清晰表达概念和意图的名字就显得尤为重要。
阅读《代码整洁之道》这本书后发现其中说的内容在我们自己项目中比比皆是,随便拿出一块代码都可以当做反面教材给大家讲半天。长时间积累,导致代码发霉变质,取名也是毫无章法,信手拈来。阅读这样的代码,撞南墙的心都有了。下面结合自己项目中的问题和《代码整洁之道》谈谈关于命名相关的原则。 阅读全文
摘要:
项目随着时间的推移,开发人员换过了一波又一波,项目的代码被一些代码风格“狂野”的新同学们“强奸”了一遍又一遍。我们游戏服务器代码从09年时的50W行激增到现在的200W行,不得不赞叹:“还真是能写啊!”。代码混乱的程度,简直不忍直视:风格迥异的命名方式、得以米计算长度的函数、各种MagicNumber,让人摸不着头脑、缺少封装导致的大量重复代码、各种奇葩的缩进方式、拥挤在一堆,就不知道敲个空格或空行会浪费多少时间啊...。 阅读全文
摘要:
简介CCDirector负责创建和处理主窗口,和管理场景的的执行。同时负责:初始化OpenGL ES的context设置OpenGL像素格式(默认是RGB565)设置OpenGL缓冲深度(默认是0-bit)设置投影模式(默认是3D)CCDirector一般作为单件使用,标准用法是:[[CCDirector sharedDirector] methodName]。IOS下[CCDirector sharedDirector]返回的对象是CCDirectorDisplayLink。CCDirector继承自UIViewController。CDirector是真个引擎的核心,它控制整个运行过程。一 阅读全文
摘要:
cocos2d-iphone是一个基于Objective-C的2D游戏引擎。还有一个跨平台版的叫cocos2d-x,这个现在貌似挺火的。用cocos2d开发应用之前,必须要先了解下面几个概念:Scenes:场景Director:导向器Layers:层Sprites:精灵1.场景的概念场景(CCScene对象)在app的工作流中,是一个比较独立的元素。你也可以把他称作“屏幕”或“关卡”。你的应用可能有很多场景,但当前状态下只能有一个被激活的场景。例如,一个小游戏,它可能有下面的场景:介绍、菜单、第一关、过度场景1、关卡2、胜利过度场景、失败过度场景、最高分场景等。2.场景的实现cocos2d的C 阅读全文
摘要:
TeamViewer是一款通过Internet进行远程访问和远程支持的软件。也可以用于远程会议,同时还可以进行演示,互相交换文件。如果用于个人用途,是免费的。商业用途需要购买序列号。支持多个平台:windows、mac、iphone、ipad及其它。只要你在连接在Internet上的电脑上启动课Teamviewer,就可以在任何地方访问用各种操作系统来远程访问和控制该电脑。甚至拿起你的iphone/ipad都可以进行远程控制。TeamViewer提供了一个简洁易用的用户界面。你可以选择是要远程控制你的伙伴、还是与伙伴共享你自己的桌面或仅传输文件而不共享桌面。极具吸引力的伙伴列表使你能够实现即时 阅读全文
摘要:
作 者:david++发布时间:2012/12/27 15:00思维导图软件之前也推荐过,但都是基于PC的应用(Windows、Mac、Linux版),如FreeMind、Docear、XMind都是很不错的。最近发现一个不错的iOS应用iThoughts,它有iPhone和iPad版。可以导入FreeMind和XMind编辑的思维导图文件。可以导出为多种格式,如:pdf、png、mm(FreeMind支持)、mmap(MindManager支持)、xmind(XMind支持)、html等。嗯,这下方便许多了,思维导图可以随身携带了。虽然iPhone屏幕比较小,看起来不是那么方便,但用起来.. 阅读全文
摘要:
之前在李笑来《与时间做朋友》那本书里面知道了:要养成记录时间日志的习惯。通过过往的时间日志,发现自己的高效时间和工作、学习重心,同时也可以明确自己的时间流向,最重要的是为确定下一步行动做计划和决策提供了参考。故坚持使用Google Calendar做时间日志也有大半年时间了,做完一件事情的时候或者在每天工作结束的时候,就会在Calendar上记录在某一个时间段内做了些什么事情。Calendar本身是一个日程表,是计划未来的事情的,自己用他记录已经完成的事情。效果感觉还不错,扫一眼大概就知道自己干了些什么,只不过想要量化就比较麻烦(不是不可以,可以把日程数据导出来,自己写个程序来处理一下~~), 阅读全文
摘要:
作 者:david++发布时间:2012/11/01 14:51前一段时间,介绍过用Total Commander来完成文件夹同步的时候,一位朋友留言推荐了Beyond Compare——一个强大的超越了文件差异比较的工具。Beyond Compare对于提升工作效率,绝对是一个利器。单独的文件差异工具不胜枚举,如:WinMerge、WinDiff、Diffuse等,还有Unix/Linux下犀利的命令行工具:diff,一般源码的补丁就是靠它搞定的,先用diff差异一下,再patch一下就OK了;版本控制软件一般默认也都提供了自己的差异和合并软件(如:TortoiseSVN的TotoiseM. 阅读全文