SlideShare une entreprise Scribd logo
1  sur  37
1. ООП
а) что есть ООП
б) плюсы ОПП
в) минусы ООП
2. Процедурное программирование
3. Функциональное программирование
<?php
var_dump(ООП);
?>
ООП — это методология
программирования, в основe которой
лежит принцип описания сущности
проектируемой системы и методов
взаимодействия между ними. При
описании сущности используются
такие понятия как класс и объект.
<?php
class ClassName{
// Свойство класса
private $text;
// Метод установки значения свойства
public function setText($text){
// Если надо - обработка ошибок
$this->text = $text;
}
//Метод выборки значения свойства
public function getText() {
// Если надо - обработка ошибок
return $this->text;
}
}
?>
<?php
class ParentClass{
protected $name;
function hello(){
echo "Hello, ";
}
function showName($text=null){
$this->name = $text;
echo $this->name . '!';
}
}
class Child extends ParentClass{ }
$obj_child = new Child;
$obj_child->hello();
$obj_child->showName("BOB");//Hello, BOB!
?>
<?php
abstract class Publication {
// определяем правило, что все публикации должны
печататься, т.е. иметь метод do_print()
abstract public function do_print();
}
?>
<?php
class News extends Publication {
// переопределяем абстрактный метод печати
public function do_print() {
echo '<h4>Новость</h4>';
//...
}
}
?>
<?php
class Articles extends Publication {
// переопределяем абстрактный метод печати
public function do_print() {
echo '<h4>Статья</h4>';
//...
}
}
?>
<?php
$publications[] = new News();
$publications[] = new Article();
foreach ($publications as $publication) {
if ($publication instanceof Publication) {
// Если мы работаем с наследниками Publication
$publication->do_print();
//можно выводить данные на печать
}
else {
//исключение или обработка ошибки
}
}
?>
Начало программы
Команда 1
Команда 2
Команда 3
...
Команда N
Конец программы
Начало программы
Если выполнено условие, то вып. команду 1
иначе на команду 3
Команда 1
Команда 2
Команда 3
...
Команда N
Конец программы
Начало процедуры 1
Команда 1
Команда 2
Конец процедуры 1
Начало программы
Команда 1
Команда 2
Если выполнено условие, то выполнить код
процедуры 1.
Команда 3
Конец программы.
Начало процедуры 1 (Переменная 1:строка)
Команда 1
Команда 2
Конец процедуры 1
Начало программы
Команда 1
Команда 2
Если выполнено условие, то выполнить код
процедуры 1.
Команда 3
Конец программы
Начало процедуры 1 (Переменная 1:Целое число)
Посчитать факториал числа, находящегося в
Переменная 1.
Вывести результат на экран.
Конец процедуры 1
Начало программы
Процедура1(10)
Процедура1(5)
Процедура1(8)
Конец программы
Начало Функции 1 (Переменная 1: Целое число):
Целое число
Посчитать факториал числа, находящегося в
Переменная 1.
Вернуть результат расчета.
Конец Функции 1
Начало программы
Переменная 1:=Функция 1 (10)
Переменная 2:=Функция 1 (5)
Переменная 3:=Переменная 1+Переменная 2
Вывести на экран Переменную 3
Конец программы.
1. Лѐгок для изучения новичкам.
2. Лѐгок для работы.
3. Легко писать маленькие сайты-
визитки, там не нужен мощный
движок.
1. Плохо расширяемый.
2. Тяжело читаемый.
3. Не структурирован.
4. Повторение кода везде.
5. Сложно поддерживать
<?php
$chars = "qazxswedyujmkiolp12345690QAZXSWEDCUJMKIOLP";
$numpass = htmlspecialchars($_POST['numpass']);
$maxlength = htmlspecialchars($_POST['maxlength']);
if(проверка на валидность){
$size = strlen($chars) - 1;
for ($i = 1; $i <= $numpass; $i++) {
$password = null;
for ($j = 1; $j <= $maxlength; $j++) {
$password .= $chars[rand(0, $size)];
}
echo $password . ‘<br/>’;
}
else{
echo ‘Incorrectly entered data!’;
}
?>
Функциональное программирование - это
парадигма программирования, в которой
выполнение программы представляет собой
вычисление некоторого
выражения, описывающего применение
функций (в математическом понимании) ко
входным данным.
<?php
function getFactorial($n){
if(!$n){
return("Факториал числа $n не существует.");
}
else{
if($n <= 1){return 1;}
return $n * getFactorial($n-1);
}
}
echo getFactorial(5);//120
?>
<?php
function getFactorial($n){
if(!$n){
return("Факториал числа $n не существует.");
}
else{
if($n <= 1){return 1;}
return $n * getFactorial($n-1);
}
}
echo getFactorial(5);//120
?>
<?php
$square = function($arg){
return $arg * $arg;
};
echo $square(4);//16
?>
<?php
$arg = 4;
$square = function() use($arg){
return $arg * $arg;
};
echo $square();//16
?>
<?php
$volume = function($length = 0, $width = 0, $height = 0) use($valume){
$getArgs = func_get_args();
$numArgs = func_num_args();
if($numArgs == 3){
return $length * $width * $height;
}
elseif($numArgs < 3){
return function() use(&$volume, $getArgs){
$newArgs = array_merge($getArgs, func_get_args());
return call_user_func_array($volume, $newArgs);
}
else{
echo "Too many arguments!";
}
};
$standardVolume = $volume(10);
$vol = $standardVolume(5,5);
?>
<?php
echo "Thank you for listening!";
?>

Contenu connexe

Tendances

апкс 2011 05_verilog
апкс 2011 05_verilogапкс 2011 05_verilog
апкс 2011 05_verilogIrina Hahanova
 
javascript_part1
javascript_part1javascript_part1
javascript_part1sovest
 
апкс 2011 04_verilog
апкс 2011 04_verilogапкс 2011 04_verilog
апкс 2011 04_verilogIrina Hahanova
 
functional patterns - dotnetconf'11
functional patterns - dotnetconf'11functional patterns - dotnetconf'11
functional patterns - dotnetconf'110xffAA
 
Теории и практики фунционального программирования - GDG D2D
Теории и практики фунционального программирования - GDG D2DТеории и практики фунционального программирования - GDG D2D
Теории и практики фунционального программирования - GDG D2D0xffAA
 
Всё ли ты знаешь о JavaScript ООП?
Всё ли ты знаешь о JavaScript ООП?Всё ли ты знаешь о JavaScript ООП?
Всё ли ты знаешь о JavaScript ООП?Vitaly Hornik
 
VAMR ACADEMY Второе занятие
VAMR ACADEMY Второе занятиеVAMR ACADEMY Второе занятие
VAMR ACADEMY Второе занятиеmixARConference
 
C# Desktop. Занятие 16.
C# Desktop. Занятие 16.C# Desktop. Занятие 16.
C# Desktop. Занятие 16.Igor Shkulipa
 
Статический анализатор кода для InterSystems Caché Object Script
Статический анализатор кода для InterSystems Caché Object ScriptСтатический анализатор кода для InterSystems Caché Object Script
Статический анализатор кода для InterSystems Caché Object ScriptInterSystems
 
Конструирование алгоритмов
Конструирование алгоритмовКонструирование алгоритмов
Конструирование алгоритмовAndrey Dolinin
 
JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.Igor Shkulipa
 
функции в Java script
функции в Java scriptфункции в Java script
функции в Java scriptViktor Andreev
 
Язык программирования Go для Perl-программистов
Язык программирования Go для Perl-программистовЯзык программирования Go для Perl-программистов
Язык программирования Go для Perl-программистовAndrew Shitov
 

Tendances (15)

апкс 2011 05_verilog
апкс 2011 05_verilogапкс 2011 05_verilog
апкс 2011 05_verilog
 
javascript_part1
javascript_part1javascript_part1
javascript_part1
 
апкс 2011 04_verilog
апкс 2011 04_verilogапкс 2011 04_verilog
апкс 2011 04_verilog
 
functional patterns - dotnetconf'11
functional patterns - dotnetconf'11functional patterns - dotnetconf'11
functional patterns - dotnetconf'11
 
Теории и практики фунционального программирования - GDG D2D
Теории и практики фунционального программирования - GDG D2DТеории и практики фунционального программирования - GDG D2D
Теории и практики фунционального программирования - GDG D2D
 
Всё ли ты знаешь о JavaScript ООП?
Всё ли ты знаешь о JavaScript ООП?Всё ли ты знаешь о JavaScript ООП?
Всё ли ты знаешь о JavaScript ООП?
 
VAMR ACADEMY Второе занятие
VAMR ACADEMY Второе занятиеVAMR ACADEMY Второе занятие
VAMR ACADEMY Второе занятие
 
C# Desktop. Занятие 16.
C# Desktop. Занятие 16.C# Desktop. Занятие 16.
C# Desktop. Занятие 16.
 
Статический анализатор кода для InterSystems Caché Object Script
Статический анализатор кода для InterSystems Caché Object ScriptСтатический анализатор кода для InterSystems Caché Object Script
Статический анализатор кода для InterSystems Caché Object Script
 
Golang WTF talks
Golang WTF talksGolang WTF talks
Golang WTF talks
 
Конструирование алгоритмов
Конструирование алгоритмовКонструирование алгоритмов
Конструирование алгоритмов
 
JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.
 
функции в Java script
функции в Java scriptфункции в Java script
функции в Java script
 
Lec 15
Lec 15Lec 15
Lec 15
 
Язык программирования Go для Perl-программистов
Язык программирования Go для Perl-программистовЯзык программирования Go для Perl-программистов
Язык программирования Go для Perl-программистов
 

Similaire à Solit 2014, Минусы ООП на примере языка PHP, Соловей Василий

20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1Michael Karpov
 
Релиз PHP7 - что нас ждет в октябре 2015
Релиз PHP7 - что нас ждет в октябре 2015Релиз PHP7 - что нас ждет в октябре 2015
Релиз PHP7 - что нас ждет в октябре 2015Andrey Tokarchuk
 
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычностьStepan Tanasiychuk
 
Микрофреймворки PHP
Микрофреймворки PHPМикрофреймворки PHP
Микрофреймворки PHPEkaterina Giganova
 
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) it-people
 
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The BeastAlexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The BeastAlexander Dymo
 
вспомогательные алгоритмы
вспомогательные алгоритмывспомогательные алгоритмы
вспомогательные алгоритмыЕлена Ключева
 
ZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and MultilingualZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and MultilingualZFConf Conference
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй этоRoman Dvornov
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf Conference
 
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"QA Dnepropetrovsk Community (Ukraine)
 
Romanova techforum bash
Romanova techforum bashRomanova techforum bash
Romanova techforum bashkuchinskaya
 
Functional Programming Dev Club 2009 - final
Functional Programming Dev Club 2009 - finalFunctional Programming Dev Club 2009 - final
Functional Programming Dev Club 2009 - finalAndrei Solntsev
 
Algorithms and programming lecture in ru
Algorithms and programming lecture in ruAlgorithms and programming lecture in ru
Algorithms and programming lecture in russuser0562f1
 
Алгоритмизация и программирование С/С++
Алгоритмизация и  программирование С/С++Алгоритмизация и  программирование С/С++
Алгоритмизация и программирование С/С++ssuser0562f1
 
The basic design of the PHP language
 The basic design of the PHP language The basic design of the PHP language
The basic design of the PHP languageVladimir Burdaev
 

Similaire à Solit 2014, Минусы ООП на примере языка PHP, Соловей Василий (20)

20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1
 
Релиз PHP7 - что нас ждет в октябре 2015
Релиз PHP7 - что нас ждет в октябре 2015Релиз PHP7 - что нас ждет в октябре 2015
Релиз PHP7 - что нас ждет в октябре 2015
 
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычность
 
Микрофреймворки PHP
Микрофреймворки PHPМикрофреймворки PHP
Микрофреймворки PHP
 
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
 
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The BeastAlexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
 
вспомогательные алгоритмы
вспомогательные алгоритмывспомогательные алгоритмы
вспомогательные алгоритмы
 
ZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and MultilingualZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and Multilingual
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 
Async
AsyncAsync
Async
 
Luxoft async.net
Luxoft async.netLuxoft async.net
Luxoft async.net
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and Doctrine
 
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
 
Erlang tasty & useful stuff
Erlang tasty & useful stuffErlang tasty & useful stuff
Erlang tasty & useful stuff
 
Romanova techforum bash
Romanova techforum bashRomanova techforum bash
Romanova techforum bash
 
Functional Programming Dev Club 2009 - final
Functional Programming Dev Club 2009 - finalFunctional Programming Dev Club 2009 - final
Functional Programming Dev Club 2009 - final
 
Algorithms and programming lecture in ru
Algorithms and programming lecture in ruAlgorithms and programming lecture in ru
Algorithms and programming lecture in ru
 
Алгоритмизация и программирование С/С++
Алгоритмизация и  программирование С/С++Алгоритмизация и  программирование С/С++
Алгоритмизация и программирование С/С++
 
Tdd php
Tdd phpTdd php
Tdd php
 
The basic design of the PHP language
 The basic design of the PHP language The basic design of the PHP language
The basic design of the PHP language
 

Plus de solit

Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmapsolit
 
JazzTeam company presentation
JazzTeam company presentationJazzTeam company presentation
JazzTeam company presentationsolit
 
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко АнтонSolit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антонsolit
 
Solit 2014, Scrum guide 2013, Семенченко Антон
Solit 2014, Scrum guide 2013, Семенченко АнтонSolit 2014, Scrum guide 2013, Семенченко Антон
Solit 2014, Scrum guide 2013, Семенченко Антонsolit
 
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...solit
 
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...solit
 
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...solit
 
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...solit
 
Solit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович ЮлияSolit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович Юлияsolit
 
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...solit
 
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...solit
 
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко АнтонSolit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антонsolit
 
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter ReitsmaSolit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsmasolit
 
Solit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов АлександрSolit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов Александрsolit
 
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...solit
 
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...solit
 
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...solit
 
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...solit
 
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...solit
 
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...solit
 

Plus de solit (20)

Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmap
 
JazzTeam company presentation
JazzTeam company presentationJazzTeam company presentation
JazzTeam company presentation
 
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко АнтонSolit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
 
Solit 2014, Scrum guide 2013, Семенченко Антон
Solit 2014, Scrum guide 2013, Семенченко АнтонSolit 2014, Scrum guide 2013, Семенченко Антон
Solit 2014, Scrum guide 2013, Семенченко Антон
 
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
 
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
 
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
 
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
 
Solit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович ЮлияSolit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович Юлия
 
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
 
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
 
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко АнтонSolit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
 
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter ReitsmaSolit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
 
Solit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов АлександрSolit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов Александр
 
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
 
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
 
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
 
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
 
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
 
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
 

Solit 2014, Минусы ООП на примере языка PHP, Соловей Василий

  • 1.
  • 2. 1. ООП а) что есть ООП б) плюсы ОПП в) минусы ООП 2. Процедурное программирование 3. Функциональное программирование
  • 4. ООП — это методология программирования, в основe которой лежит принцип описания сущности проектируемой системы и методов взаимодействия между ними. При описании сущности используются такие понятия как класс и объект.
  • 5.
  • 6. <?php class ClassName{ // Свойство класса private $text; // Метод установки значения свойства public function setText($text){ // Если надо - обработка ошибок $this->text = $text; } //Метод выборки значения свойства public function getText() { // Если надо - обработка ошибок return $this->text; } } ?>
  • 7. <?php class ParentClass{ protected $name; function hello(){ echo "Hello, "; } function showName($text=null){ $this->name = $text; echo $this->name . '!'; } } class Child extends ParentClass{ } $obj_child = new Child; $obj_child->hello(); $obj_child->showName("BOB");//Hello, BOB! ?>
  • 8. <?php abstract class Publication { // определяем правило, что все публикации должны печататься, т.е. иметь метод do_print() abstract public function do_print(); } ?>
  • 9. <?php class News extends Publication { // переопределяем абстрактный метод печати public function do_print() { echo '<h4>Новость</h4>'; //... } } ?>
  • 10. <?php class Articles extends Publication { // переопределяем абстрактный метод печати public function do_print() { echo '<h4>Статья</h4>'; //... } } ?>
  • 11. <?php $publications[] = new News(); $publications[] = new Article(); foreach ($publications as $publication) { if ($publication instanceof Publication) { // Если мы работаем с наследниками Publication $publication->do_print(); //можно выводить данные на печать } else { //исключение или обработка ошибки } } ?>
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. Начало программы Команда 1 Команда 2 Команда 3 ... Команда N Конец программы
  • 21. Начало программы Если выполнено условие, то вып. команду 1 иначе на команду 3 Команда 1 Команда 2 Команда 3 ... Команда N Конец программы
  • 22. Начало процедуры 1 Команда 1 Команда 2 Конец процедуры 1 Начало программы Команда 1 Команда 2 Если выполнено условие, то выполнить код процедуры 1. Команда 3 Конец программы.
  • 23. Начало процедуры 1 (Переменная 1:строка) Команда 1 Команда 2 Конец процедуры 1 Начало программы Команда 1 Команда 2 Если выполнено условие, то выполнить код процедуры 1. Команда 3 Конец программы
  • 24. Начало процедуры 1 (Переменная 1:Целое число) Посчитать факториал числа, находящегося в Переменная 1. Вывести результат на экран. Конец процедуры 1 Начало программы Процедура1(10) Процедура1(5) Процедура1(8) Конец программы
  • 25. Начало Функции 1 (Переменная 1: Целое число): Целое число Посчитать факториал числа, находящегося в Переменная 1. Вернуть результат расчета. Конец Функции 1 Начало программы Переменная 1:=Функция 1 (10) Переменная 2:=Функция 1 (5) Переменная 3:=Переменная 1+Переменная 2 Вывести на экран Переменную 3 Конец программы.
  • 26. 1. Лѐгок для изучения новичкам. 2. Лѐгок для работы. 3. Легко писать маленькие сайты- визитки, там не нужен мощный движок.
  • 27. 1. Плохо расширяемый. 2. Тяжело читаемый. 3. Не структурирован. 4. Повторение кода везде. 5. Сложно поддерживать
  • 28. <?php $chars = "qazxswedyujmkiolp12345690QAZXSWEDCUJMKIOLP"; $numpass = htmlspecialchars($_POST['numpass']); $maxlength = htmlspecialchars($_POST['maxlength']); if(проверка на валидность){ $size = strlen($chars) - 1; for ($i = 1; $i <= $numpass; $i++) { $password = null; for ($j = 1; $j <= $maxlength; $j++) { $password .= $chars[rand(0, $size)]; } echo $password . ‘<br/>’; } else{ echo ‘Incorrectly entered data!’; } ?>
  • 29.
  • 30. Функциональное программирование - это парадигма программирования, в которой выполнение программы представляет собой вычисление некоторого выражения, описывающего применение функций (в математическом понимании) ко входным данным.
  • 31. <?php function getFactorial($n){ if(!$n){ return("Факториал числа $n не существует."); } else{ if($n <= 1){return 1;} return $n * getFactorial($n-1); } } echo getFactorial(5);//120 ?>
  • 32.
  • 33. <?php function getFactorial($n){ if(!$n){ return("Факториал числа $n не существует."); } else{ if($n <= 1){return 1;} return $n * getFactorial($n-1); } } echo getFactorial(5);//120 ?>
  • 34. <?php $square = function($arg){ return $arg * $arg; }; echo $square(4);//16 ?>
  • 35. <?php $arg = 4; $square = function() use($arg){ return $arg * $arg; }; echo $square();//16 ?>
  • 36. <?php $volume = function($length = 0, $width = 0, $height = 0) use($valume){ $getArgs = func_get_args(); $numArgs = func_num_args(); if($numArgs == 3){ return $length * $width * $height; } elseif($numArgs < 3){ return function() use(&$volume, $getArgs){ $newArgs = array_merge($getArgs, func_get_args()); return call_user_func_array($volume, $newArgs); } else{ echo "Too many arguments!"; } }; $standardVolume = $volume(10); $vol = $standardVolume(5,5); ?>
  • 37. <?php echo "Thank you for listening!"; ?>