Tag 4: Test Driven Development

21. Februar 2008

Tag vier? Wovon fragt sich jetzt der ein oder andere vielleicht. Mittlerweile bin ich ja wieder heile und pünktlich in Bremen angekommen. Kaum ist das Wintersemester 07/08 vorbei, sitze ich auch schon wieder einige, genau vier, Tage in der Uni. Zusammen mit Dennis besuche ich den Kurs Agile Webentwicklung von und mit Carsten Bormann. Das ganze Paket ist als Intensivkurs geschnürt, somit sitzen wir zwei mit zwanzig weiteren Mitstreitern täglich von neun Uhr morgens bis neun Uhr abends in der Uni. Nach drei Tagen kann man aber sagen, dass es sich schlimmer anhört, als es ist ;) Carstens Vorträge sind wie gewohnt informativ und interessant. Drei Viertel des Tages sind mit Vorlesung belegt, die restlichen Stunden verbringen wir mit unserem Projekt.

Projekt? Jeweils zwei Studenten sind mit einem kleinen Software-Projekt beschäftigt, welches von einem externen Kunden betreut und mit Hilfe agiler Methoden durchgeführt wird. Das Projekt von Dennis und mir beschäftigt sich mit der Implementierung eines OpenID-Servers unter Ruby on Rails. Mit diesem bekannten Full-Stack-Framework wird der technische Praxisanteil des Kurses gefüllt.

Doch zurück zum Tagesgeschehen, heute wurde der Vorlesungsanteil von Carsten durch jenen von Jan ersetzt, der uns ein wenig (mehr) über TDD (dt. Test-getriebene Entwicklung) erzählte. Die diskutierten Methoden durften wir anschließend gleich am eigenen Projekt in der Praxis nutzen :)

Jan referiertJan referiert weiter..…und weiter…

8 Kommentare »

MySQL - Datenbank automatisch leeren

13. Dezember 2007

Dennis hat mich vor Kurzem gefragt, ob man alle Tabellen einer Datenbank leeren kann, da er einen Import testen musste. Verteilt dieser sich auf eine Menge Tabellen, dessen Anzahl sich während der Entwicklung noch verändern kann, ist Handarbeit angesagt. Passenderweise bietet SQL genau dafür den Befehl truncate an. Die Tabelle wird gelöscht und mit ihrem ursprünglichen create-Statement wieder erzeugt. Deshalb ist truncate auch erheblich schneller als delete.

Möchte man aber jetzt alle Tabellen in einer Datenbank leeren, kann man dafür ein Script per Hand anlegen, welches alle Tabellennamen enthält oder lieber eine Prozedur schreiben (oder jetzt hier runterladen), die einem die Arbeit abnimmt ;)

DROP PROCEDURE IF EXISTS `trunc_db`;
DELIMITER /


CREATE PROCEDURE `trunc_db`(db VARCHAR(64))
BEGIN


DECLARE done INT DEFAULT 0;
DECLARE tbl VARCHAR(255);


DECLARE cur CURSOR FOR
SELECT table_name
FROM information_schema.tables
WHERE table_type ='BASE TABLE' AND TABLE_SCHEMA = db;


DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;


OPEN cur;


REPEAT
FETCH cur INTO tbl;
SET @s = CONCAT('TRUNCATE `', db, '`.`', tbl, '`');
PREPARE stm FROM @s;
IF NOT done THEN
EXECUTE stm;
END IF;
UNTIL done END REPEAT;


CLOSE cur;
END;
/
DELIMITER ;

Das Script kann hier runtergeladen werden. Die Prozedur prüft nicht auf vorhandene Fremdschlüssel, es kann also vorkommen, dass sie auf Grund einer Constraint-Verletzung nicht durchläuft. Viel Spaß beim Erweitern der Prozedur :)

1 Kommentar »

Wiener Christkindlmarkt

13. Dezember 2007

Man könnte meinen ich wohne in Wien, aber dem ist nicht so. Wir waren nur einfach mal wieder in Wien, wo soll man hier auch sonst hin!? Diesmal ging es mit der Hochschulfraktion zum Christkindlmarkt. War rund um ganz lustig, mehr gibt es nicht zu sagen :)

3 Kommentare »

« Vorherige Einträge