Softwareentwicklung

Fragen und Antworten für Fachleute, Akademiker und Studenten, die im Lebenszyklus der Systementwicklung arbeiten

11
Warum hat C ++ 'undefined behaviour' (UB) und andere Sprachen wie C # oder Java nicht?
In diesem Beitrag zum Stapelüberlauf wird eine ziemlich umfassende Liste von Situationen aufgeführt, in denen die C / C ++ - Sprachspezifikation als "undefiniertes Verhalten" deklariert wird. Ich möchte jedoch verstehen, warum andere moderne Sprachen wie C # oder Java nicht das Konzept von "undefiniertem Verhalten" haben. Bedeutet dies, dass …

7
Verwalten und organisieren Sie die massiv gestiegene Anzahl von Klassen nach dem Wechsel zu SOLID?
In den letzten Jahren haben wir langsam und schrittweise auf immer besser geschriebenen Code umgestellt. Wir beginnen endlich, auf etwas umzusteigen, das zumindest SOLID ähnelt, aber wir sind noch nicht ganz da. Seit dem Wechsel ist eine der größten Beschwerden der Entwickler, dass sie es nicht ertragen können, Dutzende und …

5
Warum erlaubt Python keine mehrzeiligen Lambdas?
Kann jemand die konkreten Gründe erklären, warum BDFL Python Lambdas als Einzellinie verwendet? Das ist gut: lambda x: x**x Dies führt zu einem Fehler: lambda x: x**x Ich verstehe, dass das Herstellen von Lambda-Mehrfachzeilen die normalen Einrückungsregeln irgendwie "stören" und das Hinzufügen weiterer Ausnahmen erfordern würde, aber ist das nicht …
50 lambda  python 



6
Warum geben viele Funktionen, die Strukturen in C zurückgeben, Zeiger auf Strukturen zurück?
Was ist der Vorteil der Rückgabe eines Zeigers auf eine Struktur im Vergleich zur Rückgabe der gesamten Struktur in der returnAnweisung der Funktion? Ich spreche von Funktionen wie fopenund anderen Funktionen auf niedriger Ebene, aber wahrscheinlich gibt es Funktionen auf höherer Ebene, die auch Zeiger auf Strukturen zurückgeben. Ich glaube, …

2
Was sind die Verbesserungen von MVP gegenüber MVC?
Ich habe drei Tage lang über die Muster Model-View-Controller (MVC) und Model-View-Presenter (MVP) gelesen . Und es gibt eine Frage, die mich sehr stört. Warum haben Software-Designer MVP erfunden, als es bereits eine MVC gab? Welche Probleme hatten sie, die MVC nicht (oder schlecht) gelöst hat, die MVP aber lösen …


11
"Einfach zu überlegen" - was bedeutet das? [geschlossen]
Ich habe oft gehört, dass andere Entwickler diesen Ausdruck verwenden, um für einige Muster zu werben oder Best Practices zu entwickeln. Meistens wird dieser Ausdruck verwendet, wenn Sie über die Vorteile der funktionalen Programmierung sprechen. Der Ausdruck "Einfach zu überlegen" wurde unverändert verwendet, ohne Erklärung oder Codebeispiel. Für mich wird …



3
C ++ stark typisierte typedef
Ich habe versucht, eine Möglichkeit zu finden, stark typisierte typedefs zu deklarieren, um eine bestimmte Klasse von Fehlern in der Kompilierungsphase zu erkennen. Es kommt häufig vor, dass ich ein int in mehrere Arten von ids oder einen Vektor zur Positionierung oder Geschwindigkeit eingebe: typedef int EntityID; typedef int ModelID; …
49 c++  c++11  type-safety 


5
Warum nehmen alle <algorithm> -Funktionen nur Bereiche an, keine Container?
Es gibt viele nützliche Funktionen in &lt;algorithm&gt;, aber alle arbeiten mit "Sequenzen" - Paaren von Iteratoren. Wenn ich zB einen Container habe und darauf laufen möchte std::accumulate, muss ich schreiben: std::vector&lt;int&gt; myContainer = ...; int sum = std::accumulate(myContainer.begin(), myContainer.end(), 0); Wenn alles, was ich vorhabe, ist: int sum = std::accumulate(myContainer, …

6
Problemumgehung für von Java überprüfte Ausnahmen
Ich schätze die neuen Java 8-Funktionen für Lambdas und Standardmethoden-Schnittstellen sehr. Trotzdem langweilen mich geprüfte Ausnahmen. Wenn ich zum Beispiel nur alle sichtbaren Felder eines Objekts auflisten möchte, möchte ich einfach Folgendes schreiben: Arrays.asList(p.getClass().getFields()).forEach( f -&gt; System.out.println(f.get(p)) ); Da die getMethode jedoch möglicherweise eine aktivierte Ausnahme auslöst, die nicht mit …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.