by:

Nachdem ich gebeten wurde die Arbeit von einem Kollegen zu bewerten, habe ich mir Gedanken gemacht, wie man möglichst objektiv die Qualität von Software und Dokumentation beurteilen kann.

Hierzu hab ich eine Checkliste erstellt die ich euch nicht vorenthalten möchte.
Ich hege natürlich keinen Anspruch auf Vollständigkeit, freue mich über jegliche Verbesserungsvorschläge, Fragen und/oder Kritik!

code review

Dokumentation

Gibt es eine Technische- und eine Anwenderdokumentation?

Ich glaube es sollte schon bei der Auftragsvergabe über den Umfang, die Zielgruppe und den konkreten Inhalt der Dokumentation diskutiert werden.
Bei der NASA wird angeblich, zuerst jede Funktion dokumentiert, um danach implementiert zu werden, dies hat den Vorteil, das sich die Beteiligten schon im Vorfeld sehr konkrete Gedanken machen müssen.

Quelltext

MVC

Wurde die Darstellung, Businesslogik und das Datenmodel getrennt?
Das Konzept von MVC ist nicht neu, die Segmentierung von gewissen Teilen des Quelltextes ist gerade bei größeren Projekten unumgänglich und sollte von Beginn an berücksichtigt werden.

Framework

Wurde ein Framework verwendet?
Frameworks können dazu beitragen dass der Quelltext in einer gewissen Struktur vorliegen muss.
Sie ersparen außerdem oft Zeit, da gewisse Funktionalitäten bereits abgebildet sind (z.b. Benutzerverwaltung, Sicherheitsüberprüfungen)

Coding Guidelines

Gibt es Coding Guidelines und wurden diese eingehalten?
Die meisten Frameworks haben Coding Guidlines oder Best Practice Beispiele,
die definieren, welche Formatierung, Ordnerstruktur und Namenskonventionen eingehalten werden sollte.

Performance (Benchmark / Profiling)

Alle Programmiersprachen haben Tools, die Aufschlüsse darüber geben, wie oft eine Funktion aufgerufen wird, wie viel Speicher und Zeit sie dabei benötigt, kurz wie viel Ressourcen sie für eine gewisse Aufgabe benötigt.
Ich empfehle grundsätzlich jedes Projekt zu profilen um mögliche Schwachstellen frühzeitig zu erkennen.

Debugger

Ein Debugger sollte zum Werkzeugkasten eines jeden Programmierers gehören und eigentlich selbstverständlich sein.
Ich habe es aber auch schon erlebt, das "Entwickler" noch nie ein Breakpoint oder Observer verwendet haben bzw. von deren Existenz gewusst haben.

Unit Tests

Werden dazu verwendet einzelne Funktionen der Software zu testen.
Ich selber schreibe viel zu selten Unit Tests, halte es dennoch für eine wichtige Aufgabe eines jeden Software Entwicklers.

Statische Codeanalyse

Die statische Codeanalyse kann dazu beitragen das typische Fehler früh erkannt werden, außerdem kann Sie gewährleisten, dass eine gewisse Formatierung und Namenskonventionen eingehalten wurde. 

Peer Reviewing

Beim Peer Reviewing werden weitere Entwickler um ihre fachliche Meinung zum Quelltext gebeten. 
Ich musste leider oft feststellen, das Programmierer Angst haben, Ihren Quelltext von Dritten begutachten zu lassen, obwohl hierfür kein Grund besteht, immerhin machen wir alle Fehler und dies ist der beste Weg um sich und die Qualität der Software zu verbessern. 

Organisation

Versionskontrollsystem

Ein Versionskontrollsystem hilft dabei, zwischen Versionen zu wechseln, Konflikte zu erkennen und die Übersicht zu behalten.
Es wird z.B. erfasst, wer, was, wann geändert hat, des weiteren kann man jede Änderung wieder rückgängig machen.
    
   
Zu den einzelnen Punkten kann man ganze Bücher schreiben, mir ging es hier in erster Linie
darum, einen Überblick zu geben.

Wie schon erwähnt würde ich mich über Feedback sehr freuen,

Happy Hacking

Andreas

 

Weiterführende Links:

 

http://de.wikipedia.org/wiki/Smell_(Programmierung)
http://www.linux-magazin.de/Ausgaben/2012/08/Statische-Analyse

 


Kommentare

by:

Der erste Tag der jQuery Konferenz ist vorbei und es ist Zeit für ein kurzes Fazit.

  • /images/jqueryeu14/_DSC0333.JPG
  • /images/jqueryeu14/_DSC0334.JPG
  • /images/jqueryeu14/_DSC0335.JPG
  • /images/jqueryeu14/_DSC0339.JPG
  • /images/jqueryeu14/_DSC0341.JPG
  • /images/jqueryeu14/_DSC0344.JPG
  • /images/jqueryeu14/_DSC0345.JPG
  • /images/jqueryeu14/_DSC0347.JPG
  • /images/jqueryeu14/_DSC0349.JPG
  • /images/jqueryeu14/_DSC0350.JPG
  • /images/jqueryeu14/_DSC0353.JPG
  • /images/jqueryeu14/_DSC0366.JPG
  • /images/jqueryeu14/_DSC0368.JPG
  • /images/jqueryeu14/_DSC0370.JPG
  • /images/jqueryeu14/_DSC0371.JPG
  • /images/jqueryeu14/_DSC0375.JPG
  • /images/jqueryeu14/_DSC0376.JPG
  • /images/jqueryeu14/_DSC0379.JPG
  • /images/jqueryeu14/_DSC0381.JPG
  • /images/jqueryeu14/_DSC0386.JPG
  • /images/jqueryeu14/_DSC0388.JPG

Was war Gut ? 

Der Kontakt und Austausch zu den Menschen die jQuery verwenden und weiterentwickeln hat mir besonders gefallen.
Auch die Location ist einfach nur umwerfend gewählt. Man hat schon ein sehr ehrwürdiges Gefühl im Palais Liechtenstein, mit den hohen Räumen und der wundervollen Freskenmalerei. 

Ich muss leider an der Stelle zugeben, dass die Talks selbst mich nur bedingt interessiert haben,
ich hoffe mal das sich das Morgen (am Samstag) ändern wird.

Was war weniger Gut ?

Wie auch im letzten Jahr (so wurde mir gesagt) hätte das Mittagessen etwas besser sein können,
auch mehr Talks wären bei den Eintrittspreisen durchaus angebracht.

Als Tipp für den Veranstalter:
Student Tickets wären cool, nicht jeder Student, OpenSource Hacker oder Startup Gründer kann sich die 400 Euro für das Ticket leisten.

Update:

Habe die Bilder vom zweiten Tag noch hinzugefügt.

Am Ende möchte mich bei den Organisatoren und vielen tatkräftigen Helfern bedanken, ihr macht einen super Job !!!


Happy Hacking

Andreas


Kommentare

by:

Ich habe bereits mal von der Möglichkeit eines SSH reverse tunnels geschrieben, das ist dann hilfreich, wenn man sinnigerweise eine Verbindung die man von A nach B aufgebaut hat, auch wieder von B nach A nutzen möchte.

Heute beschreibe ich einen SSH Socks Proxy, dieser dient z.B. um eine Firewall, einen Content Filter oder Länderbeschränkungen zu umgehen bzw. eine Punkt zu Punkt Verbindung in einem unverschlüsselten Netzwerk zu verschlüsseln.

Auf meinen Reisen in China habe ich diese Funktion zu schätzen gelernt, da leider ein Großteil des Internets zensiert war und ohne die Technik es schlicht nicht möglich war, mit meiner Familie und Freunden in Kontakt zu treten.


Um die Tunnel Verbindung aufzubauen muss man folgenden Befehl in der Linux Konsole ausführen:
 

ssh -D localhost:8080 root@yourserver.ltd

 


Der nächste Schritt ist nun dem Betriebsystem zu sagen, dass es die Tunnel Verbindung verwenden soll.

Im Fall von Chrome kann man das auch explizit angeben:

google-chrome --proxy-server="socks5://localhost:8080" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost"

Bei Firefox muss man, soviel ich weiss, noch folgende Option aktivieren:

about:config
network.proxy.socks_remote_dns auf true schalten

Das ganze verschlüsselt die Punkt zu Punkt Verbindung, wenn das lokale System bereits komprimittiert ist, ist dieser Schutz wirkungslos.

Es sei an der Stelle auch nochmal darauf hingewiesen, dass nicht nur in China das Internet blockiert
und analysiert wird, gerade in den letzen Monaten und Jahren nimmt die Häufigkeit auch bei uns und im Rest der Welt deutlich zu.

Darum bitte ich euch, informiert euch, diskutiert mit eurer Familie und Freunden über die möglichen Gefahren und versucht wann immer es möglich ist, solche Systeme zu kritisieren.

Happy Hacking

Andreas


Kommentare

by:

Hier mal ein kurzes Resume vom letzten Wochenende in Brüssel.
Wie auch schon 2011 war die Fosdem sehr gut besucht, teilweise zu gut besucht, sodass man bei einigen interessanten Vorträgen/Workshops kaum eine Chance hatte teilzunehmen.  

Mich hat das am ersten Tag etwas geärgert, da gerade die ersten 3 Vorträge, die ich gerne sehen wollte, nacheinander so überlaufen waren, dass an eine Teilnahme nicht zu denken war.

Zum Glück gab es aber reichlich Alternativen, um genau zu sein 512 Vorträge und Workshops die an 2 Tagen auf dem Universitätsgelände in Brüssel stattfanden.
Ausserdem haben noch diverse Community Projekte und Firmen Ihre Produkte vorgestellt und man hatte auch etwas Zeit sich mal mit den Köpfen hinter der Software zu unterhalten.

  • /images/fosdem/_DSC0172.JPG
  • /images/fosdem/_DSC0173.JPG
  • /images/fosdem/_DSC0182.JPG
  • /images/fosdem/_DSC0184.JPG
  • /images/fosdem/_DSC0185.JPG
  • /images/fosdem/_DSC0189.JPG
  • /images/fosdem/_DSC0190.JPG
  • /images/fosdem/_DSC0196.JPG
  • /images/fosdem/_DSC0198.JPG
  • /images/fosdem/_DSC0199.JPG
  • /images/fosdem/_DSC0210.JPG
  • /images/fosdem/_DSC0241.JPG
  • /images/fosdem/_DSC0243.JPG
  • /images/fosdem/_DSC0244.JPG
  • /images/fosdem/_DSC0246.JPG
  • /images/fosdem/_DSC0255.JPG

Ich persönlich hab mir dieses Jahr hauptsächlich die Language Parsing und Compiler Bau Vorträge angeschaut, da mich die Idee, eine Programmiersprache so zu erweitern, dass sie gewisse Eigenschaften von Variablen versteht, sehr fasziniert.

Abschliessend möchte ich mich noch kurz bedanken bei allen, die die Fosdem möglich gemacht haben. DANKE !!

Grüße aus Wien

Andreas


Kommentare

by:

Festival for Cocktailrobotics since 1999

  • /images/roboexotica/_DSC0065.JPG
  • /images/roboexotica/_DSC0067.JPG
  • /images/roboexotica/_DSC0071.JPG
  • /images/roboexotica/_DSC0074.JPG
  • /images/roboexotica/_DSC0080.JPG
  • /images/roboexotica/_DSC0082.JPG
  • /images/roboexotica/_DSC0087.JPG
  • /images/roboexotica/_DSC0097.JPG
  • /images/roboexotica/_DSC0125.JPG
  • /images/roboexotica/_DSC0129.JPG
  • /images/roboexotica/_DSC0137.JPG
  • /images/roboexotica/_DSC0139.JPG

Kommentare


Seiten: