2017年的阅读账单
又一年啦,才读了46本书,而这些书中,又能有多少用于实践呢。
又一年啦,才读了46本书,而这些书中,又能有多少用于实践呢。
很久之前就用过maven了,各种版本兼容性问题多多。
后来Gradle出现了,很是清新,只是出来的时间比较短,问题也不少,现在成熟了很多。
除了墙的问题外,Gradle要比Maven好用,Maven目前有较大的存量市场。
下面是官方的文章部分翻译
google 选择 Gradle 作为 Android 的官方构建工具,因为 Gradle 的构建模式易于扩展
Maven 的构建模式比较僵硬,在自定义方面比较繁琐,有时甚至无法做到。
Gradle有三个主要的特性使编译时间比Maven要短
Maven只能通过版本来覆盖依赖
Gradle提供了自定义的起来选择和替换规则,可以声明一次,在整个项目中有效
头文件定义消息
#define WM_MYMSG (WM_USER+100) |
在线程中发送消息
::PostMessage(pwnd->m_hWnd, WM_MYMSG, 2, 0); |
数据库事务的几个特性:
原子性(Atomicity),一致性(Consistency),隔离性或独立性(Isolation)和持久性(Durabilily),简称就是ACID
事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。
举例:在转账之前,A和B的账户中共有500+500=1000元钱。在转账之后,A和B的账户中共有400+600=1000元。
多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
一个事务一旦提交,他对数据库的修改应该永久保存在数据库中。
这是常用操作,数据库的相关配置信息,debug 和 release 下面的配置信息是不同的。
还有其他不一样的信息。可以通过条件编译来实现。
初步调研了一下有两种方式:
这个方式是通过编译参数来设置初始变量的值。
go build -ldflags "-X main.VERSION=1.0.0 -X 'main.BUILD_TIME=`date`' -X 'main.GO_VERSION=`go version`'" |
goland设置参考如下:
这个目前还没好用,不知道问题在哪里,空行也有了,但是还是提示重复声明 redeclared in this block
类似编译宏定义。
在文件的第一行,注意和 package 之间有个空行。下面表示支持在 osx linux 下面编译
// +build darwin linux !debug |
go build -tags "debug"
一个API接口,都可以很认真的写一本书,很有专研精神,里面的内容也不错。希望每个提供API的人都能够看一看,减少些使用者的痛苦(我是受害者)。
我绝对不会让使用我的API的人,遭受和我同样的经历。