PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : FIDER - FileUploader


pcworld
03.03.2009, 16:44
Hallo!

Ich möchte euch mein Programm vorstellen, an dem ich gerade programmiere: FIDER (kommt von FileUploader).

FIDER ist ein OpenSource-Programm (Java), das zum Upload von Bildern zu dem Sharehoster (http://de.wikipedia.org/wiki/Sharehoster) Abload (http://www.abload.de/) dient.
Der Vorteil ist die einfachere Bedienung und die Werbefreiheit gegenüber der webbasierten Oberfläche.
Es ist geplant, auch andere Dateiformate zu unterstützen (also nicht nur Bilder).

FIDER ist zwar erst in der Alpha-Phase und erst im Aufbau.
Aber genau deswegen kann ich eure Tipps und Ratschläge gut gebrauchen - und wer sich an meinem Projekt beteiligen will, kann sich gerne bei mir melden (entweder hier im Thread, per PN (http://forum.byte-welt.net/private.php?do=newpm&u=136) oder per Mail (mailto:0188801@gmail.com))!

Die Homepage findet ihr hier: http://sites.google.com/site/javafider/

Schnappschuss:
http://www.abload.de/img/1_snapshotpi7lxdcc1mbb.png (http://img3.abload.de/img/1_snapshotpi7l.png)

Gruß,
pcworld

PS: Ich freue mich über jedes Feedback!

The_S
03.03.2009, 19:04
Ohne jetzt dein Programm oder Abload zu kennen - sicher, dass du das von Seiten Abloads darfst? Oftmals wird sowas verboten, eben wegen der Werbeeinnahmen, die dem Anbieter entgehen.

pcworld
14.03.2009, 16:07
Hab (nachträglich :-)) um Erlaubnis gefragt - und eine bekommen.

Übrigens kommt in ca. 3-4 Wochen eine neue Version raus, wo der Dienst file-upload.net (http://www.file-upload.net/) implementiert sein wird.

Gruß,
pcworld

Revenant
16.03.2009, 19:35
Finds durchaus cool. Hast schön gemacht bis jetzt ;)

pcworld
31.07.2009, 16:57
So, jetzt ist die neue Version draußen, Weiteres hier: http://sites.google.com/site/javafider/Home/blog/alpha1-03-veroeffentlicht

Gruß,
pcworld

pcworld
04.09.2009, 16:13
Fehlerbehebung - Abload geht jetzt wieder mit FIDER: http://sites.google.com/site/javafider/Home/blog/alpha1-031-veroeffentlicht-abload-geht-wieder

Gruß,
pcworld

deathbyaclown
09.09.2009, 12:29
mein erster eindruck (hab den src runtergeladen)

- warum muss ich mir noch die libraries zusammensuchen ? warum sind sie nicht schon dabei ?

- es gibt die Globale Variable Controller - die auch noch zig weitere Objekte referenziert... somit hast du nicht nur die eine Instance global auch jede andere - Globale States sind nicht gut ....

- throws IllegalArgumentException ist nicht noetig... es ist eine RuntimeException

- Programmiere immer gegen interfaces - zb statt public ArrayList<Upload> getUploadArray() -> public List<Upload> getUploadArray() oder gar public Collection<Upload> getUploadArray()

- Tell dont ask
public AbloadUpload() {
httpClient = new HttpClient();
SimpleHttpConnectionManager conManager = (SimpleHttpConnectionManager) httpClient
.getHttpConnectionManager();
conManager.getParams().setConnectionTimeout(8000);

table = new UploadTable();
tableScrollPane = new JScrollPane(table);

linkBox = new ImageLinkBox(this);
}

deine API luegt in dieser Hinsicht - dem Verwender ist nicht klar was AbloadUpload fuer Abhaengigkeiten hat... Abhaengigkeiten immer explizit angeben und nicht selbst herbeizaubern.

- nicht ein Test zu finden

Vor allem fuer Tests ist dieser Code nicht zugaenglich und das ist nicht gut. Weiterhin, was macht jemand der ueber 8000 port nix tun kann ? etc


ist nicht boes gemeint, aber sind generelle Sachen, die man beachten sollte - als Tipp fuer zukuenftige Sachen

Revenant
14.09.2009, 11:37
mein erster eindruck (hab den src runtergeladen)
- Programmiere immer gegen interfaces - zb statt public ArrayList<Upload> getUploadArray() -> public List<Upload> getUploadArray() oder gar public Collection<Upload> getUploadArray()


Ich hab den Sourcecode nicht angeschaut, aber was ist der Vorteil wenn man gegen Interfaces programmiert? Wenn intern eine ArrayList verwendet wird, sehe ich keinen Grund nur eine Liste zurückzugeben - im Gegeinteil, außen weiß man ja nicht mehr welche Klasse genau vorliegt und welche Methoden genutzt werden können. Man verliert sozusagen Details oder?

deathbyaclown
15.09.2009, 06:59
Ich hab den Sourcecode nicht angeschaut, aber was ist der Vorteil wenn man gegen Interfaces programmiert? Wenn intern eine ArrayList verwendet wird, sehe ich keinen Grund nur eine Liste zurückzugeben - im Gegeinteil, außen weiß man ja nicht mehr welche Klasse genau vorliegt und welche Methoden genutzt werden können. Man verliert sozusagen Details oder?

nein, implementierungsdetails sollten NIE nauch aussen gegeben werden. Statt eine ArrayList weiterzugeben gibt List zb raus. Da ArrayList das List interface implementiert kann der Verwender alle Methoden nutzen, ohne zu wissen dass es eine arrayList oder eine LinkedList oder deine eigene super performante List ist.
Man macht sie somit nicht von einer konkreten Implementierung abhaengig.
Warum soll der aussenstehende wissen welche Implementierung man genommen hat... es ist eine List, ergo kann ich alle in List angebotenen Methoden auch nutzen.

Weiterhin stell dir vor du hast ueber ArrayList geschrieben und Leute benutzen nun deine API und dementsprechend auch ArrayList. Jetzt hat sich aber rausgestellt dass ArrayList nicht gut ist sonder die SuperDuperList ist wesentlich besser.... viel Spass beim Aendern ;-)

Durch Interfaceimplementierung hast du und deine API keinerlei Probleme Implementierungen auszutauschen, da die Kommunikation nur ueber die Schnittstellen (Interfaces) geht .

Revenant
15.09.2009, 14:15
Okay, der letzte Punkt ist wirklich einleuchtend :)