2010-03-11 8 views

Antwort

8

Ich wusste nicht, ich konnte meine eigenen Funktionen (php)

Als ich mich lehrte, schreiben Jahre ich eine ganze PHP-Web-Anwendung ohne eine einzige Funktion vor programmieren geschrieben. Die gesamte Wiederverwendung von Code wurde durch Aufrufen von include (...) in anderen .php-Skripten durchgeführt. Das Buch, von dem ich gelernt habe, hat das Konzept der benutzerdefinierten Funktionen nie eingeführt. (Der Tag, an dem ich etwas über Funktionen lernte, war ein sehr guter Tag.)

+0

holy crap! meinst du das ernst: D –

+0

Ähnliches habe ich vorher bei einem Job gesehen, den ich sehr kurz konsultiert habe (von den Product Ownern gekauft - musste aber mit einer anderen Firma arbeiten, die die Web App entwickelt hat). Diese Entwicklerfirma hatte den falschen Glauben, dass das Aufrufen einer Funktion in PHP zu teuer war, sodass ihr Code eher wie das aussah, was Sie sagten. Während es einige Methodenaufrufe und Includes gab, sollte ein Regex zur Validierung einer E-Mail-Adresse an mehreren Stellen in einer Methode nicht encaplosate sein - aber kopiere es dort, wo du es brauchst - gab schließlich auf, sie davon zu überzeugen Methode Anruf Overhead ist nicht wichtig – saret

+0

Die App, die ich derzeit pflegen muss müssen von Ihnen gewesen sein. Ok, es hat einen Wrapper um die MySQL-Funktionen, aber das ist es. Ich habe eine einzelne SQL-Abfrage 12 Mal in _one_ file wiederholt. – dbemerlin

5

Polymorphismus.

Ich habe nicht wirklich verstanden, es ist Macht zuerst. Hat sich zu aufgeblähten und zu komplizierten Routinen entwickelt. Jung, versuchen Sie nicht, diese Tage zu erinnern ...

+2

Ich kann sehen, was du meinst. Zuerst sah ich hauptsächlich Objektorientierung, um Funktionen und Daten zusammenzuhalten. So wie C++ Sie Funktionen innerhalb einer Struktur deklarieren lassen. Ich war mir des virtuellen Keywords bewusst, aber ich sah die Nützlichkeit nicht wirklich. Smalltalk-Implementierung der if-Kontrollstruktur mit polymorphem #ifTrue: und #ifFalse war ein wahrer Augenöffner. –

1

Datenbank schließt sich in PHP-Code

Wenn mich mit PHP SQL Lehre war ich SQL wie ein permanenter Flat-File-Typen Speicher mit komplexen Filterfunktionen unter Verwendung von (WOHER). Ich habe nicht verstanden, dass man Tische zusammen "verbinden" kann. Alle Join-Operationen wurden in einer PHP-Funktion implementiert, nachdem alle Daten in den Speicher geladen wurden. Wenn ich damals mehr wüsste, hätte ich es vielleicht als Nested Loops Join-Funktion bezeichnet! (Das bringt Ihnen bei, Ihre Daten sehr schnell zu de-normalisieren!)

Tut mir leid Datenbank Götter!

1

Das Schlimmste, was ich jemals getan habe, war, Komma getrennte IDs in einer Datenbank zu speichern. Ich habe Joins nicht ganz verstanden, also war es das Einfachste, was ich tun konnte, aber die Abfragen waren schrecklich
(WHERE foo_ids LIKE "%, $ id,%" ODER foo_ids LIKE "$ id,%" ODER foo_ids LIKE "%, $ Ich würde").

Das Schlimmste, was ich regelmäßig sehe, sind Klassen, die einfach wie Namespaces mit allen Methoden public static (PHP) funktionieren.

EDIT:
Ich erinnerte mich nur die Zeit, wenn ein Schulfreund versucht, eine XML-Datei für eine Datenbanktabelle

Tabelle zu erstellen:

teacher_id | name 
     1 | foo 
     2 | bar 
    ...  | ... 

Sein XML:

<teachers> 
    <id1>foo</id1> 
    <id2>bar</id2> 
    .... 
</teachers> 
1

Irgendein Java - "Entwickler" (lol) versucht, ein Stück Software in C# zu schreiben, nicht wissend, dass dies eine moderne Sprache mit einer "foreach" - Aussage ist.

Ergebnis:

Software hatte Iterationen ... Iteratoren. Hässlich, 90er Jahre, typisch für Java.

Hat mich dazu gebracht, Java noch mehr zu hassen. :-(

+2

Aber Java hat eine foreach-Anweisung ('for (e: iterator) {}'), also war der Entwickler einfach ignorant. – JAB

+1

Mit Ausnahme der Zeit und des Ortes für Iteratoren, abhängig von den Operationen, die in der Schleife ausgeführt werden. Das große Beispiel ist, wenn Sie etwas aus der Sammlung entfernen müssen, über die Sie iterieren. – Freiheit

+0

@Freiheit Wenn Sie das tun, tun Sie es falsch. IEnumerables gelten als unveränderbar. Wenn Sie sie mutieren müssen, müssen Sie eine geänderte Kopie erstellen. Alles andere ist eine vorzeitige Optimierung. –

1

Ein Kollege und ich arbeiteten als Berater für ein mittelgroßes Software-Projekt, er arbeitete ein Jahr lang an ähnlichen Projekten und wurde dem Kunden als "Experte" auf der Plattform in Rechnung gestellt.

Bald stellte ich fest, dass mein Kollege die Feinheiten von Datei-I/O in der Sprache, die wir verwendeten, nicht vollständig verstanden hatte und folglich viele kleine Fehler hinterließ. Das Komische daran ist, dass alle seine früheren Projekte die gleichen subtilen Fehler hatten, aber die Kunden lernten, das System auf eine Weise zu benutzen, die sie nicht ausgelöst hat.

1

Damals, als ich noch ein Anfänger war, schrieb ich Code in PHP, ohne Zeiger, Objekte oder sogar Tupel/Strukturen zu verstehen. Ich habe alle meine Datenstrukturen mit den lächerlich flexiblen, dynamisch typisierten Arrays von PHP erstellt. Es ist eigentlich ziemlich überraschend, wie viel man auf diese Weise erreichen kann, aber ich fühle mich schlecht für irgendjemanden (einschließlich mir selbst ein paar Monate später), der jemals diesen Code ändern musste.

0

Das musste ich ToString() auf jede Variable beim Verketten von Strings aufrufen, auch wenn die Variablen Strings waren.

Beispiele:

Enum.GetName(...).ToString() 
myDate.ToShortDateString().ToString() 

...

Verwandte Themen