Стили программирования

Теги: programming 

Процедурное_программирование - процедурное ПО использует процедурные вызовы или функции. Функции не инкапсулирвоаны в классы и опираются толькор на свои входные данные и иногда на глобальные состояния.

Функциональное программирование - ПО представляет из себя композицию функций. Функции иногда принимаются в качестве аттрибутов функций и возвращаются в результате операций.

Пример в python

# procedure
numbers = [1, 2, 3, 4, 5]
for i in numbers:
    print(i * i)

# functional
print(map((i) => i * i, [1, 2, 3, 4, 5]))

Декларативное программирование сосредоточено на объявлении параметров задачи без указания способа ее выполнения. Детали решения абстрагируются от разработчика.

Примером реализации являются DSL (domain specific languages), к примеру #sql или #html или [gherkin]

Примером в python является plotly. В данном случае объявляется намерение построить шрафик (инстанс класса) и в нем объявляются параметры.

import plotly.graph_objects as plotly.graph_objects

tracer1 = go.Scatter(
    x=[1, 2, 3],
    y=[4, 5, 6],
    marker={'color': 'red', 'symbol': 104},
    mode='markers+lines',
    text=['one', 'two', 'three'],
    name='1st Trace',
)

Для сравнения, процедурный подход:

trace1 = go.Scatter()
trace1.set_x_data([1, 2, 3])
trace1.set_y_data([4, 5, 6])
...