Categories
java

Ant

最简单,轻量的项目构建软件,通过编写xml完成定义。但系统性不如maven,所以一开始门槛比较高。但是其结构灵活轻便也是很有好处。(但是现在的java都是系统级别应用,用灵活但功能需要自己配置的工具反而得不偿失)。然而其因使用xml语法 导致编码工作比较大

Categories
java

maven

传统的基于xml语法的项目构建软件,其内部分为一个一个任务执行(编译-测试-打包-部署等)但因为maven拓展 只能通过编写maven插件来进行 比较不灵活

Categories
java

gradle

利用groovy作为编写语言的项目构建软件 语法灵活 不受太多限制 但同时会让人觉得 无规律可循 难以上手

Categories
java

groovy

在java的基础上包装了一层语法糖。虽然语法上比java要轻便灵活,但实际上会生成很多辅助类,内存消耗会更多。

idea 通过引入groovy-sdk 可以完成groovy的编译

若想要通过maven 编译项目

maven 配置一览

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>SocketServer</groupId>
	<artifactId>SocketServer</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>maven</name>
	<url>http://maven.apache.org</url>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	<pluginRepositories>
		<pluginRepository>
			<id>central</id>
			<name>Maven Central Repository</name>
			<url>https://maven.aliyun.com/repository/central</url>
		</pluginRepository>
		<pluginRepository>
			<id>jcenter</id>
			<name>Java Center Repository</name>
			<url>https://maven.aliyun.com/repository/jcenter</url>
		</pluginRepository>
	</pluginRepositories>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.8.1</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.codehaus.gmavenplus</groupId>
				<artifactId>gmavenplus-plugin</artifactId>
				<version>1.8.1</version>
				<executions>
					<execution>
						<goals>
							<goal>addSources</goal>
							<goal>addTestSources</goal>
							<goal>generateStubs</goal>
							<goal>compile</goal>
							<goal>generateTestStubs</goal>
							<goal>compileTests</goal>
							<goal>removeStubs</goal>
							<goal>removeTestStubs</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>3.0.1</version>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>${project.build.directory}/lib</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<archive>
						<manifest>
							<addClasspath>true</addClasspath>
							<classpathPrefix>lib/</classpathPrefix>
							<mainClass>org.robin.Main</mainClass>
						</manifest>
					</archive>
				</configuration>
			</plugin>

		</plugins>
	</build>

	<repositories>
		  <repository>
			   <id>central</id>
			   <name>Maven Central Repository</name>
			   <url>https://maven.aliyun.com/repository/central</url>
		  </repository>
		  <repository>
			   <id>jcenter</id>
			   <name>Java Center Repository</name>
			   <url>https://maven.aliyun.com/repository/jcenter</url>
		  </repository>
 	</repositories>
	<dependencies>
		<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-bsf -->
		<dependency>
			<groupId>org.codehaus.groovy</groupId>
			<artifactId>groovy-bsf</artifactId>
			<version>3.0.5</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-cli-commons -->
		<dependency>
			<groupId>org.codehaus.groovy</groupId>
			<artifactId>groovy-cli-commons</artifactId>
			<version>3.0.5</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-yaml -->
		<dependency>
			<groupId>org.codehaus.groovy</groupId>
			<artifactId>groovy-yaml</artifactId>
			<version>3.0.5</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-jaxb -->
		<dependency>
			<groupId>org.codehaus.groovy</groupId>
			<artifactId>groovy-jaxb</artifactId>
			<version>3.0.5</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-dateutil -->
		<dependency>
			<groupId>org.codehaus.groovy</groupId>
			<artifactId>groovy-dateutil</artifactId>
			<version>3.0.5</version>
		</dependency>

	</dependencies>

</project>

大致说明 第一引入 groovy-all 包 但groovy-all 比groovy-sdk 少了一些依赖包 需要手动引入groovy-xxx的包

第二 引入打包配置与方式 添加gmaven插件以编译打包groovy文件

另一个就是可执行jar包 和 第三方依赖包的问题了

Categories
java

Grails

Grails是一个网站开发框架,是groovy版的ruby on rails 有快速开发 动态生成api的功能

Categories
diary

Kettle 使用记录

如何实现自己的动态SQL查询?不可以再用表输入了,要用Dynamic SQL流程 可以把流程的一个field 作为SQL 执行输出。so 通常在之前加入一个javascript脚本用在生成sql,然后在Dynamic SQL流程中,引用该field。

第二步骤的内容
第三的步骤的内容,指定第二步骤的SQL属性位sql的语句
Categories
diary

中山三院数据处理记录

本来打算用mysql分库分表进行三院数据处理(最大的一张表有两亿数据)。计划是三台ubuntu每台负责一到两张大表。每个表单独建立一个库,按照用户ID分别在库中做分表功能

数据库结构如上,图片中表后缀就是用户id生成的分表序号

用的是etl工具kettle进行数据读取再入库的(*记得使用etl工具时需要进行数据分片把一个大库分成几个部分然后输入到其他库上,否则一个任务没完成也要重新开始)

细节:

第一:若单纯做数据迁移查询,数据库引擎可食用Myisam,没有innodb的行锁与机制,然而数据写入速度提高

第二:关闭mysql binlog 因为bin_log 会把数据库的写入异步保存为一个二进制文件,供slave库执行同步 ,其实会稍微影响效率

my.cnf 在[mysqld]添加 skip-log-bin 重启mysql

执行查询SHOW VARIABLES LIKE “log_bin” Value为OFF即 关闭了log_bin

第三:绝对不可以将某一个张表分往某一台服务器上。而是要把一张表水平分到多台服务器上 否则当执行某一业务(需要查询某张表时)所有网络访问和数据库连接,只落在同一台服务器上完全起不到多服务器集群的作用。(我应该前300张表在 ubuntu1 中间300张表在ubuntu2 最后300张表在ubuntu3)

Categories
php

ThinkPHP

Categories
php

Laravel

Categories
python

python 简介

    Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

    python语言上分为python2,python3。当初因为语法方案问题,遂对该编程语言进行了分支。两种语言上语法略有差别,譬如python2支持函数执行可不带括号等。然而随着时代发展python2已经逐渐退出历史舞台,最新版的操作系统默认支持的就是python3。我们一般说的python指的就是python3了

    python执行需要python运行时环境。https://www.python.org/官网地址下载。因为python运行时环境需要按照自己的操作系统下载对应的安装包,换句话说通过python运行时环境去兼容不同的操作系统的资源接口,对上层语言级别的调用提供一致的屏蔽操作系统差异的函数与库。所以python能做到跨平台。

    python作为脚本语言(其实是编译、运行一体化),调试方便。而且和调用c的库相当方便,被调用也只需开一个进程执行python命令,所以亦被称为胶水语言(基本逻辑用python写,核心算法等用c的库)。