Java 为什么比 PHP 更加安全稳定可维护?
都说 Java 比 PHP 稳定安全,可维护性好,为什么啊,难道就因为 sun 公司提供的一系列的技术支持?难道像阿里那种电商就不能 PHP?如果阿里用 PHP 较之 Java 会出现哪些问题?本人入 PHP 只有一年时间,参与过类似搜房的房地产网站开发,做过几款 App的接口,目前兼职参与搭建一个多用户的电商平台。之前在学校只懂 Java 皮毛。 感觉 PHP 好的,真搞不懂 PHP 哪里不如 Java 安全稳定。
回复内容:
这东西完全看人。。。那些说,java因为它的特性,不至于被菜鸟写太乱的我也只能呵呵了。你们也太小看菜鸟的实力了。 咦,看来我有资格来谈一谈,,,
1.编码规范
JAVA大小写敏感,PHP对 函数名、方法名、类名是不区分大小写的。
这在生产中容易导致问题,比如window系迁移至类Unix系。
在编码规范上SUN给出了一个好的风格样式,再加上使用的各类Jar包的规范。
一个菜鸟只要用心,是不会写烂代码的风格的。
PHP确有些小头痛呢,因为之前流行的是面向过程式编程。
独立开发者各有各的风格,个人觉得那些DISCUZ、DECMS等等是带坏一票人啊。
二次开发那个命名随意,真是任性。
当然,现在PHP也支持OOP了,各类框架的命名风格也一定程度的约束了编码人员的风格。
当然,要写烂一样很简单。
再加上是弱类型语言,代码质量的好坏比JAVA,对程序员的要求是更高的,虽然PHP简单。
正如 @Cweili 所说:“安全和稳定就需要开发者的水平来保证了”。
结论就是JAVA容易养成更好的统一编码规范,利于维护、阅读。
菜鸟都能写出一手规范的代码。
2.变量、强类型
强类型语言,导致变量之间转换繁琐,定义、初始化、转换麻烦。
JAVA中,代码块的很大一部分是变量的定义、初始化与转换,又臭又长。
如果忘记初始化,程序容易报空指针错误。
PHP在这一块就很好,变量随处用。再加上PHP的可变变量特性。
同样的一个route功能实现,JAVA要繁琐太多,这也是我对强类型语言一直诟病的。
PHP可以省去大量繁琐的定义、初始化和类型转换,代码结构轻便,更加专注于业务逻辑上。
JAVA强类型也决定了代码在编码时期的严谨性和可靠性,这个比PHP优。
PHP一个可变变量可能就会让你无法重构,所以对IDE不是很友好,调试起来你要发疯。
JAVA重构方便,但结构笨重,开发节奏慢,调试倒是很方便。
拿PHP来做数据安全要求高的业务还是不建议的。
3.异常、业务完整性
PHP的生命周期(PHP的生命周期)设计决定了它的异常处理功能的使用没有JAVA广泛。
接触过的如DISCUZ、DECMS、ECSHOP这些系统对于异常处理很弱。
很少使用try{}catch{}处理异常,因为一旦执行期发生异常就可能导致程序崩溃,
对于业务性要求高的系统来说不是一件好事。
谁都不希望执行到一半,程序异常就崩溃了吧,那业务回滚怎么办?
就如 @石峰 说的:“入门简单的语言,给我的感觉是想要用的好其实更难,比如js或者php”。
个人看法有限,知友请轻喷!
PS:
为什么大型网站前端使用 PHP 后台逻辑用 Java? - Java
PHP 和 Java 的主要区别有哪些? - 编程语言 语言选择不决定代码稳定与否与可维护性高低,这两者主要取决于写的代码本身。
如果用Java和PHP开发一般web后端程序,安全性取决于写的代码本身是否安全,如是否总是做输入检查,XSS预防等等,而不是用的语言本身是否安全。
特例可能是和Finance相关的业务,通常不考虑用弱类型语言来写,这有部分安全的考虑,但更多是精度和效率。 PHP 垃圾程序员太多。某天我生成了 PHP 的 SDK 给 PHPER ,然后人家都不 include 文件的,就是一口咬定我得接口有问题啊调不通啊,唉,都不知道他们怎么面上的。。。。。。 PHP 还是一门好语言来着。 我觉得楼主的假设是错的

阿里系的规模和历史使很多技术选型不能完全靠技术层面来决定,不是一个好参考对象。
例如说,没记错的话淘宝最初的最初就是基于一个PHP框架快速开发出来的。后来规模稍微大了一些,请来Sun做技术顾问,自然而然转为用Java EE。有很多淘宝的页面是用Velocity模版写的也是历史原因,很难说它当时是不是最好的(至于很多年后它还好不好就更加不好说了)。一言难尽。题主如果对淘宝的技术演进背后的故事感兴趣的话可以读读@子柳的《淘宝技术这十年》。
至于笼统的“为啥PHP没Java稳定”,这话题还是留给各语言/框架教徒们战了(逃 因为大量低水平php程序员的存在。
他们真能把code写的非常之烂。
java规矩多,写烂不容易。 记得看过一句对java的评价,java是一种工业级的编程语言,个人以为很有道理。无论使用者水平如何,java开发出来的程序不会太差。
而入门简单的语言,给我的感觉是想要用的好其实更难,比如js或者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

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Java ialah bahasa pengaturcaraan popular yang boleh dipelajari oleh pembangun pemula dan berpengalaman. Tutorial ini bermula dengan konsep asas dan diteruskan melalui topik lanjutan. Selepas memasang Kit Pembangunan Java, anda boleh berlatih pengaturcaraan dengan mencipta program "Hello, World!" Selepas anda memahami kod, gunakan gesaan arahan untuk menyusun dan menjalankan program, dan "Hello, World!" Pembelajaran Java memulakan perjalanan pengaturcaraan anda, dan apabila penguasaan anda semakin mendalam, anda boleh mencipta aplikasi yang lebih kompleks.

Java Made Simple: Panduan Permulaan untuk Kuasa Pengaturcaraan Pengenalan Java ialah bahasa pengaturcaraan berkuasa yang digunakan dalam segala-galanya daripada aplikasi mudah alih hingga sistem peringkat perusahaan. Untuk pemula, sintaks Java adalah ringkas dan mudah difahami, menjadikannya pilihan ideal untuk pembelajaran pengaturcaraan. Sintaks Asas Java menggunakan paradigma pengaturcaraan berorientasikan objek berasaskan kelas. Kelas ialah templat yang menyusun data dan tingkah laku yang berkaitan bersama-sama. Berikut ialah contoh kelas Java yang mudah: publicclassPerson{privateStringname;privateintage;
