Thread Vererbung von Subs ohne OO - Idee?
(32 answers)
Opened by marky at 2011-03-25 14:12 2011-03-27T09:08:35 marky In letzter zeit zu viel mit php gemacht. Wobei sich das PHP verhalten implementieren lässt ;-): Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; package my; use Carp; sub test{ croak 'UNIMPLEMENTED '.( caller(0) )[3]; } package main; for my $num (0..9) { open(my $fh, '>', 'my.pm'); print $fh <<EOC; package my; sub test{ $num } 1; EOC close($fh); if(require 'my.pm') { print my::test()."\n"; delete($INC{'my.pm'}); } } 2011-03-27T09:08:35 marky Solange der Modulname noch in %INC steht. 2011-03-27T09:08:35 marky Ich sehe Plugins nicht als Mittel um die Funktionalitäten Umzustellen oder Updates zu ermöglichen. Ich sehe Plugins als Möglichkeit bestimmte Bereiche flexibel zu erweitern. Plugins agieren als Filter, oder bekommen gewisse Ressourcen zugewiesen, die sie unabhängig verwalten. Es wird zu schnell zu unübersichtlich, wenn man zu viel erlaubt. Wenn man das ganze Programm ändern will soll man davon erben und die Änderungen durchführen. Ich sehe keinen Vorteil darin das über ein Plugin zu erledigen. Aber das ist Ansichtssache. :-) 2011-03-27T09:08:35 marky Dafür hat es aber ganz andere Probleme und ist beiweitem nicht so einfach einsetzbar wie es einem erzählt wird. Letzten Monat musste ich weite Teile eines PHP-Programms wegen inkopatibiläten zwischen PHP-Versionen umschreiben. Threading ist noch so ein Thema. Nicht das Perl darin perfekt wäre, aber wenigstens ist es nutzbar. Oder der Garbage-Collector von PHP. Da hat sich zwar schon etwas getan, aber wirklich gut ist er noch lange nicht. Wenn man mit größeren Datenmengen Objektorientiert arbeitet dann bekommt man immer wieder merklichen Memoryleaks. 2011-03-27T09:08:35 marky Es ist ein Sache der Betrachtungsweise. Es bleibt halt dir überlassen zu prüfen ob alles korrekt implementiert wurde. Da bieten sich Objekte, can und Analysen der Rückgabewerte an. Sicher andere Sprachen nehmen dir da einige Arbeit ab, aber dafür legen sie dir auch Grenzen auf. So kann es ganz praktisch sein, nicht genau zu bestimmen welchen Typ ein Rückgabewert hat. In anderen Sprachen muss man Casten oder Transferobjekte nutzen. Alles hat sein vor und Nachteile. Zudem finden sich auf Cpan Module, die typisierte Parameterübergaben Implementieren. |