程序员的职业素养
程序员的职业素养第一章:
提高自己的专业性
不能为了赶时间而降低代码的质量
了解业务领域会更好的与客户沟通降低代码的错误
每日练习Kata(一些小的练习),提高自己技能的熟练程度
FizzBuzz练习TDD与重构
基础算法练习
谦逊
第二章:1.
构建高质量软件
单元测试的定义
单元测试由开发人员完成,主要是针对软件源代码进行较小粒度的测试,白盒测试
单元测试代码要早于源代码的开发
在源代码修改后,将其提交到代码仓库前,都要执行所有的单元测试,以确保程序能够正确运行
一、单元测试的好处
使编码过程更加敏捷
提升代码质量
尽早发现缺陷
简化集成测试
提供文档帮助
易于调试
促进开发者优化代码的设计和结构
降低软件开发成本
二、单元测试的FIRST原则
快(Fast)
指单元测试的执行速度应该很快,否则会降低编译,打包和部署的效率
独立,无依赖(Independent)
每个单元测试之间应该彼此独立,互不干扰
每个单元测试在执行前后,其环境应该完全一致
可重复(repeatable)
每次执行单元测试时所产生的结果应该相同(使用内存数据库)
自我验证(self-validating)
每个单元测试都应该对期望的测试结果自动进行自我验证
周密、细致、全面(thorough)
应该尽可能周密,细致而又全面地覆盖源代码方法中的每一个分支
三、JUnit最佳实践
单元测试应该尽量避免操作外 ...
TypeScript语法
TypeScript语法一、组成部分
模块
函数
变量
语句和表达式
注释
二、第一个TypeScript12const hello : string = "Hello World!"console.log(hello);
先通过tsc编译成JavaScript
12var hello = "Hello World!";console.log(hello);
用node app.js运行得到Hello World
app.ts->TSC->app.js
也可以同时编译多个文件
三、TypeScript关键字
四、对于高级语言开发者更好的切换
可在编写过程中发现错误
提供重构工具
重命名符号名
自动删除未使用的声明
自动删除执行不到的代码
自动添加缺少的模块导入语句
提取到函数或方法
提取类型
五、基础关键字
var:默认值为undefined
let:默认值为undefined
const:声明一个常量必须给初始值
六、作用域
块作用域:{}大括号中
七、注释
单行注释://
多行 ...
Spring Data JPA学习
Spring Data JPA学习一、Spring Data JPA的主要类及结构图七个Repository接口
Repository (org.springframework.data.repository)
CrudRepository (org.springframework.data.repository)
PagingAndSortingRepository (org.springframework.data.repository)
QueryByExampleExecutor (org.springframework.data.repository.query)
JpaRepository (org.springframework.data.jpa.repository)
JpaSpecificationExecutor (org.springframework.data.jpa.repository)
QueryDslPredicateExecutor (org.springframework.data.querydsl)
两个实现类
SimpleJpaRepositor ...
Git学习
Git学习一、Git的基本操作
可以理解Git仓库就是管理了一系列提交动作
123456789101112131415161718192021222324252627282930313233# 初始化仓库,生成后的.git目录只会出现在工作根目录下,一般不要动手修改.git目录git init# 查看工作目标状态git status# 将文件进行版本控制,会进入暂存区git add [文件名]git add --all# 提交到本地仓库首次执行此命令时会出现错误,email,name等信息不存在git commit -m [message]# 对上一次的提交进行修改,不会产生新的commitgit commit --amend# 查看提交记录git loggit log -allgit log -N# 将提交的文件回退至Untrackedgit reset HEAD a.txt# 将暂存区的文件回退至Untrackedgit rm --cached a.txt# 创建git分支,早建分支,多用分支git branch <name>git branch --list# 切换分 ...
Gradle的学习
Gradle的学习项目构建工具–脚本采用Groovy书写
项目结构
外层setting.gradle为根项目的配置,可以知道需要包含哪些模块
最外层的build.gralde也是根项目的配置,模块中的build.gradle是子项目的配置
gradle文件夹下面是版本配置以及gradle所需要的脚本
最外层的gradlew为linux/mac下的脚本,.bat是windwos下面用的脚本
优先运行setting配置,再运行主项目中的build,其次运行子build
gradle中的task
gradle中所有的构建工作都是有task完成的,他处理类,编译,打包,发布等操作
可以运行gradlew tasks查看当前项目等task
需要jdk版本>=1.8
task的书写
task执行顺序
默认加载顺序自上而下
可以自定义执行顺序
hello.dependsOn clear
默认的gradle task
gradlew clean
gradlew build
等
RESTful API接口规范
随着写的项目代码越来越多,感觉优雅的接口命名,可以大幅提高前端与后端的对接效率.从而整理一下使用到的规范
一.选择HTTP方法
GET: 用于检索资源。
POST: 用于创建新资源。
PUT: 用于更新资源。
DELETE: 用于删除资源。
二.使用具体的名词表示资源
使用名词来表示资源,例如 /users 表示用户资源。
三.使用复数形式的名词
对资源使用复数形式的名词,例如 /users 而不是 /user.
四.使用清晰的URL结构
使用清晰的URL路径,例如 /users/{id} 表示获取特定用户.
五.使用查询参数进行过滤和排序
使用查询参数如 ?sort=field 或 ?filter=value 来进行排序和过滤.
六.使用HTTP状态码来表示操作结果
使用适当的HTTP状态码来表示操作结果,例如 200 OK、201 Created、204 No Content、400 Bad Request、404 Not Found 等.