Patrzę sobie w źródła strony, która korzysta z GraphQL (którą to jest https://en.zalando.de) i po raz kolejny nie mogę wyjść z podziwu, kto wpadł na pomysł, by stworzyć równie pokraczne dziadostwo, produkujące na wyjściu taki śmietnik w kodzie. No bo przecież to świetny pomysł i porządna inżynieria aby w JSON-ie kluczem w danych był kolejny JSON. Strona embeduje zatem potworny kawał JavaScriptu, który to ma z kilka tysięcy linii po sformatowaniu i oczywiście n poziomów zagnieżdżeń, żeby się go czasem zbyt łatwo nie zanalizowało, w którym to tkwią klucz w rodzaju:
"{\"id\":\"cb96571222c2df7160e55fd1765c7044a48026b6d47f61e99f9bdd6afffbe9f8\",\"variables\":{\"keys\":[\"product.flag.earlyaccess.plus\",\"pdp.plus.earlyaccess.reminder.confirmation.headline\",\"pdp.plus.earlyaccess.reminder.confirmation.subheadline\",\"pdp.plus.earlyaccess.reminder.confirmation.body\",\"pdp.plus.earlyaccess.reminder.confirmation.body.wishlist\",\"pdp.plus.earlyaccess.reminder.error\",\"max.order.limit.notification.pdp\",\"max.customer.limit.notification.pdp\",\"max.customer.limit.notification.wardrobe.web\",\"brand.follow.notification\",\"wishlist.add.notification\"],\"host\":\"en.zalando.de\"}}"
I z takich oto bohomazów można wydłubywac różne dane.
>>> pprint.pprint(json_data["graphqlCache"]["{\"id\":\"cb96571222c2df7160e55fd1765c7044a48026b6d47f61e99f9bdd6afffbe9f8\",\"variables\":{\"keys\":[\"product.flag.earlyaccess.plus\",\"pdp.plus.earlyaccess.reminder.confirmation.headline\",\"pdp.plus.earlyaccess.reminder.confirmation.subheadline\",\"pdp.plus.earlyaccess.reminder.confirmation.body\",\"pdp.plus.earlyaccess.reminder.confirmation.body.wishlist\",\"pdp.plus.earlyaccess.reminder.error\",\"max.order.limit.notification.pdp\",\"max.customer.limit.notification.pdp\",\"max.customer.limit.notification.wardrobe.web\",\"brand.follow.notification\",\"wishlist.add.notification\"],\"host\":\"en.zalando.de\"}}"]["data"]["translations"])
{'brand.follow.notification': 'Following! Find more brands or adjust your list '
'anytime in your account.',
'max.customer.limit.notification.pdp': 'You’ve already purchased this product '
'and reached the max limit as a '
'customer.',
'max.customer.limit.notification.wardrobe.web': 'Looks like you’ve already '
'ordered the max amount of '
'this item.',
'max.order.limit.notification.pdp': 'It looks like you already purchased the '
'maximum limit of exclusive items.',
'pdp.plus.earlyaccess.reminder.confirmation.body': 'We’ll send you an email '
'when this item drops.',
'pdp.plus.earlyaccess.reminder.confirmation.body.wishlist': 'For now, we’ve '
'added this to '
'your liked items '
'so you can find '
'it again.',
'pdp.plus.earlyaccess.reminder.confirmation.headline': 'All set!',
'pdp.plus.earlyaccess.reminder.confirmation.subheadline': 'You’ll be first to '
'know',
'pdp.plus.earlyaccess.reminder.error': 'We hit a snag! Try setting the '
'reminder again.',
'product.flag.earlyaccess.plus': 'Early Access',
'wishlist.add.notification': 'The item was added to your wish list.'}
Jak ktoś korzysta z bibliotek i frameworków, które chowają przed nim całą tę cudaczną złożoność to może i uważa, że GraphQL to fajny gadżet i przyszłość web developerki, ja jednak, zaglądając pod maskę czuję tylko paskudny swąd strasznego partactwa. Coś chyba pospolitego w pociesznym świecie frontów, że by tylko przypomnieć pocieszny wpis How it feels to learn JavaScript in 2016, czy node.js z ich cudacznym środowiskiem i śmietnikiem jaki się wciąga przy każdej próbie spakowania wszystkiego do kupy (bo x polega na y, które polega na z, które wciąga niesławne is-even
, bo developer co to pisał najwyraźniej nie wiedział jak to się sprawdza).
Wy tak żyjecie?
klepania schematów
Masz na mysli "schema"? To w Calibanie np. same sie klepia
GraphQL czy REST? Przyznam że z tym pierwszym nie miałem jeszcze okazji pracować. A jakie są Wasze doświadczenia w temacie?
REST and GraphQL are both standard ways to develop backend APIs. But over the past decade REST APIs have dominated as a choice for developing backend API's. And many companies and developers use it actively in their projects. But REST has some limitations, and there's another alternative available – GraphQL. GraphQL
https://www.freecodecamp.org/news/graphql-vs-rest-api/ja korzystałem i to dość intensywnie swojego czasu. Wg mnie super narzędzie, ale nie wszyscy go potrzebują :)
to raczej jako wątek, a nie na mikrobloga jeżeli chodzi o GraphQL, to moim zdaniem warto pamiętać, że nie trzeba używać GraphQL/OData aby mieć dynamic querying :)
Czołem! Jak co piątek podrzucam Prasówkę Technologiczną. Niezmiennie sporo wartościowej i konkretnej wiedzy z różnych dziedzin. ⤵⤵
Pamiętacie HAL 9000 z filmu “A Space Odyssey”? Superkomputer z tendencją do mordowania astronautów? Naukowcy stworzyli #ai na jego podstawie
Link: https://www.iflscience.com/technology/scientists-have-created-ai-inspired-by-hal-9000-from-2001-a-space-odyssey/
Marzyłeś o tym by korzystać z komputera za pomocą swoich myśli? Nowy implant mózgu umożliwia sparaliżowanym pacjentom surfowanie po internecie właśnie w taki sposób!
Link: https://www.iflscience.com/technology/new-brain-implant-allows-paralyzed-patients-to-surf-the-internet-using-their-thoughts/
19 kursów, 15 tysięcy recenzji i ponad 100 tysięcy uczestników. To statystyki działalności Arka Włodarczyka, który od kilku lat tworzy kursy dot. programowania i zamieszcza je na platformie #udemy. Rozmawiamy z nim o tym, jak od środka wygląda rynek e-learningowy i jak znaleźć idealny dla siebie kurs.
Link: https://geek.justjoin.it/kazdy-swoj-typ-nauczyciela-arek-wlodarczyk-o-sprzedawaniu-kursow-udemy-com/
Tajne kody Netflix odblokowują tysiące ukrytych gatunków filmowych. Masz ochotę na dramaty wojskowe czy kino afrykańskie? - Żaden problem!
Link: https://www.iflscience.com/technology/secret-netflix-codes-unlock-thousands-of-hidden-movie-genres/
Ogromny sztuczny księżyc może rozświetlić niebiosa Chin już w 2020 roku. W jaki sposób chcą to zrobić? Info w artykule
Link: https://www.iflscience.com/technology/a-huge-artificial-moon-could-light-up-chinas-skies-as-soon-as-2020/
Wybór odpowiedniego narzędzia do testów funkcjonalnych jest jedną z kluczowych decyzji. Autor przedstawia i omawia 30 narzędzi do testowania funkcjonalnego, a także opowiada o wyzwaniach związanych z testowaniem manualnym.
Link: https://www.simform.com/functional-testing-tools/
#react Suspense z Fetch API. Autor ukazuje magię kryjąca się za kurtyną React Suspense i omawia w jaki sposób stworzył ten pakiet.
Link: https://medium.com/swlh/react-suspense-with-the-fetch-api-cc655aced759
Zamień bugi w klejnoty: debugowanie aplikacji #ruby. Kilka słów o narzędziach i technikach debugowania w Ruby autorstwa Roberta W. Olivera II.
Link: https://blog.sourcerer.io/turning-bugs-into-gems-debugging-ruby-applications-314ff869a611
#redux jest do bani z React-Native. - Ciekawy artykuł Flavio Caetano znajdziecie w linku:
Link: http://blog.flaviocaetano.com/post/redux-sucks-with-react-native/
— Co gdybyś wiedział więcej na temat swoich klientów pozyskując dane z wielu źródeł, takich jak media społecznościowe? — zachęca lektorka z filmu promującego bezpłatne kursy dot. machine learningu, udostępnione właśnie przez #amazon. Dotychczas kursy były dostępne dla pracowników firmy, od dziś możemy korzystać z nich za darmo. Amazon w przygotowanych materiałach przedstawia zastosowanie swoich usług takich jak Amazon Rekognition, Amazon Lex, Amazon Polly oraz AWS Lambda.
**Link:v https://geek.justjoin.it/amazon-udostepnil-57-darmowych-kursow-dot-machine-learningu/
Programowanie na telefonie z Androidem. Dowiedz się więcej o emulatorze terminalu Android autorstwa Fredrika Fornwall.
**Link: https://medium.com/@jumpcarefully/programming-on-an-android-phone-da2526f34255
Zdarzyło Ci się mieć problem z zalogowaniem do aplikacji bankowej na iPhone, bo klawiatura pojawiała się nad przyciskiem “logowanie”? - Marin Bencevic omawia typowe problemy z klawiaturą iOS i jak je naprawić.
Link: https://www.scaledrone.com/blog/fixing-common-issues-with-the-ios-keyboard/
Przesiadka z #ios na #android. Autor postanowił przeskoczyć z iPhone X na Google Pixel 2XL oraz z iPada Pro i MacBooka na #google Pixelbook. Dlaczego to zrobił i jakie są jego spostrzeżenia? O tym w artykule!
Link: http://www.speirs.org/blog/2018/11/18/on-switching-from-ios-to-android
Rozwój #ios nie stoi w dobrym miejscu. Zdaniem autora obejmuje to dokumentację, frameworki, języki, obsługę błędów, #xcode itd. - Dlaczego? Odpowiedź w linku:
Link: https://medium.com/@karti/ios-development-isnt-in-a-good-place-5fb73c31483e
Mieszanie kodu synchronicznego i asynchronicznego w #python to styl wykorzystywany w oprogramowaniu sterującym dużych teleskopów mikrofalowych. Niestety zmiany w Python 3.7 wniosły ze sobą kilka problemów. Autorzy wyjaśniają dlaczego asynchroniczny ekosystem Pythona jest dla nich tak ważny.
Link: http://threespeedlogic.com/python-tworoutines.html
Przestańcie nauczać #cplusplus! ...jako pierwszego języka programowania. Borislav Stanimirov wyjaśnia dlaczego C++ nie powinien być pierwszym językiem jakiego się uczysz.
Link: http://ibob.github.io/blog/2018/11/22/stop-teaching-cpp/
#postgres jest bazą danych, która od kilkunastu lat świetnie sobie radzi. Dlaczego jednak Postgres to coś więcej niż relacyjna baza danych?
Link: https://www.citusdata.com/blog/2018/11/27/postgres-more-than-a-relational-database/
Jeden z najprostszych i najpotężniejszych API css-in-js - Emotion 10! Co się zmieniło i jakie błędy zostały naprawione w wersji 10 napisał Mitchell Hamilton:
Link: https://medium.com/emotion-js/announcing-emotion-10-f1a4b17b8ccd
#graphql: Retrospekcja. Autorzy mając mało czasu na zbudowanie MVP zdecydowali się skorzystać z #graphql, z którym żaden nie miał wcześniej doświadczenia. - Czego się nauczyli i czy polecają wykorzystanie tej technologii w artykule:
Link: https://verve.co/engineering/graphql-a-retrospective/
#flutter vs #reactnative. Od momentu opublikowania, Flatter dołączył do listy technologii programowania wieloplatformowego, która zawiera już kilka popularnych rozwiązań w tym między innymi React Native. Jak wypada Flatter w porównaniu z tym drugim?
Link: https://diophant.com/blog/flutter-vs-react-native/
Co zawiera obraz #docker? Obrazy Dockera mogą wydawać się dość tajemnicze. - Autor nie tylko zdradza co zawierają, ale również pokazuje jak się tam dostać.
Link: https://cameronlonsdale.com/2018/11/26/whats-in-a-docker-image/
Czy #blockchain naprawdę się skończył? Kryptowaluty mogą być przedmiotem spekulacji, jednak technologia Blockchain i decentralizacja są bardziej stabilne. Autor wskazuje co najmniej 6 powodów, dla których Blockchain dopiero się zaczyna!
Link: https://www.nfx.com/post/is-blockchain-really-over
Amazon wchodzi w #blockchain z nową usługą - Amazon Quantum Ledger Database. To nie wszystko. Firma ogłosiła jeszcze jeden produkt na #aws re:Invent. Jaki? O tym w artykule:
Link: https://techcrunch.com/2018/11/28/amazon-gets-into-the-blockchain-with-quantum-ledger-database-managed-blockchain/?guccounter=1
Identyfikatory korelacji w #scala z użyciem Monix. W jaki sposób niezawodnie przekazywać identyfikator korelacji między granice wątków? Między innymi na to pytanie odpowiada Adam Warski w swoim artykule
Link: https://blog.softwaremill.com/correlation-ids-in-scala-using-monix-3aa11783db81
Rewolucja cyfrowa skutecznie zmienia krajobraz branży IT, rośnie też zainteresowanie metodykami #agile i #devops. Coraz częstsze wykorzystywanie Cloud Computing oraz ciągle rosnąca różnorodność i liczba urządzeń, oraz przeglądarek internetowych również wywierają wpływ na to, jak wygląda obecnie świat testowania oprogramowania, jednocześnie stawiając przed nim nowe wymagania na przyszłość. Jaki ma to wpływ na branżę testowania oprogramowania i jaka jest kondycja testerów na rynku pracy?
Link: https://geek.justjoin.it/sytuacja-testerow-rynku-it-rozwiazania-brakujacych-specjalistow/
#naukaprogramowania #programowanie #programista15k #technologia #informatyka
Cześć! Przygotowałem dla Was Prasówkę Technologiczną. Konkretne materiały z różnych dziedzin. Każdy powinien znaleźć coś wartościowego dla siebie :)
01) Przez długi czas wydawało się, że REST API z JSON są jedyną opcją. Obecnie to już nieprawda. Bufory protokołów/gRPC i #graphql weszły do użytku i są często brane pod uwagę przy nowych projektach. Autor próbuje rozwiać pewne mity i wyobrażenia o tym, skąd pochodzi wydajność gRPC.
Link: https://blog.q42.nl/graphql-keep-alive-4379fe1a8b58
02) [Video] #tinder. Czy #reactnative może swipe-ować za Ciebie? Przyjrzyjmy się aplikacji Tinder i programowi do obsługi gestów React Native, aby zaimplementować gest przesuwania i animację. -- Film Williama Candillon w linku:
Link:
03) Ogromne zapotrzebowanie na usługi programistów nie oznacza, że w #it można dostać pracę od ręki. Fakt, rekruterzy walczą o kandydatów na różne sposoby, ale ich też trzeba do siebie umiejętnie przekonać. Od tego, jak się zaprezentujesz, będzie zależała Twoja dalsza kariera.
Link: https://geek.justjoin.it/junior-developer-przygotowac-sie-szukania-pracy/
04) Evan You zapowiedział #vuejs 3! Wykorzystując najnowsze osiągnięcia Vue 3 będzie ulepszone względem Vue.js, które znamy i kochamy. -- Czego możemy się spodziewać po Vue 3?
Link: https://medium.com/vue-mastery/evan-you-previews-vue-js-3-0-ab063dec3547
05) Najlepsze praktyki przy migracji bazy danych Oracle na Amazon RDS Postgrade #sql czy Amazon Aurora PostgradeSQL. Proces migracji i infrastruktura.
Link: https://aws.amazon.com/blogs/database/best-practices-for-migrating-an-oracle-database-to-amazon-rds-postgresql-or-amazon-aurora-postgresql-migration-process-and-infrastructure-considerations/
06) [Video] #docker i moduły #go. Autor wyjaśnia w filmie w jaki sposób włączyć moduły Go dla programu, a następnie spakować je za pomocą Dockera. To proste!
Link:
07) #cybersecurity to dziedzina w dużej mierze tajemnicza dla osób spoza niej. Czy w Cybersecurity chodzi tylko o przeciwdziałanie hackerom? Tyler Elliot Bettilyon w ciekawym artykule wyjaśnia wiele nurtujących nas kwestii.
Link: https://medium.com/s/story/cybersecurity-isnt-just-about-hacks-f11c7ad07660
08) Interaktywna wizualizacja danych w Python z Bokeh. Jak rozpocząć pracę z tym potężnym narzędziem do odkrywania i interpretowania danych lub tworzenia pięknych, niestandardowych wykresów dla projektu czy raportu?
Link: https://realpython.com/python-data-visualization-bokeh/
09) [Video] Buduj skalowalne API w #go z #kubernetes. W filmie autor pokazuje w jaki sposób stworzyć skalowalny interfejs API w aplikacji Go z Dockerem, a następnie wdraża go w silnik Kubernetes na platformę Google Cloud.
Link:
10) 9 ukrytych bibliotek #python dla Data Science. Wyjdź poza pandas, scikit-learn i matplotib i naucz się nowych sztuczek dla Data Science w Pythonie!
Link: https://opensource.com/article/18/11/python-libraries-data-science
11) [Video] Mark Reinhold o #javie dziś i jutro. Przegląd kilku ostatnich dodatków do języka i platformy. Autor bierze pod lupę niektóre funkcje, które nadal będą doskonalić produktywność programistów i wydajność programu zachowując podstawowe wartości Javy.
Link:
12) Importowanie danych z MongoDB do #mysql przy użyciu Pythona. MySQL Shell 8.0.13 wprowadził nową funkcję umożliwiającą łatwe importowanie dokumentów JSON do MySQL. Paulo Jesus przedstawia więcej szczegółów na temat tej funkcji.
Link: https://mysqlserverteam.com/importing-data-from-mongodb-to-mysql-using-python/
13) #ruby zdjęte z szyn dzięki deserializacji. Dowiedz się co odkryli etyczni hakerzy podczas badań nad bezpieczeństwem języka Ruby.
Link: https://portswigger.net/daily-swig/ruby-taken-off-the-rails-by-deserialization-exploit
14) Trudno z dostępnych w internecie materiałów znaleźć te, które są warte poświęcenia czasu. Dlatego takie listy jak ta przydają się szczególnie początkującym developerom. Postanowiliśmy zebrać najlepiej oceniane oraz najczęściej czytane i oglądane kursy programowania w Pythonie.
Link: https://geek.justjoin.it/10-materialow-edukacyjnych-dzieki-ktorym-poznasz-jezyk-python/
15) Podczas tegorocznej konferencji SAP TechEd, ogłoszono nowe funkcje oraz rozwiązania, które mogą okazać się istotne dla użytkowników aplikacji biznesowych i narzędzi tego dostawcy. Jakie? Sprawdź:
Link: https://www.computerworld.pl/news/SAP-zwieksza-elastycznosc-i-dostepnosc-stosu-technologicznego,411366.html
16) Superkomputery wykorzystywane są już nie tylko w zaawansowanych badaniach naukowych. To już nie tylko domena największych odkrywców i wynalazców. Co superkomputer może zrobić dla Ciebie?
Link: https://www.computerworld.pl/news/Co-superkomputer-moze-zrobic-dla-ciebie,411261.html
17) Szybsze funkcje asynchroniczne i obietnice w JavaScript. -- W jaki sposób zoptymalizować funkcje asynchroniczne i obietnice w V8 oraz jak udoskonalić funkcje debugowania kodu asynchronicznego?
Link: https://v8.dev/blog/fast-async
18) Stwórz bezserwerowe API w 10 minut za pomocą Cloudflare Workers. Rita Kozlov pokazuje w jaki sposób wykorzystać Workers do szybkiego postawienia API do testowania, jeśli strony są oznaczone jako niechronione przy aktualizacji Chrome 68.
Link: https://www.cloudflare.com/lp/workers/serverless-powered-api/?utm_source=Workers&utm_medium=Display&utm_campaign=Cooperpress_Serverless_API_LP
19) Potęga komponentów webowych. Komponenty webowe istnieją już od jakiegoś czasu i dostępnych jest wiele zasobów. W tym artykule przedstawiono szereg nowych możliwości i zasobów komponentów webowych.
Link: https://hacks.mozilla.org/2018/11/the-power-of-web-components/
20) Co wspólnego z sobą mają #blockchain i pociąg? Jaki sens ma technologia Blockchain? -- Wyjaśnia Eddie Kago w krótkim artykule.
Link: https://hackernoon.com/blockchain-the-train-analogy-b53c1cdc37b0
22) Zastanawiałeś się, by zacząć programować w #scala? Oto 10 powodów, które przekonają Cię do nauki Scali i programowania funkcyjnego.
Link: https://hackernoon.com/10-reasons-to-learn-scala-and-functional-programming-2fce385e6ec7
23) Uwielbia jej elegancję i to, że czasami bywa szalona. Za co jeszcze autor kocha Scalę?
Link: https://www.withinboredom.info/2018/11/scala-and-friends/
24) Czy #devops jest dla wszystkich? Nie-inżynier wyjaśnia dlaczego nie musisz być developerem by stać się DevOpsem!
https://opensource.com/article/18/11/how-non-engineer-got-devops
#naukaprogramowania #programowanie #programista15k #technologia #informatyka
#GraphQL jest ciekawym rozwiązaniem, które zyskuje na popularności. Biblioteka w nodejs jest obecnie najlepszą implementacją - zobacz jak stworzyć przykładową aplikację.
http://devenv.pl/przykladowa-implementacja-graphql-z-wykorzystaniem-nodejs-express-i-mongodb/
Straszne ogolniki rzuciles, trudno nawet to zakwestionowac no bo nie wiadomo o co Ci chodzi :p