design

Design in der Programmierung ist die Handlung, bestimmte Entscheidungen darüber zu treffen, wie man ein Programm am besten strukturiert, um Ziele der Zuverlässigkeit, Wartbarkeit, Korrektheit oder Benutzerfreundlichkeit zu erreichen.
4
Antworten

Microsoft Fluent Design für Web (CSS-Framework)

Wie Microsoft kürzlich ein Design-System namens "Fluent Design" veröffentlicht hat, ist es angebracht, es auf Web-Design anzuwenden? Die meisten meiner Suche wurde für alle Microsoft-Plattformen, c # app, f # etc .. Ich habe noch nie etwas im...
25.05.2017, 02:19
2
Antworten

Einheitentestklassen durch andere Testklassen

Angenommen, ich benutze TDD, um eine Klasse A zu erstellen. Nachdem ich fertig bin und einen "grünen" Balken habe, entscheide ich, dass ich Klasse B mit nur statischen Methoden aus Klasse A mit einem Refactoring-Tool extrahieren möchte. Ich habe...
25.04.2014, 00:57
1
Antwort

Der bessere Ansatz zur Gestaltung von AngularJS-Diensten

Ich schreibe eine AngularJS-Client-Anwendung, die mit einem REST-Server interagieren würde. Um die Client / Server-Interaktion zu verwalten, verwende ich die Ressource Abstraktion. Eigentlich schreibe ich jede Ressource als einen separaten...
19.09.2013, 13:50
2
Antworten

static_assert zum Sicherstellen des Konstruktionsvertrags

Als Teil eines Entwicklerteams wollte ich sicherstellen, dass eine Reihe von Funktionen (und Operatoren) in den benutzerdefinierten Iteratoren implementiert werden, die wir veröffentlichen. Die Verwendung von STL-Iteratortypen als Basistyp-Hilfe...
20.09.2012, 09:42
4
Antworten

Zulassen, dass C # -Plugins auf Anwendung-Hooks registriert werden

Ich baue eine .NET-basierte Anwendung und möchte ein erweiterbares und steckbares Design ermöglichen. Der Einfachheit halber bietet die Anwendung eine Reihe von Operationen und Ereignissen: DoSomething () DoOtherthing () OnError OnS...
24.04.2012, 22:11
3
Antworten

Warum ist die Methode String.IndexOf Teil der Schnittstelle CharSequence nicht?

Ich kann keine Nachteile bei der Herstellung von feststellen String.indexOf Teil der Benutzeroberfläche CharSequence . Der Vorteil wäre, dass andere Klassen wie StringBuffer oder StringBuilder auch die indexOf-Methoden implementieren...
06.12.2011, 06:33
5
Antworten

Was ist das Leistungsgewicht einer API? ___ answer3599379 ___

Ich würde "konzeptionelles Gewicht" als die Anzahl der abstrakten Konzepte interpretieren, die Sie lernen und verstehen müssen, um die API zu verwenden. Konzepte werden normalerweise öffentlichen Klassen zugeordnet, während Klassen, die nicht öffentlich sind, zu der Hauptkomponente, aber nicht zur konzeptionellen Gewichtung hinzugefügt werden.

Wenn Sie es also technisch ausdrücken, hat eine API ein hohes konzeptionelles Gewicht, wenn ein typischer API-Client explizit viele Klassen der API verwenden muss, um damit zu arbeiten.

"Gutes Leistungsgewicht" bedeutet dann, dass die API so wenig öffentliche Klassen wie möglich verwenden sollte, um so viel Funktionalität wie möglich anzubieten. Das bedeutet eine API sollte:

  • Fügen Sie keine Konzepte oder Abstraktionen hinzu, die nicht in der Domäne vorhanden sind
  • Bietet für komplexe Domänen Verknüpfungen zu den am häufigsten benötigten Funktionen, mit denen ein typischer Benutzer die komplexeren Teile der Domäne umgehen kann
___ answer3599062 ___

Ich nehme an, dass eine API mit einem guten Leistungsgewicht eine API ist, die eine Menge Funktionalität (Leistung) bietet, während sie nur wenig Aufwand erfordert, damit sie richtig funktioniert (gewichtet).

Dies kann beispielsweise über "Convention over Configuration" erfolgen. (Beachten Sie, dass dies nur ein Beispiel ist und Sie dies auf verschiedene Arten erreichen können.)

Es wäre hilfreich, einen Link zu Blochs Präsentation zu haben, er könnte sich auf etwas anderes beziehen: -)

    
___ qstntxt ___

In Blochs Präsentation sagte er, dass der Designer nach einem guten Leistungsgewicht für API suchen sollte. Darüber hinaus betonte er, dass konzeptionelles Gewicht wichtiger ist als Bulk . Ich denke, das Gewicht ist für ' konzeptionelles Gewicht ', Masse ist für die Anzahl der Methoden einer Klasse.

Aber ich konnte nicht verstehen, was " konzeptionelles Gewicht " ist, was " Macht-Gewicht-Verhältnis " ist. Willkommen zu jeder Erklärung!

Bloch gab ein Beispiel: %code% hat ein gutes Leistungsgewicht. Wenn Kunden einen Index einer Unterliste wissen wollen, muss er nicht eine niedrige "p2w ratio" -Methode %code% aufrufen, stattdessen könnte er %code% aufrufen. Bloch hielt dies für ein "Leistungsgewicht".

Herkunft:

API sollte so klein wie möglich, aber nicht kleiner sein

  • API sollte seine Anforderungen erfüllen
  • Lassen Sie es im Zweifelsfall aus
    • Funktionalität, Klassen, Methoden, Parameter usw.
    • Sie können immer hinzufügen, aber Sie können
    • niemals entfernen
  • Konzeptionelles Gewicht wichtiger als Bulk
  • Achten Sie auf ein gutes Leistungsgewicht
___ answer3599051 ___

Ich würde das sagen

  • power = der Umfang der von der API bereitgestellten Funktionalität
  • Gewicht = der Aufwand, der zum Erlernen der API erforderlich ist
___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123design ___ Design in der Programmierung ist der Akt, bestimmte Entscheidungen darüber zu treffen, wie man ein Programm am besten strukturiert, um Ziele der Zuverlässigkeit, Wartbarkeit, Korrektheit oder Benutzerfreundlichkeit zu erreichen. ___ tag123api ___ NICHT VERWENDEN: Tag mit der Bibliothek, die Sie meinen, [api-design], oder etwas anderes, das stattdessen geeignet ist. Fragen, die uns auffordern, eine API zu empfehlen oder zu finden, sind off-topic. ___ answer9741132 ___

Ein weiterer wesentlicher Aspekt des Leistungsgewichtes einer API oder gar einer Sprache als Ganzes ist ihre Ausführlichkeit. Das heißt, wie viel Sie eingeben müssen, um eine Aufgabe zu erledigen und die Lesbarkeit des resultierenden Codes. In Java hat %code% ein besseres Leistungsgewicht als %code% , die Schnittstelle, die es ersetzen sollte, weil %code% einen kürzeren Namen und kürzere Methodennamen hat, die nicht länger sind als sie benötigen sei und mache den gleichen Job ohne Verlust an Klarheit (wie auch die zusätzliche Methode %code% ).

    
___ answer3599072 ___

Er bezieht sich auf all die Dinge, die Sie durch die Verwendung einer API erhalten. Sein Beispiel ist das Collections-API, bei dem Sie bei jedem Zugriff nur bestimmte Funktionen erhalten. Auf der anderen Seite werden einige APIs viel mehr laden, nur um Ihnen einige Funktionen zu geben.

    
___

In Blochs Präsentation sagte er, dass der Designer nach einem guten Leistungsgewicht für API suchen sollte. Darüber hinaus betonte er, dass konzeptionelles Gewicht wichtiger ist als Bulk . Ich denke, das Gewicht ist für ' konzeptionelles Gewi...
30.08.2010, 08:41
6
Antworten

Gibt es eine Möglichkeit, von einer Klasse mit einem internen Konstruktor abzuleiten?

Ich arbeite mit einer c # -Klasse von Drittanbietern, die viele großartige Methoden und Eigenschaften hat - aber im Laufe der Zeit muss ich diese Klasse um eigene Methoden und Eigenschaften erweitern. Wenn es mein Code wäre, würde ich einfach di...
17.06.2009, 04:39
5
Antworten

Zum Affen-Patch oder nicht?

Dies ist eine allgemeinere Frage, die sprachspezifisch ist, obwohl ich mit dem Python-Ncurses-Modul auf dieses Problem gestoßen bin. Ich musste Locale-Zeichen anzeigen lassen und sie als Zeichen erkannt haben, also habe ich einfach einige Funkti...
06.01.2009, 07:58
4
Antworten

Wo gehören alle "Bulk" -Operationen in DDD?

In DDD ist eines der Schlüsselkonzepte das Repository, mit dem Sie Entitäten (oder Aggregatwurzeln) abrufen und dann speichern können, nachdem sie aktualisiert wurden. Nehmen wir an, wir müssen eine "Bulk" -Operation mit Entitäten durchführen...
18.02.2009, 17:45