理想的代码优化方式 团队日常协作中,自然而然的会出现很多重复代码,根据这些代码的种类,之前可能会以以下方式处理 方式 描述 应用时可能产生的问题 硬编码 多数新手,或逐渐腐坏的项目会这么干,会直接复制之前实现的代码 带来的问题显而易见的多,例如架构会逐渐随时间被侵蚀,例外越来越多 提取函数 提取成为函数,然后复用 提取函数,然后复用,会比直接硬编码好些,但是仍然存在大量因"例外"而导致增加参数.增加函数重载的情况 模板生成器 CodeSmith/T4等 因为是独立进程,所以对于读取用户…
Metalama是一个基于微软编译器Roslyn的元编程的库,可以解决我在开发中遇到的重复代码的问题.但是其实Metalama不止可以提供编译时的代码转换,更可以提供自定义代码分析.与IDE结合的自定义代码修复与代码重构功能 等功能. 经过面对文档的学习,发现Metalama可以做到很多非常神奇的事情.…
lombok-ex lombok-ex 是一款类似于 lombok 的编译时注解框架. 编译时注,拥有运行时注解的便利性,和无任何损失的性能. 主要补充一些 lombok 没有实现,且自己会用到的常见工具. 创作目的 补充 lombok 缺失的注解,便于日常开发使用. lombok 的源码基本不可读,应该是加密处理了. 为其他注解相关框架提升性能提供基础,后期考虑替换为编译时注解. 特性 @Serial 支持 (1)类实现序列化接口 (2)类生成 serialVersionUID 字段,字段的值…
在Linux下安装PHP过程中,编译时出现configure: error: libjpeg.(a|so) not found 错误的解决办法 configure: error: libjpeg.(a|so) not found 检查之后发现已经安装了libjpeg [root@localhost php-]# yum list installed|grep libpng libpng.x86_64 :-.el6_2 或者: [root@localhost php-]# rpm -qa|grep…
Gradle编译时在本地仓库中如果没有发现依赖,就会从远程仓库中下载, 默认的远程仓库为 mavenCentral(),即 http://repo1.maven.org/maven2/往往访问速度特别慢,经常会下载超时或者需要很长时间导致Build失败, 因此,可以用如下的国内仓库代替: 阿里的仓库地址:http://maven.aliyun.com/nexus/content/groups/public/ OSChina的仓库地址:http://maven.oschina.net/conten…
自己在Ubuntu下练习C程序时,用到了库函数math.h,虽然在源程序中已添加头文件“math.h”,但仍提示所用函数未定义,原本以为是程序出错了,找了好久,这是怎么回事呢? 后来上网查了下,发现是Linux系统的原因,在Linux下,若要调用C中的math库里的函数,必须在编译时加上“-lm”,表示链接到math库里- 比如要编译当前目录下的“hello.c”文件,执行的命令为:gcc -o hello hello.c -lm 原文链接:https://blog.csdn.net/zenai…
编译scss文件时,如果出现如下错误 Error: Invalid US-ASCII character "\xC2" on line 63 of src/assets/_scss/partials/_post-list.scss from line 36 of src/assets/_scss/style.scss Use --trace for backtrace. 解决办法就是在报错的scss文件顶部加上编码类型即可: @charset "UTF-8"; 引自…
在对Procedure.Function或Package进行Debug时,如果长时间没有操作,公司的防火墙会杀掉会话连接.这个时候数据库不会主动的释放会话的资源,如果再次对Procedure.Function或Package进行Debug的话,就会产生等待.因为被防火墙杀掉的会话还在运行着上次的Debug,会有锁的存在.只用等到数据库回收上次Debug的会话资源或者DBA手动将会话KILL掉.以下是手动KILL会话的方法: 1.得到所有的会话的信息 1.select * FROM V$SESSI…
如果Gradle在编译的时候没有在本地仓库中发现依赖,就会从远程仓库中下载,默认的远程仓库为mavenCentral(),也就是http://repo1.maven.org/maven2/,但是往往访问速度特别慢,不FQ经常会下载超时或者需要很长时间导致Build失败,因此,可以用国内的仓库代替: 阿里的仓库地址:http://maven.aliyun.com/nexus/content/groups/public/ OSChina的仓库地址:http://maven.oschina.net/c…
由于使用的使用的编译器不同导致, 需要使用shell为 #!/bin/bash 即可.…