Table des matières
回复内容:
Maison développement back-end tutoriel php 设计模式和效率 哪个比较重要? 为什么?

设计模式和效率 哪个比较重要? 为什么?

Jun 17, 2016 am 08:32 AM
class config load

昨天在GitHub给某开源PHP项目Pull了request
我把common库里的一个常用核心函数改为 先判断config里是否enabled
再决定load class 而不是load后 再在method内判断N次config是否enabled
我想这在效率上还是有很大区别的

提交后 Owner回复说 他明白我的出发点是效率 可是这个判断应该留给class去处理
好吧 我一想 对 可能这样"看着干净些" 但就因为这原因 就可以舍弃效率了?
那个函数单次请求至少会被调用15次 对我来说真不合理
我也没打算去争执 毕竟是别人的项目 但就是蛮纠结的

我对我自己的的代码质量感觉很良好 开始两次的PR都被owner merged了
上一次被close的原因和上述一样 请勿担心 谢谢。

回复内容:

在性能优化里有一句话,就是在性能没有明显表现出问题之前,不要进行优化,因为对性能的优化往往会影响代码的解耦和可重用性

至于题主的具体例子,就不作评论了,毕竟没看到具体的代码 你这是代码写少了。简洁设计的低耦合可扩展性远比一点点效率更重要。自己觉得什么不对就去优化,知道“Premature optimization is the root of all evil”这句话么?

顺便吐个槽:什么时候开始PHP还在乎这点执行效率了? 设计模式难道不是为了提高效率?(设计模式是长期程序工作者总结的一套提高开发效率与程序执行效率的编程方法,在这种情况下,应该根据项目需求与项目的具体实现进行更改!) 效率不是瓶颈的情况下,设计模式重要。 很明显的效率问题肯定是要提前就处理掉的,但是对于你说的例子这个config问题,我不赞同你的说法。
我说不上来具体原因,但是,在method内部调用config来做判断是对的。效率上有很大影响是不可能的。 你可能很少做性能测试。
这样的性能优化,在性能测试的报告里完全不可见,你这个优化相当于一个人为了减肥,而把鼻毛给剪了,不能说你没效果,但是确实没有意义,不值得为此付出的代价 设计模式更重要
设计模式是经验的总结
很多时候必然会走向设计模式
如果它不好只能说明你没理解用错了地方

而性能问题很多时候是想象的产物
脱离了实际场景出来的性能是无意义的

而且楼主的问题看来就是想当然的提前优化

按设计模式搭建出来的系统
大家都有能力去看懂去优化性能
按提前优化局部性能搭建出来的系统
连自己到后来都不想碰 code效率优先,运行效率在99%的环境下不是问题。可读性,可维护性一般优先度在运行效率之前。真有比较严重问题才去针对特定的1%到10%部分进行优化
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser les classes et les méthodes en Python Comment utiliser les classes et les méthodes en Python Apr 21, 2023 pm 02:28 PM

Concepts et instances de classes et méthodes Classe (Class) : utilisé pour décrire une collection d'objets avec les mêmes propriétés et méthodes. Il définit les propriétés et méthodes communes à chaque objet de la collection. Les objets sont des instances de classes. Méthode : Fonction définie dans la classe. Méthode de construction de classe __init__() : La classe possède une méthode spéciale (méthode de construction) nommée init(), qui est automatiquement appelée lorsque la classe est instanciée. Variables d'instance : dans la déclaration d'une classe, les attributs sont représentés par des variables. Ces variables sont appelées variables d'instance. Une variable d'instance est une variable modifiée avec self. Instanciation : Créez une instance d'une classe, un objet spécifique de la classe. Héritage : c'est-à-dire qu'une classe dérivée (derivedclass) hérite de la classe de base (baseclass)

Comment corriger l'erreur 0xC00CE556 renvoyée par l'analyseur .NET Comment corriger l'erreur 0xC00CE556 renvoyée par l'analyseur .NET Apr 25, 2023 am 08:34 AM

Lors de l'installation d'une nouvelle version d'une application, Windows peut afficher ce message d'erreur « Une erreur s'est produite lors de l'analyse de C:\\Windows\Microsoft.Net\Framework\v2.0.50727\Config\machine.configParser a renvoyé l'erreur 0xC00CE556 ». Ce problème se produit également au démarrage de votre système. Quelle que soit la situation dans laquelle vous rencontrez ce problème, .NETFramework est le véritable coupable en coulisses. Il existe des correctifs très simples que vous pouvez utiliser pour empêcher ce code d'erreur de réapparaître. Correctif 1 – Remplacer les fichiers corrompus Vous pouvez facilement remplacer le ma corrompu à partir du répertoire d'origine

Remplacer le nom de classe d'un élément à l'aide de jQuery Remplacer le nom de classe d'un élément à l'aide de jQuery Feb 24, 2024 pm 11:03 PM

jQuery est une bibliothèque JavaScript classique largement utilisée dans le développement Web. Elle simplifie les opérations telles que la gestion des événements, la manipulation des éléments DOM et l'exécution d'animations sur les pages Web. Lorsque vous utilisez jQuery, vous rencontrez souvent des situations dans lesquelles vous devez remplacer le nom de classe d'un élément. Cet article présentera quelques méthodes pratiques et des exemples de code spécifiques. 1. Utilisez les méthodes RemoveClass() et AddClass(). JQuery fournit la méthode RemoveClass() pour la suppression.

Que signifie la classe en python ? Que signifie la classe en python ? May 21, 2019 pm 05:10 PM

Class est un mot-clé en python, utilisé pour définir une classe. La méthode de définition d'une classe : ajoutez un espace après la classe puis ajoutez le nom de la classe ; règles de nom de classe : mettez la première lettre en majuscule, utilisez la casse camel. nommage, tel que [class Dog()].

Comment utiliser ThinkPHP\Config pour la gestion de la configuration en php ? Comment utiliser ThinkPHP\Config pour la gestion de la configuration en php ? May 31, 2023 pm 02:31 PM

Avec le développement continu du langage PHP, ThinkPHP, largement utilisé dans le framework back-end PHP, s'améliore également constamment. À mesure que les scénarios commerciaux deviennent de plus en plus complexes, la demande en matière de gestion de configuration dans ThinkPHP augmente également. Dans ce contexte, ThinkPHP fournit de riches fonctions de gestion de configuration. Aujourd'hui, nous allons présenter comment implémenter la gestion de configuration via ThinkPHPConfig. 1. Introduction à ThinkPHPConfig ThinkPHPConfig est léger

Explication détaillée de l'utilisation de la classe PHP : rendez votre code plus clair et plus facile à lire Explication détaillée de l'utilisation de la classe PHP : rendez votre code plus clair et plus facile à lire Mar 10, 2024 pm 12:03 PM

Lors de l’écriture de code PHP, l’utilisation de classes est une pratique très courante. En utilisant des classes, nous pouvons encapsuler les fonctions et les données associées dans une seule unité, rendant le code plus clair, plus facile à lire et à maintenir. Cet article présentera en détail l'utilisation de PHPClass et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre comment appliquer des classes pour optimiser le code dans des projets réels. 1. Créer et utiliser des classes En PHP, vous pouvez utiliser le mot-clé class pour définir une classe et définir les propriétés et méthodes de la classe.

Erreur Vue : impossible d'utiliser v-bind pour lier correctement la classe et le style, comment le résoudre ? Erreur Vue : impossible d'utiliser v-bind pour lier correctement la classe et le style, comment le résoudre ? Aug 26, 2023 pm 10:58 PM

Erreur Vue : impossible d'utiliser v-bind pour lier correctement la classe et le style, comment le résoudre ? Dans le développement de Vue, nous utilisons souvent la directive v-bind pour lier dynamiquement la classe et le style, mais nous pouvons parfois rencontrer des problèmes, comme l'incapacité d'utiliser correctement v-bind pour lier la classe et le style. Dans cet article, je vais vous expliquer la cause de ce problème et vous proposer une solution. Tout d’abord, comprenons la directive v-bind. v-bind est utilisé pour lier V

Comment PHP utilise-t-il CodeIgniter\Config pour la gestion de la configuration ? Comment PHP utilise-t-il CodeIgniter\Config pour la gestion de la configuration ? Jun 02, 2023 pm 06:01 PM

1. Introduction à CodeIgniter CodeIgniter est un framework de développement PHP léger et complet conçu pour fournir aux développeurs Web des outils rapides et puissants pour créer des applications Web. Il s'agit d'un framework open source qui utilise le modèle d'architecture MVC pour réaliser un développement rapide et des fonctions de base, tout en prenant en charge une variété de bases de données. 2. Introduction à la bibliothèque Config La bibliothèque Config est un composant du framework CodeIgniter et est utilisée pour configurer et gérer le code. La bibliothèque Config contient de nombreux

See all articles