Rumah > Artikel > rangka kerja php > Drupal membandingkan dengan thinkphp untuk melihat persekitaran sumber terbuka domestik
Hari ini, artikel ini akan memberi anda perbandingan antara ThinkPHP dan Drupal, yang melaluinya anda boleh melihat status semasa industri perisian China dan asing, dan persekitaran sumber terbuka domestik!
Perumahan, perkahwinan, rawatan perubatan, pendidikan, dan penjagaan warga emas masing-masing adalah "Menjana wang" mesti menjadi keutamaan. Oleh itu, ThinkPHP, yang dicipta oleh hanya dua pembangun teras, telah menjadi harapan ramai orang Sebaliknya, tidak ada "pengaturcara hanya makan makanan belia". 60-an yang masih mempunyai senyuman di mata mereka Bercakap tentang teknologi, mereka mencari erti kehidupan dan tidak terlalu terganggu dengan penghidupan mereka mengubah hidup mereka menjadi karya besar yang akan diwarisi bersama dengan tamadun manusia Maka Drupal dipuji oleh semua orang dan dengan cepat belayar ke arah lautan bintang. Artikel ini menceritakan kisah yang menyedihkan, memikirkan ke mana orang yang membaca teks yang sama harus diketahui oleh lebih ramai orang.
Bercakap tentang ThinkPHP dan Drupal (diterjemahkan ke bahasa Cina sebagai "titik air") bersama-sama , yang akan membuat ramai pembangun Pembaca ingin tahu, tetapi dari perspektif pembangunan ekosistem perisian Cina dan asing, ini benar-benar titik permulaan yang baik untuk perbincangan Artikel ini telah membuat beberapa perbandingan antara dua sistem dalam pelbagai aspek, tetapi perbandingan bukanlah tujuan utama menulis artikel ini, terutamanya untuk berkongsi maklumat antara China dan negara asing Perbezaan dalam industri perisian, serta beberapa pemikiran yang disebabkan oleh mereka, membantu pemaju merancang kerjaya mereka dan memberikan keputusan-. menjadi asas bagi pembuat keputusan IT.
Kedua-dua sistem adalah sumber terbuka, aplikasi PHP percuma Mari kita berikan pengenalan ringkas dahulu:
ThinkPHP:
Produk. kedudukan: Rangka kerja pembangunan PHP, pembangun boleh terus membangun dan membina sistem aplikasi mereka sendiri atas dasar ini
Organisasi pembangunan: Dibangunkan oleh "Shanghai Dingxiang Information Technology Co., Ltd."
domestik Pengasas: Liu Chen, tidak banyak maklumat Baidu Query ialah perunding kanan untuk perisian sumber terbuka, pengaturcara PHP kanan, dan Ketua Pegawai Eksekutif Kanyun Beliau mempunyai lebih daripada 15 tahun pengalaman dalam pembangunan dan pengurusan produk Internet bidang termasuk seni bina dan pembangunan aplikasi web, dan reka bentuk pengalaman pengguna produk , komited kepada industri sumber terbuka domestik
Masa pembangunan: pertama kali dilahirkan pada awal 2006
Protokol sumber terbuka: Apache 2
Alamat tapak web rasmi: http://www.thinkphp.cn /Kumpulan pengguna: Perusahaan kecil dan mikro domestik China, yang mempunyai reputasi tinggi dalam kalangan pemaju domestik menggambarkan dirinya sendiri sebagai “rangka kerja PHP yang paling berpengaruh dan perintis di China!”Kes terkenal: Kumpulan 56, Bar Soalan Lenovo, CYTS Happy Travel, Pocari Sweat, Starbucks, Metersbonwe's Bangou Mall, pusat beli-belah dalam talian TCL, Sina WeChat, Aoxing , CRRC You Technology, dsb. Saiz pasukan: Tiada data rasmi, tetapi setiap fail rangka kerja mempunyai maklumat pengarang Menurut statistik ini, terdapat seramai 7 orang, termasuk dua pembangun utama (. menyumbang lebih daripada 90% daripada kod tersebut). orang ialah 3. Fail sistem: Mengikut versi Pengiraan 6.0.7 semasa, bilangan fail yang dipasang pada mulanya ialah 569, menduduki 2.41MB ruang
Drupal :
Penempatan produk: sistem back-end lengkap (sistem back-end) Data tamat dan pusat kawalan), digunakan untuk pembangunan back-end APP, program mini, tapak web, Internet of Things, dsb. Organisasi pembangunan: komuniti sumber terbuka bukan untung yang dibina bersama oleh lebih 200 negara di seluruh dunia dan dianjurkan oleh Yayasan Drupal Pengasas: Asalnya dimulakan oleh Dr . Dries Buytaert dari Belgium Dries's 2008 tesis kedoktoran ialah "Java Application Performance Analysis and Optimization Technology", pencipta Java James Gosling Beliau adalah ahli jawatankuasa pertahanan kedoktorannya ialah https://dri .es/aboutMasa pembangunan: pertama kali dilahirkan pada tahun 2000Lesen sumber terbuka: GPL 2.0Alamat laman web rasmi: https://www.Drupal.org/Kumpulan pengguna: perusahaan, agensi kerajaan, universiti, individu, dsb. dari seluruh dunia, antaranya bahagian pasaran 500 syarikat teratas dunia melebihi 80% IDE Terkenal: phpstorm menyepadukan projek Drupal baharu secara langsung Kes terkenal: Domestik: Huawei, JD.com, Baidu, Tencent, Tsinghua, Universiti Peking, Kumpulan Stesen Kerajaan Perbandaran Guizhou, Zhenkongfu, dll.; Kesatuan Eropah, Universiti Harvard, MIT, Disney, NASA, Pfizer Pharmaceuticals, dll. Saiz pasukan: Mempunyai komuniti sumber terbuka terbesar dan paling aktif di dunia, Terdapat lebih daripada 1,800 pembangun teras dan lebih daripada 120,000 penyumbang aktif (kod, dokumentasi, pereka bentuk, dll.), termasuk lebih daripada 2,000 orang dalam sub-komuniti Cina, dan syarikat pemacu utama Acquia mempunyai lebih daripada 1,100 pekerja. Pada masa ini, purata kira-kira 1,300 penyerahan kod dijana setiap minggu. Fail sistem: Berdasarkan versi 9.1.7 semasa, bilangan fail yang dipasang pada mulanya ialah 18,770, menduduki 71.2MB ruangMengapa ThinkPHP dan Drupal:
Satunya ialah rangka kerja yang popular di China, dan satu lagi ialah sistem back-end lengkap yang popular di peringkat antarabangsa (ia juga merupakan sistem yang paling berkuasa dan fleksibel di dunia, tidak ada sesiapa pun, jika dilihat dari saiznya). tidak dalam kelas berat yang sama sama sekali Dari perspektif kedudukan pasarannya, tidak ada makna perbandingan, tetapi meneroka mereka adalah sangat penting untuk memahami ekologi perisian Cina dan asing Selain itu, bagaimana jika saya secara langsung memberitahu anda bahawa Drupal boleh melakukan semua yang ThinkPHP boleh lakukan, dan ia lebih elegan dan ringkas? Perkara semakin menarik sekarang, mari teruskan.
Biasanya pembangun domestik yang menggunakan Drupal adalah veteran pembangunan dengan pengalaman bertahun-tahun Mereka telah keluar dari pelbagai sistem secara berperingkat-peringkat mengikut peredaran zaman Tetapi mereka tidak semestinya mengetahui Drupal Sebab pembangun yang menggunakan ThinkPHP memilih ThinkPHP secara amnya kerana rangka kerja itu menyediakan asas yang sama lebih jauh daripada PHP asas, adalah fleksibel dan bebas, dan tidak terhad berbanding dengan pembangunan sekunder sistem seperti Imperial. CMS. Anda boleh melaksanakan fungsi anda sendiri sesuka hati, tetapi di hadapan Drupal, perkara menjadi berbeza, yang mungkin membuatkan pembangun berasa seperti mereka telah menemui harta karun Di sini, kami perlu memperkenalkan secara ringkas seni bina sistem Drupal dibina dalam lapisan:
Lapisan bawah:
ialah lapisan rangka kerja, berdasarkan rangka kerja Symfony yang popular boleh dikatakan sebagai standard industri untuk PHP dan paling terkenal rangka kerja di dunia. Satu lagi rangka kerja PHP yang terkenal ialah Laravel sendiri, banyak bahagian juga berdasarkan atau berasal dari Symfony yang mengetahui kerangka kerja Symfony dengan cepat boleh mula membangunkan kerangka kerja Symfony. Satu lagi karya terkenal beliau ialah enjin templat Twig, yang juga menggunakan Antara Drupal, Drupal ialah contoh paling terkenal Symfony yang menyenaraikan Drupal terlebih dahulu, dan komuniti Drupal turut mengambil bahagian dalam sumbangan kod Symfony.
Lapisan kedua:
ialah lapisan data, diwakili oleh entiti, yang menyediakan pelbagai data ke atas pengkapsulan pangkalan data milik lapisan ini dan konsep model dalam ThinkPHP konsep entiti itu kelihatan seperti pada hari-hari awal
Lapisan ketiga:
Lapisan aplikasi, pembangun mengendalikan pelbagai logik perniagaan dalam lapisan ini
Di sini pembangun memerlukan untuk memberi perhatian kepada Apabila menggunakan Drupal, anda tidak perlu memanggilnya lapisan demi lapisan, tetapi anda boleh melangkaunya dan pergi terus ke lapisan tertentu Oleh itu, apabila membangunkan secara langsung untuk lapisan rangka kerja, anda boleh menggunakan keseluruhan sistem sebagai rangka kerja, sama seperti pembangunan ThinkPHP Ia sama seperti menggunakan rangka kerja ThinkPHP secara langsung, itulah sebabnya Drupal boleh melakukan segala-galanya yang boleh dilakukan oleh ThinkPHP. dan malah secara langsung mengguna pakai beberapa komponennya Dalam banyak aspek, ia sangat Melukis pada rangka kerja Symfony (mana-mana pencipta patut dihormati, jadi perkataan "plagiarisme" tidak digunakan, tetapi "meminjam" digunakan adalah hampir sama, tetapi terdapat perbezaan yang besar dalam kematangan dan butiran Jurang ini adalah seperti berikut: Perihalan imej:
Pada zaman nenek moyang manusia mengira dengan tali bersimpul, buah adalah buah dan buah. ikan adalah ikan Apabila nombor "1" di belakangnya disarikan dari setiap perkara tertentu, Kemanusiaan telah menghadapi lonjakan besar. Kepentingan detik ini tidak kurang daripada penggunaan api, dan penciptaan nombor, matematik, dll Dalam masa dan ruang, manusia sentiasa meneroka dan mengabstraksi dunia, dan telah mengumpul bakat berkali-kali Dengan peradaban hari ini, boleh dikatakan bahawa semakin tinggi tahap abstraksi, semakin kuat maknanya. kepada intipati.
Banyak karya hebat memerlukan tenaga kerja dan masa yang besar untuk terkumpul, jadi berapa besar jurang pengumpulan antara ThinkPHP dan Symfony, atau antara ThinkPHP dan Drupal? Apa yang saya boleh beritahu anda secara langsung dan tegas di sini ialah terdapat jurang antara sekolah rendah dan kolej, dengan sekolah menengah rendah dan sekolah menengah di antara sebab utama ialah saiz komuniti, ekologi dan masa. ThinkPHP dan Symfony adalah kedua-dua rangka kerja dan merupakan pesaing paling langsung Untuk wujud, ThinkPHP memerlukan laluan inovasi bebas, tetapi ia meminjam banyak daripada Symfony Ini adalah perkara yang sangat memalukan tentang Symfony? Rangka kerja CI (CodeIgniter) pada tahap yang sama telah dibangunkan sepenuhnya secara bebas Anda tidak dapat melihat bayangan ThinkPHP dalam banyak kedudukan global fenomena aneh. Kerana ThinkPHP adalah produk tempatan sepenuhnya, dokumen anotasi pun dalam bahasa Cina Berdasarkan artikel ini, ThinkPHP sebagai titik permulaan untuk mengkaji status perisian Cina dan asing.
Apakah yang menjadikan sistem yang baik? Apa yang kita perlukan?
Bak kata pepatah, jika anda ingin menjalankan tugas anda dengan baik, anda mesti terlebih dahulu mempertajamkan alat anda. Berikut adalah beberapa perkara untuk menggambarkan ciri-ciri sistem yang cemerlang akan menggunakan ini untuk membandingkan ThinkPHP dan Drupal:
Kesempurnaan:
Kesempurnaan yang dipanggil boleh dianggap sebagai alat atau komponen yang telah direka bentuk dengan semua situasi dipertimbangkan sepenuhnya. Contohnya, fungsi pemintasan rentetan yang disediakan secara asli oleh PHP akan memotong aksara UTF-8 dan menghasilkan aksara yang bercelaru. anda merancang Fungsi pemintasan bukan sahaja tidak melakukan ini, tetapi juga tidak memotong perkataan Bahasa Inggeris Ia juga mengambil kira untuk tidak memotong tag dalam HTML Kemudian alat anda lebih lengkap daripada fungsi asli PHP lajur yang tidak boleh berpuas hati, anda perlu memperbaikinya. Reka bentuk banyak bahagian Drupal adalah "lengkap". sokongan secara semula jadi berdasarkan nama domain, protokol, Kaedah HTTP, format data, pilihan, dll. Jika semuanya sepadan, terdapat klasifikasi keutamaan Ini tidak tersedia sepenuhnya dalam ThinkPHP pemahaman tentang sifat urus niaga dan sejumlah besar pengalaman pembangunan , kesempurnaan membolehkan manusia terus bergerak ke hadapan berdasarkan pendahulu mereka.
Penstandardan:
Penstandardan ialah prasyarat untuk kerjasama berskala besar struktur hierarki Sistem, komunikasi silang sistem, komponen yang dipisahkan, dsb. semuanya tidak dapat dipisahkan daripada penyeragaman. Drupal berorientasikan sepenuhnya kepada dokumen RFC bukan sistem serba lengkap Rujukan kepada RFC sering dilihat dalam ulasan atau perbincangan dokumen RFC adalah asas Internet IT Mereka sering diabaikan pengguna, tetapi mereka amat penting.
Kelengkapan:
Pembahagian kerja koperasi Apabila komponen yang cukup maju dan lengkap disatukan dan semua orang menggunakannya, ini merupakan kesempurnaan, dan kemudian Orang tidak mempunyai untuk mencipta semula roda itu sendiri dan menembusi involusi seterusnya akan menggalakkan peningkatan kesempurnaan Symfony dan Drupal menyelesaikan masalah integriti dalam bentuk komponen dan modul.
Gandingan rendah:
Setiap komponen reka bentuk sistem perlu dipisahkan sebanyak mungkin, supaya setiap komponen lebih banyak ruang untuk pembangunan dan penambahbaikan Komponen yang baik juga mudah diganti. Drupal menggunakan reka bentuk modular, malah terasnya adalah modular berganding.
Kuasai sempadan:
Sistem yang baik semestinya sistem dengan kawalan yang betul, tetapi ini agak sukar, dan orang yang baik hati mempunyai pandangan yang berbeza tentang Kebaikan dan orang bijak mempunyai pendapat yang berbeza Secara umumnya, arah umum atau sistem tulang belakang mestilah ringkas. :id', 'Blog/:action' );, dan Drupal tidak membenarkan ini Apabila melaksanakan fungsi yang serupa, pengawal proksi biasanya digunakan secara ringkas, kesan ini tidak seharusnya dilaksanakan pada peringkat penghalaan, tetapi harus dilaksanakan pada tahap pengawal, yang menjadikan sistem penghalaan lebih ringkas Seni bina sistem adalah lebih jelas. Idea ini berjalan melalui Drupal, menjadikan tulang belakang sistem Drupal sangat mudah dan bersih kemudian masukkan anak sungai terperinci yang berbeza Adakah ia seperti pokok? Tetapi cara mana yang anda lebih suka?
Kesederhanaan:
Untuk menjadi mudah, sistem perlu mempunyai proses yang jelas, panggilan bersatu dan peraturan yang konsisten Tiada tambahan dibenarkan atau tambahan harus dielakkan sebagai seboleh-bolehnya. Kelebihan ini adalah Mudah untuk pendatang baru belajar, dan sangat mudah untuk mengesan dan menyelesaikan masalah.
Vitaliti:
Kecergasan sistem juga terletak pada kemampanan Ekosistem dan pembangun adalah nutrien sistem. Kami akan membincangkannya di bawah, tetapi kami akan melangkaunya di sini.
Perbandingan antara ThinkPHP dan Drupal:
Berbanding dengan Drupal, secara amnya, ThinkPHP mempunyai abstraksi yang tidak mencukupi dan pengumpulan yang tidak mencukupi adalah seperti seorang kanak-kanak yang telah berpengalaman bertahun-tahun, mengetahui prinsip-prinsip umum di sebalik perkara-perkara, dan telah pergi lebih jauh, dan ThinkPHP menyediakan konkrit , batu bata dan bahan binaan asas yang lain, pembangun perlu meneroka cara membina, cara mereka bentuk dan isu seni bina yang lain, dan Drupal bukan sahaja menyediakan bahan asas, tetapi juga dilengkapi dengan pasukan pembinaan dan institut reka bentuk Banyak kali anda hanya perlu menyebut Anda hanya perlu membina bangunan dengan apa sahaja rasa dan fungsi yang anda inginkan (keperluan yang anda penuhi biasanya telah dipenuhi oleh orang lain, membentuk sejumlah besar modul sumbangan, yang boleh dipasang, jika anda berminat, anda juga boleh). mengambil bahagian dalam pembinaan. Proses ini memberi anda hasil yang disesuaikan.
Bab ini membandingkan kedua-duanya pada tahap seni bina teknikal Jika anda bukan pembangun, atau tidak berminat dengan teknologi tertentu, anda boleh melangkau bab ini secara langsung dan meneruskan ke bab seterusnya versi ThinkPHP 6.0.7 dan Drupal 9.1.7, disebabkan ruang yang terhad, hanya beberapa kandungan penting dipilih untuk perbandingan:
Acara:
Dalam ThinkPHP, peristiwa diposisikan untuk menggantikan gelagat asal dan mekanisme Hook Ia dapat dilihat bahawa pengarang tidak menyedari perbezaan penting antara peristiwa dan cangkuk Perkara yang sama ialah kod pihak ketiga digunakan untuk campur tangan Pemprosesan logik semasa ini, tetapi di bawah premis umum ini, kait memfokuskan pada penyertaan, dan acara memfokuskan pada kuantiti dan sifatnya yang sangat berbeza, manakala Drupal lebih memahami konsep tersebut daripada "peristiwa", ia juga membawa kepada Pelaksanaan adalah longgar dan kompleks, dan terdapat kekurangan fungsi utama Sebagai contoh, acara ThinkPHP tidak mempunyai konsep keutamaan, yang penting apabila terdapat keperluan pesanan Pada masa yang sama, tidak ada mekanisme penamatan penyebaran peristiwa Sebagai contoh, ThinkPHP tidak memerlukan pelaksanaan kelas acara Malah, untuk memproses peristiwa, parameter biasanya perlu diluluskan, dan hasil pemprosesan perlu disalurkan kembali kepada sumber acara. kelas acara diperlukan. ThinkPHP adalah sangat asas, dan Drupal menggunakan perkhidmatan penghantar acara untuk memproses semua acara, dan langganan Tiada sekatan khas pada pemproses dan pendengar Untuk memproses logik berkaitan peristiwa di mana-mana dalam sistem, anda hanya perlu hadapi perkhidmatan penghantar acara
Middleware:
dalam ThinkPHP dan Drupal mempunyai konsep "middleware", tetapi kedudukannya sangat berbeza dalam ThinkPHP, fungsi yang dilaksanakan oleh middleware dikendalikan oleh penghantar acara dalam Drupal Sebagai contoh, dokumen ThinkPHP menyebut bahawa middleware digunakan terutamanya Untuk memintas atau menapis permintaan HTTP aplikasi, inilah yang dilakukan oleh peristiwa permintaan penghantaran dalam Drupal juga sama. Mereka sepadan dengan acara penghalaan dan acara pengawal, dan perisian tengah dalam Drupal Fungsi utama perisian adalah untuk menukar teras pemprosesan HTTP daripada satu kepada berbilang Dari segi seni bina logik, Drupal adalah lebih elegan dan lebih jelas daripada ThinkPHP ini juga disebabkan oleh pemahaman ThinkPHP yang tidak mencukupi tentang mekanisme acara, yang menjadikan struktur sistem berantakan dan menyediakan persekitaran yang lebih baik untuk naik taraf masa depan. >
Fail kemasukan kedua-duanya sangat mudah dan mempunyai logik yang sama Terdapat tiga perbezaan utama:1. Drupal secara langsung menyuntik objek permintaan ke dalam teras pemprosesan dalam fail entri, yang secara literal mencerminkan konsep "mana-mana sistem web ialah sistem yang menukar permintaan kepada respons Walaupun kaedah larian perkhidmatan HTTP ThinkPHP juga boleh digunakan, Tetapi ia tidak dicerminkan di pintu masuk, tetapi tidak ada perbezaan yang ketara ThinkPHP tidak mempunyai sokongan untuk fungsi "sub-permintaan", iaitu, keupayaan untuk menghantar permintaan kepada dirinya sendiri untuk diproses semasa sistem sedang berjalan. Tidak perlu melompat keluar dari sistem dan kembali kesan ke atas seni bina sistem (di seluruh sistem, sub-permintaan bukan sahaja mesti mempengaruhi status persekitaran permintaan utama, tetapi juga mempertimbangkan prestasi perkara ini menunjukkan bahawa seni bina sistem Drupal jauh lebih berkuasa dan lengkap daripada ThinkPHP Jauh lebih tinggi). , Drupal boleh mengendalikan logik perniagaan yang kompleks dengan lebih baik
2. Kesederhanaan sebenar, Drupal hanya mempunyai satu fail kemasukan di seluruh dunia, sama ada berbilang aplikasi atau aplikasi tunggal di hadapan dan belakang, dsb., hanya ada satu Walaupun pengguna boleh menetapkan berbilang entri, berbilang entri tidak disyorkan Ini mengurangkan kerumitan, menjadikannya mudah, dan meletakkan asas untuk sistem alias URL ThinkPHP mempunyai mekanisme berbilang masukan yang kompleks, terutamanya apabila menggunakan berbilang aplikasi. Ini juga berguna untuk Sokongan untuk URL alias akan menjadi lebih sukar 3. Drupal menghantar pemuat kelas ke teras pemprosesan dalam keadaan awal, yang secara semula jadi menyokong penggantian atau pengubahsuaian pemuat kelas, tetapi ThinkPHP tidak menyokongnya, ia hanya memuatkannya. apabila pemuat kelas perlu diubah suai, ia tidak boleh diperolehi, yang sangat mengurangkan fleksibiliti Sebagai contoh, banyak kelas tidak boleh digantikan oleh pengguna sendiri Sebagai contoh, ia menyusahkan jika anda ingin menggantikan kelas "thinkHttp".Berbilang aplikasi:
Kedua-duanya menyokong berbilang aplikasi, iaitu berbilang sistem menggunakan semula set kod yang sama, tetapi kaedah khusus adalah lebih mudah dengan DrupalPengaturcaraan berorientasikan antara muka:
Dalam kebanyakan pelaksanaan ThinkPHP, antara muka tidak diekstrak daripada kelas, malah sesetengah kelas penting tidak mempunyai antara muka, seperti:thinkApp
thinkRequestMereka sangat teras dan penting, tetapi mereka tidak mempunyai antara muka bebas mereka sendiri ThinkPHP tidak diprogramkan secara ketat mengikut antara muka, yang mengurangkan kefleksibelan . Sebagai contoh, saya ingin melaksanakan saya sendiri. Adalah mustahil untuk menggantikan thinkApp dengan kelas aplikasi berorientasikan antara muka sepenuhnya, dan kekangan jenis parameter adalah semua antara muka Kami boleh menggantikan teras Mana-mana kelas yang disediakan tanpa perlu mengubah suai teras, termasuk kelas teras HTTP yang paling penting: DrupalKernel, yang serupa dengan kelas aplikasi ThinkPHP. Selain menjejaskan kebolehskalaan, tidak mengikuti pengaturcaraan antara muka secara ketat juga mempunyai banyak kelemahan lain, seperti tidak mesra IDE, sukar untuk mengautomasikan pengekstrakan dokumen, komen kod tanpa warisan, perbincangan kolaboratif yang menyusahkan, dll.
Sistem penghalaan:
Memetik teks asal tutorial rasmi ThinkPHP:"ThinkPHP tidak dipaksa untuk menggunakan penghalaan. Jika tiada penghalaan ditentukan, anda boleh terus menggunakan "pengawal/ Operasi "akses"
Dapat dilihat bahawa pengarang rangka kerja mempunyai pemahaman yang tidak mencukupi tentang sifat penghalaan. Seperti yang dinyatakan di atas, nombor 1 belum diabstraksikan. Apa yang dipanggil "pengawal /operation" juga harus tergolong dalam laluan lalai atau Titik penghalaan laluan dalaman yang kelihatan tidak berbahaya, bukannya tiada penghalaan, sebenarnya sangat penting dan melibatkan kognisi penting, yang membawa kepada tingkah laku yang sangat berbeza.Penghalaan adalah persimpangan jalan selepas memasuki sistem Ia mesti ada banyak logik perniagaan perlu diproses di sini, seperti kawalan kebenaran, penukaran parameter, pemprosesan alias laluan, dll. Dalam ThinkPHP, terdapat. tidak memerlukan penghalaan Di samping itu, hasil kognitif seperti itu pasti akan membuat perkara menjadi longgar dan rumit, seperti redundansi kod, penggunaan tidak konsisten, dsb.
Pemprosesan kemasukan hanyalah satu daripada dua fungsi utama penghalaan Fungsi utama yang lain ialah pemprosesan eksport, iaitu penjanaan URL seluruh sistem Ini penting untuk pemprosesan alias URL, perundingan bahasa, SEO. dan lain-lain, tetapi terdapat hanya pelaksanaan yang mudah dalam ThinkPHP, dan tanggungjawab sistem penghalaan belum direalisasikan sepenuhnya Sebagai contoh, berikut adalah keperluan:
Pengguna menambah "target="_blank"". ke URL keseluruhan sistem dalam fungsi tersuai Bagaimana untuk mencapainya?
Suntikan Bekas dan Ketergantungan:
Konsep dan nama ini berasal daripada rangka kerja Symfony Untuk butiran, lihat:
https://symfony. com/ doc/current/components/dependency_injection.html
Ringkasnya, idea utama adalah untuk menyediakan objek besar pusat dalam sistem, yang juga boleh dipanggil objek induk, yang bertanggungjawab untuk mengumpul, menyimpan, dan secara automatik membuat objek yang biasa digunakan dalam Symfony, objek besar ini dipanggil bekas, dan objek yang disimpan di dalamnya dipanggil perkhidmatan pembekal. "Definisi" mempunyai format tertentu Apabila kita memerlukan perkhidmatan Objek kontena akan membuat instantiat objek perkhidmatan mengikut definisi, dan kemudian menyimpan dan mengembalikannya -panggilan balik instan, konfigurator, harta awam dan persendirian, warisan ciri, instantiasi tertunda, dll. Bekas Sebelum pembentukan, akan ada proses penyusunan perkhidmatan untuk mengendalikan fungsi lanjutan seperti kumpulan perkhidmatan dan pengubahsuaian parameter Setiap perkhidmatan dalam bekas mempunyai ID, dipanggil ID perkhidmatan Objek perkhidmatan diperoleh melalui ID ini di tempat penggunaan Dalam bekas Selain menyimpan perkhidmatan, parameter kontena, alias perkhidmatan, dll.
Konsep kontena ThinkPHP mempunyai bayangan Symfony, tetapi ia masih sangat muda dan asas pelaksanaannya jauh dari kesederhanaan dan mengelirukan Sebagai contoh, tiada konsep yang jelas tentang ID perkhidmatan dan objek perkhidmatan Symfony container , mesti ada ID perkhidmatan yang sepadan dan ThinkPHP memanggil abstrak konsep yang serupa, yang boleh menjadi pengecam atau nama kelas, tetapi beberapa kaedah bekas menggunakannya sebagai nama kelas, seperti:
thinkApp:: daftar
thinkApp::getService
Nampaknya penulis mahu menjadi sefleksibel yang mungkin, tetapi ia membawa kepada kekeliruan yang disebabkan oleh ketidakseragaman konsep "perkhidmatan". dalam ThinkPHP mempunyai definisi yang berasingan (sedikit Seperti perkhidmatan sistem pengendalian), tetapi ia pada asasnya adalah perkhidmatan Symfony, tetapi ia telah diproses khas Dalam Symfony, meletakkan perkhidmatan ke dalam bekas dipanggil "mengumpul" perkhidmatan, atau "menyuntik " ia ke dalam bekas, manakala ThinkPHP memanggilnya "mengumpul" perkhidmatan ke dalam bekas. Perkhidmatan ini "terikat" pada bekas. Seperti namanya, bekas itu digunakan untuk menyimpan sesuatu. Mengapakah ia dipanggil mengikat? Nama jenis ini sangat sukar untuk disebut, dan terdapat banyak nama yang tidak menyampaikan maksud Contohnya, ThinkPHP memanggil operasi pasca-instantiasi objek dalam bekas yang sedang berjalan sebagai operasi "pasca pelaksanaan", bukan ". post-instantiation". Terdapat pepatah dalam industri komputer Pepatah terkenal: "Apa yang sukar untuk Caching dan penamaan." ThinkPHP perlu diperbaiki dalam bidang ini. Beberapa penamaan semasa tidak mesra orang baru.
Selain itu, perkhidmatan (dalam ThinkPHP harus dipanggil kelas, objek atau panggilan balik yang terikat pada bekas) juga boleh mengikat perkhidmatan pada bekas. Ciri ini nampaknya fleksibel, tetapi ia sangat menyusahkan untuk penjejakan dan penyahpepijatan. Mesra, ia menjadikannya lebih sukar bagi pendatang baru untuk mengambil alih sistem Drupal mendapat manfaat daripada reka bentuk modularnya, yang membolehkan pengisytiharan berpusat (kerana modul mesti mengetahui perkhidmatan yang bergantung kepada perkhidmatan, dan mekanisme kompilasi kontena juga boleh menentukan sama ada perkhidmatan. wujud), supaya dalam Penjejakan kod dan penyahpepijatan dibuat semudah mungkin, dan ia juga mudah untuk mengeksport definisi perkhidmatan dalam bekas masa jalan tanpa benar-benar membuat seketika setiap perkhidmatan.
Fasad:
Ini hanyalah konsep dalam ThinkPHP, yang digunakan untuk memanggil kaedah dinamik kelas berpakej secara statik, iaitu menggunakan kaedah statik untuk proksi kelas ke peringkat kaedah , ini hanyalah pelarasan rasmi, dan objek masih perlu dibuat secara dalaman Malah, konsep ini bukan sahaja tidak mesra IDE tetapi juga melanggar niat asal Reka bentuk kaedah statik PHP Ia hanya mengimbangi kekurangan fungsi kontena dalam ThinkPHP. maka pembangun boleh memanggil kaedah dinamiknya dengan sendirinya Jika contoh yang berbeza diperlukan, ia boleh diklon dengan sendirinya. Ini juga mengelakkan pengenalan masalah dengan kelas proksi.
Fungsi pembantu
Terdapat konsep fungsi pembantu dalam ThinkPHP Dokumen tersebut menyebut bahawa tujuannya adalah untuk menikmati kemudahan peringatan automatik daripada IDE, yang adalah bersamaan dengan "Drupal" dalam Drupal "Kaedah statik atau fungsi pintasan yang disediakan oleh kelas global, tetapi Drupal bukan kerana IDE, tetapi kerana ia lebih mudah untuk mendapatkan perkhidmatan, kerana fungsi PHP atau kaedah kelas statik tersedia secara super-global. .
Pengawal dan model:
Dalam ThinkPHP, dipercayai bahawa pengawal digunakan untuk melakukan logik pemprosesan pra-perniagaan Ia mestilah kelas PHP atau penutupan Logik perniagaan adalah perkara yang "patterner". dan titik dogmatik Pertama sekali, pengawal Ia boleh menjadi panggilan balik PHP yang dinyatakan dalam sebarang bentuk, termasuk fungsi, kaedah contoh kontena (ditakrifkan dengan ID kontena), dan lain-lain. Kedua, pada hakikatnya, sempadan logik perniagaan tidak begitu jelas. , dan sukar untuk mengabstrakkan "corak" dan kemudian memberikan nama ini, sekali lagi, pengawal sepatutnya sudah menjadi permulaan pemprosesan perniagaan, dan perkara yang dilakukan oleh pengawal dalam konsep ThinkPHP harus diproses dalam penghalaan ThinkPHP telah pun direalisasikan ini dan menyebutnya dalam dokumen.
Pemprosesan berbilang bahasa:
Dari segi pelaksanaan, ThinkPHP dan Drupal kedua-duanya berdasarkan bahasa Inggeris kerana pelaksanaan terjemahan ThinkPHP adalah sangat mudah dan selalunya tidak dapat dipenuhi dalam keperluan realiti, terutamanya apabila membangunkan aplikasi antarabangsa (ini sepatutnya disebabkan oleh liputan aplikasi yang tidak mencukupi), Drupal mempunyai sistem berbilang bahasa yang lengkap, yang telah menangani sepenuhnya konsep berikut:
Bahasa. isu tunggal dan jamak (sesetengah bahasa mempunyai lebih daripada Tunggal dan jamak) isu kontekstual (adakah "boleh" diterjemahkan sebagai "boleh" atau "Mei"?) Antara muka terjemahan, konfigurasi dan bahasa kandungan teks dalam JS, terjemahan mekanisme kerjasama penterjemahan pasukan, pemprosesan bahasa teks kiri, dsb.
ThinkPHP tidak mempunyai ini, ia hanya melaksanakan terjemahan teks dalam templat dan penggantian pembolehubah dalam penyataan di samping itu, Drupal secara semula jadi mempunyai; mekanisme perundingan berbilang bahasa, seperti tetapan pengguna, awalan URL, maklumat sesi, nama domain, pengepala HTTP, pengecam ejen pengguna, dll., dan menyokong penyesuaian mekanisme perundingan bahasa melalui pemalam ThinkPHP hanya menyokong URL, pembolehubah pengepala HTTP, kuki, dan penyemak imbas secara lalai Ambil perhatian bahawa jika anda menggunakan kuki untuk memindahkan maklumat bahasa, ia mungkin berlaku apabila membangunkan sistem antarabangsa Banyak negara memerlukan sistem untuk bertanya secara jelas kepada pengguna sama ada mereka boleh menggunakan kuki mereka ringkasan, apabila menggunakan ThinkPHP, pembangun perlu menyelesaikan kebanyakan masalah bahasa dengan sendirinya Walau bagaimanapun, sebenarnya, sistem berbilang bahasa berjalan melalui keseluruhan sistem, yang sangat besar dan kompleks Disebabkan oleh Drupal Ia adalah sistem yang dibina bersama di peringkat antarabangsa . Berbilang bahasa adalah salah satu sorotannya. Ia adalah sistem berbilang bahasa semula jadi.
Sistem cache:
Sistem cache yang lengkap mempunyai tiga elemen: masa tamat tempoh, teg tidak sah dan konteks Drupal mempunyai pelaksanaan yang lengkap, manakala ThinkPHP hanya melaksanakan masa dan Tag tidak melaksanakan konteks, jadi apakah konteks? Ringkasnya, ia menunjukkan milik siapa objek cache dan dalam keadaan persekitaran apa di bawah kunci cache yang sama KEY Sebagai contoh, kebenaran pengguna, status log masuk, bahasa, IP, versi protokol, maklumat topik, dll. semuanya milik cache. konteks. KEY yang sama perlu membaca objek cache yang berbeza di bawah keadaan konteks yang berbeza, yang penting untuk reka bentuk sistem berskala besar, dan sistem ini sangat besar. ThinkPHP memerlukan pembangun untuk menyelesaikan masalah konteks cache sendiri tidak menyediakan mekanisme penggabungan cache Ini tidak akan membolehkan pemprosesan cache hierarki, yang penting untuk mencapai cache yang cekap.
Sesi:
Pembangun yang menggunakan ThinkPHP perlu menyelesaikan isu berkaitan sesi sendiri Mengapa? Dengan perkembangan IT hari ini, hanya sistem kecil dan mikro hanya menggunakan satu pelayan, dan kebanyakan sistem akan memuatkan baki ke berbilang pelayan Oleh itu, aplikasi mesti memerlukan ketiadaan kewarganegaraan, jadi data sesi tidak boleh disimpan secara setempat ini, kerana ThinkPHP adalah rangka kerja yang tidak dapat menyediakan penyelesaian sedia ada untuk penyimpanan pangkalan data sesi, pembangun perlu mengendalikannya sendiri Drupal sendiri telah mengambil kira perkara seperti pengimbangan beban dan ketiadaan kewarganegaraan aplikasi, dan sesi telah disimpan dalam pangkalan data oleh. lalai. Ia boleh digunakan di luar kotak Walaupun ThinkPHP menyediakan keupayaan pengembangan, pembangun masih perlu membayar banyak kos buruh untuk melaksanakan pembangunan
Terdapat masalah dalam pelaksanaan sesi ThinkPHP: sesi tidak disimpan selepas skrip tamat, tetapi Ia dilaksanakan dalam skrip, jadi apabila pengguna memanggil die atau exit, ia tidak akan disimpan Fungsi shutdown harus didaftarkan untuk butiran, lihat fungsi PHP:
register_shutdown_function
Pangkalan data:
Kedua -dua ThinkPhp dan Drupal menyokong pelbagai pangkalan data. pengecam perniagaan untuk membezakan pangkalan data yang berbeza , kedua-duanya juga menyokong konfigurasi induk-hamba dan pemisahan baca-tulis, tetapi dari segi pelaksanaan, adalah jelas bahawa Drupal adalah lebih elegan Sebagai contoh, dalam struktur data konfigurasi pangkalan data, Drupal menggunakan tatasusunan berbilang dimensi Nama kunci peringkat pertama ialah pengecam perniagaan, dan nama kunci peringkat kedua ialah pengecam perniagaan Nama kunci peringkat ialah pengenalpastian induk-hamba, dan nilainya ialah maklumat konfigurasi sambungan struktur adalah sangat mudah jika anda ingin melaksanakan subsistem penjadualan beban pangkalan data, maka antara muka struktur ini adalah sangat mudah, dan dalam struktur data konfigurasi ThinkPHP, Simpan semua alamat hos di bawah satu kunci tatasusunan, simpan semua kata laluan di bawah kunci tatasusunan yang lain, dan seterusnya, serta nama pengguna, dsb. Struktur sedemikian memerlukan penghuraian semula maklumat konfigurasi apabila menjana maklumat sambungan Bukan sahaja Membaca dan mengubah suai tidak intuitif dan menggunakan prestasi sistem Antara muka subsistem penjadualan beban pangkalan data juga kompleks dan sangat tidak elegan.
Kedua-duanya juga menyokong pelbagai jenis pangkalan data Inti Drupal datang dengan sokongan untuk tiga pangkalan data: mysql, pgsql, dan sqlite Selain itu, modul komuniti mempunyai sokongan yang hampir lengkap untuk semua pangkalan data yang biasa digunakan menggabungkan pangkalan data yang berbeza Perbezaannya dipanggil "dialek". Pemprosesan dialek yang berbeza diselesaikan pada lapisan pemacu, menyediakan antara muka bersatu ke lapisan atas Dengan kata lain, kelas operasi pangkalan data lapisan atas tidak dapat merasakan pangkalan data digunakan lapisan bawah, dan menggunakan spesifikasi SQL standard, yang dilindungi dengan sempurna Perbezaannya ialah penyahgandingan pangkalan data dicapai, dan pembangun modul tidak perlu mempertimbangkan pangkalan data yang digunakan oleh pengguna bersatu. Apabila bertukar antara jenis pangkalan data yang berbeza pada lapisan aplikasi, ia boleh dilakukan dengan satu klik.
Mengenai operasi pangkalan data, memandangkan Drupal ialah sistem yang lengkap, ia telah melaksanakan satu set struktur storan data yang sangat maju secara lalai Struktur ini menyediakan sokongan untuk lapisan data sistem Apabila semua orang berdasarkan struktur data bersatu , satu perkara yang menarik berlaku Orang yang diedarkan di seluruh dunia boleh bekerjasama untuk melaksanakan aplikasi peringkat atas yang kaya Hasilnya, Drupal juga menyediakan lebih banyak operasi pada data, seperti pertanyaan entiti, dan pengguna melaksanakan Out daripada kotak itu, Drupal adalah inklusif dan pengguna boleh menentukan struktur data mereka sendiri.
ThinkPHP tidak boleh menyokong lapisan data ThinkPHP menggunakan model untuk mengendalikan pengkapsulan data dan operasi . Contohnya, model tidak menyokong kawalan medan untuk input, pemformat untuk output, kawalan paparan untuk borang dan paparan, dsb. Sebabnya ialah ini memerlukan pelaksanaan peringkat lebih tinggi.
Ekologi dan sambungan sumber terbuka China dan asing:
Selepas perbandingan penuh, anda akan faham bahawa Drupal boleh melakukan apa yang ThinkPHP boleh lakukan, dan lakukan dengan lebih baik Baik, sebaliknya adalah tidak benar, kerana Drupal ialah sistem back-end yang lengkap, yang dikenali sebagai sistem pengendalian WEB. Ia telah membantu untuk melakukan lebih banyak perkara pada dasarnya semua tersedia dan ia boleh digunakan kotak. Pembangun ThinkPHP ingin Untuk mendapatkan fungsi tersebut, anda perlu pergi jauh berdasarkan ThinkPHP Mengetepikan isu kualiti, penggunaan masa sahaja adalah angka yang menakjubkan (contohnya, sebelum versi rasmi Drupal 8 dikeluarkan. , pelbagai versi pembangunannya terdiri daripada seribu Banyak pembangun antarabangsa terkemuka telah mengusahakan ini selama lima tahun). Malah, ramai pembangun Drupal tidak bersusah payah untuk mempelajari ThinkPHP atau rangka kerja lain Namun, fenomena yang sangat pelik boleh ditemui dalam China: Mengapa masih banyak syarikat kecil di China Menggunakan ThinkPHP? (Anda boleh mendapatkan sedikit idea tentang perkara ini dengan mencari maklumat pengambilan PHP pada pelbagai platform pengambilan). Terdapat dua sebab untuk menjelaskan perkara ini:
Pertukaran budaya disekat:
Pertukaran budaya dan kehidupan antara China dan negara asing masih terhad kepada sebilangan kecil orang ramai yang tidak mempunyai kawan dari negara lain penghalang harus menjadi sebab utama negara kita membangun terlalu cepat Pada masa ini, kuasa utama pemaju domestik adalah kumpulan orang yang dilahirkan pada tahun 70-an hingga 90-an. atau mengalami kesukaran membaca. Mereka sering secara naluriah tidak mengakses bahan Bahasa Inggeris Mereka yang lahir selepas 00 atau 10 Tahap Bahasa Inggeris adalah lebih tinggi (terima kasih kepada profesor awal, Internet, dan lain-lain Persekitaran antarabangsa Mujurlah, teknologi kini dibangunkan, tahap perisian terjemahan semakin tinggi, dan semakin ramai orang yang menumpukan kepada teknologi, sebagai contoh, Drupal di China mempunyai sejumlah besar platform teknologi seperti "Drupal China", "Aima Document Collection", "Shui Drop Room", "Drupal University", "Think in Drupal", "Ninghao.com", dll. Platform atau blog ini menyediakan dokumen Cina yang besar dan hampir lengkap, menghapuskan bahasa halangan. Terdapat syarikat pembangunan dengan Drupal sebagai teknologi teras di bandar seperti Beijing, Shanghai, Guangzhou, Chengdu, Nanning dan Ningbo.
Fenomena makanan segera yang disebabkan oleh tekanan:
Orang Cina pastinya merupakan salah seorang yang paling rajin bekerja di dunia ini sebahagian besarnya berkaitan dengan tekanan perumahan, perkahwinan, penjagaan perubatan, pendidikan dan penjagaan warga emas masing-masing adalah "Menjana wang". mesti menjadi keutamaan utama, bagi kebanyakan orang biasa, mengekalkan kebijaksanaan dan pengumpulan jangka panjang adalah terlalu berisiko, dan terdapat kekurangan wang yang boleh dibuat sekarang pada masa hadapan apabila masyarakat berkembang dengan begitu pantas? Fenomena ini memberi kesan negatif kepada Kerosakan kepada bidang sains asas di negara kita adalah besar, dan perkara yang sama berlaku dalam industri IT yang sedang berkembang pesat Beban yang dihadapi oleh pemaju kita adalah terlalu berat. 996 malah dihormati oleh syarikat-syarikat besar Mereka telah melakukan kerja petani kod yang mudah seperti CURD untuk masa yang lama. Saya tidak mempunyai banyak masa untuk belajar teman wanita. Saya mempunyai masa yang sangat sedikit untuk berehat, jadi lebih sukar untuk belajar secara mendalam Jika saya mempunyai masa tambahan, saya biasanya menggunakannya untuk melakukan kerja-kerja peribadi dan mendapatkan wang tambahan makanan segera". Jika mereka mempunyai cangkul, mereka menggunakannya dahulu. Mereka tidak mempunyai masa untuk mempelajari jengkaut, dan membangunkan jengkaut adalah lebih mahal. Akhirnya, ia menyukarkan industri sumber terbuka negara saya untuk berkembang. Segelintir Projek sumber terbuka mempunyai citarasa komersial yang kuat Syarikat kecil bergantung pada subsidi pengiklanan dan projek sumber terbuka untuk menarik projek komersial untuk menghasilkan wang (anda boleh merasainya dengan melihat laman utama ThinkPHP), manakala syarikat besar bermotivasi dengan memupuk bakat simpanan, menghapuskan pepijat secara percuma, dsb. Pilihan sumber terbuka mempunyai warna "sfera pengaruh" yang kuat Secara umumnya, cinta tulen dan kepentingan akaun untuk bahagian yang kecil, tetapi ini tidak harus dipersalahkan pada pemaju Cina Terdapat juga fenomena melarikan diri dari bandar peringkat pertama Ramai orang pergi ke bandar peringkat kedua yang kurang sibuk dan mempunyai masa lapang ) juga meramalkan bahawa pusat inovasi China mungkin berpindah ke bandar-bandar peringkat kedua tersebut dengan masa lapang.
Sebaliknya, tanah untuk sumber terbuka antarabangsa jauh lebih baik, dan ia dikuasai oleh banyak negara maju, dan negara-negara ini biasanya negara kebajikan Berbanding dengan tekanan, terdapat banyak ruang untuk orang ramai untuk melakukan sesuatu berdasarkan minat mereka. Ramai orang mengambil bahagian dalam sumber terbuka Pertimbangan utama ialah makna kehidupan membenarkan pembangun mengabaikan umur dan kerja Pada persidangan tahunan DrupalCon Di Internet, anda dapat melihat bahawa banyak pembangun sudah sangat tua, ramai yang berumur 50-an dan 60-an Mereka bercakap tentang teknologi dengan mata yang cerah dan menyuntik pengumpulan seumur hidup ke dalam Drupal.
Sudah tentu, sumber terbuka antarabangsa tidak disertai terutamanya oleh negara-negara maju yang berbahasa Inggeris juga merupakan peserta utama Secara serius, ia pernah dijajah oleh British, dan populariti bahasa Inggeris di kalangan orang-orang mewahnya sangat tinggi Ini telah menjadikan India sangat terintegrasi ke dalam sumber terbuka antarabangsa, dan dengan itu mencipta kekuatan pembangunan perisian India yang agak tinggi.
Perancangan kerjaya pembangun:
Bahagian ini membincangkan isu perancangan kerjaya pemaju domestik sentiasa ada dalam masyarakat domestik: "Pengaturcara makan makanan belia", yang biasanya sepadan dengan ambang 35 tahun Anda mungkin sering melihat syarikat besar tertentu menolak pemaju berusia 35 tahun pelik bahawa 35 tahun Ia adalah usia apabila anda telah mengumpul kebolehan yang lebih mendalam dan boleh mengendalikan banyak perkara dengan sewajarnya. Mengapa fenomena ini berlaku? Mari kita terokai:
Pertama sekali, berita tersebut sangat disyaki menarik perhatian, sama seperti "pemandu wanita". mereka kurang. Hanya berita yang boleh membuat anda melayari, tetapi jika terdapat terlalu banyak berita seperti ini, anda akan membentuk ilusi Oleh itu, ambang 35 tahun telah dibesar-besarkan pada tahap tertentu, menyebabkan kesan buruk. , malah sesetengah orang mengikut trend tanpa sebab.
Tetapi terdapat beberapa kebenaran pada ambang 35 tahun ini perlu dibezakan secara terpilih Jika pembangun telah melakukan kerja fizikal yang mudah dan berulang seperti CURD (pengekod sebenar), maka apabila dia mencapainya umur 35 tahun, Berbanding dengan anak-anak muda yang baru setahun dua tahun, daya saing boleh dibayangkan Pada usia 35 tahun, akan ada tekanan yang besar kepada anak-anak untuk pergi ke sekolah, kesihatan ibu bapa. perumahan dan lain-lain, memaksa pemaju mengemukakan syarat gaji yang lebih tinggi, urusan keluarga, bersosial dan bersosial Anda juga perlu menunggu lama dan tidak mahu bekerja lebih masa Biasanya gaji terkumpul untuk tempoh perkhidmatan yang lebih lama adalah lebih tinggi . Jika orang muda boleh melakukan apa yang anda lakukan, siapa yang akan dipilih oleh bos? Pada masa yang sama, menjadi lebih tua mempunyai beberapa masalah yang dihadapi Jika bos anda adalah seorang lelaki muda yang jauh lebih muda daripada anda, patutkah anda mematuhinya? Kadang-kadang boleh menjadi janggal bagi orang muda untuk menguruskan seseorang yang lebih tua daripada mereka. Berdasarkan ini, dapat dilihat bahawa kewujudan ambang 35 tahun mempunyai sebab tertentu.
Masa tidak menunggu sesiapa, jadi bagaimanakah pembangun boleh mengelakkan ambang 35 tahun dan bagaimana mereka harus merancang kehidupan mereka?
Jika anda mendapati bahawa anda tidak begitu menyukai teknologi, maka anda harus berubah seawal mungkin semasa anda masih berdaya saing pada usia anda, ikut kata hati anda, cari sesuatu yang anda suka dan mula mengumpul daya saing.
Jika anda benar-benar menyukai teknologi dan bersedia dan bersedia untuk menghabiskan hidup anda melakukannya, maka anda perlu mengumpul dengan cekap, terus belajar, dan sentiasa memberi perhatian untuk melebarkan jurang teknikal dengan golongan muda, yang kurang tekanan dan kekuatan fizikal Jika anda mempunyai kelebihan yang kuat, anda perlu menebusnya dengan kelebihan teknikal Jalan untuk menjadi tuan yang hebat bukanlah sesuatu yang anda boleh pilih atau tidak, tetapi suatu kemestian Apabila anda mencapai umur 35 tahun, anda mesti menjadi tuan yang hebat dan mengambil jawatan sistem yang sukar dilakukan oleh orang muda.
Saya perlu mengingatkan anda di sini bahawa dengan perkembangan masyarakat, ambang teknologi sebenarnya semakin meningkat Sebagai contoh, anda mungkin pernah mendengar tentang "jurutera tindanan penuh", tetapi itu hanya milik zaman awal era Internet Pada masa kini, pembahagian kerja dalam masyarakat terlalu besar Jika butirannya terlalu dalam, keseluruhan timbunan tidak lagi wujud, ia boleh dipanggil "mengetahui segala-galanya, tetapi tidak ada jurang". , kerana jurang dalam tenaga orang tidak akan terlalu besar Anda memilih untuk mengkaji segala-galanya, dan yang lain memilih untuk belajar satu bidang. Majikan mengupah orang berdasarkan jawatan mereka mendalami satu subjek dan memahami kawasan sekitar Tetapi dengan cara ini, anda akan menjadi komponen dalam mesin yang besar dan kebebasan pilihan anda akan disekat , keperluan ambang subbahagian akan menjadi sangat canggih, dan anda hanya akan mempunyai a rasa dangkal Jika anda tidak mencari kemahiran, anda akan menghadapi penyingkiran.
Membuat bahagian mesin seperti itu tidak sesuai untuk mereka yang mempunyai aspirasi keusahawanan, jadi apakah yang akan mereka hadapi apabila memulakan perniagaan? Melihat perkembangan masyarakat Cina, anda mungkin tidak mempunyai peluang untuk memenuhi semua keperluan IT biasa Sebagai contoh, laman web digantikan dengan akaun rasmi, dan beberapa pasaran laman web juga diduduki oleh platform SaaS hanya perlu mengklik tetikus untuk memulakan , anda perlu menulis kod, dan caj berasaskan masa mereka boleh menjadi sangat rendah Keperluan am juga termasuk sistem e-dagang, sistem siaran langsung, sistem pembayaran kandungan, dsb., dan Semua ini mempunyai penyelesaian sedia ada yang sangat matang, Weimeng, Youzan, Weiqing, Weijianmu, dsb. platform SaaS yang baik yang telah dibangunkan Bagaimana pula dengan keperluan IT bukan am? Penyelesaian dalam banyak medan menegak akan terbentuk, dan puncak gunung akan dirampas dan dibahagikan, seperti Meituan, Didi, Tubatu, Dingguagua, dll. Sukar bagi anda untuk mempunyai peluang dalam bidang mereka, hanya meninggalkan nombor daripada pemaju. Tidak banyak permintaan yang benar-benar memerlukan penyesuaian Permintaan seperti ini mempunyai satu ciri syarikat usahawan. Berapa ramai pekerja yang anda ada? Berapa besar pejabat? Berapa lama pengumpulan sejarah? Ada berapa kes? Berapa tinggikah modal berdaftar?
Selain itu, dengan perkembangan IT hari ini, sistem aplikasi yang sama akan mengambil pelbagai bentuk dari segi perisian Ia biasanya memerlukan satu atau lebih aplikasi, program kecil, halaman web, dll., dan juga melibatkan platform merentas (APP Terdapat Android, IOS dan Hongmeng yang akan datang, dan program mini melibatkan WeChat, Alipay, Baidu, Douyin, dll. Walaupun terdapat alatan seperti UNIAPP, banyak kemahiran masih diperlukan apabila pelanggan memerlukan aplikasi asli, yang membawa kepada keperluan untuk menubuhkan ahli Pasukan juga termasuk kakitangan bukan teknikal, seperti jurujual, kewangan, dsb., yang membentuk halangan kemasukan tertentu Pada akhirnya, anda akan mendapati bahawa memulakan perniagaan memerlukan lebih daripada teknologi, tetapi juga modal.
Setelah berkata ini, adakah anda merasakan bahawa jalan itu sukar? Tetapi sila percaya bahawa ini bukan sahaja dalam bidang IT, tetapi juga di tempat yang mempunyai persaingan Tiada kejayaan yang mudah. Hanya minat anda boleh menjamin sejauh mana anda boleh pergi, jadi sila ikut kata hati anda.
Jika anda mengikut kata hati anda dan selepas pertimbangan yang teliti masih memilih untuk melakukan teknologi dan menjadi tuan yang hebat, maka apakah yang perlu anda lakukan? Pertama sekali, anda mesti memberi tumpuan kepada pengumpulan, terutamanya berdiri di atas bahu gergasi dan bergegas ke arah tanah yang belum dibangunkan Anda perlu mencari ekosistem yang paling menjanjikan dalam niche anda, menyertainya, dan kembali ke rangka kerja pembangunan PHP, Xiaobai Melihat kepada. rangka kerja, ia hanya merangkum dan menyediakan fungsi yang diperlukan, tetapi pakar melihat bahawa rangka kerja itu menyediakan platform kerjasama bersatu Semua orang mencipta pada platform yang sama, untuk mengelakkan mencipta semula roda, yang mencukupi dari segi kos ekonomi kos efektif, dan dengan bantuan kekuatan semua orang, anda boleh membebaskan tangan anda untuk membangunkan perniagaan anda sendiri.
Perpaduan platform asas adalah sangat penting Hanya dengan cara ini manusia boleh berkumpul dan bergerak ke hadapan dan mengurangkan kos Walau bagaimanapun, terdapat peraturan yang menarik dalam pembentukan platform bersatu, iaitu, pada akhirnya, sahaja satu akan ditinggalkan sebagai platform utama, dan kemudian akan ada satu lagi Platform tempat kedua digunakan untuk membentuk rizab yang kompetitif, dan platform tempat ketiga dan keempat pada dasarnya boleh diabaikan, dan tempat pertama dan kedua akan sangat berbeza dari segi Terdapat banyak contoh sedemikian, seperti dalam sejarah Terdapat beribu-ribu sistem pengendalian, dan akhirnya hanya tetingkap dan Linux yang tinggal dan Apple, Taobao dan JD.com, Douyin dan Kuaishou, Meituan dan Ele.me, dsb. Sebaik sahaja corak terbentuk, ia adalah sukar untuk menggoncangkannya Sebagai contoh, Microsoft tidak boleh menggoncang Android, bukan kerana teknologi, tetapi kerana kesan bola salji sedang berfungsi Raja akan menjadi lebih kuat dan lebih besar, dan yang kalah akan beransur-ansur menjadi sunyi dan hilang, walaupun raja membuat beberapa kesilapan kecil dan berkembang Ia tidak boleh diubah Sebagai contoh, papan kekunci yang kita gunakan sekarang tidak mempunyai susunan huruf yang paling munasabah Terdapat papan kekunci dengan susunan yang munasabah dalam sejarah, tetapi kerana semua orang terbiasa dengan papan kekunci semasa, mereka terus menggunakannya Untuk menjadi Terdapat dua perkara penting untuk raja: kemajuan teknologi mesti mencukupi , dan ekologi komuniti mesti mewujudkan kesan bola salji ini saling melengkapi.
Jadi siapa yang akan menjadi platform asas bersatu ini dalam bidang rangka kerja PHP? Daya pembangunan utama projek sumber terbuka sepatutnya ialah sebilangan besar pengguna secara berterusan memperhalusi dan meringkaskannya semasa digunakan, dan kemudian terus membincangkan dan memperbaikinya bersama-sama, dan bukannya beberapa orang bergantung pada pemikiran atau pengalaman mereka sendiri, jadi jika dalam ThinkPHP dan Symfony Buat pilihan, jawapannya sangat jelas Malah, Symfony telah menyedari kepentingan platform bersatu sangat awal, jadi ia telah menumpukan dirinya kepada penubuhan komponen asas yang dipisahkan dan lengkap, dan berulang kali, supaya. beberapa rangka kerja sedia ada juga menggunakan komponen Symfony , seperti Laravel dan ThinkPHP, Symfony telah berulang kali menekankan "standard" dan kini telah menjadi standard de facto dalam bidang pembangunan PHP, kerana penyeragaman adalah syarat yang diperlukan untuk platform bersatu.
Bagi Drupal, ia adalah platform standard bersatu peringkat lebih tinggi yang dibina berdasarkan Symfony, yang telah menjadi asas standard sistem lengkap Hampir semua fungsi lapisan aplikasi yang biasa digunakan di sini telah disediakan, dan orang sedang mengusahakannya Pada platform bersatu, berdasarkan reka bentuk modular, lebih banyak fungsi berorientasikan masa depan dicipta untuk merealisasikan cita-cita Drupal untuk "menyediakan pengalaman digital yang sangat baik."
Pemilihan teknologi pembuat keputusan:
Jika anda seorang bos keusahawanan atau pengarah projek yang membuat pemilihan teknologi untuk projek, Jadi berikut adalah beberapa perkara yang perlu diberi perhatian untuk anda:
Kos kawalan:
Ini nampaknya tidak perlu diperkatakan dan sudah tentu, tetapi adakah anda benar-benar mengawalnya? Perisian tidak ketara Jika anda bukan seorang profesional, sukar untuk mengawal kos Berikut adalah beberapa perangkap:
Dalam persekitaran semasa, jika anda ingin melakukan projek perancangan jangka panjang dan anda boleh membangunkannya. sendiri, jangan menyumber luar beberapa perkara Walaupun ia kelihatan sama, ia sebenarnya sangat berbeza. Adalah sukar bagi orang yang tidak profesional untuk melihat perbezaan antara dua sistem dari segi keteguhan, skalabiliti, keselamatan, kemampanan, dll. sistem dengan fungsi yang sama mempunyai beban 5,000 dan beban 5,000 Kos pembangunan berpuluh-puluh juta adalah sama sekali berbeza untuk memastikan pembangunan jangka panjang sistem, tetapi sukar untuk mencapai dokumentasi lengkap dalam penyumberan luar Kualiti penyumberan luar biasanya membuat anda tidak cekap Alasan untuk membayar bil pada masa hadapan bukan kerana syarikat penyumberan luar tidak kukuh. tetapi kerana kosnya.
Hutang teknikal yang kurang:
Jangan cari pembangun yang tidak mempunyai pengalaman yang mencukupi hanya untuk menjimatkan wang pada mulanya. Izinkan saya berkongsi cerita di sini: Ada seorang bos dan pengarah teknikal yang Terdapat perbezaan dalam pengambilan bakat Pengarah teknikal meminta gaji kerja 15,000, dan seorang calon datang yang hanya mahu 8,000 Pengarah teknikal tidak mahu, tetapi bos sangat gembira dan fikir dia telah mendapat keuntungan Mengapa dia bodoh membayar lebih? Kadang-kadang orang baru akan meninggalkan bahaya tersembunyi yang besar dalam sistem Pengarah teknikal ini telah melihat masalah hutang teknikal Pasukan pembangunan mesti mempunyai tulang belakang teknikal yang mendalam Pada masa yang sama, apabila memilih sistem asas satu dengan kematangan yang rendah dengan cara ini, anda boleh memastikan bahawa anda tidak berhutang teknikal sebanyak mungkin, jika tidak, anda akan mula membiasakan diri dengan jalan raya dan terperangkap dalam keadaan yang sukar nanti tuhan tidak dapat menyelamatkan anda
Leverage untuk mempercepatkan:
Memandangkan masyarakat telah berkembang hingga ke hari ini, banyak fungsi sistem IT sudah wujud dan sangat lengkap. t perlu membangunkan mereka sendiri Sebagai contoh, jika anda perlu memilih antara ThinkPHP dan Drupal, saya tidak akan teragak-agak Pilih Drupal kerana ThinkPHP hanyalah produk separuh siap dan biasanya beberapa fungsi diperlukan dalam pelbagai sistem perniagaan, seperti sampah. sistem pengumpulan, sistem status, storan nilai kunci, sistem pemprosesan kelompok, sistem tugas berjadual, sistem menaip data, sistem Ajax, Enjin melihat data, sistem sokongan versi, sistem kebenaran, dll. tidak tersedia dalam ThinkPHP, dan Drupal sangat lengkap . Untuk membangunkan ini di ThinkPHP akan mengambil masa berbulan-bulan hingga bertahun-tahun Bukan sahaja ia tidak mempunyai kelebihan platform bersatu asas, Ia juga sukar untuk memastikan kualiti kod yang dibangunkan oleh diri sendiri juga perlu membayar yuran latihan yang tinggi di peringkat kemudian Mengapa tidak menggunakan sistem yang sudah siap dan matang dengan asas yang lengkap?
Sepadukan ke dalam persekitaran:
Sistem pembangunan mesti disepadukan ke dalam persekitaran umum Selain memanfaatkan pecutan, ia juga bergantung pada pemerolehan bakat simpanan untuk memisahkan pemaju daripada projek tidak mencukupi. Sertai projek dengan cepat, sepadukan ke dalam persekitaran yang lebih besar, dan pisahkan pembangun sebahagian besarnya memastikan keselamatan pembangunan projek.
Syor sumber terbuka negara:
Dalam bahagian ini kita berdiri di peringkat kebangsaan dan melihat bagaimana sumber terbuka harus dilayan semakin kuat dan lebih kuat Rakyat China menantikan hari apabila China akan mengatasi Amerika Syarikat Jika China mahu menembusi sekatan AS dan mencapai matlamat untuk mengatasi, ia mesti mengambil bahagian dalam sumber terbuka antarabangsa dan menjadi yang utama. penyumbang, daripada membina sistem bebas sendiri (sistem yang dibina sendiri harus berlaku dalam era baru, seperti sistem pengendalian Internet of Things generasi akan datang Hongmeng), kerana sumber terbuka adalah sumber terbuka untuk semua manusia, bukan untuk mana-mana satu negara, adalah tidak bijak untuk bekerja secara tertutup dan keluar, yang akan membuat China menjauhi dunia Anda mesti tahu bahawa China hanya mempunyai 1.4 bilion orang, dan Terdapat lebih daripada tujuh bilion orang di dunia, dan kuasa ekologi tidak dapat bersaing dengan dunia Oleh itu, pendekatan yang rasional adalah untuk mengambil bahagian dalam sumber terbuka dan bekerja keras untuk membuat sumbangan Salah satunya adalah untuk mewarisi pencapaian pembangunan manusia yang sedia ada dan berkembang lebih cepat berdasarkan gergasi Yang lain adalah Kemudian pilih untuk bersama majoriti orang, buka pintu kepada negara, dan wujudkan pengaruh Barulah boleh membentuk imej negara yang hebat.
[Cadangan tutorial berkaitan: rangka kerja thinkphp]
Atas ialah kandungan terperinci Drupal membandingkan dengan thinkphp untuk melihat persekitaran sumber terbuka domestik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!