Yaprak Ayazoğlu
frontend.istanbul 2018
@yaprakaya
Yaprak Ayazoğlu
@bol.com'da Frontend geliştiricisi
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
Webshop -> Satıcılar
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
Backend for Frontend API geliştirme sürecinin doğasında olan tasarım boşluğunu doldurmayı amaçlayan yapıdır. Bir BFF, arayüz ile alt katman (downstream) servislerinin arasındaki katmandır.
Mikro-frontend bir web uygulamasını ufak özellik kümelerine bolup her bir özelliğin tek bir takım tarafından bastan sonra geliştirilmesine olanak sağlayan yapıdır.
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
Uygulama
1
Uygulama
2
Uygulama
3
@yaprakaya
<html>
<head>
…
<script src=“/wrapper/bundle.js”></script>
<script src=“/application-1/bundle.js”></script>
<script src=“/application-2/bundle.js”></script>
<script src=“/application-3/bundle.js”></script>
…
</head>
…
</html>
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@Injectable()
export class PackingListService {
private packingListUrl = 'url/to/packing-list';
constructor(public http: HttpClient) { }
public getPackingList(listId: string): Observable<SendStockItem[]> {
return this.http
.get(`${this.packingListUrl}?list-id=${listId}`)
.map((json: any) => {
const packingList = PackingListDto.fromJson(json);
return packingList.lines;
});
}
}
@yaprakaya
import { SendStockItem } from './send-stock-item';
export class PackingListDto {
id: string;
retailerId: string;
sendStockItems: SendStockItem[];
static fromJson(json: any): PackingListDto {
// tslint:disable-next-line
return PackingListDtoSerializer.fromJson(json);
}
}
class PackingListDtoSerializer {
static fromJson(json: any): PackingListDto {
const packingListDto = new PackingListDto();
packingListDto.id = json.id;
packingListDto.retailerId = json.retailerId;
packingListDto.sendStockItems = json.lines.map((line) => {
return SendStockItem.fromJson(line);
});
return packingListDto;
}
}
@yaprakaya
import { FormGroup } from '@angular/forms';
export class SendStockItem {
id: string;
selectedQuantityFormItem?: FormGroup;
static fromJson(json: any): SendStockItem {
return SendStockItemSerializer.fromJson(json);
}
}
class SendStockItemSerializer {
static fromJson(json: any): SendStockItem {
const sendStockItem = new SendStockItem();
sendStockItem.id = json.id;
return sendStockItem;
}
}
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
@yaprakaya
https://slides.com/yaprakayazoglu/mikro-frontend/