- 博客(18)
- 问答 (3)
- 收藏
- 关注
原创 clojure实战--schema for clojure
Schema for Clojure Data ShapeDeclaration and Validation1.何为schemaschema是描述数据形式的一种clojure数据结构,可用于文件、校验函数和数据。下面举个例子让大家对schema有个总体认识.例:(ns schema-examples(:require [sche
2014-10-31 13:21:26 1851
转载 git 命令
一、 Git 命令初识在正式介绍Git命令之前,先介绍一下Git 的基本命令和操作,对Git命令有一个总体的认识示例:从Git 版本库的初始化,通常有两种方式:1)git clone:这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份例如:git clone git://github.com/someone/some_p
2014-10-30 12:57:14 624
转载 Vim命令合集
Vim命令合集zhuan命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的文件文件命令打开单个文件vim file同时打开多个文件vim file1 file2 f
2014-10-16 09:48:33 506
原创 第十七章--不常见的控制结构
第十七章--不常见的控制结构17.1--子程序中的多处返回程序可以通过return和exit这类控制结构,在任何需要的时候退出子程序。下面给出一些使用return语句的指导原则。(1)如果能增强可读性,那么就使用return。在某些子程序里,一旦知道了答案,就希望马上返回到调用方子程序。(2)用防卫子句(早返回或早退出)来简化复杂的错误处理。可避免代码缩进层次过深,并且遮蔽
2014-10-10 08:51:22 737
原创 第十六章--控制循环
第十六章--控制循环16.1--选择循环的种类1.在大多数语言中,你只能用到少数几种循环:(1)计数循环:执行次数一定。(2)连续求值的循环:预先并不知道将要执行多少次,它会在每次迭代时检查是否应该结束。(3)无限循环:一旦启动就一直执行下去。(4)迭代器循环:对容器类里面的每个元素执行一次操作。2.什么时候使用while循环(1)如果你不知道循
2014-10-10 08:50:02 866
原创 第十四章--组织直线型代码
第十四章--组织直线型代码14.1--必须有明确顺序的语句直线型代码:顺序执行的语句和语句块。前后语句存在依赖性。(1)设法组织代码,使依赖关系变得非常明显。(2)使子程序名能凸显依赖关系。(3)利用子程序参数明确显示依赖关系。(4)用注释对不清晰的依赖关系进行说明。(5)用断言或者错误处理代码来检查依赖关系。14.2--顺序无关的语句顺序的
2014-10-10 08:47:41 708
原创 第十五章--使用条件语句
第十五章--使用条件语句15.1--if语句1.简单的if-then语句在写if语句的时候,请遵循以下原则:(1)首先写正常代码路径,再处理不常见的情况;(2)确保等量的分支是正确的。如不要用“>” 代替“>=”,不要犯下off-by-one(偏差一)的错误。(3)把正常情况的处理放在if后面而不要放在else后面。(4)让if子句后面跟随一个有意义的语句。如避
2014-10-10 08:46:36 625
原创 第十三章--不常见的数据类型
第十三章--不常见的数据类型13.1--结构体使用结构体的理由:(1)用结构体来明确数据关系。结构体把相关联的数据聚集在一起。(2)用结构体简化对数据块的操作。如将一个结构体作为参数,而不是一堆的参数。(3)用结构体来简化参数列表。(4)用结构体来减少维护。因为结构体将相关数据组织在一起,所以改变结构体只需要对程序做很少的修改。13.2--指针1.用来理
2014-10-10 08:46:04 762
原创 第十章--使用变量的一般事项
第十章--使用变量的一般事项10.2--轻松掌握变量定义1. 隐式声明:对于任何一种语言来说,隐式声明都是最具危险性的特性之一。对于支持隐式声明的几条处理建议:(1)关掉编译器的隐式声明。(2)声明全部的变量。(3)遵循某种命名规则。(4)检查变量名。使用编译器或者第三方工具生成的交叉引用列表。10.3--变量初始化原则1. 不恰当的变量初始化所
2014-10-10 08:40:38 938
原创 第九章--伪代码编程过程
第九章--伪代码编程过程9.1 创建类和子程序的步骤概述1. 创建一个类的步骤(是个迭代过程):(1)创建类的总体设计。(2)创建类中得子程序。(3)复审并测试整个类。2. 创建子程序的步骤(是个迭代的过程):(1)设计子程序(2)检查设计(3)编写子程序代码(4)复审并测试代码9.2 伪代码1.下面是一些有效使用伪代码的指导原则
2014-10-10 08:38:29 2834
原创 第八章--防御式编程
第八章--防御式编程8.1--保护程序免遭非法输入数据的破坏“垃圾进、垃圾出”已经成为缺乏安全性的差劲程序的标志。通常有三种方法来处理进来垃圾的情况。(1)检查所有来源于外部的数据的值。 如取值范围、字符串长度、取值是否合乎用途等。(2)检查子程序所有输入参数的值。(3)决定如何处理错误的输入数据。8.2--断言断言:是指在开发
2014-10-10 08:36:49 1163
原创 第七章--高质量的子程序
第七章--高质量的子程序低质量的子程序举例:(1)命名差劲,不能反映语义。(2)无文档(3)程序布局风格不好(4)输入变量被改变(5)读写了全局数据(6)程序功能不单一,复杂。(7)没有注意防范错误数据。如没有除零检查等。(8)使用了神秘数据,如100,1,2这种让人摸不着头脑的数据。(9)传入的参数没有被使用(10)参数传递方式错误(11)参数太多
2014-10-10 08:33:00 1335
原创 第六章--可以工作的类
第六章--可以工作的类6.1--类的基础:抽象数据类型(ADTs)一、抽象数据类型ADTs1:抽象数据类型是指一些数据以及对这些数据进行的操作的集合。 不懂ADT的程序员开发出来的类只不过是把一些稍微有点关系的数据和子程序堆在一起!!!在理解ADT之后,才可以写出很容易实现,也易于维护的类来。2.使用ADT的益处 (1)可以隐藏
2014-10-10 08:29:34 1018
原创 第五章--软件构建中的设计
5.1-5.2--设计相关概念一、理想设计的特征设计范畴内的特征有:(1)最小复杂度:设计应该简单且易于理解。(2)易于维护(3)松散耦合:合理抽象、封装、信息隐藏,设计出相互关联尽可能少得类。(4)可扩展性(5)可重用性(6)高扇入:让大量的类使用某个给定的类(如工具类)。(7)低扇入:一个类里适量使用其他类。(8)可移植性(9)精简性(1
2014-10-09 16:21:31 705
原创 第三章-三思而后行:前期准备
第三章-三思而后行:前期准备一、需求1.为什么要有正式的需求(1)明确需求有助于确保用户(而非程序员)驾驭系统的功能。避免程序员在编程期自行决定需求。(2)重视需求有助于减少开始编程开发之后的系统变更情况。如果在编码阶段发现需求错误,你可能得改变设计,重新编码,重新测试。花费大量时间。2. 需求分析阶段主要考虑的问题 a功能需求: (1)系统的输入输出
2014-10-09 16:16:40 768
空空如也
CentOS 6.9安装无线网卡驱动kmod-r8192ce出错
2017-08-20
CentOS内核升级后uname和rpm -q kernel查看到的信息不一致
2017-08-20
Spring怎样向enum类型中注入值
2015-12-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人