coding
从用途上划分:编程语言、建模语言、配置语言、构建语言
从形态上划分:基于语言学的构建语言、基于数学的形式化构造语言、基于图形的可视化构造语言
编程语言
建模语言
建模语言是一种用于展示结构中的信息的人工语言,它的目标是可视化地理解、验证、交流一个系统的设计
配置语言
配置文件配置程序的参数和初始设置,为了改变软件在运行时的行为
XML,YAML,JSON
review and static code analysis
代码评审
形式:结对编程、走查、正式评审会议、自动化评审(checkstyle,apotbugs,pmd)
dynamic code analysis / profiling
动态分析:要执行程序并观察现象、收集数据、分析不足
对代码的运行时状态和性能进行度量,发现代码中的潜在问题
debugging and testing
refactoring
在不改变功能的前提下优化代码
重构就是重新组织代码,形式是一系列的小的转换,目的是增加程序的可维护性
eclipse支持重构
狭义的软件构造过程(build)
粗略理解build:build-time->run-time
借助于工具,将软件构造各阶段的活动“自动化”
build system
使用build的典型场景
C的编译,python的packaging,单元测试,执行静态分析工具,生成PDF和HTML文档
compiled language
C, C++, Java, and C#
interpreted language
python
web-Based Applications
jsp,asp,php
构建系统的组成部分
版本控制工具、源树(源程序的文件组织结构)、对象树(用于存储构建过程中出现的任何目标文件和可执行文件)
编译工具(编译器、链接器、代码生成器、文档生成器)、构建工具、构建机器、发布包、包的类型
构建过程和构建描述
构建过程
源文件,对象文件,可执行程序,发布包
构建语言(构建描述)
java中的编译工具
The Java Development Kit (JDK)
GNU Java Compiler
Eclipse Java Compiler (ECJ)
执行条件
JVM必须被提供一个包含main方法的函数
JVM必须被提供一个class path,以便能够找到其他的类
build tools(for java)
make
ant
maven
gradle
eclipse ide