


Perkara tegar: perjalanan pembinaan semula lebih daripada 30,000 baris kod dalam sistem teras
01 Mari kita bercakap tentang bagasi sejarah enjin pengiklanan sistem ini melalui satu setengah tahun lelaran sebelum pembinaan semula ini. perniagaan tunggal dan proses yang jelas.
1. Senario perniagaan mula menjadi kompleks Selain pengiklanan carian, ia juga perlu menyokong pengesyoran aliran maklumat dan senario pengesyoran yang serupa.
2. Trafik pengiklanan mula meningkat dengan cepat Selain memenuhi keperluan fungsi, ia juga perlu mengambil kira prestasi.
Selepas menyusun, kebanyakan logik keseluruhan enjin boleh dikongsi, jadi kami menentukan rangka kerja utama dan mengabstrak bahagian yang boleh dipanjangkan. Dengan cara ini, setiap senario boleh melaksanakan antara muka awam tertentu mengikut kekhususan perniagaannya sendiri. Di samping itu, dari perspektif prestasi, kami mengorbankan beberapa kebolehbacaan kod dan menyelaraskan beberapa logik.
Dengan perkembangan perniagaan, senario carian mula memasuki tempoh lelaran pesat, dengan semakin banyak strategi baharu ditambah, dan rangka kerja utama kami beransur-ansur menjadi tidak fleksibel pada masa ini.
1. Untuk serasi dengan logik khas carian, kita perlu menambah pelbagai jika pertimbangan dalam senario lain untuk memintas logik ini.
2 Terdapat lebih banyak strategi pengiklanan, berpuluh-puluh jumlah keseluruhannya Apabila rangka kerja kehilangan struktur yang jelas, pelaksanaan beberapa strategi mula menjadi tersuai, tiada pembahagian hierarki dan reka bentuk abstrak yang boleh dipasang.

Titik perubahan berlaku pada penghujung tahun 2019. Disebabkan kekhususan perniagaan pengiklanan, trafik mula merosot secara semula jadi, pasukan operasi produk menumpukan pada perancangan kerja untuk tahun kedua , yang memberi kami banyak bantuan Tempoh tingkap yang baik untuk memulakan pembinaan semula ini.
Kami menetapkan tempoh pembinaan kepada 1 bulan, dan akhirnya hanya dalam talian lewat sehari daripada yang dijangkakan Walaupun dua masalah dalam talian berlaku, ia ditemui dan dibaiki dalam masa dalam tempoh skala kelabu, dan tiada masalah luar talian telah disebabkan.
02 Apakah persediaan yang telah kita lakukan sebelum pemfaktoran semula?
Jumlah kod yang difaktorkan semula kali ini adalah sangat besar, lebih daripada 30,000 baris, dan ia merupakan bahagian enjin teras sistem pengiklanan. Sebelum pelancaran, kita boleh menjangkakan kesukaran berikut:
1 Ketahanan dari segi perniagaan: Pengiklanan sangat berorientasikan perniagaan, Walau bagaimanapun, penstrukturan ini boleh membawa kecekapan jangka panjang tidak dapat meningkatkan pendapatan perniagaan secara langsung, dan kitaran pembangunan tidak akan terlalu singkat. Bagaimanakah kita boleh mendapatkan sokongan daripada rakan sekelas perniagaan?
▍Biar semua orang melihat titik kesakitan
Seperti yang dinyatakan sebelum ini: Dengan lelaran perniagaan, rangka kerja utama enjin pengiklanan kami telah menjadi kabur, dan berpuluh-puluh strategi pengiklanan bertaburan dalam senario perniagaan yang berbeza dengan konfigurasi yang tidak kemas.
Sebagai tindak balas kepada dua perkara yang menyakitkan ini, kami mula menyusun perniagaan sedia ada sebulan lebih awal, membaca kod lama dan menyemak dokumen keperluan sebelumnya. Akhirnya, kami mengklasifikasikan proses teras dan strategi pengiklanan senario berbeza kepada satu A bentuk yang jelas.
Jadual inilah yang membolehkan teknologi dan produk melihat dengan jelas keseluruhan gambar bahagian enjin kami untuk kali pertama, dan memahami kerumitan perniagaan dan kesesakan teknikal semasa.
▍Selepas menjelaskan matlamat dan nilai pemfaktoran semula
dan membuat semua orang merasakan titik kesakitan, kami merancang dua matlamat utama untuk pemfaktoran semula ini:
ion rangka kerja utama: memodulasi proses utama, mentakrifkan semula protokol lapisan atas dan bawah, dan memastikan antara muka yang jelas juga perlu disarikan secara dalaman dan mempunyai skalabiliti yang baik;
2 Strategi yang fleksibel dan boleh dikonfigurasikan: Strategi pengiklanan dikelaskan dan diabstrakkan mengikut niat perniagaan, syarat pelaksanaan strategi boleh dikonfigurasikan secara dinamik, dan strategi boleh dipasang masuk dan keluar sesuka hati.
Selain itu, kami telah memperhalusi manfaat yang diharapkan yang boleh dibawa selepas melengkapkan dua matlamat teras ini:
1 Faedah teknikal: Struktur kod lebih jelas, lebih mudah difahami dan diselenggarakan, dan kecekapan pembangunan enjin akan dipertingkatkan lagi.
2 Faedah perniagaan: Strategi boleh mencapai konfigurasi dan pengembangan yang lebih halus, dan lebih mesra kepada sokongan perniagaan yang dipertingkatkan kecekapan boleh mempercepatkan lelaran perniagaan.
▍Kawalan irama keseluruhan
Kawalan irama keseluruhan juga merupakan bahagian yang sangat penting, membolehkan semua orang mempunyai jangkaan masa untuk perkara ini.
Pertama sekali, kami menetapkan tempoh pembinaan kepada 1 bulan Di satu pihak, kami mempertimbangkan masa kitaran maksimum yang boleh diterima di bahagian perniagaan, dan kami juga mengharapkan penyelesaian yang cepat dari segi teknikal; Festival Musim Bunga semakin hampir, dan kita mesti tergesa-gesa sebelum syarikat ditutup Pergi dalam talian sebelum pergi ke dalam talian, dan tempah penimbal selama 1-2 minggu untuk mengelakkan situasi yang tidak dijangka.
03 Apakah pengalaman yang boleh anda kongsikan semasa proses pelaksanaan?
1. Penyelesaian reka bentuk teknikal berkualiti tinggi
Ini disebabkan oleh kitaran yang memerlukan lebih daripada 3 hari pembangunan projek. Pembinaan semula ini pastinya tidak terkecuali.
Seni bina keseluruhan rangka kerja, reka bentuk protokol antara modul dan reka bentuk kebolehskalaan strategi adalah fokus penyelesaian teknikal ini.
Selepas rancangan besar dimuktamadkan, pasukan itu memperhalusi bahagian awam seperti pangkalan data, medan antara muka, struktur cache, titik terkubur log, dll. Kerana ia melibatkan pembangunan kolaboratif berbilang orang, pasukan bersetuju untuk menggunakan dokumen sebagai antara muka komunikasi dan dokumen sentiasa Kekal segerak dengan kod anda.
2. Pra-refactor kod rangka kerja
PR ini sangat kritikal dan merupakan langkah paling penting daripada pelaksanaan penyelesaian teknikal kami kepada kod tersebut. Kami telah menyusun struktur pakej yang dibina semula, pembahagian modul, definisi API antara setiap lapisan dan pengabstrakan strategi pengiklanan yang berbeza, mengabaikan butiran pelaksanaan terlebih dahulu.
Dengan cara ini, kod utama pada asasnya terbentuk, yang boleh menggambarkan dengan jelas rangka kerja ideal kami. Kami kemudiannya menganjurkan beberapa ulasan kod terpusat dan akhirnya membentuk pendapat bersatu.
Langkah ini boleh mengelak daripada terperangkap dalam butiran pelaksanaan terlalu awal, mengakibatkan perhatian yang tidak mencukupi pada rangka kerja utama dan kerja semula yang tidak stabil nanti sebenarnya akan menyeret ke bawah kecekapan.
3. Komunikasi yang kerap dan mekanisme semakan kod berpasangan
Selepas memasuki peringkat pelaksanaan terperinci, perkara yang sangat penting ialah: memahami logik sedia ada. Kod enjin telah diulang selama satu setengah tahun Ia telah dibangunkan oleh ramai orang dalam sejarah, tetapi kali ini hanya tiga pelajar yang mengambil bahagian dalam pembinaan semula.
Semasa keseluruhan proses, apabila kami menemui sebarang logik kod yang tidak jelas, kami berkomunikasi dan mengesahkan berulang kali, dan tidak membuat tekaan subjektif. Awas ini sebenarnya sangat penting.
Selain itu, untuk semakan kod, kami menugaskan pelajar yang biasa dengan perniagaan ini untuk bertanggungjawab untuk setiap modul Mereka dipasangkan secara berpasangan dan mekanismenya adalah fleksibel.
4. Pelan ujian yang berkesan
Refactoring belum dilakukan, testing dulu. Prinsip ini ditekankan dalam buku "Refactoring" dan juga menjadi tumpuan perbincangan kami mengenai penyelesaian teknikal ini, saya akan pilih di sini untuk mengembangkannya secara terperinci.
Pertama sekali, kami membuat perjanjian pada peringkat awal: untuk tidak menyentuh sebarang kod lama, dan membina pakej baharu sepenuhnya untuk pembinaan semula. Ini memudahkan untuk membandingkan keputusan sebelum dan selepas pembinaan semula dan menjalankan eksperimen skala kelabu dalam talian pada masa yang sama.
Mengenai pelan ujian, 4 perkara berikut patut dipelajari:
1. Pemfaktoran semula ini tidak melibatkan pelarasan fungsian API tidak akan Jika terdapat sebarang perubahan, kaedah ujian hujung ke hujung ini adalah yang paling berkesan Ini adalah kaedah R&D dan ujian QA yang paling penting.
2. Ujian asap: Pelajar QA menyediakan kes asap, dan pelajar R&D menjalankan ujian asap sebelum ujian R&D, semua kes asap mesti lulus. Ini tidak biasa di kebanyakan syarikat Internet, tetapi ia benar-benar berkesan untuk projek besar.
3 Pengesahan dwi-proses persekitaran kotak pasir: Seperti yang dinyatakan sebelum ini, kod sebelum dan selepas pembinaan semula kami dikekalkan, jadi parameter input persekitaran dalam talian boleh ditangkap melalui skrip sebagai kes, dan kemudian pengembalian API dikembalikan secara automatik Medan dibandingkan satu demi satu.
4 Percubaan skala kelabu persekitaran dalam talian: Skala kelabu sangat penting untuk pembinaan semula Kami menggunakan platform ABTest sedia ada untuk melepaskan trafik skala kelabu secara beransur-ansur, daripada 5%, kepada 10%, kepada 30%, dan akhirnya kepada 100%, a. kadar pengembangan volum yang sangat berhati-hati telah diwujudkan, dan kemudian disahkan melalui log dan pemantauan penunjuk perniagaan.
Ditulis pada penghujungnya
Menyemak keseluruhan proses pembinaan semula, diringkaskan dalam 7 perkara penting berikut:
Atas ialah kandungan terperinci Perkara tegar: perjalanan pembinaan semula lebih daripada 30,000 baris kod dalam sistem teras. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Pendaraban Matriks Umum (GEMM) ialah bahagian penting dalam banyak aplikasi dan algoritma, dan juga merupakan salah satu petunjuk penting untuk menilai prestasi perkakasan komputer. Penyelidikan mendalam dan pengoptimuman pelaksanaan GEMM boleh membantu kami lebih memahami pengkomputeran berprestasi tinggi dan hubungan antara perisian dan sistem perkakasan. Dalam sains komputer, pengoptimuman GEMM yang berkesan boleh meningkatkan kelajuan pengkomputeran dan menjimatkan sumber, yang penting untuk meningkatkan prestasi keseluruhan sistem komputer. Pemahaman yang mendalam tentang prinsip kerja dan kaedah pengoptimuman GEMM akan membantu kami menggunakan potensi perkakasan pengkomputeran moden dengan lebih baik dan menyediakan penyelesaian yang lebih cekap untuk pelbagai tugas pengkomputeran yang kompleks. Dengan mengoptimumkan prestasi GEMM

Pada 29 Julai, pada majlis pelepasan kereta baharu AITO Wenjie yang ke-400,000, Yu Chengdong, Pengarah Urusan Huawei, Pengerusi Terminal BG, dan Pengerusi Smart Car Solutions BU, menghadiri dan menyampaikan ucapan dan mengumumkan bahawa model siri Wenjie akan akan dilancarkan tahun ini Pada bulan Ogos, Huawei Qiankun ADS 3.0 versi telah dilancarkan, dan ia dirancang untuk terus naik taraf dari Ogos hingga September. Xiangjie S9, yang akan dikeluarkan pada 6 Ogos, akan memperkenalkan sistem pemanduan pintar ADS3.0 Huawei. Dengan bantuan lidar, versi Huawei Qiankun ADS3.0 akan meningkatkan keupayaan pemanduan pintarnya, mempunyai keupayaan bersepadu hujung-ke-hujung, dan mengguna pakai seni bina hujung ke hujung baharu GOD (pengenalpastian halangan am)/PDP (ramalan). membuat keputusan dan kawalan), menyediakan fungsi NCA pemanduan pintar dari ruang letak kereta ke ruang letak kereta, dan menaik taraf CAS3.0

Versi terbaik sistem Apple 16 ialah iOS16.1.4 Versi terbaik sistem iOS16 mungkin berbeza dari orang ke orang Penambahan dan peningkatan dalam pengalaman penggunaan harian juga telah dipuji oleh ramai pengguna. Versi sistem Apple 16 yang manakah adalah yang terbaik Jawapan: iOS16.1.4 Versi terbaik sistem iOS 16 mungkin berbeza dari orang ke orang. Menurut maklumat awam, iOS16, yang dilancarkan pada 2022, dianggap sebagai versi yang sangat stabil dan berprestasi, dan pengguna cukup berpuas hati dengan pengalaman keseluruhannya. Selain itu, penambahan ciri baharu dan penambahbaikan dalam pengalaman penggunaan harian dalam iOS16 juga telah diterima baik oleh ramai pengguna. Terutamanya dari segi hayat bateri yang dikemas kini, prestasi isyarat dan kawalan pemanasan, maklum balas pengguna agak positif. Walau bagaimanapun, memandangkan iPhone14

Pada 11 April, Huawei secara rasmi mengumumkan pelan peningkatan 100 mesin HarmonyOS 4.2 kali ini, lebih daripada 180 peranti akan mengambil bahagian dalam peningkatan, meliputi telefon bimbit, tablet, jam tangan, fon kepala, skrin pintar dan peranti lain. Pada bulan lalu, dengan kemajuan mantap pelan peningkatan 100 mesin HarmonyOS4.2, banyak model popular termasuk Huawei Pocket2, siri Huawei MateX5, siri nova12, siri Huawei Pura, dll. juga telah mula menaik taraf dan menyesuaikan diri, yang bermaksud bahawa akan ada Lebih ramai pengguna model Huawei boleh menikmati pengalaman biasa dan selalunya baharu yang dibawa oleh HarmonyOS. Berdasarkan maklum balas pengguna, pengalaman model siri Huawei Mate60 telah bertambah baik dalam semua aspek selepas menaik taraf HarmonyOS4.2. Terutamanya Huawei M

Sistem pengendalian komputer ialah sistem yang digunakan untuk mengurus perkakasan komputer dan program perisian Ia juga merupakan program sistem pengendalian yang dibangunkan berdasarkan semua sistem perisian yang berbeza mempunyai pengguna yang berbeza. Di bawah, editor akan berkongsi dengan anda apa itu sistem pengendalian komputer. Apa yang dipanggil sistem pengendalian adalah untuk mengurus perkakasan komputer dan program perisian Semua perisian dibangunkan berdasarkan program sistem pengendalian. Sebenarnya, terdapat banyak jenis sistem pengendalian, termasuk yang untuk kegunaan industri, kegunaan komersial dan kegunaan peribadi, meliputi pelbagai aplikasi. Di bawah, editor akan menerangkan kepada anda apa itu sistem pengendalian komputer. Apakah sistem pengendalian komputer sistem Windows Sistem Windows ialah sistem pengendalian yang dibangunkan oleh Microsoft Corporation dari Amerika Syarikat. daripada kebanyakannya

Linux dan Windows ialah dua sistem pengendalian biasa, masing-masing mewakili sistem Linux sumber terbuka dan sistem Windows komersial. Dalam kedua-dua sistem pengendalian, terdapat antara muka baris arahan untuk pengguna berinteraksi dengan sistem pengendalian. Dalam sistem Linux, pengguna menggunakan baris arahan Shell, manakala dalam sistem Windows, pengguna menggunakan baris arahan cmd. Baris arahan Shell dalam sistem Linux ialah alat yang sangat berkuasa yang boleh menyelesaikan hampir semua tugas pengurusan sistem.

Penjelasan terperinci tentang kaedah mengubah suai tarikh sistem dalam pangkalan data Oracle Dalam pangkalan data Oracle, kaedah mengubah suai tarikh sistem terutamanya melibatkan pengubahsuaian parameter NLS_DATE_FORMAT dan menggunakan fungsi SYSDATE. Artikel ini akan memperkenalkan kedua-dua kaedah ini dan contoh kod khusus mereka secara terperinci untuk membantu pembaca lebih memahami dan menguasai operasi mengubah suai tarikh sistem dalam pangkalan data Oracle. 1. Ubah suai kaedah parameter NLS_DATE_FORMAT NLS_DATE_FORMAT ialah data Oracle

Selepas memasang sistem pengendalian win10 pada komputer kami, sesetengah rakan mungkin mengalami skrin biru sistem dan kod ralat segera 0xc0000428 apabila menggunakan komputer. Jangan risau tentang masalah seperti ini Editor berpendapat bahawa kami boleh menyelesaikan masalah pada sistem terlebih dahulu untuk melihat sama ada ia disebabkan oleh perkakasan atau perisian, dan kemudian menyelesaikan masalah dengan cara yang disasarkan. Mari kita lihat apa yang editor lakukan untuk butiran khusus~ Bagaimana untuk menyelesaikan masalah 0xc0000428 dalam sistem win10 1. Mulakan semula secara berterusan dan kemudian paksa penutupan tiga kali untuk membiarkan sistem win10 secara automatik memasuki pilihan permulaan lanjutan. 2. Dalam antara muka pilihan permulaan lanjutan sistem win10, buka mengikut urutan: Penyelesaian Masalah-Pilihan Lanjutan-Tetapan Permulaan, dalam Tetapan Permulaan
