Teks lengkap 6320 Kata-kata, perkiraan waktu belajar 19 menit
Jika Anda ingin membangun aplikasi web Anda sendiri. Anda memiliki ide untuk membuat, tetapi kuncinya sekarang adalah membangun arsitektur yang tepat.
Pada artikel ini, kita akan membahas konten utama berikut:
· Apa itu arsitektur perangkat lunak?
· Mengapa arsitektur perangkat lunak penting?
· Perbedaan antara arsitektur perangkat lunak dan desain perangkat lunak.
· Model arsitektur perangkat lunak.
· Bagaimana memutuskan berapa banyak lapisan yang harus dimiliki aplikasi Anda.
· Zoom horizontal atau vertikal-mana yang tepat untuk aplikasi Anda?
· Layanan integral atau mikro?
· Kapan sebaiknya Anda menggunakan NoSQL atau SQL?
· Pilih teknologi yang tepat.
· Bagaimana menjadi seorang arsitek perangkat lunak.
· Bagaimana memulai.
Tujuan dari teks ini adalah untuk memberi Anda pemahaman yang kuat tentang arsitektur jaringan, konsep terkait, dan cara memilih arsitektur dan teknologi yang tepat saat merancang aplikasi. Di akhir artikel ini, ketika Anda mendesain aplikasi dari awal, Anda tidak akan terasing dan tidak berdaya dalam kegelapan.
Mari kita mulai!
Apa itu arsitektur perangkat lunak?
Arsitektur perangkat lunak sistem menjelaskan komponen utamanya, hubungannya, dan bagaimana mereka berinteraksi.
Intinya, ini adalah cetak biru. Ini memberikan gambaran abstrak tentang kompleksitas sistem manajemen; itu membangun koneksi dan koordinasi antar komponen.
Beberapa poin penting:
· Arsitektur perangkat lunak membantu mengidentifikasi solusi yang memenuhi semua persyaratan teknis dan operasional.Tujuan umum mereka adalah untuk mengoptimalkan kinerja dan meningkatkan keselamatan.
· Arsitektur desain melibatkan persimpangan antara kebutuhan organisasi dan kebutuhan tim pengembangan. Setiap keputusan akan berdampak besar pada kualitas, pemeliharaan, kinerja, dll.
Salah satu definisi favorit saya tentang arsitektur perangkat lunak adalah apa yang dikatakan Ralph Johnson dalam "Pola Desain: Elemen Perangkat Lunak Berorientasi Objek yang Dapat Digunakan Kembali":
"Ini adalah keputusan yang ingin Anda buat di awal proyek."
Mengapa arsitektur perangkat lunak penting?
Bangun gedung atau buat pizza - untuk berhasil membuat apa pun, Anda perlu membangun fondasinya. Jika Anda tidak melakukan dasar-dasarnya dengan baik dan terjadi kesalahan, Anda hanya dapat memulai dari awal - tidak ada cara untuk melewati itu.
Hal yang sama berlaku untuk membangun aplikasi web. Arsitektur adalah fondasinya. Ini harus dipertimbangkan dengan hati-hati untuk menghindari perubahan desain utama berikutnya dan pemfaktoran ulang kode.
Banyak teknisi akan memberi tahu Anda: Anda tidak ingin mendesain ulang sesuatu. Itu memakan waktu Anda seperti lubang hitam. Ini dapat memperpanjang tanggal pengiriman Anda beberapa bulan, yang bukan merupakan yang terlama. Dan tidak termasuk masa pembangunan dan pemborosan dana keuangan.
Keputusan terburu-buru yang dibuat selama fase desain awal dapat menyebabkan kebuntuan pada setiap tahap proses pengembangan. Oleh karena itu, sebelum kita memulai pengkodean, kita harus membuat arsitektur dasarnya benar.
Pengembangan perangkat lunak adalah proses yang berulang dan evolusioner - kita mungkin tidak dapat menyempurnakan semuanya untuk pertama kali. Tapi ini bukan alasan untuk tidak menyelesaikan tugas.
Perbedaan antara arsitektur perangkat lunak dan desain perangkat lunak
Seringkali ada kebingungan antara desain perangkat lunak dan arsitektur. Mari kita buat perbedaannya di bawah ini.
Arsitektur perangkat lunak digunakan untuk menentukan kerangka kerja dan komponen tingkat tinggi dari sistem dan bagaimana mereka bekerja sama. Misalnya, apakah Anda memerlukan arsitektur tanpa server yang dapat membagi aplikasi Anda menjadi dua komponen: BaaS (backend sebagai layanan) dan FaaS (berfungsi sebagai layanan)? Atau, apakah Anda memerlukan sesuatu seperti arsitektur layanan mikro yang dapat memisahkan fitur / tugas berbeda menjadi modul / basis kode terpisah?
Memilih arsitektur akan menentukan cara Anda menangani kinerja, toleransi kesalahan, skalabilitas, dan keandalan.
Desain perangkat lunak bertanggung jawab atas desain tingkat kode - apa yang dilakukan setiap modul, ruang lingkup kelas, dan fungsi, tujuan, dll. Ketika digunakan secara strategis, mereka dapat membuat programmer bekerja lebih efisien dan menggunakan metode yang telah diperbaiki oleh orang lain, sehingga mereka tidak perlu mengulang pemrograman.
Selain itu, saat berdiskusi dengan orang lain atau mengelola kode dalam tim yang lebih besar, mereka menyediakan bahasa umum yang efektif untuk membuat konsep masalah dan solusi yang berulang.
Sumber: Pexels
Pola arsitektur perangkat lunak
Server klien
Arsitekturnya didasarkan pada model permintaan-respons. Klien mengirimkan permintaan informasi ke server, dan server menanggapinya.
Setiap situs web yang Anda jelajahi, baik itu blog Wordpress, aplikasi web seperti Facebook atau Twitter, atau aplikasi perbankan Anda, dibangun di atas arsitektur server-klien.
P2P
Jaringan P2P adalah jaringan di mana komputer (juga disebut node) dapat berkomunikasi satu sama lain tanpa server pusat. Kurangnya server pusat menghilangkan kemungkinan satu titik kegagalan. Semua komputer di jaringan memiliki hak yang sama. Node bertindak sebagai penyemaian dan non-penyemaian. Oleh karena itu, meskipun beberapa komputer / node gagal berfungsi, jaringan dan komunikasi tetap normal.
P2P adalah dasar dari teknologi blockchain.
Model-view-controller
Arsitektur MVC adalah pola arsitektur perangkat lunak di mana logika aplikasi dibagi menjadi tiga komponen sesuai dengan fungsinya. Komponen-komponen ini disebut:
· Model Menampilkan bagaimana data disimpan dalam database.
· Lihat-komponen terlihat oleh pengguna, seperti output atau antarmuka pengguna grafis.
· Controller-sebagai komponen antarmuka antara model dan tampilan.
Arsitektur MVC tidak hanya digunakan untuk aplikasi desktop, tetapi juga untuk aplikasi seluler dan web.
Layanan mikro
Dalam arsitektur layanan mikro, fitur / tugas yang berbeda dibagi menjadi modul / pustaka kode independen. Modul / pustaka kode ini bekerja bersama dengan setiap pustaka modul / kode untuk membentuk layanan skala besar yang lengkap.
Dibandingkan dengan arsitektur tunggal, arsitektur ini memfasilitasi pemeliharaan aplikasi yang lebih mudah dan lebih bersih, pengembangan fungsional, pengujian, dan penerapan.
Digerakkan oleh peristiwa
Arsitektur non-pemblokiran juga disebut arsitektur reaktif atau berbasis peristiwa. Arsitektur berbasis peristiwa sangat populer dalam pengembangan aplikasi web modern.
Mereka dapat menangani sejumlah besar koneksi bersamaan dengan konsumsi sumber daya yang minimal. Aplikasi modern membutuhkan model yang sepenuhnya asinkron untuk diukur. Kerangka web modern ini memberikan perilaku yang lebih andal dalam lingkungan terdistribusi.
Berlapis
Model ini dapat digunakan untuk membangun program yang dapat didekomposisi menjadi kelompok subtugas, yang masing-masing berada pada tingkat abstraksi tertentu. Setiap lapisan menyediakan layanan untuk tingkat yang lebih tinggi berikutnya.
Lapisan yang paling umum adalah:
· Lapisan tampilan
· Lapisan aplikasi
· Lapisan logika bisnis
· Lapisan akses data
Struktur heksagonal
Arsitekturnya terdiri dari tiga komponen:
·Pelabuhan
·adaptor
·nama domain
Fokus dari arsitektur ini adalah membuat berbagai komponen aplikasi independen, digabungkan secara longgar, dan mudah untuk diuji.
Model arsitektur berpusat pada nama domain-ini adalah logika bisnis. Ada port dan adaptor di lapisan luar. Porta itu seperti antarmuka pemrograman aplikasi, antarmuka. Semua masukan aplikasi harus melalui antarmuka.
Berapa banyak lapisan yang harus dimiliki aplikasi Anda?
Aplikasi tingkat tunggal
keuntungan:
· Tidak ada penundaan jaringan.
· Data diperoleh dengan cepat dan mudah
· Untuk memastikan keamanan data, jangan kirim melalui jaringan.
Kekurangan:
· Sedikit kendali atas aplikasi-setelah dirilis, sulit untuk mengimplementasikan fitur baru atau perubahan kode.
· Tes harus sangat teliti untuk meminimalkan ruang terjadinya kesalahan.
· Aplikasi lapisan tunggal rentan terhadap penyesuaian atau rekayasa balik.
Aplikasi dua tingkat
keuntungan:
· Kode dan antarmuka pengguna ada di mesin yang sama, sehingga panggilan jaringan lebih sedikit.
Server database dan logika bisnis sangat dekat, yang dapat memberikan kinerja yang lebih baik.
Kekurangan:
Karena klien memiliki sebagian besar logika aplikasi, akan ada masalah dalam mengontrol versi perangkat lunak dan mendistribusikan kembali versi baru.
· Karena hanya mendukung sejumlah kecil pengguna, ini tidak memiliki skalabilitas. Ketika beberapa permintaan klien meningkat, kinerja aplikasi mungkin menurun, karena klien memerlukan konektor independen dan memori CPU untuk memproses.
Karena logika aplikasi digabungkan dengan klien, maka sulit untuk menggunakan kembali logika program.
Aplikasi tiga tingkat
keuntungan:
· Korupsi data melalui aplikasi klien dapat dihilangkan karena lapisan tengah mengirimkan data untuk pembaruan basis data untuk memastikan validitasnya.
· Menempatkan logika bisnis pada server terpusat membuat data lebih aman.
· Karena penyebaran server aplikasi yang terdistribusi, tidak diperlukan koneksi terpisah untuk setiap klien. Beberapa koneksi server aplikasi sudah cukup, sehingga skalabilitas sistem ditingkatkan.
Kekurangan:
· Biasanya, saat membuat aplikasi tiga tingkat, saat titik komunikasi meningkat (klien ke tingkat menengah ke server, daripada langsung dari klien ke server), diperlukan lebih banyak investasi melalui alat seperti VisualBasic, PowerBuilder, Delphi, dll. Performa yang ditingkatkan akan menurun.
Aplikasi multi-tingkat
keuntungan:
· Semua keuntungan dari arsitektur tiga tingkat.
· Karena menghapus penginstalan dari lapisan database dan lapisan klien, kinerja ditingkatkan, sehingga cocok untuk industri berkapasitas menengah dan tinggi.
Kekurangan:
Karena komponenisasi lapisan, struktur yang kompleks sulit untuk diterapkan atau dipelihara.
Kesimpulannya
· Tidak ingin ada penundaan jaringan, harus memilih arsitektur single-layer.
· Perlu meminimalkan latensi jaringan, dan membutuhkan lebih banyak kontrol atas data dalam aplikasi, pilih aplikasi dua tingkat.
Saat Anda perlu mengontrol kode / logika bisnis aplikasi, ingin mengamankannya, dan perlu mengontrol data dalam aplikasi, Anda harus memilih arsitektur tiga tingkat.
· Arsitektur N-tier harus dipilih ketika perluasan aplikasi dan pemrosesan data dalam jumlah besar diperlukan.
Zoom horizontal atau vertikal-mana yang tepat untuk aplikasi Anda?
Jika aplikasi Anda dirancang untuk menerima utilitas atau alat yang terdiri dari lalu lintas minimal, misalnya, alat internal dalam organisasi, Anda mungkin tidak perlu mengelola aplikasi dalam lingkungan terdistribusi. Satu server cukup untuk mengatur lalu lintas, dan beban lalu lintas tidak akan meningkat secara signifikan. Dalam kasus ini, gunakan penskalaan vertikal.
Namun jika aplikasinya adalah jejaring sosial yang berhubungan dengan publik, aplikasi fitnes atau aplikasi sosial sejenis, maka dalam waktu dekat diharapkan trafik meningkat secara eksponensial. Dalam hal ini, ketersediaan tinggi dan skalabilitas horizontal keduanya penting.
Bangun penerapan cloud dan pertimbangkan skalabilitas horizontal sejak awal. Ini adalah situs berguna tempat Anda dapat mempelajari lebih lanjut tentang skalabilitas.
Holistik atau layanan mikro?
Mari kita telaah bagaimana memilih di antara keduanya.
Kapan menggunakan arsitektur monolitik
Aplikasi monolitik paling cocok jika persyaratannya sederhana dan aplikasi berfokus pada pemrosesan lalu lintas terbatas. Misalnya, aplikasi penghitungan pajak internal organisasi atau alat publik terbuka serupa.
Dalam kasus penggunaan ini, perusahaan yakin bahwa basis pengguna dan lalu lintas tidak akan tumbuh secara eksponensial dari waktu ke waktu.
Ada juga kasus di mana tim pengembangan memutuskan untuk memulai dengan arsitektur keseluruhan dan kemudian memperluas ke arsitektur layanan mikro terdistribusi.
Ini membantu mereka secara bertahap menangani kompleksitas aplikasi saat diperlukan. Ini adalah aplikasi LinkedIn.
Kapan menggunakan arsitektur layanan mikro
Arsitektur layanan mikro paling cocok untuk kasus penggunaan yang kompleks, dan juga paling sesuai untuk aplikasi di mana lalu lintas akan meningkat secara eksponensial di masa mendatang, seperti aplikasi jejaring sosial yang populer.
Aplikasi jejaring sosial yang khas memiliki berbagai komponen, seperti perpesanan, obrolan waktu nyata, video waktu nyata, unggahan gambar, preferensi, dan fungsi berbagi. Dalam hal ini, kembangkan setiap komponen secara terpisah, dengan mengingat prinsip tanggung jawab tunggal dan pemisahan masalah.
Setiap fitur yang ditulis ke dalam satu basis kode tidak akan cepat menjadi bingung.
Sekarang, kami telah melalui tiga pendekatan holistik dan layanan mikro:
· Pilih bangunan yang monolitik.
· Pilih arsitektur microservice.
Mulailah dengan arsitektur keseluruhan dan kemudian kembangkan ke arsitektur layanan mikro.
Pilihan arsitektur keseluruhan atau arsitektur layanan mikro sangat bergantung pada kasus penggunaan kita. Direkomendasikan untuk menjaga struktur sesingkat mungkin sambil memahami persyaratannya secara menyeluruh. Pahami keseluruhan situasi, tambahkan jika perlu, dan kembangkan kode secara terus menerus. Ini cara yang benar.
Kapan saya harus menggunakan NoSQL atau SQL?
Kapan memilih database?
Jika Anda menulis aplikasi perdagangan saham, perbankan, atau berbasis keuangan, atau Anda perlu menyimpan banyak relasi, misalnya, saat Anda menulis aplikasi jejaring sosial seperti FaceBook, Anda harus memilih database relasional. Alasannya adalah sebagai berikut:
Konsistensi transaksi dan data
Jika Anda menulis software yang berhubungan dengan uang atau angka, digunakan dalam transaksi, atau harus sesuai dengan konsistensi data ACID sangat penting bagi Anda. Basis data relasional luar biasa dalam hal transaksi dan konsistensi data - mereka mematuhi aturan ACID, telah ada sejak lama, dan telah diuji dalam praktiknya.
Hubungan penyimpanan
Jika data Anda memiliki banyak hubungan, misalnya, teman Anda yang mana yang tinggal di kota mana? Siapa di antara teman Anda yang sudah makan di restoran yang akan Anda kunjungi hari ini, dll. Tidak ada yang lebih baik untuk menyimpan jenis data ini selain database relasional.
Database relasional digunakan untuk menyimpan hubungan. Mereka telah diuji dan digunakan oleh raksasa industri seperti Facebook sebagai basis data utama yang dihadapi pengguna.
Database relasional populer
· MySQL
· Server MicrosoftSQL
· PostgreSQL
· MariaDB
Kapan memilih database NoSQL
Beberapa alasan memilih database NoSQL.
Menangani operasi baca dan tulis dalam jumlah besar
Saat Anda perlu memperluas dengan cepat, gunakan database NoSQL. Misalnya, ketika ada banyak operasi baca dan tulis di situs web dan sejumlah besar data diproses, database NoSQL paling cocok untuk situasi ini. Karena mereka dapat menambahkan node secara dinamis, mereka dapat memproses lebih banyak lalu lintas bersamaan dan data dalam jumlah besar dengan penundaan minimal.
Sumber: Pexels
Jalankan analisis data
Database NoSQL juga paling cocok untuk kasus penggunaan analisis data, dalam hal ini data perlu masuk dalam jumlah besar untuk diproses
Database NoSQL populer
· MongoDB
· Redis
· Cassandra
· HBASE
Jika Anda ingin mencoba database NoSQL seperti MongoDB, saya sangat menyarankan Anda untuk merujuk ke kursus "Panduan Final MongoDB" oleh Nikolai Zivkovic.
Memilih teknologi yang tepat untuk pekerjaan itu
Interaksi data waktu nyata
Membangun aplikasi membutuhkan:
· Interaksi waktu nyata dengan server back-end, seperti aplikasi perpesanan, atau aplikasi streaming audio dan video, seperti Spotify, Netflix, dll.
· Koneksi jangka panjang antara klien dan server, dan teknologi non-pemblokiran di bagian belakang.
Kemudian, beberapa teknologi populer yang dapat menulis aplikasi adalah NodeJS dan kerangka kerja Python populer yang disebut Tornado. Jika Anda bekerja di ekosistem Java, Anda dapat melihat Spring Reactor, Play, dan Akka.io
Aplikasi jaringan peer-to-peer
Jika Anda berencana untuk membangun aplikasi jaringan peer-to-peer, misalnya, mesin pencari terdistribusi P2P atau layanan siaran TV langsung P2P, yang merupakan stasiun siaran langsung yang mirip dengan Microsoft, maka Anda akan ingin mempelajari protokol JavaScript seperti DAT dan IPFS. Lihatlah FreedomJS, ini adalah kerangka kerja untuk membangun aplikasi web P2P di browser web modern.
Aplikasi konvensional berdasarkan CRUD
Jika ada kasus penggunaan sederhana, seperti aplikasi berbasis CRUD biasa, ada beberapa teknologi yang dapat digunakan: Spring MVC, Python Django, Ruby on Rails, PHP Laravel, dan ASP. NET MVC.
Sederhana, aplikasi skala kecil
Jika Anda berencana untuk menulis aplikasi yang tidak terlalu rumit, seperti blog, formulir online sederhana, atau aplikasi sederhana yang terintegrasi dengan media sosial, dan gunakan PHP di portal IFrame. Anda bisa belajar PHP gratis hari ini.
Anda juga dapat mempertimbangkan kerangka kerja jaringan lain, seperti Springboot dan Ruby on Rails, yang mempromosikan pengembangan cepat dengan mengurangi detail, konfigurasi, dan waktu pengembangan. Tetapi dibandingkan dengan hosting teknologi lain, biaya hosting PHP jauh lebih rendah. Sangat cocok untuk kasus penggunaan yang sangat sederhana.
Aplikasi intensif CPU dan memori
Apakah Anda perlu menjalankan tugas komputasi intensif CPU, intensif memori, dan berat di backend? Apakah Anda perlu melakukan pemrosesan data besar, pemrosesan paralel, atau pemantauan operasional dan analisis data dalam jumlah besar?
Kerangka kerja jaringan konvensional dan bahasa skrip tidak cocok untuk operasi angka. Teknologi yang biasa digunakan dalam industri untuk menulis sistem terdistribusi berkinerja tinggi dan terukur adalah C ++. Ini memiliki karakteristik memfasilitasi operasi memori tingkat rendah, dan memberi pengembang lebih banyak kontrol atas memori saat menulis sistem terdistribusi. Kebanyakan cryptocurrency ditulis dalam bahasa ini. Ini adalah kursus gratis untuk mempelajari C ++.
Rust adalah bahasa pemrograman yang mirip dengan C ++. Itu dibangun untuk kinerja tinggi dan konkurensi yang aman. Baru-baru ini, ini menjadi semakin populer di kalangan pengembang. Java, Scala dan Erlang juga merupakan pilihan yang bagus. Kebanyakan sistem perusahaan besar ditulis dalam Java.
Go adalah bahasa pemrograman Google yang digunakan untuk menulis aplikasi dan memproses data dalam jumlah besar untuk mesin multi-inti. Berikut cara mulai mempelajari Go.
Julia adalah bahasa pemrograman dinamis yang dibuat untuk komputasi kinerja tinggi dan analisis numerik.
Pelajari C ++, Rust, Scala dan Java gratis hari ini.
Bagaimana menjadi seorang arsitek perangkat lunak
Jika yang sebelumnya menarik, maka Anda mungkin bercita-cita menjadi seorang arsitek perangkat lunak. Tapi dari mana Anda memulai? Bagi siapa pun, sangat jarang memulai sebagai arsitek perangkat lunak, sehingga sebagian besar insinyur perangkat lunak akan memiliki pengalaman kerja beberapa tahun sebelum mulai merancang arsitektur.
Salah satu cara terbaik untuk terbiasa dengan arsitektur perangkat lunak adalah dengan merancang aplikasi jaringan Anda sendiri. Ini akan memaksa Anda untuk mempertimbangkan semua aspek berbeda dari aplikasi Anda-mulai dari load balancing, antrian pesan, pemrosesan streaming, caching, dan sebagainya. Begitu Anda mulai memahami bagaimana konsep-konsep ini cocok dengan aplikasi Anda, kemungkinan besar Anda akan menjadi seorang arsitek perangkat lunak.
Sebagai arsitek perangkat lunak yang bercita-cita tinggi, Anda perlu terus memperluas pengetahuan Anda dan mengikuti tren industri terbaru. Anda dapat bekerja sebagai pengembang perangkat lunak, mempelajari satu atau lebih bahasa pemrograman, dan secara bertahap berhasil.
Bahkan jika Anda tidak bisa mendapatkan gelar arsitek perangkat lunak di perguruan tinggi, Anda akan menemukan kursus lain berguna. Aplikasi Jaringan dan Arsitektur Perangkat Lunak 101 adalah tempat yang baik untuk mulai mempelajari praktik terbaik untuk merancang dan mengimplementasikan aplikasi jaringan.
Bagaimana cara memulai
Sumber: Pexels
Kami telah berbicara banyak dalam artikel ini, tetapi hanya menyentuh permukaan topik ini. Belum menjelajahi REST API, ketersediaan tinggi, dan teorema CAP.
Jika Anda ingin tahu lebih banyak tentang arsitektur perangkat lunak, saya sangat merekomendasikan aplikasi web dan arsitektur perangkat lunak 101. Ini memperkenalkan berbagai komponen dan konsep yang terlibat dalam merancang arsitektur aplikasi jaringan.
Anda akan memahami berbagai gaya arsitektur, seperti klien-server, arsitektur terdistribusi peer-to-peer, layanan mikro, fondasi aliran data dalam aplikasi jaringan, berbagai lapisan yang terlibat, skalabilitas, ketersediaan tinggi, dan konsep lainnya.
Selain itu, teknologi yang melalui pemilihan arsitektur dan tumpukan teknologi yang tepat untuk mengimplementasikan kasus penggunaan sangat dibutuhkan oleh semua orang. Kami akan memperkenalkan kasus penggunaan yang berbeda, yang akan membantu Anda memahami teknologi dan arsitektur mana yang paling sesuai untuk kasus penggunaan tertentu saat menulis aplikasi web, dan secara bertahap akan memahami trade-off teknis.
Jika Anda seorang pemula yang baru memulai karir dalam pengembangan perangkat lunak, artikel ini akan sangat membantu. Ini juga akan membantu dengan wawancara rekayasa perangkat lunak, terutama untuk posisi pengembang tumpukan penuh.
selamat belajar!
Komentar Suka Ikuti
Mari berbagi manfaat pembelajaran dan pengembangan AI
Jika mencetak ulang, silakan tinggalkan pesan di latar belakang dan ikuti spesifikasi pencetakan ulang
- Core Sound Today | 146 juta keping data! Wi-Fi gratis di stasiun Inggris membocorkan informasi pengguna
- Pembunuh tewas dalam insiden penembakan di Nakhon Ratchasima, Thailand, korban tewas bertambah menjadi 30
- Desa Sangmu: Giat mengembangkan industri untuk pengentasan kemiskinan dan membantu memenangkan perang melawan kemiskinan
- Yayasan Kesehatan dan Pengentasan Kemiskinan Beijing Lianci mendonasikan susu bubuk domestik berkualitas tinggi senilai 140 juta yuan kepada 100.000 keluarga bayi di Zhangjiajie selama tiga tahun
- Melanjutkan sekolah, bermain, minum, dan minum, orang Okinawa ahli dalam memerangi epidemi: secara sadar memakai topeng dan dengan patuh berjongkok di rumah
- Saat badai datang, tidak ada seorang pun di Swedia yang memakai masker. Orang Tionghoa ingin sekali membeli masker dari Tiongkok dan menyumbang ke rumah sakit
- Lebih dari 300 perawat medis dari Guangdong bergegas membantu Hubei pulang hari ini, seorang pelukis jiwa memberikan 12 lukisan ke Wuhan