SlideShare a Scribd company logo
Прелюдия
Какой фрэймворк выбрать?
Front-end
?
ЧтотакоеFullStackFramework?Какиеунегодолжныбытьвозможности?
Какиепроблемыондолженрешать?

FullStackFramework
Однакодоваябаза
Что такое Full Stack Framework? Какие у него должны быть возможности?
Какие проблемы он должен решать?

Full Stack Framework
АвтономныйAJAX‍
Однакодоваябаза
Что такое Full Stack Framework? Какие у него должны быть возможности?
Какие проблемы он должен решать?

Full Stack Framework
МутацияDOM
АвтономныйAJAX‍
Однакодоваябаза
Что такое Full Stack Framework? Какие у него должны быть возможности?
Какие проблемы он должен решать?

Full Stack Framework
СовместимостьсSEO
РендерингHTML
МутацияDOM
АвтономныйAJAX‍
Однакодоваябаза
ЧтотакоеFullStackFramework?Какиеунегодолжныбытьвозможности?
Какиепроблемыондолженрешать?

FullStackFramework
Livewire is awesome at building front-end
interactivity without writing any
JavaScript at all. It’s completely changed
the way I write and think about web apps.
Решение
Laravel Livewire
Vue Blade
If Vue and Blade had a baby, it would be a jellyfish
Livewire: что за зверь?
Bringing simplicity, joy, and order to web
development
The автор
Hi, I’m Caleb. ‍♂ ️I left my day job in January,
2019 to pursue open source. Since then,
I’ve built Laravel Livewire, AlpineJS, and a
bunch of other stuff. My mission is to make
web development as productive and joyful
as possible. That’s why I build and teach
the things I do. That’s what drives me every
day. Oh, and I’m also severely addicted
to fly fishing.
Bringing simplicity, joy, and order to web
development
The автор
Hi, I’m Caleb. ‍♂ ️I left my day job in January,
2019 to pursue open source. Since then,
I’ve built Laravel Livewire, AlpineJS, and a
bunch of other stuff. My mission is to make
web development as productive and joyful
as possible. That’s why I build and teach
the things I do. That’s what drives me every
day. Oh, and I’m also severely addicted
to fly fishing.
Good-Hearted Folks Sponsorware
Фаза 2 Фаза 3
Фаза 1
Screencasts
How He Did Hit $100k/yr On GitHub Sponsors! ️
Спонсирование
УстановкаLivewire
composerrequirelivewire/livewire
УстановкаLivewire
//resources/views/layout.blade.php


...


</ >

< >

...



</ >

</ >
head
body
body
html
1

2

3

4

5

6

7

8

9

0

10

11

12
УстановкаLivewire
//resources/views/layout.blade.php


...

</ >

< >

...


</ >

</ >
@livewireStyles

@livewireScripts

head
body
body
html
1

2

3

4

5

6

7

8

9

0

10

11

12
Контакт
Демонстрация
Счётчик
Создание компонента
// app/Http/Livewire/Counter.php


livewire.counter
namespace
use
App Http Livewire
Livewire Component
  ;


 ;


{

()

{

view(' ');

}

}
class extends
public function
return
Counter Component

render
1

2

3

4

5

6

7

8

9

0

10

11

12
//resources/views

/livewire/counter.blade.php


< >

...

</ >
div
div
1

2

3

4

5

6

7

8

9

0

10

11

12
Реализация счётчика
// app/Http/Livewire/Counter.php

// ...


// ...

class extends
public
public function
{

$ = ;


()

{

$this-> ++;

}

}
Counter Component

count 0
count
increment
1

2

3

4

5

6

7

8

9

0

10

11

12
//resources/views

/livewire/counter.blade.php


text-align: center
increment
< =" ">

<
=" "

> </ >

< > </ >

</ >
div
button

button
h1 h1
div
style
wire:click
+
{{ $count }}
1

2

3

4

5

6

7

8

9

0

10

11

12
Клиент
Сервер
Графическая демонстрация работы компонента
Компонент: счётчик
<h1>1</h1>

{ count: 1 } { count: 1 }
<h1>2</h1>

{ count: 2 }
первоначальный запрос последующий запрос
первый визит клик на кнопку “+”
Клиент
Сервер
Графическая демонстрация работы компонента
Компонент: счётчик
<h1>1</h1>

{ count: 1 } { count: 1 }
<h1>2</h1>

{ count: 2 }
первоначальный запрос последующий запрос
первый визит клик на кнопку “+”
Клиент
Сервер
Графическая демонстрация работы компонента
Компонент: счётчик
<h1>1</h1>

{ count: 1 } { count: 1 }
<h1>2</h1>

{ count: 2 }
первоначальный запрос последующий запрос
первый визит клик на кнопку “+”
Обычные возможности
Обычные возможности
FormValidation
Events
Components
LifecycleHooks
Actions
DataBinding
< >


</ >
div
div
1

2

3

4

5

6
class extends
User Component

{


}
1

2

3

4
Связывание данных
Свойства компонентов
< >


 

</ >
div
div
< > </ >

h1 h1
{{ $first_name }}
1

2

3

4

5

6
class extends
User Component

{

}
public $ ;

first_name
1

2

3

4
Однонаправленное связывание данных
Свойства компонентов
< >

 

< > </ >

</ >
div
h1 h1
div
< =" " =" ">

input wire:model type
first_name text
{{ $first_name }}
1

2

3

4

5

6
class extends
User Component

{

}
public $ ;

first_name
1

2

3

4
Двунаправленное связывание данных
Свойства компонентов
class extends
UserComponent Component

{











}
1

2

3

4

5

6

7

8

9

10

11

12

13
Связывание данных: модель
Свойства компонентов
class extends
UserComponent Component

{

 








}
public User $ ;


user
1

2

3

4

5

6

7

8

9

10

11

12

13
Связывание данных: модель
Свойства компонентов
class extends
public
UserComponent Component

User
{

$ ;


([

}

}
user
public function save
validate
save
()

{

$this->
' ' => ' '
,

' ' => ' '
,

];

$this-> -> ();

user.first_name required|string
user.last_name required|string
user
1

2

3

4

5

6

7

8

9

10

11

12

13
Связывание данных: модель
Свойства компонентов
class extends
public
public function
UserComponent Component

User
{

()

{

$this-> ([

' ' => ' '
,

' ' => ' '
,

];

}

}
$ ;


$this-> -> ();

user
user
save
validate
user.first_name
user.last_name
required|string
required|string
save
1

2

3

4

5

6

7

8

9

10

11

12

13
Связывание данных: модель
Свойства компонентов
< =" ">

 


 

< =" "> </ >

</ >
form
button button
form
wire:submit.prevent
type
save
submit Save
1

2

3

4

5

6

7

8

9

10

11

12

13
Связывание данных: модель и представление
Свойства компонентов
< =" ">

 

< =" "> </ >

</ >
form
button button
form
wire:submit.prevent
type
save
submit
< =" " =" ">

 

< =" " =" ">

input
input
type wire:model
type wire:model
text user.first_name
text user.last_name
Save
1

2

3

4

5

6

7

8

9

10

11

12

13
Связывание данных: модель и представление
Свойства компонентов
Плюсы и минусы
Связывание данных
клёвовыглядит
несложно
режимlive
Плюсы и минусы
Связывание данных
Связывание данных: debounce
Свойства компонентов
150 мс
Клиент Сервер
<input type="text" ="name">
wire:model.debounce.500ms
1

2

3

4

Связывание данных: debounce
Свойства компонентов
500 мс
Клиент Сервер
Связывание данных: lazy
Свойства компонентов
change
Клиент Сервер
<input type="text" ="name">
wire:model.lazy
1

2

3

4

Связывание данных: lazy
Свойства компонентов
unfocus
Клиент Сервер
Связывание данных: defer
Свойства компонентов
defer
Клиент Сервер
<input type="text" ="name">

<button >Save</button>
wire:model.defer
wire:click=" "
save
1

2

3

4

Связывание данных: defer
Свойства компонентов
defer
Клиент Сервер
<input type="text" ="name">

<button >Save</button>
wire:model.defer
wire:click=" "
save
1

2

3

4

Связывание данных: defer
Свойства компонентов
save

2 действия в одном запросе
Клиент Сервер
Реакция на взаимодействие со страницей
Действия
wire:submit
	wire:keydown
wire:click
ACTION
Действие: click
< >

< =" ">

</ >

</ >
div
button
button
div
wire:click like
Like

1

2

3

4

5

6

7

8

9

0

10

11

12
class extends
public
public function
addLikeBy
ShowPost Component

Post
{

$ ;


()

{

$this->
-> ( ()-> ());

}

}
post
post

like
auth user
1

2

3

4

5

6

7

8

9

0

10

11

12
Действие: click
< >

< >

</ >

</ >
div
button
button
div
wire:click=" "
like
Like

1

2

3

4

5

6

7

8

9

0

10

11

12
class extends
public
ShowPost Component

Post
{

$ ;


$this->
-> ( ()-> ());

}
()

{

}

post
post

public function like
addLikeBy auth user
1

2

3

4

5

6

7

8

9

0

10

11

12
Действие с параметрами
< =" ">

</ >
button
button
wire:click like({{ $post->id }})
Like

1

2

3
public function ($ ) { ... }


like id
public function
public function
public function
like
like
like
( $ ) { ... }


( $ , $ ) { ... }


( $ , $ ) { ... }
Post
LikeService
LikeService Post
post
service id
service post
1

2

3

4

5

6

7

8
Действие с параметрами
< =" ">

</ >
button
button
wire:click like({{ $post->id }})
Like

1

2

3
public function
public function
public function
( $ ) { ... }


like
like
like
($ ) { ... }


( $ , $ ) { ... }


( $ , $ ) { ... }
id
service id
service post
public function like Post post
LikeService
LikeService Post
1

2

3

4

5

6

7

8
Действие с параметрами
< =" ">

</ >
button
button
wire:click like({{ $post->id }})
Like

1

2

3
public function
public function
public function
( $ , $ ) { ... }


like
like
like
($ ) { ... }


( $ ) { ... }


( $ , $ ) { ... }
id
post
service post
Post
LikeService Post
public function like LikeService service id
1

2

3

4

5

6

7

8
Действие с параметрами
< =" ">

</ >
button
button
wire:click like({{ $post->id }})
Like

1

2

3
public function
public function
public function
( $ , $ ) { ... }
like
like
like
($ ) { ... }


( $ ) { ... }


( $ , $ ) { ... }


id
post
service id
Post
LikeService
public function like LikeService Post
service post
1

2

3

4

5

6

7

8
Действие Описание
Public Launch March 2018
$refresh
$set('property', value)
$toggle('property')	
$emit('event', ...params)
$event
рендеринг компонента
обновление свойства
переключатель boolean
запуск события
пойманное события
Куда в PHP без магии?🪄
Магические действия
Демонстрация
To-Do List
изшаблона
< =" ">
button wire:click $emit('liked')
Методы отправки
События
изшаблона
< =" ">
button wire:click $emit('liked')
Методы отправки
События
изкомпонента
$this-> (' ');

emit liked
из JavaScript
< > </ >
script script
Livewire.emit('liked')
из шаблона
< =" ">
button wire:click $emit('liked')
Методы отправки
События
из компонента
$this-> (' ');

emit liked
из JavaScript
< > </ >
script script
Livewire.emit('liked')
из шаблона
< =" ">
button wire:click $emit('liked', {{ $post->id }})
Методы отправки
События
из компонента
$this-> (' ', $ -> );

emit liked post id
Обработка события
class extends
Post Component

{

}
1

2

3

4

5

6

7

8

9

0

10

11

12
Обработка события
class extends
{

 

 






}
Post Component

public $ ;

likes
1

2

3

4

5

6

7

8

9

0

10

11

12
Обработка события
class extends
{

 


 

}
Post Component

public
public function
$ ;

( $ )

{

$this-> = $ -> ()-> ();

}

likes
post
likes post
refresh
likes count
Post
1

2

3

4

5

6

7

8

9

0

10

11

12
Обработка события
class extends
public
public function
{

$ ;

( $ )

{

$this-> = $ -> ()-> ();

}

}
Post Component

Post
 

 

refresh
likes count
likes
post
likes post
protected $ = [' ' => ' '];

listeners like refresh
1

2

3

4

5

6

7

8

9

0

10

11

12
Демонстрация
To-Do List: интеграция событий
Продвинутые возможности
Socket Friendly
Pagination
Authorization
File Uploads
Продвинутые возможности
1

2

3

4

5

6

7

8

9

10

11

12

13
Активация турбо-ядерной фичи в компоненте
Загрузка файлов
use LivewireWithFileUploads;

 

class FileUpload extends Component

{

use WithFileUploads;


 






}
use
use
Livewire WithFileUploads
WithFileUploads
 ;

;


 






class extends
FileUpload Component

{

}
1

2

3

4

5

6

7

8

9

10

11

12

13
Активация турбо-ядерной фичи в компоненте
Загрузка файлов
use LivewireWithFileUploads;

 

class FileUpload extends Component

{

use WithFileUploads;


public $file;

 

 




}
1

2

3

4

5

6

7

8

9

10

11

12

13
use
use
Livewire WithFileUploads
WithFileUploads
 ;

$ ;

class extends
FileUpload Component

{

;


}
public file
1

2

3

4

5

6

7

8

9

10

11

12

13
Активация турбо-ядерной фичи в компоненте
Загрузка файлов
use LivewireWithFileUploads;

 

class FileUpload extends Component

{

use WithFileUploads;


public $file;

 

public function save()

{

$this->file->store('files');

}

}
1

2

3

4

5

6

7

8

9

10

11

12

13
use
use
Livewire WithFileUploads
WithFileUploads
file
file
 ;

{

;


$ ;

()

{

$this-> -> (' ');

}

}
class extends
public
public function
FileUpload Component

files
save
store
1

2

3

4

5

6

7

8

9

10

11

12

13
Активация турбо-ядерной фичи в компоненте
Загрузка файлов
<form wire:submit.prevent="save">

<input type="file" wire:model="file">

 


 

<button type="submit">Save File</button>

</form>
1

2

3

4

5

6

7

8

9

10

11

12

13
< =" ">

< =" "> </ >

</ >
form
button button
form
 


 

Save File
wire:submit.prevent
type
save
submit
< =" " =" ">

input type wire:model
file file
1

2

3

4

5

6

7

8

9

10

11

12

13
Активация турбо-ядерной фичи в представлении
Загрузка файлов
<form wire:submit.prevent="save">

<input type="file" wire:model="file">

 

@error('file') <span class="error">{{ $message }}</span> @enderror

 

<button type="submit">Save File</button>

</form>
1

2

3

4

5

6

7

8

9

10

11

12

13
< =" ">

< =" " =" ">

< =" "> </ >
< =" "> </ >

</ >
form
input
span span
button button
form
wire:submit.prevent
type wire:model
class
type
save
file file
error
submit
@error('file') {{ $message }} @enderror

Save File
1

2

3

4

5

6

7

8

9

10

11

12

13
Активация турбо-ядерной фичи в представлении
Загрузка файлов
class FileUpload extends Component

{

 








}
1

2

3

4

5

6

7

8

9

10

11

12

13
class extends
FileUpload Component

{

}
1

2

3

4

5

6

7

8

9

10

11

12

13
Активация турбо-ядерной фичи в компоненте
Загрузка файлов
use LivewireWithFileUploads;

 

class FileUpload extends Component

{

use WithFileUploads;


public $file;

 

public function save()

{

$this->file->store('files');

}

}
1

2

3

4

5

6

7

8

9

10

11

12

13
use
use
Livewire WithFileUploads
WithFileUploads
file
 ;

{

;


$ ;

}
class extends
public
FileUpload Component

()

{

$this-> -> (' ');

}

file files
public function save
store
1

2

3

4

5

6

7

8

9

10

11

12

13
Активация турбо-ядерной фичи в компоненте
Загрузка файлов
class FileUpload extends Component

{

use WithFileUploads;

 

public function save()

{

$this->validate([

'file' => 'required|in:pdf|max:10240',

]);


$this->file->store('files');

}

}
1

2

3

4

5

6

7

8

9

10

11

12

13
class extends
public function
FileUpload Component

{

;

 

()

{

$this-> -> (' ');

}

}
use WithFileUploads
save
file store
file required|in:pdf|max:10240
$this-> ([

' ' => ' ',

]);


validate
files
1

2

3

4

5

6

7

8

9

10

11

12

13
Валидация файла перед сохранением
Загрузка файлов
1

2

3

4

5

6

7

8

9

10

11

12

13
1

2

3

4

5

6

7

8

9

10

11

12

13
Активация турбо-ядерной фичи в представлении
Загрузка файлов
<form wire:submit.prevent="save">

 




<button type="submit">Save File</button>

</form>
1

2

3

4

5

6

7

8

9

10

11

12

13
< =" ">

< =" "> </ >

</ >
form
button button
form
wire:submit.prevent
type
save
submit Save File
1

2

3

4

5

6

7

8

9

10

11

12

13
Активация турбо-ядерной фичи в представлении
Загрузка файлов
<form wire:submit.prevent="save">

<input type="file" wire:model="file">

 

@error('file') <span class="error">{{ $message }}</span> @enderror

 

<button type="submit">Save File</button>

</form>
1

2

3

4

5

6

7

8

9

10

11

12

13
< =" ">

< =" " ="file">

< =" "> </ >

</ >
form
input
button button
form
 

 

Save File
wire:submit.prevent
type wire:model
type
save
file
submit
@error('file') {{ $message }} @enderror

< =" "> </ >
span span
class error
1

2

3

4

5

6

7

8

9

10

11

12

13
Активация турбо-ядерной фичи в представлении
Загрузка файлов
Что под капотом?
Загрузка файлов
1. Запрос на сервер

за временным URL для загрузки
Что под капотом?
Загрузка файлов
1. Запрос на сервер

за временным URL для загрузки
2. Загрузка файла по URL,

сохранение во временном каталоге
Что под капотом?
Загрузка файлов
<form wire:submit.prevent="save">

@if ($file)

File Preview:

<a href="{{ $file->temporaryUrl() }}">

@endif


<input type="file" wire:model="file">

 

@error('file') <span class="error">{{ $message }}</span> @enderror

 

<button type="submit">Save File</button>

</form>
1

2

3

4

5

6

7

8

9

10

11

12

13
< =" ">

< =" " ="file">

< =" "> </ >
< =" "> </ >

</ >
form
input
span span
button button
form
 

@error('file') {{ $message }} @enderror

 

Save File
wire:submit.prevent
type wire:model
class
type
save
file
error
submit
@if ($file)

File Preview:

@endif


< =" ">

a href {{ $file->temporaryUrl() }}
1

2

3

4

5

6

7

8

9

10

11

12

13
Отображение ссылки на временный файл
Загрузка файлов
1. Запрос на сервер

за временным URL для загрузки
2. Загрузка файла по URL,

сохранение во временном каталоге
3. Передача информации о файле в
соответствующее публичное поле компонента
Что под капотом?
Загрузка файлов
1. Запрос на сервер

за временным URL для загрузки
2. Загрузка файла по URL,

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

Что под капотом?
Загрузка файлов
Демонстрация
Галерея
Минусы. Сложности
Загрузка файлов
#1. Отсутствие валидации на стороне фронта ️
️
Минусы. Сложности
Загрузка файлов
#2. Невозможность работы с моделью
use LivewireWithFileUploads;

 

class FileUpload extends Component

{

use WithFileUploads;


public Report $report; // ->file

 

 




}
1

2

3

4

5

6

7

8

9

10

11

12

13
use
use
Livewire WithFileUploads
WithFileUploads
 ;

{

;


}
class extends
FileUpload Component

$ ;
public report
Report // ->file

 




1

2

3

4

5

6

7

8

9

10

11

12

13
Проблема: невозможность работы с моделью
Загрузка файлов
use LivewireWithFileUploads;

 

class FileUpload extends Component

{

use WithFileUploads;


public Report $report; // ->file

 

public function save()

{

$this->report->file->store('files'); // не пашет

}

}
1

2

3

4

5

6

7

8

9

10

11

12

13
use
use
Livewire WithFileUploads
WithFileUploads
 ;

{

;


}
class extends
FileUpload Component

$ ;
()

{

$this-> -> -> (' ');
}

public
public function
report
report file
Report // ->file

files // не пашет

save
store
1

2

3

4

5

6

7

8

9

10

11

12

13
Проблема: невозможность работы с моделью
Загрузка файлов
Best Practices
#1. Архитектурный подход
Best Practices
Service Repository Model
Controller
#1. Архитектурный подход
Best Practices
Service Repository Model
Controller
#1. Архитектурный подход
Best Practices
Service Repository Model
Controller
#1. Архитектурный подход
Best Practices
Service Repository Model
Component
#1. Архитектурный подход
Best Practices
Service Repository Model
API
Демонстрация
To-Do List на паттерне Repository-Service
#2. Компоненты blade
Best Practices
Don'trepeatyourself
#2. Компоненты blade
Best Practices
<
=" "

=" "

=" "

=" "

="
"

=" "

/>
x-input

name
type
placeholder
help
required

:label
:grid
email
email
default
Input information text.
[

'class' => 'custom-label-class',

'text' => 'Email Address',

]
['col-sm-3', 'col-sm-9']
1

2

3

4

5

6

7

8

9

10

11

12

13
#2. Компоненты blade
Best Practices
< =" ">

< =" ">

</ >


< =" ">

< =" " =" " =" " 

=" " =" " =" ">

< =" " =" ">

</ >


< =" ">

</ >

</ >

</ >
div
label
label
div
input
small
small
div
div
div
div
class
class
class
class type name
placeholder required id
id class
class
form-group form-row
col-sm-3 custom-label-class" for="input-email
col-sm-9
form-control is-valid email email
default required input-email
help-email form-text text-muted
valid-feedback
Email Address

Input information text.

Looks good!

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17
#2. Компоненты blade
Best Practices
<
=" "

=" "

=" "

=" "

="
"

=" "

/>
x-input

=" "

wire:model email
name
type
placeholder
help
required

:label
:grid
email
email
default
Input information text.
[

'class' => 'custom-label-class',

'text' => 'Email Address',

]
['col-sm-3', 'col-sm-9']
1

2

3

4

5

6

7

8

9

10

11

12

13
#2. Компоненты blade: идеальная схема
Best Practices
x-input

x-checkbox

x-select

x-textarea

x-datetime

...
#2. Компоненты blade: идеальная схема
Best Practices
x-input

x-checkbox

x-select

x-textarea

x-datetime

...
#2. Компоненты blade: идеальная схема
Best Practices
x-input

x-checkbox

x-select

x-textarea

x-datetime

...
x-input

x-checkbox

x-select

x-textarea

x-datetime

...
#2. Компоненты blade: идеальная схема
Best Practices
#2. Компоненты blade: идеальная схема
Best Practices
#2. Компоненты blade: идеальная схема
Best Practices
BLADE

components
=
Альтернатива
inertia
Альтернатива
LiveWire VS Inertia
Альтернатива
Model Controller View Client
LiveWire
DB
LiveWire VS Inertia
Альтернатива
Model Controller View Client
LiveWire
DB
Model Controller
inertia
Vue

React

Angular
Client
DB
LiveWire VS Inertia
Альтернатива
Бонус
Событие
Интеграция с сокетами
class implements
public function
{

, , ;

 

()

{

return (' ');

}

}
Event ShouldBroadcast

Dispatchable InteractsWithSockets SerializesModels
Channel
use
new
broadcastOn
channel
1

2

3

4

5

6

7

8

9

10

11

12

13
Событие
Интеграция с сокетами
class extends
public
protected
public function
{

$ = false;

 

$ = [' ' => ' '];

 

()

{

$this-> = true;

}

}
Handler Component

eventHandled
listeners
eventHandled
echo:channel,Event handle
handle
1

2

3

4

5

6

7

8

9

10

11

12

13
Демонстрация
Игра

More Related Content

What's hot

Metrics-Driven Engineering at Etsy
Metrics-Driven Engineering at EtsyMetrics-Driven Engineering at Etsy
Metrics-Driven Engineering at EtsyMike Brittain
 
Testing persistence in PHP with DbUnit
Testing persistence in PHP with DbUnitTesting persistence in PHP with DbUnit
Testing persistence in PHP with DbUnitPeter Wilcsinszky
 
ES6: The Awesome Parts
ES6: The Awesome PartsES6: The Awesome Parts
ES6: The Awesome Parts
Domenic Denicola
 
Owl: The New Odoo UI Framework
Owl: The New Odoo UI FrameworkOwl: The New Odoo UI Framework
Owl: The New Odoo UI Framework
Odoo
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I think
Wim Godden
 
React, Redux and es6/7
React, Redux and es6/7React, Redux and es6/7
React, Redux and es6/7
Dongho Cho
 
ES6, 잘 쓰고 계시죠?
ES6, 잘 쓰고 계시죠?ES6, 잘 쓰고 계시죠?
ES6, 잘 쓰고 계시죠?
장현 한
 
React Native: JS MVC Meetup #15
React Native: JS MVC Meetup #15React Native: JS MVC Meetup #15
React Native: JS MVC Meetup #15
Rob Gietema
 
Keeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and WebpackKeeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and Webpack
Ignacio Martín
 
Avoiding callback hell in Node js using promises
Avoiding callback hell in Node js using promisesAvoiding callback hell in Node js using promises
Avoiding callback hell in Node js using promises
Ankit Agarwal
 
The Promised Land (in Angular)
The Promised Land (in Angular)The Promised Land (in Angular)
The Promised Land (in Angular)
Domenic Denicola
 
Django Celery - A distributed task queue
Django Celery - A distributed task queueDjango Celery - A distributed task queue
Django Celery - A distributed task queue
Alex Eftimie
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the code
Wim Godden
 
Build Lightweight Web Module
Build Lightweight Web ModuleBuild Lightweight Web Module
Build Lightweight Web ModuleMorgan Cheng
 
Redux vs Alt
Redux vs AltRedux vs Alt
Redux vs Alt
Uldis Sturms
 
HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?
Remy Sharp
 
When dynamic becomes static: the next step in web caching techniques
When dynamic becomes static: the next step in web caching techniquesWhen dynamic becomes static: the next step in web caching techniques
When dynamic becomes static: the next step in web caching techniques
Wim Godden
 
Workshop 1: Good practices in JavaScript
Workshop 1: Good practices in JavaScriptWorkshop 1: Good practices in JavaScript
Workshop 1: Good practices in JavaScript
Visual Engineering
 

What's hot (20)

Metrics-Driven Engineering at Etsy
Metrics-Driven Engineering at EtsyMetrics-Driven Engineering at Etsy
Metrics-Driven Engineering at Etsy
 
Testing persistence in PHP with DbUnit
Testing persistence in PHP with DbUnitTesting persistence in PHP with DbUnit
Testing persistence in PHP with DbUnit
 
ES6: The Awesome Parts
ES6: The Awesome PartsES6: The Awesome Parts
ES6: The Awesome Parts
 
Owl: The New Odoo UI Framework
Owl: The New Odoo UI FrameworkOwl: The New Odoo UI Framework
Owl: The New Odoo UI Framework
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I think
 
React, Redux and es6/7
React, Redux and es6/7React, Redux and es6/7
React, Redux and es6/7
 
Having Fun with Play
Having Fun with PlayHaving Fun with Play
Having Fun with Play
 
Promise pattern
Promise patternPromise pattern
Promise pattern
 
ES6, 잘 쓰고 계시죠?
ES6, 잘 쓰고 계시죠?ES6, 잘 쓰고 계시죠?
ES6, 잘 쓰고 계시죠?
 
React Native: JS MVC Meetup #15
React Native: JS MVC Meetup #15React Native: JS MVC Meetup #15
React Native: JS MVC Meetup #15
 
Keeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and WebpackKeeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and Webpack
 
Avoiding callback hell in Node js using promises
Avoiding callback hell in Node js using promisesAvoiding callback hell in Node js using promises
Avoiding callback hell in Node js using promises
 
The Promised Land (in Angular)
The Promised Land (in Angular)The Promised Land (in Angular)
The Promised Land (in Angular)
 
Django Celery - A distributed task queue
Django Celery - A distributed task queueDjango Celery - A distributed task queue
Django Celery - A distributed task queue
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the code
 
Build Lightweight Web Module
Build Lightweight Web ModuleBuild Lightweight Web Module
Build Lightweight Web Module
 
Redux vs Alt
Redux vs AltRedux vs Alt
Redux vs Alt
 
HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?
 
When dynamic becomes static: the next step in web caching techniques
When dynamic becomes static: the next step in web caching techniquesWhen dynamic becomes static: the next step in web caching techniques
When dynamic becomes static: the next step in web caching techniques
 
Workshop 1: Good practices in JavaScript
Workshop 1: Good practices in JavaScriptWorkshop 1: Good practices in JavaScript
Workshop 1: Good practices in JavaScript
 

Similar to "Full Stack frameworks or a story about how to reconcile Front (good) and Back (evil)", Stanislav Protasevich

Migrating from Struts 1 to Struts 2
Migrating from Struts 1 to Struts 2Migrating from Struts 1 to Struts 2
Migrating from Struts 1 to Struts 2
Matt Raible
 
Backbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCBackbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVC
pootsbook
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)Carles Farré
 
How to perform debounce in react
How to perform debounce in reactHow to perform debounce in react
How to perform debounce in react
BOSC Tech Labs
 
Going web native
Going web nativeGoing web native
Going web native
Marcus Hellberg
 
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
James Titcumb
 
Drupal 7 module development
Drupal 7 module developmentDrupal 7 module development
Drupal 7 module developmentAdam Kalsey
 
The state of Symfony2 - SymfonyDay 2010
The state of Symfony2 - SymfonyDay 2010The state of Symfony2 - SymfonyDay 2010
The state of Symfony2 - SymfonyDay 2010Fabien Potencier
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
Sagar Nakul
 
Struts,Jsp,Servlet
Struts,Jsp,ServletStruts,Jsp,Servlet
Struts,Jsp,Servlet
dasguptahirak
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet Sagar Nakul
 
Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)
James Titcumb
 
What's New In Laravel 5
What's New In Laravel 5What's New In Laravel 5
What's New In Laravel 5
Darren Craig
 
Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Chris Alfano
 
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
James Titcumb
 
Struts 2 + Spring
Struts 2 + SpringStruts 2 + Spring
Struts 2 + Spring
Bryan Hsueh
 
Frontin like-a-backer
Frontin like-a-backerFrontin like-a-backer
Frontin like-a-backer
Frank de Jonge
 
Geek Moot '09 -- Smarty 101
Geek Moot '09 -- Smarty 101Geek Moot '09 -- Smarty 101
Geek Moot '09 -- Smarty 101
Ted Kulp
 
Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12
Michelangelo van Dam
 

Similar to "Full Stack frameworks or a story about how to reconcile Front (good) and Back (evil)", Stanislav Protasevich (20)

Migrating from Struts 1 to Struts 2
Migrating from Struts 1 to Struts 2Migrating from Struts 1 to Struts 2
Migrating from Struts 1 to Struts 2
 
Backbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCBackbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVC
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
 
How to perform debounce in react
How to perform debounce in reactHow to perform debounce in react
How to perform debounce in react
 
Going web native
Going web nativeGoing web native
Going web native
 
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
 
Drupal 7 module development
Drupal 7 module developmentDrupal 7 module development
Drupal 7 module development
 
The state of Symfony2 - SymfonyDay 2010
The state of Symfony2 - SymfonyDay 2010The state of Symfony2 - SymfonyDay 2010
The state of Symfony2 - SymfonyDay 2010
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
 
Struts,Jsp,Servlet
Struts,Jsp,ServletStruts,Jsp,Servlet
Struts,Jsp,Servlet
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
 
Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP Srbija 2017)
 
What's New In Laravel 5
What's New In Laravel 5What's New In Laravel 5
What's New In Laravel 5
 
Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011
 
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
 
Struts Overview
Struts OverviewStruts Overview
Struts Overview
 
Struts 2 + Spring
Struts 2 + SpringStruts 2 + Spring
Struts 2 + Spring
 
Frontin like-a-backer
Frontin like-a-backerFrontin like-a-backer
Frontin like-a-backer
 
Geek Moot '09 -- Smarty 101
Geek Moot '09 -- Smarty 101Geek Moot '09 -- Smarty 101
Geek Moot '09 -- Smarty 101
 
Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12
 

More from Fwdays

"What I learned through reverse engineering", Yuri Artiukh
"What I learned through reverse engineering", Yuri Artiukh"What I learned through reverse engineering", Yuri Artiukh
"What I learned through reverse engineering", Yuri Artiukh
Fwdays
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
"Micro frontends: Unbelievably true life story", Dmytro Pavlov
"Micro frontends: Unbelievably true life story", Dmytro Pavlov"Micro frontends: Unbelievably true life story", Dmytro Pavlov
"Micro frontends: Unbelievably true life story", Dmytro Pavlov
Fwdays
 
"Objects validation and comparison using runtime types (io-ts)", Oleksandr Suhak
"Objects validation and comparison using runtime types (io-ts)", Oleksandr Suhak"Objects validation and comparison using runtime types (io-ts)", Oleksandr Suhak
"Objects validation and comparison using runtime types (io-ts)", Oleksandr Suhak
Fwdays
 
"JavaScript. Standard evolution, when nobody cares", Roman Savitskyi
"JavaScript. Standard evolution, when nobody cares", Roman Savitskyi"JavaScript. Standard evolution, when nobody cares", Roman Savitskyi
"JavaScript. Standard evolution, when nobody cares", Roman Savitskyi
Fwdays
 
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
Fwdays
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
Fwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Fwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Fwdays
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets
Fwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Fwdays
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
Fwdays
 
"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...
Fwdays
 
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T..."How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
Fwdays
 
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ..."The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
Fwdays
 
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu..."[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
Fwdays
 
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care..."[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
Fwdays
 
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"..."4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
Fwdays
 

More from Fwdays (20)

"What I learned through reverse engineering", Yuri Artiukh
"What I learned through reverse engineering", Yuri Artiukh"What I learned through reverse engineering", Yuri Artiukh
"What I learned through reverse engineering", Yuri Artiukh
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
"Micro frontends: Unbelievably true life story", Dmytro Pavlov
"Micro frontends: Unbelievably true life story", Dmytro Pavlov"Micro frontends: Unbelievably true life story", Dmytro Pavlov
"Micro frontends: Unbelievably true life story", Dmytro Pavlov
 
"Objects validation and comparison using runtime types (io-ts)", Oleksandr Suhak
"Objects validation and comparison using runtime types (io-ts)", Oleksandr Suhak"Objects validation and comparison using runtime types (io-ts)", Oleksandr Suhak
"Objects validation and comparison using runtime types (io-ts)", Oleksandr Suhak
 
"JavaScript. Standard evolution, when nobody cares", Roman Savitskyi
"JavaScript. Standard evolution, when nobody cares", Roman Savitskyi"JavaScript. Standard evolution, when nobody cares", Roman Savitskyi
"JavaScript. Standard evolution, when nobody cares", Roman Savitskyi
 
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...
 
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T..."How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
 
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ..."The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
 
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu..."[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
 
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care..."[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
 
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"..."4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
 

Recently uploaded

Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 

Recently uploaded (20)

Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 

"Full Stack frameworks or a story about how to reconcile Front (good) and Back (evil)", Stanislav Protasevich