我感觉看DZ论坛的的源码简直就像看天书一般,跟现在的MVC开发流程完全不同,没有什么控制器模型的概念啊?
我感觉看DZ论坛的的源码简直就像看天书一般,跟现在的MVC开发流程完全不同,没有什么控制器模型的概念啊?
随便一个文件,里面函数写的都看不懂,哪是哪儿,不知道是干什么的,是DZ太复杂了吗?
回复内容:
我感觉看DZ论坛的的源码简直就像看天书一般,跟现在的MVC开发流程完全不同,没有什么控制器模型的概念啊?
随便一个文件,里面函数写的都看不懂,哪是哪儿,不知道是干什么的,是DZ太复杂了吗?
复杂度不是大程序组织不好的借口。DZ那个样子几乎都只是历史遗留的后果:
长年的开发历史
巨大的用户量
DZ自己开发者素质的相对低下
巨大的开发者量 + 扩展开发者素质的相对低下
(低端开发者换来的扩展生态的繁荣,虽然畸形,也不好随意放弃对吧)外加上(投靠腾讯)跟爹加入大组织之后带来的变数
每一个都让DZ想做修改和重构也很艰难。另外还有一点就是,DZ官方™自己想不想改还两说呢……
实际上DZ这样的产品,在迭代轨迹上如同WordPress——
诞生时足够先进
但随着时间推移,定位和品味本身落后了
自己却受制于用户增长、历史积累和产品生态,无法以一个革命性的姿态迎头跟上
最后只能困在旧的路线上修修补补
可是这样反倒对旧的用户群形成了有效的保护
旧用户群的拥护,更加坚定了旧路线走到黑的决心
曾经有不少大热的产品试图打破这个循环,但结果基本上不是很成功,两个典型的例子:
Py3K 试图后向不兼容的取代 Python 2.x 最后落得社区分裂,鸡飞蛋打
LoveLive! Sunshine!! 和 偶像大师 灰姑娘女孩 新企划,都没有能够达到甚至追近原版的高度
所以我们不得不承认的一个现实就是:任何一个产品都是有其不可改变的基本点(这些基本点可能是各种内容——目标需求、用户定位、技术根基等等)。如果妄想脱离开这些基本点,那么不是推不动,就是失败,或者是分裂。
也许这就是宿命和轮回——产品总会生存、绚烂、落后、死亡,唯有历史的车轮滚滚向前不曾停息。
37signals公司的《Rework》也这样告诉过我们:
谁管他们在做什么,做好你的产品。当你要以“iPod杀手”或“下一个Pokemon”为目标的时候,你就已经死定了。
在我的解读看来,这个除了商业竞争的哲学之外,应该也包含着“不要追随已经过时的产品定位”这层意思吧。
dz是一个2001年诞生的项目,那时的PHP版本是PHP4,你看到的都是老系统的通病。
dz不具备参考性
不算优秀的代码案例~
我是这个项目的老大 我马上重写这个项目~

PHP remains a powerful and widely used tool in modern programming, especially in the field of web development. 1) PHP is easy to use and seamlessly integrated with databases, and is the first choice for many developers. 2) It supports dynamic content generation and object-oriented programming, suitable for quickly creating and maintaining websites. 3) PHP's performance can be improved by caching and optimizing database queries, and its extensive community and rich ecosystem make it still important in today's technology stack.

In PHP, weak references are implemented through the WeakReference class and will not prevent the garbage collector from reclaiming objects. Weak references are suitable for scenarios such as caching systems and event listeners. It should be noted that it cannot guarantee the survival of objects and that garbage collection may be delayed.

The \_\_invoke method allows objects to be called like functions. 1. Define the \_\_invoke method so that the object can be called. 2. When using the $obj(...) syntax, PHP will execute the \_\_invoke method. 3. Suitable for scenarios such as logging and calculator, improving code flexibility and readability.

Fibers was introduced in PHP8.1, improving concurrent processing capabilities. 1) Fibers is a lightweight concurrency model similar to coroutines. 2) They allow developers to manually control the execution flow of tasks and are suitable for handling I/O-intensive tasks. 3) Using Fibers can write more efficient and responsive code.

The PHP community provides rich resources and support to help developers grow. 1) Resources include official documentation, tutorials, blogs and open source projects such as Laravel and Symfony. 2) Support can be obtained through StackOverflow, Reddit and Slack channels. 3) Development trends can be learned by following RFC. 4) Integration into the community can be achieved through active participation, contribution to code and learning sharing.

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

PHP is not dying, but constantly adapting and evolving. 1) PHP has undergone multiple version iterations since 1994 to adapt to new technology trends. 2) It is currently widely used in e-commerce, content management systems and other fields. 3) PHP8 introduces JIT compiler and other functions to improve performance and modernization. 4) Use OPcache and follow PSR-12 standards to optimize performance and code quality.

The future of PHP will be achieved by adapting to new technology trends and introducing innovative features: 1) Adapting to cloud computing, containerization and microservice architectures, supporting Docker and Kubernetes; 2) introducing JIT compilers and enumeration types to improve performance and data processing efficiency; 3) Continuously optimize performance and promote best practices.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Dreamweaver Mac version
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 Chinese version
Chinese version, very easy to use