Warum sind manche Softwareentwickler so blind?
-
Deswegen haben wir ein nettes feature für Datums eingaben:
erstens gibt es neben dem Datumsfeld einen Kalender, den man aufrufen kann - verlangt aber JS.
weiters wird jedes für uns denkliche datum aktzeptiert, dass eindeutig ist.
illegale daten, zB
31.11.04
werden auf 1.12.04 gemappt und nachgefragt.
usw.lustig ist auch, dass man auf unrealistische daten checken kann. zB kann man (als programmierer) sagen, dass daten von +10 bis -10 tagen OK sind und wenn das datum rausfällt, wird nachgefragt.
ist auch schön um den user zu helfen, geht aber nicht immer - denn bei einem geburtstag würde das nicht viel bringen - denn dann müsste man sich schon um 150 jahre oder so vertippen
das war natürlich einmal ein wahnsinnsaufwand (das ding checkt wirklich _viel_) aber dafür ist es wirklich geil zu verwenden.
natürlich wird zusätzlich ein beispieldatum angegeben, damit der user garnicht erst denken muss.
aber es stimmt - gerade im web wird oft auf den user vergessen, weil viele leute sich zu sehr auf das validieren der daten konzentrieren. dies wird dann auch noch oft mit (fehlerhaften) regex gemacht
was raus kommt hat marc++us ja schön beschrieben...
wollte nur anmerken, dass es sehr wohl auch anders und schön gehen kann.
wobei 1.1.02 zu erlauben nun wirklich kein aufwand ist...
vermutlich ein regex, da übersieht man sowas leicht...
-
virtuell Realisticer schrieb:
Eine andere Moeglichkeit: Der Entwickler hat sich schlicht und einfach keine
Gedanken gemacht. Vielleicht keine Planung? Oder einfach zu wenig?gerade bei webanwendungen kann man immer nachpatchen, weil man ja selber die einzige version der software besitzt. patches müssen also nicht deployed werden - das reizt extrem dazu _nicht_ zu testen.
allerdings ist das problem eher so:
aufgabe: user soll datum eingeben.
OK, machen wir. ne textbox einbauen, schnell ne validierung schreiben
preg_match($datum, "/[0-9]{2}\.[0-9]{2}\.[0-9]{4}/")
ist schnell gehackt, wobei hier auch oft einfach brutal explode()ed wird. also in ein array zerlegt.das merkt man idr dann, wenn man 1.2
eingibt, und man eine PHP fehlermeldung bekommt
oder
1.2.04.
als fehler angesehen wird.allerdings sollten in dieser situation die 1 oder 2 stellen keine rolle spielen, weil man per intval() daraus normalerweise sofort zahlen macht.
es sei denn, der programmierer war 'schlau' und wollte "2. märz 04" oder so checken. dann würde er natürlich auf strlen()>=2 testen
ach, da habe ich schon soviel code gesehen wo einem nur schlecht geworden ist
Beheben kann man sie dann spaeter mittels Patches.
Und jetzt stell dir das ganze in einer welt vor, wo ein patch 0 aufwand bedeutet und sofort bei jeder software aktiv wird.
denn genau das hat man idR im netz.
-
Marc++us schrieb:
UND LÖSCHT DAS DATUM AUS DER EINGABEMASKE.
Sei doch froh, dass nur das Datum gelöscht wird und nicht alles andere auch gleich dazu
- wär ja nix neues.
-
Ich kann das schon verstehen von MS. Aus eigener leidvoller Erfahrung weiß ich, dass Bugfixes in Code, der älter als 1-2 Monate ist, meistens zu neuen Bugs führen. Und das kann man einfach nicht zulassen, wenn man ein Release vorbereitet. Irgendwann muss man halt dichtmachen und nur mehr wirklich wirklich wirklich wichtige Bugs beheben (und das dann sehr sorgfältig und gewissenhaft).
-
Also ich relativiere auch immer ab, was ich noch verbessern kann und was ich erstmal so lasse. Problem ist einfach, das sobald man einen Fehler behebt, bzw. an einer Stelle Code ändert, muß man alles neu testen um Seiteneffekte aufzudecken. OK, normalerweise muß man immer in Blackboxen entwickeln, so das es keine Seiteneffekte geben kann, aber das optimum ist halt einfach bei dem Zeitdruck nicht drin. Man hat dann auch eher andere Sorgen die man zu lösen hat, also wiegelt man ab und widmet sich der unschönen Stelle einem späteren Zeitpunkt, wenn etwas "Ruhe" eingekehrt ist.
Aber eigentlich wollen die Kunden/User keine unschönen Dinge haben. Es muß alles 100%ig in Ordnung sein, was man ja nachvollziehen kann. Nur Zaubern kann ich leider nicht.
-
Aber Microsoft kann. Ich behaupte, sie könnten das Ding auch erst 2006 releasen (was mich natürlich schocken würde, weil ich mich drauf freue, aber letztlich besser ist), ohne Pleite zu gehen.
Und in dieser Zeit könnten sie es absolut "perfekt" machen.
So lange ich mit den Betas rumspielen kann, kann ich auch warten.
-
Das ist doch noch Harmlos, und hey, es funktioniert,
der User ist eh ein fremdes Wesen
Leider lernen die meisten nur Dummes Coden, und evtl. etwas Design,
das es schön aussieht, von Usability ham die keine Ahnung...Sowas finde ich dann aber echt hart *g*
Devil
-
Also kann das von Microsoft verstehen...
Jede Firma die an größeren Projekten arbeitet hat nen mehr oder weniger sinnvolles Prozessmanagment dahinter und die Prozesse müssen eingehalten werden. Sobal ein Code von uns auf completed steht und es wird doch noch ein Fehler gefunden, dann muss ne ganze Maschinerie von Prozessen und Dokumenten angelegt werden um eine kleine Änderung umzusetzen. Da ist es aus Kostenründen viel einfacher, bei so nen , nicht essentiellen Bugs, des einfach auf die nächste Version zu schieben.
-
Talla schrieb:
Da ist es aus Kostenründen viel einfacher, bei so nen , nicht essentiellen Bugs, des einfach auf die nächste Version zu schieben.
Und das nennt sich dann Qualitätsmanagment
-
Wer glaubt, dass Qualitätsmanager Qualität managen, glaubt auch, dass Zitronenfalter Zitronen falten.
-
Mal generell für dieses Problem:
Marc++us schrieb:
Gibt man ein 1.4.2004 wird die Seite neu geladen, und dann sagt er: "Datum ist nicht korrekt". UND LÖSCHT DAS DATUM AUS DER EINGABEMASKE.
Lösung: Opera benutzen, back button benutzen
Ansonsten stimme ich natuerlic hvollkommen zu, das es ziemlich blöde is, das das falsche datum nicht wieder eingetragen wird.
-
loool xD schrieb:
Lösung: Opera benutzen, back button benutzen
Ich hoffe, daß das mit Opera so nicht geht... denn das sind verschlüsselte Seiten auf einem Bankserver, wenn man da mit Back wieder an Formulardaten herankäme, wäre das ein böses Sicherheitsloch.
-
Marc++us schrieb:
loool xD schrieb:
Lösung: Opera benutzen, back button benutzen
Ich hoffe, daß das mit Opera so nicht geht... denn das sind verschlüsselte Seiten auf einem Bankserver, wenn man da mit Back wieder an Formulardaten herankäme, wäre das ein böses Sicherheitsloch.
das google desktop such programm kann verschlüsselte caches lesen, es wurde mal bemöngelt das man damit webmail postfächer in internet cafes auslesen kann, ok damit komme ich immer noch nicht an die formular daten
ob jetzt der bankserver was anderes macht als die webmail anbieter bezweifle ich mal,
wenn man das jetzt betrachet bietet das löschen der eingabe bei ein fehler (ober besser gesagt das vorbelegen mit den wert den man eingegeben hat) mehr sicherheit, den so tauchen die daten nie in den quellcode auf
-
Passwortfelder zeigen doch eh Sternchen an und ich bezweifle, dass im Quellcode das Passwort im Klartext steht.
Es reicht ja völllig, wenn im Code ein Feld mit Sternchen steht und der Server in einer Session serverseitig das eingegebene Passwort hält.
-
Optimizer: Nein, natürlich muss es da im Klartext drin stehen (bei meiner Bank sind überhaupt keine Sternchen, egal, ob ich PIN oder TAN eingebe). Denn der Benutzer kann ja nur die letzten beiden Ziffern vertauscht haben und möchte die ändern.
Aber ich weiß auch nicht, wo da das Problem ist. Die Daten werden ja per SSL verschickt und SSL Seiten wird doch hoffentlich kein Webbrowser cachen.
-
Ja aber genau dein 'hoffentlich' ist etwas, was du _als Macher der Seite_ nicht garantieren kannst. Wenn ich böse bin, nehm ich den Source vom Firefox und ändere ihn entsprechend ab und installier den Browser auf allen Rechnern meines Internet-Cafès. Ich halte es für sehr unklug, sich auf bestimmte Verhaltensweisen des Clients zu verlassen.
Du hast Recht, Korrekturen sind so nicht möglich, also ist es wahrscheinlich echt das beste, das Passwort zu kicken, wenn die Seite einen zur Korrektur auffordert.
Wenn du deine PIN im Klartext siehst, würde ich mir Gedanken über die Bank machen. ;/ TAN ist ja ok, weil sie eh nur einmal gültig ist. Aber das mit der PIN sollte IMHO definitiv nicht sein.