Inhaltsverzeichnis
回复内容:
Heim Backend-Entwicklung PHP-Tutorial 设计模式和效率 哪个比较重要? 为什么?

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

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%部分进行优化
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie Klassen und Methoden in Python So verwenden Sie Klassen und Methoden in Python Apr 21, 2023 pm 02:28 PM

Konzepte und Instanzen von Klassen und Methoden Klasse (Klasse): wird verwendet, um eine Sammlung von Objekten mit denselben Eigenschaften und Methoden zu beschreiben. Es definiert die Eigenschaften und Methoden, die jedem Objekt in der Sammlung gemeinsam sind. Objekte sind Instanzen von Klassen. Methode: In der Klasse definierte Funktion. Klassenkonstruktionsmethode __init__(): Die Klasse verfügt über eine spezielle Methode (Konstruktionsmethode) namens init(), die automatisch aufgerufen wird, wenn die Klasse instanziiert wird. Instanzvariablen: In der Deklaration einer Klasse werden Attribute durch Variablen dargestellt. Solche Variablen werden Instanzvariablen genannt. Instanziierung: Erstellen Sie eine Instanz einer Klasse, ein bestimmtes Objekt der Klasse. Vererbung: Das heißt, eine abgeleitete Klasse (derivedclass) erbt die Basisklasse (baseclass).

So beheben Sie den vom .NET-Parser zurückgegebenen Fehler 0xC00CE556 So beheben Sie den vom .NET-Parser zurückgegebenen Fehler 0xC00CE556 Apr 25, 2023 am 08:34 AM

Beim Installieren einer neuen Version einer Anwendung zeigt Windows möglicherweise die Fehlermeldung „Beim Parsen von C:\\Windows\Microsoft.Net\Framework\v2.0.50727\Config\machine.configParser ist ein Fehler aufgetreten“ an. Dieses Problem tritt auch beim Booten Ihres Systems auf. Unabhängig davon, in welcher Situation Sie auf dieses Problem stoßen, ist .NETFramework der wahre Übeltäter hinter den Kulissen. Es gibt einige sehr einfache Lösungen, mit denen Sie verhindern können, dass dieser Fehlercode erneut angezeigt wird. Fix 1 – Beschädigte Dateien ersetzen Sie können beschädigte Dateien ganz einfach aus dem Originalverzeichnis ersetzen

Ersetzen Sie den Klassennamen eines Elements mit jQuery Ersetzen Sie den Klassennamen eines Elements mit jQuery Feb 24, 2024 pm 11:03 PM

jQuery ist eine klassische JavaScript-Bibliothek, die in der Webentwicklung weit verbreitet ist. Sie vereinfacht Vorgänge wie die Verarbeitung von Ereignissen, die Bearbeitung von DOM-Elementen und die Durchführung von Animationen auf Webseiten. Bei der Verwendung von jQuery kommt es häufig vor, dass Sie den Klassennamen eines Elements ersetzen müssen. In diesem Artikel werden einige praktische Methoden und spezifische Codebeispiele vorgestellt. 1. Verwenden Sie die Methoden „removeClass()“ und „addClass()“. jQuery stellt die Methode „removeClass()“ zum Löschen bereit

Was bedeutet Klasse in Python? Was bedeutet Klasse in Python? May 21, 2019 pm 05:10 PM

Klasse ist ein Schlüsselwort in Python, das zum Definieren einer Klasse verwendet wird: Fügen Sie nach der Klasse ein Leerzeichen hinzu und fügen Sie dann den Klassennamen hinzu. Wenn es mehrere Wörter gibt, verwenden Sie die Groß-/Kleinschreibung Benennung, wie zum Beispiel [class Dog()].

Wie verwende ich ThinkPHP\Config für die Konfigurationsverwaltung in PHP? Wie verwende ich ThinkPHP\Config für die Konfigurationsverwaltung in PHP? May 31, 2023 pm 02:31 PM

Mit der kontinuierlichen Weiterentwicklung der PHP-Sprache wird auch ThinkPHP, das im PHP-Backend-Framework weit verbreitet ist, ständig verbessert. Da Geschäftsszenarien immer komplexer werden, steigt auch die Nachfrage nach Konfigurationsmanagement in ThinkPHP. In diesem Zusammenhang bietet ThinkPHP umfangreiche Konfigurationsverwaltungsfunktionen. Heute stellen wir vor, wie Sie das Konfigurationsmanagement über ThinkPHPConfig implementieren. 1. Einführung in ThinkPHPConfig ThinkPHPConfig ist Thin

Detaillierte Erläuterung der Verwendung der PHP-Klasse: Machen Sie Ihren Code klarer und leichter lesbar Detaillierte Erläuterung der Verwendung der PHP-Klasse: Machen Sie Ihren Code klarer und leichter lesbar Mar 10, 2024 pm 12:03 PM

Beim Schreiben von PHP-Code ist die Verwendung von Klassen eine weit verbreitete Praxis. Durch die Verwendung von Klassen können wir verwandte Funktionen und Daten in einer einzigen Einheit kapseln, wodurch der Code klarer, leichter lesbar und einfacher zu warten ist. In diesem Artikel wird die Verwendung von PHPClass ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, besser zu verstehen, wie Klassen zur Optimierung von Code in tatsächlichen Projekten angewendet werden. 1. Klassen erstellen und verwenden In PHP können Sie das Schlüsselwort class verwenden, um eine Klasse zu definieren und Eigenschaften und Methoden in der Klasse zu definieren.

Vue-Fehler: V-bind kann nicht verwendet werden, um Klasse und Stil korrekt zu binden. Wie kann das Problem gelöst werden? Vue-Fehler: V-bind kann nicht verwendet werden, um Klasse und Stil korrekt zu binden. Wie kann das Problem gelöst werden? Aug 26, 2023 pm 10:58 PM

Vue-Fehler: V-bind kann nicht verwendet werden, um Klasse und Stil korrekt zu binden. Wie kann das Problem gelöst werden? In der Vue-Entwicklung verwenden wir häufig die V-Bind-Anweisung, um Klasse und Stil dynamisch zu binden. Manchmal können jedoch Probleme auftreten, z. B. dass wir V-Bind nicht korrekt zum Binden von Klasse und Stil verwenden können. In diesem Artikel werde ich die Ursache dieses Problems erläutern und Ihnen eine Lösung anbieten. Lassen Sie uns zunächst die v-bind-Direktive verstehen. v-bind wird zum Binden von V verwendet

Wie verwendet PHP CodeIgniter\Config für die Konfigurationsverwaltung? Wie verwendet PHP CodeIgniter\Config für die Konfigurationsverwaltung? Jun 02, 2023 pm 06:01 PM

1. Einführung in CodeIgniter CodeIgniter ist ein leichtes und umfassendes PHP-Entwicklungsframework, das Webentwicklern schnelle und leistungsstarke Tools zum Erstellen von Webanwendungen bietet. Es handelt sich um ein Open-Source-Framework, das das MVC-Architekturmuster nutzt, um eine schnelle Entwicklung und Grundfunktionen zu erreichen und gleichzeitig eine Vielzahl von Datenbanken zu unterstützen. 2. Einführung in die Config-Bibliothek Die Config-Bibliothek ist eine Komponente im CodeIgniter-Framework und wird zum Konfigurieren und Verwalten von Code verwendet. Die Config-Bibliothek enthält viele

See all articles