跑通全流程

最近持续关注了一下github 周边的服务,不断的摸索,填坑,今天总算是能够跑个简单的流程。

现在还没有什么服务,只是简单的展示了一个service API.

但已经能够串联起来github + travis-CI + Azure

另外博客也用Travis 做了自动部署功能,用起来能简单一些,
只需要提交到github上面就可以了

这个服务器会监听吗

好像修改文件是有问题的,再测试一次

MongoDB

MongoDB以BSON格式的文档(Documents)形式存储。Databases中包含集合(Collections),集合(Collections)中存储文档(Documents)。

BSON是一个二进制形式的JSON文档,它比JSON包含更多的数据类型。对于BSON规格,可参见bsonspec.org,也可参考BSON类型。

Databases

在MongoDB中,databases保存文档(Documents)的集合(Collections)。

在Mongo Shell中,通过使用use 命令来选中database,就像下面的例子:

use myDB
创建Database

如果database不存在,MongoDB会在第一次为database存储数据的时候创建。因此,你可以直接切换到一个不存在的数据库,然后执行下面的语句:

use myNewDB

db.myNewCollection1.insert( { x: 1 } )
insert()操作会创建名为myNewDB的database和名为myNewCollection1的collection(如果他们不存在的话)。

Collections

MongoDB在collections中存储文档(documents)。Collections类似于关系型数据库中的表(tables)。

创建Collection

如果collection不存在,MongoDB会在第一次为collection存储数据的时候创建。

db.myNewCollection2.insert( { x: 1 } )
db.myNewCollection3.createIndex( { y: 1 } )
无论是insert()还是createIndex()操作,都会创建它们各自指定的收集,如果他们不存在的话。

显式创建

MongoDB提供db.createCollection()方法来显式创建一个collection,同时还能设置各种选项,例如:设置最大尺寸和文档校验规则。如果你没有指定这些选项,那么你就不需要显式创建collection,因为MongoDB会在你创建第一个数据的时候自动创建collection。

若要修改这些collection选择,可查看collMod。

Documents校验

3.2.x版本新增内容。

默认情况下,collection不要求文档有相同的结构;例如,在一个collection的文档不必具有相同的fields,对于单个field在一个collection中的不同文档中可以是不同的数据类型。

从MongoDB 3.2开始,你可以在对collection进行update和insert操作的时候执行文档(documents)校验规则。具体可参见文档验证的详细信息。

Documents

Document结构

MongoDB的文件是由field和value对的结构组成,例如下面这样的结构:

{
field1: value1,
field2: value2,
field3: value3,

fieldN: valueN
}
value值可以是任何BSON数据类型,包括:其他document,数字,和document数组。

例如下面的document,包含各种不同类型的值:

var mydoc = {
_id: ObjectId(“5099803df3f4948bd2f98391”),
name: {
first: “Alan”, last: “Turing”
},
birth: new Date(‘Jun 23, 1912’),
death: new Date(‘Jun 07, 1954’),
contribs: [ “Turing machine”, “Turing test”, “Turingery” ],
views : NumberLong(1250000)
}
上面例子中的各fields有下列数据类型:

_id:ObjectId类型
name:一个嵌入的document,包含first和last字段
birth和death:Date类型
contribs:字符串数组
views:NumberLong类型
Field名

Field名是一个字符串。

Documents中的filed名有下列限制:

_id被保留用于主键;其值必须是集合中唯一的、不可变的、并且可以是数组以外的任何数据类型
不能以美元符号$开头
不能包含点字符.
不能包含空字符
Field Value限制

对于索引的collections,索引字段中的值有最大长度限制。详情请参见Maximum Index Key Length。

圆点符号

MongoDB中使用圆点符号.访问数组中的元素,也可以访问嵌入式Documents的fields。

Arrays数组

通过圆点符号.来链接Arrays数组名字和从0开始的数字位置,来定位和访问一个元素数组:

.
举例:对于下面的document:

{

contribs: [ “Turing machine”, “Turing test”, “Turingery” ],

}
要访问contribs数组中的第三个元素,可以这样访问:

“contribs.2”
嵌入式Documents

通过圆点符号.来链接嵌入式document的名字和field名,来定位和访问嵌入式document:

.
举例:对于下面的document:

{

name: { first: “Alan”, last: “Turing” },

}
要访问name中的last字段,可以这样使用:

“name.last”
Documents限制

Documents有下面这些属性和限制:

Document大小限制

每个BSON文档的最大尺寸为16兆字节。

最大文档大小有助于确保一个单个文档不会使用过量的内存,或通信过程中过大的带宽占用。

若要存储超过最大尺寸的文档,MongoDB提供了GridFS API。可以看mongofiles和更多有关GridFS的文档

Document Field顺序

MongoDB中field的顺序默认是按照写操作的顺序来保存的,除了下面几种情况:

_id总是document的第一个field
可能会导致文档中的字段的重新排序的更新,包括字段名重命名。
在2.6版本起,MongoDB开始积极地尝试保留document中field的顺序。

_id字段

_id字段有以下行为和限制:

默认情况下,MongoDB会在创建collection时创建一个_id字段的唯一索引
id字段总是documents中的第一个字段。如果服务器接收到一个docuement,它的第一个字段不是id,那么服务器会将_id字段移在开头
_id字段可以是除了array数组之外的任何BSON数据格式
以下是存储_id值的常用选项:

使用ObjectId
最好使用自然的唯一标识符,可以节省空间并避免额外的索引
生成一个自动递增的数字。请参阅创建一个自动递增序列字段
在您的应用程序代码中生成UUID。为了更高效的在collection和_id索引中存储UUID值,可以用BSON的BinData类型存储UUID。

  • 大部分MongoDB驱动客户端会包含_id字段,并且在发送insert操作的时候生成一个ObjectId。但是如果客户端发送一个不带_id字段的document,mongod会添加_id字段并产生一个ObjectId *

痛苦的春天

痛苦的春天
失去了一切

常用站点

http://sivalabs.in/

http://www.dzone.com
Dzone为全球的软件开发者和软件工程师们开发与发布珍贵的软件方面的相关内容和信息。15年来,Dzone用它诚实的品质、产品和资源分享服务赢得了顾客的信任和热爱,而且会继续为顾客带来巨大的影响。DZone坐落在美国新喀里多尼亚的加利地区,为全球的机构组织和软件开发者提供服务。

https://www.infoq.com

http://www.51cto.com/

工具篇

http://www.generatedata.com/

https://zeplin.io/

在线学院

https://www.codeschool.com/

https://cn.udacity.com/

https://teamtreehouse.com/

https://frontendfront.com/

https://www.lynda.com/

http://www.tutorialspoint.com/index.htm

https://www.codecademy.com

https://www.coursera.org/

http://www.sololearn.com/

https://www.udemy.com

技术问答

http://stackoverflow.com/

https://community.oracle.com/community/java

https://azure.microsoft.com/en-us/develop/java/

http://www.javaworld.com/

站点列表

http://webdevchecklist.com/

linux

top命令能显示系统内存。
目前常用的Linux下查看内容的专用工具是free命令。
下面是对内存查看free命令输出内容的解释:
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。

查看版本号

lsb_release -a

Ubuntu常用命令大全Linux系统管理操作系统_希赛网

【Linux】Linux中常用操作命令 - 大牛笔记 - 博客园

YAML

YAML是“另一种标记语言”的外语缩写[1] (见前方参考资料原文内容);但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。
它是类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。

参考:

YAML 语言教程-阮一峰的网络日志

es6 技术

记录一些es6 技术方面的事情

Cloud Foundry

Cloud Foundry是VMware推出的业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。同时,它本身是一个基于Ruby on Rails的由多个相对独立的子系统通过消息机制组成的分布式系统,使平台在各层级都可水平扩展,既能在大型数据中心里运行,也能运行在一台桌面电脑中,二者使用相同的代码库。[1]
作为新一代云应用平台,Cloud Foundry专为私有云计算环境、企业级数据中心和公有云服务提供商所打造。Cloud Foundry云平台可以简化现代应用程序的开发、交付和运行过程,在面对多种公有云和私有云选择、符合业界标准的高效开发框架以及应用基础设施服务时,可以显著提高开发者在云环境中部署和运行应用程序的能力

Cloud Foundry是由相对独立的多个模块构成的分布式系统,每个模块单独存在和运行,各模块之间通过消息机制进行通信。Cloud Foundry各模块本身是基于Ruby语言开发的,每个部分可以认为拿来即可运行,不存在编译等过程。Cloud Foundry云平台整体逻辑组成如右下图所示:
Cloud Foundry云平台逻辑视图
Cloud Foundry云平台逻辑视图
从图中可以看到,Cloud Foundry云平台是完全模块化的分布式系统,各个模块之间是相互独立的,通过消息总线进行相互连接和通信,这种结构不仅使系统各模块之间的耦合度降低,而且使系统功能容易扩充。此外,开发人员可以通过VMC命令行工具或STS插件方便的部署应用程序到Cloud Foundry云平台上,最终用户可以通过浏览器访问运行在Cloud Foundry云平台上的应用。所有的访问请求都通过Router进行转发,分别由云控制器Cloud Controller和应用运行代理DEA模块进行请求响应,应用生命周期管理Health Manager模块负责监控和管理整个应用在云平台上的正常运行,云平台的各种应用服务由Services模块提供,可以灵活扩展。Cloud Foundry云平台整体架构如右下图所示:[2]
Cloud Foundry云平台整体架构
Cloud Foundry云平台整体架构
从图中可以看到,Cloud Foundry云平台主要有Router、Cloud Controller、Health Manager、DEA、NFS、NATS、Cloud Controller Database以及Service等模块组成。这些模块协同合作,通过特定的消息传输机制和API接口进行通信,就可以使整个云平台正常运行。由于在集群环境下每个模块都有多个部署节点,从而保证了云平台的可靠性和弹性动态扩展的需求,使得应用程序可以稳定可靠的运行在Cloud Foundry云平台上。[2]

相关连接

http://baike.baidu.com/link?url=GtPRRFoqg-UQcR0gD0owycwkzUC0UGEs2T5fCg_y8urZ_YwIl-juvVukdFAq8wIathvBfglSZ1sY0mrHDbyvVa

oocss

http://www.w3cplus.com/css/oocss-concept

http://www.oschina.net/question/179699_75159

“Object Oriented”直译就是面向对象,对于这个词,大家并不陌生,但是加上一个CSS也就是说Object Oriented CSS,对于这个还是第一次见过,被叫作OOCSS(面向对象的CSS),其实这个东西早在2008年被提出,有些同学也在自己的项目中用过了。但有很多同学并不清楚,就拿我来说,我一开始还以为OOCSS是一个新语言或者是CSS框架,其实都不是,他只不过是一种新的写法。那么下面就通过“什么是OOCSS”,“OOCSS理论”等几个部分和大家一起来学习OOCSS。

2017

2017年的 第二天,

2016年过的太忙碌,没有时间做任何事情,希望2017年能够好些。

2016年开始时的新奇与期望,在年末的时候都成了无尽的加班和工作,无力改变。