Что такое "декларативный формат"?

Приложение Двенадцати Факторов говорит:

используйте декларативные форматы для автоматизации настройки, чтобы минимизировать время и затраты для новых разработчиков, присоединяющихся к проекту

Что означает "декларативные форматы"?

1 ответов


декларативный формат-это тот, в котором вы объявляете намерение/конечный результат программы, а не то, как он должен быть получен. По сути, это различие между конфигурационным файлом и фрагментом кода. Сравнить:

CC=gcc
CFLAGS=-I.
DEPS = hellomake.h

%.o: %.c $(DEPS)
    $(CC) -c -o $@ $< $(CFLAGS)

hellomake: hellomake.o hellofunc.o 
    gcc -o hellomake hellomake.o hellofunc.o -I.

против чего-то вроде (python-pseudocode):

CC = "gcc"
CFLAGS = "-I."
DEPS = ["hellomake.h"]
def make_o_file(o_file, deps):
    #don't recompile if it exists & is current
    c_file = "%s.c" % os.path.splitext(o_file)[0]
    if (os.path.exists(o_file) 
            and is_newer(o_file, c_file) 
            and all(is_newer(o_file, dep) for dep in deps)):
        return

    #else actually compile it
    compile_c_file(CC, code_file, o_file, CFLAGS)

if target == "hellomake":
    make_o_file("hellomake.o", DEPS)
    make_o_file("hellofunc.o", DEPS)
    link_o_files("hellomake", ["hellomake.o", "hellofunc.o"])

первый может быть намного проще для людей, чтобы обработать, если формат хорошо разработан. Википедия на декларативное Программирование может быть полезным.