|
28 | 28 | br |
29 | 29 | section(data-background-image=require("./pics/reading-other-peoples-code.png") data-background-size="contain") |
30 | 30 | br |
| 31 | + section |
| 32 | + p несторуктурированный проект на фласке синатре |
| 33 | + section |
| 34 | + p тут мы json валидируем |
| 35 | + p тут мы в базу ходим |
| 36 | + p а тут в письма рассылаем |
| 37 | + p всё в функциях по 1000 строк кода |
| 38 | + section |
| 39 | + p в результате |
| 40 | + p легко читать |
| 41 | + p тяжело менять |
| 42 | + p чтобы добавить какую-нибудь фигню надо перелопатить весь проект |
| 43 | + section |
| 44 | + p eсть стартапы с django rails nestjs spring |
| 45 | + p там за людей уже подумали как структурировать код |
| 46 | + p казалось бы решение проблемы |
31 | 47 | section(data-background-image=require("./pics/trello-issue.png") data-background-size="contain" data-background-color="#003F4A") |
32 | | - br |
| 48 | + p вот приходишь ты в такой стартап, получаешь таску |
| 49 | + p идёшь в код |
33 | 50 | section |
34 | 51 | h2 Implicit API |
35 | 52 | pre |
36 | 53 | code.python. |
37 | | - class SubscriptionViewSet(viewsets.ModelViewSet): |
| 54 | + class Subscriptions(viewsets.ModelViewSet): |
38 | 55 | queryset = Subscription.objects.all() |
39 | 56 | serializer_class = SubscriptionSerializer |
40 | 57 | permission_classes = (CanSubscribe,) |
41 | 58 | filter_class = SubscriptionFilter |
| 59 | + pre |
| 60 | + code.python. |
| 61 | + router.register('/api/subscriptions/', Subscriptions) |
42 | 62 | ol |
43 | 63 | li.fragment What exactly does this class do? |
44 | 64 | li.fragment How to use it? |
45 | 65 | section(data-background-image=require("./pics/method-flowchart.png") data-background-size="contain") |
46 | 66 | br |
47 | 67 | section |
| 68 | + h2 Function to change |
48 | 69 | pre |
49 | 70 | code.python. |
50 | 71 | from google_cloud_messaging import send_message |
|
53 | 74 | def send_sms(event): |
54 | 75 | text = 'A new subscription was made' |
55 | 76 | on_commit(lambda: send_message(text)) |
| 77 | + ol |
| 78 | + li.fragment В документации нет ни слова про вызов нашей функции |
| 79 | + li.fragment Не ясно как передать в неё нужные нам аргументы |
56 | 80 | section |
57 | 81 | h2 Grep test |
58 | 82 | img(src=require("./pics/grep-test.png")).plain |
59 | 83 | section |
60 | 84 | h2 Framework Lifecycle API |
| 85 | + ol |
| 86 | + li.fragment тяжело читать |
| 87 | + li.fragment проще править |
| 88 | + li.fragment надо держать в голове полную картину работы фреймворка |
61 | 89 | img(src=require("./pics/react-hooks.png")).plain.fragment |
| 90 | + section |
| 91 | + p в каждом примере мы понятия не имеем что вообще делает наше приложение |
| 92 | + p это может быть и бложек и торговая площадка |
| 93 | + p наши проекты не имеют связи в внешним миром |
| 94 | + p очень много неявных знаний в головах разработчиках |
62 | 95 | section |
63 | 96 | h2 Business-friendly tools |
64 | 97 | pre |
|
0 commit comments