PHP+Java的开发经验:不要太面向对象_PHP教程
说起面向对象,现在很多语言多少都有一些。Java是传统的面向对象语言,PHP也有一些面向对象,但不是很好。完全的面向对象在具体的项目中(本文是Web开发项目),有时候其实并不是最好的选择。本文作者最终选择了PHP+Java的一个模式,并分享了一些自己的经验。
我较早接触了C++(高中),也较早接受了面向对象思想。面向对象思想更接近人的思考方式,其封装、继承等特性也常常能够简化一些工作,最重要的是思路看起来清晰多了。我对面向对象的思想深信不疑,直到有一天,我在WEB项目中陷入困惑。
我以前的工作也都是WEB开发相关的,通常项目里都是接口、实现,service层,DAO层这个样子。久而久之,就习惯了这种模式。后来,我开始自己做网站(自己运营),也沿用这种模式,花了一阵子时间把东西弄出来,可以跑了,问题也随之而来了。大家都知道,类似门户网站这样的东西,尤其是成长期的网站,可能会经常面对一些变更、扩展。它不像企业项目或是以稳定模式运营的网站,可以一套写好的程序一直用下去。可是JAVA的东西改动起来有点麻烦。
第一:项目里用了很多接口,业务变更有不少时候还要动接口。也许有人会说,这是因为需求没做好。是的,可以这么认为,但有个前提:需求根本没法一步到位,否则网站也别跑了,等需求分析做好,花都谢了。回忆一下这个经典的流程:要增加一个特性(页面部分暂不讨论),先增加或修改一个service接口;然后增加或修改其实现;接着视需要可能还要再增加或修改一个DAO层接口,对应的要增加或修改其实现;最后,我们真正要改的,往往只是一个SQL语句。
这一系列流程太过繁琐了。门户网站基本是展示信息的,它的业务逻辑,说到底基本上是SQL语句体现出来的。你想想看,网站上显示什么东西,怎么排序,怎么聚合,这些不都对应着相应的SQL语句么?如果你非要把DAO层写成基本的增删改,然后在service层大作文章去实现本来对应着一个SQL语句的业务罗辑,这有什么意思呢?纯粹为了分层而分层?为了面向对象而面向对象?更不用说那一堆接口,平白增加工作量。我当然不会否认接口在编程思想中的意义,只是传统的JAVA WEB编程中的那一堆接口,是否真正是一个合理应用呢?我看很多情况下不是。我后来用PHP重写我的项目中的一大部分功能,只用了几天的时间,没有分层,没有接口。这样带来的工作效率的提升,真是惬意!
第二:JAVA WEB项目的发布通常需要重启服务,造成WEB运行中断。不少人在讨论热部署,我不知道热部暑最终能达到怎样一个水平,但我想信无法达到像PHP那样随时修改文件随时生效。为了不中断服务,我通常选择做个集群,轮流发布。这样虽然仍旧有可能产生一些问题,但比中断应用好多了。可是集群会带来发布上的麻烦,集群本身也未必是我真正需要的。
随之而来的还有一些小问题,比如如果我项目中包含一些存储大量文件的文件夹,在发布的时候又要特别处理,这样很不爽。即使做软链接,发布时也免不了要做额外工作。这些问题,当然我想信会有更好的解决办法,我个人目前仍在探索中。
面对上述这些问题,我最终不再坚守面向对象。我把项目改成了前PHP后JAVA的形式。PHP做前端显得灵活多了,整个改版,PHP的逻辑部分没花多少时间,时间都用在了页面设计上;JAVA的后端又能保证稳定高效,易于安全设计。由此,我最终发出了“不要太面象对象”这一感叹。需求决定一切,跟着别人的思想走,跟入邪教没区别。
问题也还并没有结束,对JAVA后端部分,我还在探索一个基于插件式的可以热加载、缷截插件的CMS后端系统。呵,不能因为上面的原因把面象对象一棒子打死。
不过不管怎样,看了作者的描述,倒是不妨试试PHP+Java的组合:看看放弃一些面向对象能够带来些什么好处吧。

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



Alat pengaturcaraan berbantukan AI ini telah menemui sejumlah besar alat pengaturcaraan berbantukan AI yang berguna dalam peringkat pembangunan AI yang pesat ini. Alat pengaturcaraan berbantukan AI boleh meningkatkan kecekapan pembangunan, meningkatkan kualiti kod dan mengurangkan kadar pepijat Ia adalah pembantu penting dalam proses pembangunan perisian moden. Hari ini Dayao akan berkongsi dengan anda 4 alat pengaturcaraan berbantukan AI (dan semua menyokong bahasa C# saya harap ia akan membantu semua orang). https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot ialah pembantu pengekodan AI yang membantu anda menulis kod dengan lebih pantas dan dengan sedikit usaha, supaya anda boleh lebih memfokuskan pada penyelesaian masalah dan kerjasama. Git

Tutorial aplikasi mudah alih pembangunan bahasa Go Memandangkan pasaran aplikasi mudah alih terus berkembang pesat, semakin ramai pembangun mula meneroka cara menggunakan bahasa Go untuk membangunkan aplikasi mudah alih. Sebagai bahasa pengaturcaraan yang mudah dan cekap, bahasa Go juga telah menunjukkan potensi yang kukuh dalam pembangunan aplikasi mudah alih. Artikel ini akan memperkenalkan secara terperinci cara menggunakan bahasa Go untuk membangunkan aplikasi mudah alih dan melampirkan contoh kod khusus untuk membantu pembaca bermula dengan cepat dan mula membangunkan aplikasi mudah alih mereka sendiri. 1. Persediaan Sebelum memulakan, kita perlu menyediakan persekitaran dan alatan pembangunan. kepala

Pada 3 Mac 2022, kurang daripada sebulan selepas kelahiran pengaturcara AI pertama di dunia, Devin, pasukan NLP Universiti Princeton membangunkan pengaturcara AI sumber terbuka ejen SWE. Ia memanfaatkan model GPT-4 untuk menyelesaikan isu secara automatik dalam repositori GitHub. Prestasi ejen SWE pada set ujian bangku SWE adalah serupa dengan Devin, mengambil purata 93 saat dan menyelesaikan 12.29% masalah. Dengan berinteraksi dengan terminal khusus, ejen SWE boleh membuka dan mencari kandungan fail, menggunakan semakan sintaks automatik, mengedit baris tertentu dan menulis serta melaksanakan ujian. (Nota: Kandungan di atas adalah sedikit pelarasan bagi kandungan asal, tetapi maklumat utama dalam teks asal dikekalkan dan tidak melebihi had perkataan yang ditentukan.) SWE-A

Begini cara untuk menukar tatasusunan hasil pertanyaan MySQL kepada objek: Cipta tatasusunan objek kosong. Gelung melalui tatasusunan yang terhasil dan buat objek baharu untuk setiap baris. Gunakan gelung foreach untuk menetapkan pasangan nilai kunci setiap baris kepada sifat yang sepadan bagi objek baharu. Menambah objek baharu pada tatasusunan objek. Tutup sambungan pangkalan data.

Berdasarkan pengoptimuman berterusan model besar, ejen LLM - entiti algoritma yang berkuasa ini telah menunjukkan potensi untuk menyelesaikan tugas penaakulan pelbagai langkah yang kompleks. Daripada pemprosesan bahasa semula jadi kepada pembelajaran mendalam, ejen LLM secara beransur-ansur menjadi tumpuan penyelidikan dan industri Mereka bukan sahaja dapat memahami dan menjana bahasa manusia, tetapi juga merumuskan strategi, melaksanakan tugas dalam persekitaran yang pelbagai, dan juga menggunakan panggilan API dan pengekodan untuk Membina. penyelesaian. Dalam konteks ini, pengenalan rangka kerja AgentQuest merupakan satu peristiwa penting Ia bukan sahaja menyediakan platform penanda aras modular untuk penilaian dan kemajuan ejen LLM, tetapi juga menyediakan penyelidik dengan alat yang Berkuasa untuk menjejak dan meningkatkan prestasi ejen ini pada masa yang tertentu. tahap yang lebih berbutir

PHP tergolong dalam bahagian belakang dalam pembangunan web. PHP ialah bahasa skrip sebelah pelayan, terutamanya digunakan untuk memproses logik sebelah pelayan dan menjana kandungan web dinamik. Berbanding dengan teknologi bahagian hadapan, PHP lebih banyak digunakan untuk operasi bahagian belakang seperti berinteraksi dengan pangkalan data, memproses permintaan pengguna dan menjana kandungan halaman. Seterusnya, contoh kod khusus akan digunakan untuk menggambarkan aplikasi PHP dalam pembangunan back-end. Mula-mula, mari kita lihat contoh kod PHP mudah untuk menyambung ke pangkalan data dan menanyakan data:

1. Klik [Pengurusan Sistem] dalam menu tetapan telefon. 2. Klik pilihan [Bahasa]. 3. Pilih bahasa sistem yang anda ingin gunakan.

"Memahami VSCode: Untuk apa alat ini digunakan?" 》Sebagai pengaturcara, sama ada anda seorang pemula atau pembangun berpengalaman, anda tidak boleh melakukannya tanpa menggunakan alat penyuntingan kod. Di antara banyak alat penyuntingan, Kod Visual Studio (pendek kata VSCode) sangat popular di kalangan pembangun sebagai penyunting kod sumber terbuka, ringan dan berkuasa. Jadi, untuk apa sebenarnya VSCode digunakan? Artikel ini akan menyelidiki fungsi dan kegunaan VSCode dan menyediakan contoh kod khusus untuk membantu pembaca
