软件构建(五)——各种数据类型的使用原则

几乎所有的常见编程语言,都包含了整数、浮点数、字符串、布尔等等数据类型,而通过基本的数据类型又可以复合出各种数据结构。本文总结了常用的数据类型(整数、浮点数、字符、字符串、布尔、枚举、数组等等)以及一些不常见的数据类型(结构体、指针等等)的使用原则。最后总结了关于全局数据的一些风险和使用原则。

软件构建(三)——高质量的类和子程序

在计算时代的早期,程序员基于语句思考编程问题。到了20世纪七八十年代,程序员开始基于子程序去思考编程。进入21世纪,程序员以类为基础思考编程问题。类是由一组数据和子程序构成的集合,这些数据和子程序共同拥有一组内聚的、明确定义的职责。由此可见类和子程序在现代编程中的地位。本文将就如何创建高质量的类和子程序提供一些建议。

软件构建(二)——架构与设计

软件架构(software architecture)是软件设计的高层部分,是用于支撑更细节的设计的框架。本文关注的并不是如何开发一个软件的架构,而是设计一个架构时应该关注的部分。此外,设计就是把需求分析和编码调试连在一起的活动,好的高层设计能提供一个可以稳妥容纳多个较低层次设计的结构,其对于小型项目非常有用,对大型项目更是不可或缺。因此,本文将总结软件构建中设计的基础概念及基本方法。

软件构建(一)——软件构建基础

开发计算机软件是一个非常复杂的过程,而软件“构建”是指建设过程中“动手”的部分,其中不仅仅包括“写代码”,还包含了计划、设计、测试、集成等等其他工作。本文首先总结软件构建的含义以及其主要活动;接着列举了一个比较合理的隐喻——建造房子——来理解软件开发;最后阐述了软件构建的前期准备工作的重要性,阐述了定义问题和分析需求的重要性,以及应该准备哪些事情。

新版Hexo主题Raytaylorism v2发布

时隔两年多,我自制的Hexo主题Raytaylorism(Github地址)终于喜迎v2版本的发布。这个项目可以说是我在学生时代Web前端领域中的收官之作,因此在本次升级主题的过程中,一切都尽量做到精细。例如所有的页面都经过重新设计,采用清新的的响应式的Material Design风格,加入了个性化的“读书”“关于”页面,以及皮肤自定义、分类目录、正文滚动目录、打赏等等特色功能,并且该主题支持最新的Hexo 3.1版本。由于主题的功能较为复杂,所有的安装说明和配置事项都写在了Github项目的README中,需要使用主题的同学请认真仔细阅读README哦,特别是启用那一节的说明很重要!很重要!很重要!一定要照做否则你会发现hexo启动不起来或最终效果和截图上的不一样。 使用过程中有任何问题欢迎给我开issue。下面正文将介绍主题在Github上没有详细解释但又非常有特色的功能。

2015年秋季学期总结

好久没有写学期总结了。2015年秋季学期是我研究生阶段的倒数第二个学期,时间线上主要由实习、找工作、学(zhuang)习(bi)和写论文组成。由于这学期找完工作之后导师没有给我安排什么实验室的工作,所以有比较大段的自由时间可以支配。在外人看来我好像这学期过得很悠闲,实际上是在自己的合理安排下过得非常充实,现在写篇简短的文章总结一下。

使用Markdown来写毕业论文

最近很长一段时间没有写博客,主要是因为“学”的时间减少了,但私底下“做”的时间增加了。作为研三的老人,马上就要进入写毕业论文的阶段了,所以最近一直都在准备论文的事情,所所以博客的更新也会稍微缓一缓,估计到放假回家就可以恢复正常了。

说到准备论文,最近一直都在研究如何使用Markdown来写毕业论文,而本文就是研究成果hust-graduation-thesis-pandoc的展示。项目现已放在Github上,欢迎各位使用和反馈。

网络游戏的基本架构

游戏的最大价值就是可玩性,为了保持游戏的可玩性,游戏必须具备能够“顺畅进行”的特性,而网游还需要能够“快速响应”。本文前半部分先讨论如何维持网络游戏的可玩性,后半部分说明了网络游戏常用的物理架构(C/S、P2P)和逻辑架构(MO、MMO)。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器