Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7885[/thread]

"Hello World" objektorientiert

Leser: 1


<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten
renee
 2006-04-12 19:38
#64806 #64806
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie kann man "Hello World" möglichst Objektorientiert schreiben??

Ich habe mal Wiki:1 Möglichkeit ins Wiki gestellt...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
master
 2006-04-12 19:50
#64807 #64807
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
@renee

Geht's ev. auch einfacher? :-)
"Hello World" möchten doch vorallem Anfänger.
(Leider bin ich nicht im Wiki angemeldet..)

Jedoch rate ich dir es zu splitten:

1. "Hello World"    (Ganz simpel, keine A4 Seite)
2. "Hello World - Eweitert"   (wie du es hast)


Der Anfänger klickt auf "hello world" der Profi ev. auch und merkt dann das es ihm nicht reicht und geht zum 2. :-)

----
Ich muss bei Wiki allgemein die fehlende Trennung bemängeln...

So werden Anfänger abgeschreckt..
Und mir z.b. wäre es auch zu viel wenn ich doch nur schnell ein "hello World" machen will..\n\n

<!--EDIT|master|1144857150-->
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
master
 2006-04-12 20:03
#64808 #64808
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
Als Beispiel.... :-)

Skript:
Code: (dl )
1
2
3
4
5
use HelloWorld;

my $greeting = HelloWorld->new();
$greeting->set('text', 'Hello World');
$greeting->say($greeting->get('text'));


HelloWorld.pm
Code: (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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package HelloWorld;

use strict;
use warnings;
use lib qw(.);
use Greetings ($0);
use String;



#Erzeugen
sub new {
   my ($class,@params) = @_;
   my $self = {};
  bless($self,$class);
 return($self);
}

sub set
{
my ($self,$var, $value ) = @_;
$self->{$var} = $value;
}

sub get
{
my ($self,$var) = @_;
return $self->{$var};
}



sub say
{
my ($self,$value) = @_;
print $value;
}

#alternativ
sub say2
{
my ($self,$value) = @_;
print $self->{text};
}
\n\n

<!--EDIT|master|1144857956-->
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
sri
 2006-04-12 21:09
#64809 #64809
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
Das hier ist ein Perl-isheres Beispiel. (Puristisches Perl5 OO)
Code: (dl )
1
2
3
4
5
6
7
my $hello = HelloWorld->new;
$hello->{text} = "Hello World!\n";
$hello->greet;

package HelloWorld;
sub new { bless {} }
sub greet { print shift->{text} }
\n\n

<!--EDIT|sri|1144894205-->
renee
 2006-04-12 23:47
#64810 #64810
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@master: jein. Unser Prof will ja ein Programm sehen, das durch und durch OO ist. Ein einfaches "Hello World" für Anfänger ist normalerweise nicht OO (siehe auch R. Westfall '"Hello, World" considered harmful').

Gerade sri's Vorschlag entspricht so ziemlich meinem ersten Vorschlag, den ich in der Vorlesung abgegeben habe...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Dubu
 2006-04-13 00:02
#64811 #64811
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=master,12.04.2006, 17:50]Ich muss bei Wiki allgemein die fehlende Trennung bemängeln...[/quote]
Ich weiß leider nicht, was du meinst. Kannst du das etwas erläutern?
murphy
 2006-04-13 05:53
#64812 #64812
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Also ich finde dieses "Hello World" Programm im Wiki nur noch aufgeblasen und sinnlos. Objektorientierung ist ja schön und gut, aber wenn man es übertreibt, dann kommt auch nichts sinnvolles dabei heraus...

Die maximale sinnvolle objektorientierte Variante von "Hello World" wäre für mich etwas in der Art
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl

use strict;
use warnings;

package String;

sub new {
my ($class, $data) = @_;
bless \$data, $class
}

sub println {
print "${shift()}\n";
}

package main;

my $msg = new String("Hello World!");
$msg->println();
When C++ is your hammer, every problem looks like your thumb.
renee
 2006-04-13 11:03
#64813 #64813
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@murphy: Ich finde es auch übertrieben, aber ich habe im Wiki ja auch geschrieben, warum ich es so gemacht habe ;) Meine Ursprungsversion war auch OO aber eben minimal OO.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
master
 2006-04-13 11:21
#64814 #64814
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
@Dubu
Nun ganz einfach:
Es braucht eine Trennung zwischen ganz einfachen Beispielen

Ganz korrekt wären eigentlich 3 Helloworlds :-)

HW - Simpel
HW - Erweitert
HW - Für Experten

Wobei die wichtigsten "Simpel" und "Erweitert" sind.
Bei Simpel sollte das HW möglichst kurz, einfach, übersichtlich, besonders für Anfänger geeignet aufgebaut sein.

So das der Anfänger es sofort versteht mit wenigen Blicken.
Und auch der Profi es als eine Art "How to do" mit nem kurzen Blick versteht.

Interessiert man sich dann für vertiefteres OO-HW.
Brauchts das "Erweiterte HW"

Was auf dem Niveau eines durchschnittlichen Perl-Programmierers sein sollte.

Bei der 3. Stufe kann man dann alles einbringen, das ganze know how. da es für experten gedacht ist...



Im wiki stehen normalerweise einfach nur Anleitungen.
Sie sind jedoch nicht nach niveau getrennt.
Das Niveau muss nicht zwingend eine "anfänger / profi" - Trennung sein.

Viel mehr gehts darum das meistens vereinfachte Beispiele
fehlen.

Wiki sollte so aufgebaut sein, das man zuerst immer nur eine Art vereinfachtes Bespiel hat. (mit dem nötigsten text)
dann ein Link zum vollen Artikel.

Man könnte es auch auf einer einzelnen Seite trennen:
z. B. könnte man eine Box "Quick-Quide" oder "Kurzversion" machen.

Seitenaufbau für einzelne Seite:

oben:
"Kurzversion"
(so einfach es geht mit wenig text, aber das nötigste)

unten:
"Erweitert"
(alles was oben fehlt...)\n\n

<!--EDIT|master|1144913064-->
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
renee
 2006-04-13 11:24
#64815 #64815
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nöö, braucht man nicht. Wo Dir ein Kurzbeispiel fehlt, kannst Du gerne ein Kurzbeispiel einfügen. Das ist das Prinzip des Wikis.

Du bist gern dazu eingeladen, bei Skripten und Beispielen eigene einfache Beispiele einzutragen.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten



View all threads created 2006-04-12 19:38.