SlideShare a Scribd company logo
1 of 68
Download to read offline
Perl – жив?!
        Блиц доклад
Perl Mova + YAPC::Russia 2010
Последние 2 года
все говорят только
     об одном
Жив ли Perl,
мёртв ли Perl?
Мёртв ли
живой Perl?
Жив ли
мёртвый Perl?
На самом деле я
хочу рассказать
другой доклад :)
Perl – зло?!
        Блиц доклад
YAPC::Russia + Perl::Mova 2010
Каждый год
на «May Perl»
Я рассказываю
  про «зло» :)
CGI
 «CGI.pm – зло?!», May Perl 2008
LWP
«Модули Net::*, использующие LWP::UserAgent – зло?!»,
                                      May Perl 2009
POE
 Такого доклада не было, но это так :)
PHP
ой :)
TT
«Template Toolkit – зло?!», May Perl 2010
– зло!
Может быть
CGI.pm, LWP, POE, TT
    не виноваты?
Может быть
Perl – зло !
Может быть
Perl – зло?!
НЕТ :)
На РИТе 2010 меня
попросили рассказать
     про «добро»
Поэтому я хочу
рассказать другой
    доклад :)
Perl – добро?!
        Блиц доклад
YAPC::Russia + Perl::Mova 2010
Однозначно,
Perl – добро!
Потому, что это
 мой доклад :)
Если речь идет
 о добре и зле
То это сказка :)
Если серьезно
«Мифы Перла»
Алексей Капранов
http://kapranoff.ru/myths
Я пишу про Perl в ЖЖ
    несколько лет
Решил проверить
реакцию читателей
Написал пост
«Perl гавно!»
«Я смотрю в будущее и
 в будущем Perl нет!»
       Андрей Шетухин
Реакция на пост

• Пост удалили с planetperl.ru
• «Как сделать так, чтобы меня
  отпустило, пожалуйста»
• «Бог умер» (с) Ницше
• «БУДУЩЕЕ С RUBY!» Аноним
Язык Perl толком
 не поменялся
  с 2003 года
Качество и стиль
моего кода изменился
    очень сильно
2003
#---------------------------------------------------------------#
#                        index.cgi                              #
#            Стартовый файл - путеводитель                      #
#---------------------------------------------------------------#
require "functions.cgi";
$query = new CGI;
$user = get_user();
  print $query->header(-charset => 'windows-1251');
  for my $i(0..$#menu) {
   for (keys %{$menu[$i]}) {
    if ($query->param('menu') eq $_) {
     $title .= " :: $menu[$i]{$_}";
     html_head($title);
     html_menu();
     require "$_.cgi";
     html_right($user);
     html_foot();
    }}}
 exit(0);
# student.cgi

head_title('Студенты кафедры');
print "
   <tr>
    <td valign="top" id=left>

    </td>";
vertical_line();
$stud_way = "$path{student}/info.txt";
print "
    <td valign="top">";
print $site_construct;
print "
    </td>
   </tr>n";
foot_way($way{student});
2004
my $dbh = Tools::connect();

my $tpl = new CGI::FastTemplate($PATH{template});
$tpl->no_strict;
$tpl->define(%DEFINE);

my $q = new CGI;
if (my $page = $q->param('page')) {
       my $url_page = $URL{cgi}.$PARAM.$page;
       if (my $p = Tools::get_one($dbh, $MENU{1}, $page) {
    	

 print $q->header(-charset => 'windows-1251');
	

 	

          # информация о разделе меню
          my $m = Tools::get_one($dbh, $MENU{2}, $p->{menu});
          my $k = Tools::get_one($dbh, $SELECT{0}, undef);
          my (%assign);
          $assign{IMG} = $URL{images};
          $assign{CSS} = $URL{css};
          $assign{JS} = $URL{js};
our %SELECT = (
   # ФИО по id
   fio => "SELECT name FROM person WHERE id = ?",
   ...
   0 => "SELECT * FROM info",	

   # id персоны по виду д.з.с.
   1 => "SELECT person FROM dzsperson WHERE dzs = ?",
   # название д.з.с. по коду преподавателя и виду д.з.с.
   2 => "SELECT dzs.name
    	

    FROM dzsperson, dzs
	

       WHERE dzs.id = dzsperson.dzs AND dzsperson.person = ?AND
        	

 	

 dzs.kind = ? AND dzsperson.kind = '0' ",
);
unless ($topimg || -s "$PATH{topimg}/$topimg") {
    	

 $topimg = (substr($fio, -2, 2) eq 'ич')
           ? 'man.jpg'
           : 'woman.jpg';
	

 }
2005
my $REQUEST = (
	

   	

 {
	

   	

 	

 1 => sub {
	

   	

 	

 	

 require Apache;
	

   	

 	

 	

 my $r = shift || Apache->request || return;
	

   	

 	

 	

 $r->register_cleanup(sub {1});
	

   	

 	

 	

 return $r;
	

   	

 	

 },
	

   	

 	

 2 => sub {
	

   	

 	

 	

 require Apache2::Response;
	

   	

 	

 	

 require Apache2::RequestRec;
	

   	

 	

 	

 require Apache2::RequestUtil;
	

   	

 	

 	

 require Apache2::RequestIO;
	

   	

 	

 	

 require APR::Pool;
	

   	

 	

 	

 my $r = shift || Apache2::RequestUtil->request || return;
	

   	

 	

 	

 $r->pool->cleanup_register(sub {1});
	

   	

 	

 	

 return $r;
	

   	

 	

 },
	

   	

 }->{$ENV{'MOD_PERL'} && $ENV{'MOD_PERL_API_VERSION'}}
	

      ||
	

   	

 sub {}
	

   )->($config->{'request'});
my $self = $class->SUPER::new(
   %$config,
   'method' => $REQUEST
      ? $REQUEST->method
      : $ENV{'REQUEST_METHOD'},
   'type'     => $ENV{'CONTENT_TYPE'},
   'query' => $REQUEST
      ? $REQUEST->args
      : ( $ENV{'QUERY_STRING'}
         || $ENV{'REDIRECT_QUERY_STRING'}
        )
   ,
   'length' => $ENV{'CONTENT_LENGTH'},
   'stream' => *STDIN,
);
2010
use Mojolicious::Lite;

get '/rss' => sub {
	

 my $self = shift;
	

 my $DB = $self->app->db;
	

	

 $self->render(
	

 	

 format => 'rss',
	

 	

 list => $DB->select(
           'select * from url order by -id limit ' .
           CONF->{'limit'}->{'rss'}
        ),
	

 );
} => 'index';
«Хороший программист
всегда важнее хорошего
        языка»
         Тим Банс
«Плохие программисты
будут программировать
       нечитаемо
    на любом языке»
       Дамиан Конвей
Почему многие
программисты
ненавидят Perl?
И считают, что
   Perl умер
Либо они плохие
 программисты
Либо им пришлось
  поддерживать
     Perl-код
 1998–2005 гг. :)
Либо они завидуют
 живому мёртвому
      Perl
Perl – жив?!
Что нужно сделать,
 чтобы поменять
мнение хейтеров?
НИЧЕГО :)
Удалить весь
свой говнокод
Удалить из индексов
  Google и Яндекс
    говностатьи
 начала 2000х годов
Продолжать
программировать
     на Perl
И популяризировать
      это :)
P. S.
Perl – жив, хотя бы
потому что мы живы
и собрались здесь :)
use Perl
  or die
JFDI
Спасибо
за внимание!
 Анатолий Шарифулин
          sharifulin

More Related Content

What's hot

Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование LinuxAnthony Shoumikhin
 
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...Moscow.pm
 
Пластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать житьПластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать житьMoscow.pm
 
Present saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasovPresent saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasovPavel Vlasov
 
Не верь никому или разработка эффективных приложений (Как писать по настоящем...
Не верь никому или разработка эффективных приложений (Как писать по настоящем...Не верь никому или разработка эффективных приложений (Как писать по настоящем...
Не верь никому или разработка эффективных приложений (Как писать по настоящем...Moscow.pm
 
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"Yandex
 
Юрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWWЮрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWWPositive Hack Days
 
plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)ygoltsev
 
Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Git Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Git phpdevby
 
PHP Tricks
PHP TricksPHP Tricks
PHP TricksBlackFan
 
Что нового в PHP-5.3
Что нового в PHP-5.3 Что нового в PHP-5.3
Что нового в PHP-5.3 phpclub
 
PiterPy#3. DSL in Python. How and why?
PiterPy#3. DSL in Python. How and why?PiterPy#3. DSL in Python. How and why?
PiterPy#3. DSL in Python. How and why?Ivan Tsyganov
 
Python
PythonPython
Pythonpelid
 
Параллельные вычисления в Perl 6
Параллельные вычисления в Perl 6Параллельные вычисления в Perl 6
Параллельные вычисления в Perl 6Andrew Shitov
 

What's hot (19)

Почему Mojolicious?
Почему Mojolicious?Почему Mojolicious?
Почему Mojolicious?
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование Linux
 
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
 
Пластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать житьПластилиновый код: как перестать кодить и начать жить
Пластилиновый код: как перестать кодить и начать жить
 
Present saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasovPresent saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasov
 
Не верь никому или разработка эффективных приложений (Как писать по настоящем...
Не верь никому или разработка эффективных приложений (Как писать по настоящем...Не верь никому или разработка эффективных приложений (Как писать по настоящем...
Не верь никому или разработка эффективных приложений (Как писать по настоящем...
 
Comma
CommaComma
Comma
 
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"
 
Юрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWWЮрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWW
 
plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)
 
Funny JS #1
Funny JS #1Funny JS #1
Funny JS #1
 
Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Git Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Git
 
PHP Tricks
PHP TricksPHP Tricks
PHP Tricks
 
Что нового в PHP-5.3
Что нового в PHP-5.3 Что нового в PHP-5.3
Что нового в PHP-5.3
 
Парсер: что? зачем? как?
Парсер: что? зачем? как?Парсер: что? зачем? как?
Парсер: что? зачем? как?
 
new JavaScript
new JavaScriptnew JavaScript
new JavaScript
 
PiterPy#3. DSL in Python. How and why?
PiterPy#3. DSL in Python. How and why?PiterPy#3. DSL in Python. How and why?
PiterPy#3. DSL in Python. How and why?
 
Python
PythonPython
Python
 
Параллельные вычисления в Perl 6
Параллельные вычисления в Perl 6Параллельные вычисления в Perl 6
Параллельные вычисления в Perl 6
 

Viewers also liked

Tatarstan Guide to Investment 2010
Tatarstan Guide to Investment 2010Tatarstan Guide to Investment 2010
Tatarstan Guide to Investment 2010Derrick Staten
 
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Serguei Gitinsky
 
Аналитика приложений конкурентов в Google Play
Аналитика приложений конкурентов в Google PlayАналитика приложений конкурентов в Google Play
Аналитика приложений конкурентов в Google PlayAnatoly Sharifulin
 
То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...
То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...
То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...Anatoly Sharifulin
 

Viewers also liked (6)

Tatarstan Guide to Investment 2010
Tatarstan Guide to Investment 2010Tatarstan Guide to Investment 2010
Tatarstan Guide to Investment 2010
 
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
 
Iso 3166
Iso 3166Iso 3166
Iso 3166
 
ASO: Best Practices 2015
ASO: Best Practices 2015ASO: Best Practices 2015
ASO: Best Practices 2015
 
Аналитика приложений конкурентов в Google Play
Аналитика приложений конкурентов в Google PlayАналитика приложений конкурентов в Google Play
Аналитика приложений конкурентов в Google Play
 
То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...
То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...
То, что русскому — ФРИИ, финну — Startup Sauna. Опыт прохождения акселерации ...
 

Similar to Perl – жив?!

Разработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PIРазработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PIIlya Chesnokov
 
Anton Shabouta "Implementing async binary clients in pure PHP"
Anton Shabouta "Implementing async binary clients in pure PHP" Anton Shabouta "Implementing async binary clients in pure PHP"
Anton Shabouta "Implementing async binary clients in pure PHP" Fwdays
 
Страх и ненависть в исходном коде
Страх и ненависть в исходном кодеСтрах и ненависть в исходном коде
Страх и ненависть в исходном кодеKolya Korobochkin
 
Saint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demoSaint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demomegakott
 
Behat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и MinkBehat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и Minktyomo4ka
 
Psgi app
Psgi appPsgi app
Psgi appund3f
 
Миша Рудрастых: Введение в HTTP API WordPress
Миша Рудрастых: Введение в HTTP API WordPressМиша Рудрастых: Введение в HTTP API WordPress
Миша Рудрастых: Введение в HTTP API WordPressRuslan Begaliev
 
Интеграция Яндекс Сервер
Интеграция Яндекс СерверИнтеграция Яндекс Сервер
Интеграция Яндекс СерверPVasili
 
Web осень 2013 лекция 6
Web осень 2013 лекция 6Web осень 2013 лекция 6
Web осень 2013 лекция 6Technopark
 
Юрий Гольцев - Сервис Collider
Юрий Гольцев - Сервис ColliderЮрий Гольцев - Сервис Collider
Юрий Гольцев - Сервис ColliderPositive Hack Days
 
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...DevPoint Kyiv
 
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVCАрхитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVCDevDay
 
Web осень 2012 лекция 4
Web осень 2012 лекция 4Web осень 2012 лекция 4
Web осень 2012 лекция 4Technopark
 
MySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговMySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговSveta Smirnova
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов ИгорьPVasili
 

Similar to Perl – жив?! (20)

Mojolicious
MojoliciousMojolicious
Mojolicious
 
Perl in practice
Perl in practicePerl in practice
Perl in practice
 
Разработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PIРазработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PI
 
Anton Shabouta "Implementing async binary clients in pure PHP"
Anton Shabouta "Implementing async binary clients in pure PHP" Anton Shabouta "Implementing async binary clients in pure PHP"
Anton Shabouta "Implementing async binary clients in pure PHP"
 
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
 
Страх и ненависть в исходном коде
Страх и ненависть в исходном кодеСтрах и ненависть в исходном коде
Страх и ненависть в исходном коде
 
Saint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demoSaint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demo
 
Behat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и MinkBehat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и Mink
 
Yserver
YserverYserver
Yserver
 
Psgi app
Psgi appPsgi app
Psgi app
 
Миша Рудрастых: Введение в HTTP API WordPress
Миша Рудрастых: Введение в HTTP API WordPressМиша Рудрастых: Введение в HTTP API WordPress
Миша Рудрастых: Введение в HTTP API WordPress
 
Интеграция Яндекс Сервер
Интеграция Яндекс СерверИнтеграция Яндекс Сервер
Интеграция Яндекс Сервер
 
Web осень 2013 лекция 6
Web осень 2013 лекция 6Web осень 2013 лекция 6
Web осень 2013 лекция 6
 
Юрий Гольцев - Сервис Collider
Юрий Гольцев - Сервис ColliderЮрий Гольцев - Сервис Collider
Юрий Гольцев - Сервис Collider
 
Collider
ColliderCollider
Collider
 
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...
DevPoint 2016: Признаки плохого кода и как с ним бороться в PHP проектах - Па...
 
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVCАрхитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
 
Web осень 2012 лекция 4
Web осень 2012 лекция 4Web осень 2012 лекция 4
Web осень 2012 лекция 4
 
MySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговMySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации багов
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
 

More from Anatoly Sharifulin

Ещё один способ привлекать и удерживать пользователей в играх
Ещё один способ привлекать и удерживать пользователей в играхЕщё один способ привлекать и удерживать пользователей в играх
Ещё один способ привлекать и удерживать пользователей в играхAnatoly Sharifulin
 
ASO Аудит для приложений и игр
ASO Аудит для приложений и игрASO Аудит для приложений и игр
ASO Аудит для приложений и игрAnatoly Sharifulin
 
ASO для iOS 11 (продвижение In-App Prurchases)
ASO для iOS 11 (продвижение In-App Prurchases)ASO для iOS 11 (продвижение In-App Prurchases)
ASO для iOS 11 (продвижение In-App Prurchases)Anatoly Sharifulin
 
AppFollow митап в Москве
AppFollow митап в МосквеAppFollow митап в Москве
AppFollow митап в МосквеAnatoly Sharifulin
 
Конкурентный анализ мобильных приложений
Конкурентный анализ мобильных приложенийКонкурентный анализ мобильных приложений
Конкурентный анализ мобильных приложенийAnatoly Sharifulin
 
Аналитика приложений конкурентов
Аналитика приложений конкурентовАналитика приложений конкурентов
Аналитика приложений конкурентовAnatoly Sharifulin
 
Аналитика магазинов приложений
Аналитика магазинов приложенийАналитика магазинов приложений
Аналитика магазинов приложенийAnatoly Sharifulin
 
Аналитика мобильных приложений
Аналитика мобильных приложенийАналитика мобильных приложений
Аналитика мобильных приложенийAnatoly Sharifulin
 
Анализ приложений конкурентов
Анализ приложений конкурентовАнализ приложений конкурентов
Анализ приложений конкурентовAnatoly Sharifulin
 
ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»
ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»
ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»Anatoly Sharifulin
 
Продвижение мобильных приложений: с чего начать?
Продвижение мобильных приложений: с чего начать?Продвижение мобильных приложений: с чего начать?
Продвижение мобильных приложений: с чего начать?Anatoly Sharifulin
 
Основной продукт vs. мобильный на примере Ostrovok.ru
Основной продукт vs. мобильный на примере Ostrovok.ruОсновной продукт vs. мобильный на примере Ostrovok.ru
Основной продукт vs. мобильный на примере Ostrovok.ruAnatoly Sharifulin
 
ASO оптимизация и продвижение мобильных приложений
ASO  оптимизация и продвижение мобильных приложенийASO  оптимизация и продвижение мобильных приложений
ASO оптимизация и продвижение мобильных приложенийAnatoly Sharifulin
 
Удержание пользователя в приложении
Удержание пользователя в приложенииУдержание пользователя в приложении
Удержание пользователя в приложенииAnatoly Sharifulin
 
Мобильный сайт или мобильное приложение?
Мобильный сайт или мобильное приложение?Мобильный сайт или мобильное приложение?
Мобильный сайт или мобильное приложение?Anatoly Sharifulin
 
Мобильное приложение Ostrovok.ru: зачем оно нужно, если есть «букинг»?
Мобильное приложение Ostrovok.ru: зачем оно нужно, если есть «букинг»?Мобильное приложение Ostrovok.ru: зачем оно нужно, если есть «букинг»?
Мобильное приложение Ostrovok.ru: зачем оно нужно, если есть «букинг»?Anatoly Sharifulin
 

More from Anatoly Sharifulin (20)

Ещё один способ привлекать и удерживать пользователей в играх
Ещё один способ привлекать и удерживать пользователей в играхЕщё один способ привлекать и удерживать пользователей в играх
Ещё один способ привлекать и удерживать пользователей в играх
 
ASO Аудит для приложений и игр
ASO Аудит для приложений и игрASO Аудит для приложений и игр
ASO Аудит для приложений и игр
 
ASO для iOS 11 (продвижение In-App Prurchases)
ASO для iOS 11 (продвижение In-App Prurchases)ASO для iOS 11 (продвижение In-App Prurchases)
ASO для iOS 11 (продвижение In-App Prurchases)
 
ASO для iOS 11
ASO для iOS 11ASO для iOS 11
ASO для iOS 11
 
AppFollow митап в Москве
AppFollow митап в МосквеAppFollow митап в Москве
AppFollow митап в Москве
 
ASO Best Practices 2016
ASO Best Practices 2016ASO Best Practices 2016
ASO Best Practices 2016
 
ASO FAQ
ASO FAQASO FAQ
ASO FAQ
 
AppFollow Demo Day ФРИИ
AppFollow Demo Day ФРИИAppFollow Demo Day ФРИИ
AppFollow Demo Day ФРИИ
 
Конкурентный анализ мобильных приложений
Конкурентный анализ мобильных приложенийКонкурентный анализ мобильных приложений
Конкурентный анализ мобильных приложений
 
Аналитика приложений конкурентов
Аналитика приложений конкурентовАналитика приложений конкурентов
Аналитика приложений конкурентов
 
Аналитика магазинов приложений
Аналитика магазинов приложенийАналитика магазинов приложений
Аналитика магазинов приложений
 
Аналитика мобильных приложений
Аналитика мобильных приложенийАналитика мобильных приложений
Аналитика мобильных приложений
 
Анализ приложений конкурентов
Анализ приложений конкурентовАнализ приложений конкурентов
Анализ приложений конкурентов
 
ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»
ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»
ASO оптимизация мобильных приложений: «Что такое хорошо и что такое плохо?»
 
Продвижение мобильных приложений: с чего начать?
Продвижение мобильных приложений: с чего начать?Продвижение мобильных приложений: с чего начать?
Продвижение мобильных приложений: с чего начать?
 
Основной продукт vs. мобильный на примере Ostrovok.ru
Основной продукт vs. мобильный на примере Ostrovok.ruОсновной продукт vs. мобильный на примере Ostrovok.ru
Основной продукт vs. мобильный на примере Ostrovok.ru
 
ASO оптимизация и продвижение мобильных приложений
ASO  оптимизация и продвижение мобильных приложенийASO  оптимизация и продвижение мобильных приложений
ASO оптимизация и продвижение мобильных приложений
 
Удержание пользователя в приложении
Удержание пользователя в приложенииУдержание пользователя в приложении
Удержание пользователя в приложении
 
Мобильный сайт или мобильное приложение?
Мобильный сайт или мобильное приложение?Мобильный сайт или мобильное приложение?
Мобильный сайт или мобильное приложение?
 
Мобильное приложение Ostrovok.ru: зачем оно нужно, если есть «букинг»?
Мобильное приложение Ostrovok.ru: зачем оно нужно, если есть «букинг»?Мобильное приложение Ostrovok.ru: зачем оно нужно, если есть «букинг»?
Мобильное приложение Ostrovok.ru: зачем оно нужно, если есть «букинг»?
 

Perl – жив?!