Solit 2014, Процедурное программирование, Соловей Василий

378 views

Published on

Василий Соловей, Солигорск. PHP-разработчик в в «Электронном Солигорске».

«Минусы ООП на примере языка PHP». Development секция. Для разработчиков (начальный и средний уровень).
1. Что есть ООП (легкое повторение уже знакомого)
2. Лучше доверять авторитету мнения, чем мнению авторитета (во всем нужно разбираться основательно, а в ООП тем более)
3. Неизменная скупость в похвалах — верный признак посредственного ума (плюсы ООП)
4. Не все то солнышко, что блестит (основная часть доклада – минусы ООП)
5. Кто владеет информацией, тот владеет ситуацией (пояснение сути доклада:
доклад не принижает и не умоляет достоинств ООП он создан расширить кругозор)
«Начинать никогда не поздно!». Мотивационное выступление. На личном примере, я могу рассказать, что начинать никогда не поздно, и если есть желание – нет повода себе отказывать.
1. Путь в тысячу миль начинается с одного шага (с чего начать)
2. И на верном пути повстречаются распутья (как не сбиться с дороги начав)
3. Кто ты программист? (мой взгляд на программирование)
4. Успех – дитя настойчивости

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
378
On SlideShare
0
From Embeds
0
Number of Embeds
35
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Solit 2014, Процедурное программирование, Соловей Василий

  1. 1. Procedural programming  Процедурное программирование     С развитием языков программирования развивались и технологии, используемые при  написании программного кода. Первые программы писались сплошным текстом. Это  была простая последовательность команд, записанная в столбец. Все это выглядело  приблизительно так:    Листинг 1. Текст линейной программы  Начало программы  Команда 1  Команда 2  Команда 3  ...  Команда N  Конец программы       Используя такой подход к программированию, можно было сделать очень мало.  Единственное, что было доступно программисту для создания логики в данном случае  — это условные переходы. Под условным переходом понимается переход на какую­то  команду при определенных условиях, которые сложились в процессе обработки данных  на процессоре. Например:    Листинг 2. Пример условного перехода  Если выполнено условие, то перейти на команду 1, иначе на команду 3  Команда 1  Команда 2  Команда 3  ...  Команда N.       Это единственная логика, с помощью которой можно было выполнять определенные  действия, зависящие от конкретных ситуаций, которые могут сложиться в процессе  вычислений. Но программы оставались плоскими и неудобными, потому что написать  таким образом логику современных программ невозможно. Линейным  программированием можно создать только линейную логику, которая проведет вас по  определенным шагам. Например, мастера в программах имеют линейную логику. Она  может разветвляться по ходу выполнения шагов мастера, но не может делать что­то  более сложное.       Взгляните на программу MS Word. В ней трудно представить себе линейность, потому  что здесь как бы присутствует диалог с программой. Вы говорите, что вам надо, а она  выполняет ваши действия. При линейном программировании можно создать только  такую логику, при которой компьютер запрашивает определенные параметры (данные),  и вы вводите их, а отступить от линейности, заложенной в такую логику, невозможно.       Следующим шагом стал процедурный подход. При этом подходе какой­то код  программы мог объединяться в отдельные блоки (процедуры). После этого такой блок  команд можно вызывать из любой части программы. Например: 
  2. 2.   Листинг 3. Процедурное программирование  Начало процедуры 1  Команда 1  Команда 2  Конец процедуры 1  Начало программы  Команда 1  Команда 2  Если выполнено условие, то выполнить код процедуры 1.  Команда 3  Конец программы.       В результате появилась возможность использовать один и тот же код в одной  программе неоднократно. Код программ стал более удобным и простым для  понимания.        Но вернемся к процедурам. В процедуры можно передавать различные значения,  заставляя их что­то рассчитывать:    Листинг 4. Пример процедур с параметрами  Начало процедуры 1 (Переменная 1:строка)  Команда 1  Команда 2  Конец процедуры 1  Начало программы  Команда 1  Команда 2  Если выполнено условие, то выполнить код процедуры 1.  Команда 3  Конец программы.       В этом примере после начала процедуры в скобках указан тип передаваемой  переменной. Таким образом, в процедуру можно поместить код каких­нибудь расчётов  и определить параметры в виде переменных, которые используются в этом коде, а  затем только передавать ей разные значения в качестве этих параметров. Процедуры  остались и в наше время.       Использование процедуры часто называют "Вызов процедуры". Это действительно  так, т. е. процедура как бы вызывается. Давайте рассмотрим пример процедуры,  приближенный к реальности.    Листинг 5. Пример процедуры, приближенный к реальному  Начало процедуры 1 (Переменная 1:Целое число)  Посчитать факториал числа, находящегося в Переменная 1.  Вывести результат на экран.  Конец процедуры 1  Начало программы  Процедура1(10)  Процедура1(5)  Процедура1(8) 
  3. 3. Конец программы.       В этом примере условно используется процедура, которая вычисляет факториал  переданного ей значения и потом выводит результат на экран. В самой программе эта  процедура используется как процедура1(10), где цифра в скобках означает  переданное ей значение. Вот так получается универсальная процедура, которая  считает факториал и выводит результат на экран. Как это все работает? Давайте  рассмотрим алгоритм.    1. Начало программы.  2. Вызов процедуры процедура1(10) и передача ей значения 10.  3. Процедура вычисляет факториал числа 10 и выводит результат на экран.  4. Выход из процедуры и продолжение выполнения программы.  5. Вызов процедуры процедура1(5) и передача ей значения 5.  6. Процедура вычисляет факториал числа 5 и выводит результат на экран.    И так далее. Как видите, код программы очень удобный.       Но процедуры — это мелочи жизни. Более удобным стало использование функций.  Функция — это та же процедура, только она умеет возвращать значение, т. е. результат  своего выполнения.    Листинг 4.6. Пример функции  Начало Функции 1: Тип возвращаемого значения — целое число  Команда 1  Команда 2  Конец Функции 1  Начало программы  Команда 1  Команда 2  Если выполнено условие, то выполнить код процедуры 1.  Команда 3  Конец программы.       Заметьте, что после двоеточия идет описание типа возвращаемого значения. Теперь  рассмотрим ту же ситуацию с факториалом. Допустим, нам надо рассчитать факториал  для последующего использования, но не для вывода на экран. Такая задача легко  решается с помощью функций.    Листинг 7. Расчет факториала с помощью функции  Начало Функции 1 (Переменная 1: Целое число): Целое число  Посчитать факториал числа, находящегося в Переменная 1.  Вернуть результат расчета.  Конец Функции 1  Начало программы  Переменная 1:=Функция 1 (10)  Переменная 2:=Функция 1 (5)  Переменная 3:=Переменная 1+Переменная 2  Вывести на экран Переменную 3  Конец программы.   
  4. 4.    В этом примере в "переменную 1" записывается результат расчета факториала 10!  (переменная 1—Функция 1 (10)). В "переменную 2" записывается результат расчета  факториала 5!. После этого значения переменных складываются и результат сложения  записывается в "переменную 3". Последнее действие программы — вывод на экран  "переменной 3".  Плюсы:  ● Лёгок для изучения новичкам.   ● Лёгок для работы.   ● Легко писать маленькие сайты­визитки, там не нужен мощный движок.   Минусы:  ● Плохо расширяемый.   ● Тяжело читаемый.   ● Не структуирован.   ● Повторение кода везде.   ● Очень сложно поддерживать.   Пример кода php:  $user_input = htmlspecialchars($_POST[‘field‘]);  $filtered_content = filter($user_input); //user input filtering  mysql_connect(«dbhost»,«dbuser»,«dbpassword»); //database  mysql_select_db(«dbname»);  $sql = «some query»;  $result = mysql_query($sql);  while ($data = mysql_fetch_assoc())  {  process ($data);  }  process_user_input($filtered_content);    Я решил рассказать про процедурку обще, и только в конце привести пример на php, но  если надо, можно дополнить конкретными примерами.        

×