軟體工程兩件事

軟體工程兩件事:寫腳本與命名檔案。

寫腳本– 也就是寫makefile。

modmesh的makefile作為例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.PHONY: default
default: buildext

.PHONY: clean
clean:
rm -f $(MODMESH_ROOT)/modmesh/_modmesh$(pyextsuffix)
make -C $(BUILD_PATH) clean

.PHONY: cmakeclean
cmakeclean:
rm -f $(MODMESH_ROOT)/modmesh/_modmesh$(pyextsuffix)
rm -rf $(BUILD_PATH)

.PHONY: pytest
pytest: $(MODMESH_ROOT)/modmesh/_modmesh$(pyextsuffix)
env $(RUNENV) \

.PHONY,根據這篇文章的說法它叫做「偽目標」,冒號之前為target,冒號之後為dependency, i.e, target: dependency,層層向下追朔,以上的例子來看default作為target,dependency則是buildext,此時程式就會再向下追朔,找到buildext作為target之處,向下追朔,或是執行裡頭的指令。

To “build the target”,則如

1
make pytest

同樣的事情也不見得要透過這樣的方法來進行,i.e, make clean在terminal中藉由以下的指令產生等效的結果:

1
2
rm -f $(MODMESH_ROOT)/modmesh/_modmesh$(pyextsuffix)
rm -rf $(BUILD_PATH)

我想這就是為什麼寫makefile會叫做寫腳本,真的是有異曲同工之妙ㄋ~

命名檔案