Next.js untuk AMP 

Membangun halaman AMP melalui rendering sisi-server React memberikan momentum yang cukup bagi kami untuk menyadari bahwa kami perlu menambah kemampuan untuk mendukung kasus penggunaan ini. Itulah sebabnya kami berintegrasi dengan Next.js, salah satu framework paling populer untuk React. Fakta menarik: nextjs.org seluruhnya dibangun dengan AMP!


amp-script

Pengubah permainan <amp-script> akhirnya meluncur tahun ini. Komponen yang sangat dinanti-nantikan ini memungkinkan Anda menambahkan JavaScript kustom ke halaman AMP Anda, berbagi kode antara halaman AMP dan non-AMP, dan membangun hal-hal yang sebelumnya tidak mungkin dilakukan.


OpenJS foundation menyambut AMP 





Kami mengungkapkan hal yang berikutnya untuk model tata kelola terbuka dengan mengumumkan keputusan untuk bergabung dengan OpenJS Foundation. Misinya selaras dengan misi kami, dan akan memperbesar beragam suara dalam teknologi dan mendukung upaya kami untuk membuat web yang lebih baik. 


AMP di kotak masuk Anda 





Gmail meluncurkan dukungan AMP untuk email, guna menghadirkan pengalaman terbaik pengguna ke kotak masuk Anda. Pengirim email sekarang bisa membuat pengalaman mulus dan konten interaktif untuk meningkatkan interaksi. AMP untuk email juga memiliki keterlibatan dari penyedia email utama yang lain seperti Outlook dan Yahoo Mail, dan kami berharap untuk membentuk kembali ekosistem email bersama. 

Komponen baru juga tersedia di Mail.ru, dan pengguna awal sudah merayakan hasil yang luar biasa. OYO, Perusahaan perhotelan terbesar di India, mengalami peningkatan 60% dalam konversi saat menguji AMP untuk email. 


Terima kasih telah menyukseskan AMP Conf  

Tim kami bertemu dengan hampir 500 orang termasuk Anda di Tokyo pada #AMPConf tahunan kami yang ketiga. Selain pengumuman produk, kami juga meluncurkan amp.dev yang didesain ulang total, sebuah situs web untuk semua contoh kode, template, dan dokumentasi kami. AMPConf2020 saat ini sedang dikerjakan, jadi nantikan informasi selanjutnya di mana kami akan menghadirkan acara yang berikutnya.


AMP Contributors Summit di Big Apple 

Pada awal Oktober kami bertemu dengan sekitar seratus kontributor di New York pada acara tahunan #AMPCS2019 untuk membahas fitur-fitur baru AMP. Tidak hanya ceramah, kami menyelenggarakan sesi breakout di mana kami bekerja bersama untuk meningkatkan project kami, ///dan menyempurnakan beberapa fitur AMP///. 


Komunitas yang kuat

Hampir 1.000 orang telah berkontribusi kode untuk AMP dan membantu kami merancang web yang lebih cepat dan lebih baik untuk semua orang. Tahun ini saja, 341 kontributor telah membuat lebih dari 18.300 kontribusi di semua repositori AMP project. 





Orang-Orang di Balik Kode

Komunitas memainkan peran besar dalam menyukseskan AMP; di situlah kami membagikan apa yang kami ketahui dan mempelajari apa yang tidak kami ketahui. Jadi kami meluncurkan seri ‘Orang-Orang di Balik Kode‘ untuk memahami bagaimana anggota komunitas menggunakan AMP dalam kehidupan nyata untuk membuat perbedaan. 


19 Roadshow baru ///siap kami lakukan/// 

Tahun ini, AMP melakukan roadshow 19 kali, dan menghadirkan Roadshow kami ke seluruh dunia. Dari Johannesburg hingga Seoul, 1.600 orang datang termasuk Anda untuk melihat apa itu AMP. 
Roadshow dirancang untuk membantu developer membangun situs web AMP lengkap dengan percaya diri. Jadi kami mendalami empat pilar kunci: desain, interaktivitas, DevOps, dan monetisasi, untuk memastikan Anda memiliki semua yang dibutuhkan agar berhasil. 

Jika Anda ingin melihat ke mana kami akan datang pada tahun 2020, kunjungi halaman AMP Roadshow untuk mencari tahu. Tidak melihat kota Anda di daftar? Beri tahu kami, kami selalu mencari tempat baru untuk dikunjungi, atau jadi host event Anda sendiri. Kami akan menyediakan semua materinya – yang perlu Anda lakukan hanyalah datang!





Visi 2020 

Ini merupakan tahun yang luar biasa. Terima kasih atas kreativitas dan komitmen Anda untuk membuat web yang lebih cepat dan mengutamakan pengguna bagi semua orang. Kami sangat menantikan hal yang berikutnya untuk AMP, dan berharap bisa melanjutkan kerja sama kita di tahun yang baru. Agar tidak ketinggalan informasi tentang semua project AMP dan melihat visi 2020 kami, silakan mendaftar newsletter ini. 

Ditulis oleh Alex Durán, AMP Project Marketing di Google

Agar sukses menguji implementasi Flow, kami sarankan menggunakan operator take untuk mendapatkan beberapa item dari Flow dan operator toList sebagai operator terminal untuk menerima hasilnya dalam daftar. Lihat contohnya dalam pengujian berikut:
class AnotherStreamDataSourceImplTest { @Test fun `Test happy path`() = runBlockingTest { // Prepare subject val result = subject.flow.take(1).toList() // Assert expected result } }
Operator take sangat cocok untuk menutup Flow setelah Anda mendapatkan item. Tidak menutup Flow yang dimulai (atau BroadcastChannel) setelah setiap pengujian akan membocorkan memori dan membuat rangkaian pengujian yang kacau dan tidak konsisten.


Catatan: Jika implementasi DataSource dilakukan dengan BroadcastChannel, kode di atas tidaklah cukup. Anda harus mengelola siklus hidupnya dengan memastikan bahwa Anda memulai BroadcastChannel sebelum pengujian dan menutupnya setelah pengujian selesai. Jika tidak, Anda akan membocorkan memori. Anda bisa melihat pengujian seperti ini dalam contoh Flow berikut.
Menguji praktik terbaik Coroutine juga berlaku di sini. Jika Anda membuat coroutine baru dalam kode yang sedang diuji, Anda mungkin ingin menjalankannya di thread pengujian untuk eksekusi deterministik pengujian. Ketahui selengkapnya tentang hal ini dalam pembicaraan Testing Coroutines ADS 2019.


Ringkasan

  • Utamakan mengekspos Flow kepada konsumen daripada Channel karena semua kontrak eksplisit dan operator yang disediakan Flow.
  • Dengan Flow, blok produser akan dieksekusi setiap kali ada listener baru dan siklus hidup streaming data akan ditangani secara otomatis.
  • Dengan BroadcastChannel, Anda bisa berbagi produser tetapi Anda harus mengelola siklus hidupnya sendiri.
  • Pertimbangkan untuk mengubah API berbasis callback ke coroutine untuk integrasi API yang lebih baik dan idiomatis dalam aplikasi Anda.
  • Uji implementasi Flow secara mudah dengan menggunakan operator take dan toList.

  resource.type="project" logName="projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity"
protoPayload.serviceName="cloudresourcemanager.googleapis.com"
protoPayload.methodName="SetIamPolicy"
protoPayload.serviceData.policyDelta.bindingDeltas.member:*
(NOT protoPayload.serviceData.policyDelta.bindingDeltas.member:"@my-org.com")
Dengan set filter, cukup klik Create Metric dan berikan nama.
4 Create Metric.png
Untuk menerima pemberitahuan jika log yang cocok datang, pilih Create Alert From Metric dari menu tiga titik di sebelah metrik baru dibuat yang ditetapkan pengguna. Ini akan membuka kebijakan pemberitahuan baru di Stackdriver Monitoring. Ubah agregator menjadi “sum” dan ambang ke 0 untuk “Most recent value” sehingga Anda akan menerima pemberitahuan ketika terdapat log yang cocok. Jangan khawatir jika belum ada data, karena metrik Anda hanya akan menghitung entri log sejak itu dibuat.
5 Create Alert From Metric.png
Selain itu, Anda juga bisa menambahkan alamat email, saluran Slack, SMS, atau nama serta akun PagerDuty, dan menyimpan kebijakan pemberitahuan Anda. Anda juga bisa menambahkan metrik ini ke dasbor bersama dengan metrik sistem dan khusus.


5. Melakukan kueri SQL lebih cepat pada log dalam BigQuery menggunakan tabel terpartisi

Stackdriver Logging mendukung pengiriman log ke BigQuery menggunakan log sink untuk melakukan analytics lanjutan menggunakan SQL atau bergabung dengan sumber data lainnya, seperti Cloud Billing. Kami sudah mendengar dari Anda bahwa menganalisis log selama beberapa hari dalam BigQuery akan lebih mudah jika kami mendukung tabel yang dipartisi. Jadi kami baru-baru ini menambahkan opsi tabel terpartisi yang menyederhanakan kueri SQL pada log dalam BigQuery.

Saat membuat sink untuk mengekspor log ke BigQuery, Anda bisa menggunakan tabel date-sharded atau tabel terpartisi. Pilihan default adalah tabel date-sharded, di mana sufiks _YYYYMMDD ditambahkan ke nama tabel untuk membuat tabel harian berdasarkan stempel waktu pada entri log. Tabel date-sharded memiliki beberapa kelemahan yang bisa menambah ke overhead kueri:
  • Melakukan kueri beberapa hari lebih sulit, karena Anda harus menggunakan operator UNION untuk menyimulasikan partisi.
  • BigQuery harus menyimpan salinan skema dan metadata untuk setiap tabel yang diberi nama tanggal.
  • BigQuery mungkin dibutuhkan untuk memverifikasi izin untuk setiap tabel yang diminta.
Saat membuat Log Sink, Anda sekarang bisa memilih opsi Use Partitioned Tables untuk memanfaatkan tabel terpartisi di BigQuery untuk mengatasi setiap masalah yang berkaitan dengan tabel date-sharded.
6 partitioned tables in BigQuery.png
Log yang di-streaming ke tabel terpartisi menggunakan kolom stempel waktu entri log untuk menulis ke partisi yang tepat. Kueri pada tabel terpartisi waktu-serap seperti itu bisa menentukan filter predikat pada kolom semu _PARTITIONTIME atau _PARTITIONDATE untuk membatasi jumlah log yang dipindai. Anda bisa menentukan rentang tanggal menggunakan filter WHERE, seperti ini:
WHERE _PARTITIONTIME BETWEEN TIMESTAMP("20191101") AND TIMESTAMP("20191105")
Pelajari lebih lanjut tentang kueri tabel terpartisi.
Cari tahu selengkapnya tentang Stackdriver Logging, dan bergabunglah dalam percakapan langsung dengan engineer dan tim manajemen produk kami.