Beiträge von a9bejo

    hier mal alle drei wege im vergleich:

    Also wenn du eine zahl in einen string umgewandelt hast, kannst du dir wohl sicher sein, das da auch nur zahlen drinnen steht :)

    wenn du einen string hast und wissen willst, ob da nur ziffern drinnen stehen, kannst du das mit java.lang.Integer.valueOf(java.lang.String) erreichen prüfen (es wird eine exception geworfen wenn das konvertieren schiefgeht, und die kannst du abfangen).

    Ich würde hier aber zwei fliegen mit einer klappe schlagen und eine regular expression in der form /^[0-9]{6}$/ verwenden. Die stellt sicher, dass es zahlen sind und zwar genau sechs.

    Zitat von Wings-of-Glory

    ...was würdet ihr sagen, ab wann wäre die nutzung einer template engine à la struts, freemarker, etc. sinnvoll?...

    in dem moment, in dem du

    * mehr als ein paar tage daran arbeiten musst
    * mehr als (frei geschätzt) 1000 zeilen code hast.
    * einzelne komponenten deiner applikation wo anders wiederverwenden möchtest.
    * einzelne komponenten deiner applikation austauschen möchtest (z.b wenn ein web interface und eine desktopgui haben möchtest)

    In der regel gilt: mehr aufwand zu beginn, weniger aufwand im weiteren verlauf des projekts.

    Eine Java Applikation sollte eigentlich immer model2 sein (so nennt man die MVC architektur in java web applikationen,welche struts usw. implementieren), weil erst hier javas stärken zur geltung kommen können. Wenn du auf model2 verzichten kannst, wirst du mit einer scriptsprache + cgi vermutlich besser bedient sein.

    Zitat von Wings-of-Glory

    was ist deren vorteil gegenüber reinem jsp?


    [wikipedia]Model-view-controller[/wikipedia]


    Und um jetzt noch den lobbyisten raushängen zu lassen:

    Mit Ruby on Rails kannst du eine komplett modulare 3-tier applikationen genauso schnell erstellen wie ein dahingeschmiertes php script.

    Zitat von gelbasack

    String.valueOf(-12345).length()==6 - müsste man also den ersten Char abfragen... einigen wir uns auf Geschmackssache? :winking_face:

    dann nehm ich halt den absolutwert:

    Code
    -123456.abs.to_s.length == 6

    :winking_face:

    mein argument ist ja auch gar nicht so der aufwand der abfrage, sondern die öffensichtlichste lösung zu finden. Ich denke, die stringkonvertierung ist der direktere weg zum ziel, zumindest wenn nach der anzahl der stellen gefragt wird.

    Wenn wir statt einer id z.b einen geldbetrag hätten, der zwischen 99999 und 1000000 euro liegen muss, dann würd ich das auch so wie du abprüfen.

    Zitat von gelbasack

    Wenn die Zahl positiv sein muss, würde ich eher eine Abfrage machen mit

    Code
    if(99999<zahl<1000000)


    Wenn auch negative Zahlen erlaubt sind, entsprechend andere Abfrage. Aber einen String machen und dessen Länge bestimmen finde ich persönlich etwas seltsam.

    interressante überlegung. Ich würde aber die string methode vorziehen, aus folgendem grund:

    wenn du mir eine zahl gibst und mich fragst, ob die genau sechs stellen hat, dann würde ich nicht überlegen, zwischen welchen zwei zahlen sie stehen muss, damit sie 6 stellen hat.

    Ich würde stattdessen einfach die ziffern abzählen, sprich die zahl als eine kette von zeichen betrachten. Also genau dasselbe, als wenn du mir statt einer zahl eine reihe von buchstaben gibst und mich da nach den stellen fragst.

    ein string ist ja (logisch betrachtet) nichts weiter als eine liste von zeichen. Also ist die konvertierung in String eigentlich genau das, was man selbst instinktiv machen würde.

    Code
    123456.to_s.length == 6
    Zitat von beefy

    Es gibt ein Flash-Demo das die Bedienung dieser Software erläutert. So revolutionär schaut die Sache da nicht mehr aus, mehr wie eine Weiterführung von Ideen wie man sie aus CASE Tools wie Rational Rose kennt.

    Ganz deine meinung! Das ist graphisches programmieren. Gibt es eh schon ewig und hat sich nie durchgesetzt. Eigenständig programmieren tut diese maschine nun wirklich nicht.

    Zitat von flash demo


    ...Using the help bulp, you use the code library to define the condition for the rule...

    Eine maschine, die selbst progammiert, müsste schon von allein herausfinden, welche bedingung da hingehört, welche daten manipuliert werden sollen, wie das datenmodell ausszusehen hat etc.

    Wenn ich das datenmodell und die algorithmen selber entwerfen muss, was hat die software denn dann eigentlich so tolles für mich getan?


    die zweite lösung ist besser (übersichtlicher und weniger fehleranfällig). funktioniert aber erst ab java > 1.5.

    Zitat von Ubik

    Brauchst du das Canvas überhaupt? Du könntest doch einfach auf das JPanel zeichnen, bzw. könntest du dem (Haupt-)JPanel ein weiters JPanel einfügen, auf das du dann zeichnest.

    Chris: Du solltest Ubik's rat folgen und statt eines Canvas einen weiteren JPanel verwenden. Canvas ist ein sehr alte Klasse aus dem AWT, die nicht sehr gut mit Swing-Komponenten (wie JPanel) zusammenspielt.

    Noch ein Tip: Wenn du in einem JPanel die paint(Graphics g) methode überschreibst, solltest du dort als erstes die paint-methode des parents aufrufen, also

    Code
    ...
    public void paint(Graphics gfx){
      super.paint(gfx);
      ...
    }
    ...

    Ich weiss jetzt nicht mehr so genau, welche probleme auftauchen können, wenn du das nicht tust. Ich weiss aber das es solche Probleme gibt :)

    Zitat von bosie

    wenns windows sein darf.
    ist relativ einfach zu erlernen und auch mächtig. dazu noch eine angenehme syntax, ich mag die syntax von python net:

    Code
    def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
        while True:
            ok = raw_input(prompt)

    kommt irgendwie net so gut, is aber nur meine meinung, sicher sind auch python/ruby nett

    Ich weiss nicht, was dir an dem code oben nicht gefällt, aber es ist wohl wirklich reine Geschmacksache.

    Ich finde es ist gerade die leserliche syntax, die python gegenüber anderen sprachen einen vorteil verschafft.

    Schau dir mal dieses programm an, das liesst sich quasi wie pseudocode:

    Mit Java und C# eine kleine applikation ( vielleicht <5000 LOC) zu schreiben bedeutet doch, mit kanonen auf spatzen zu schiessen. Eine programmiersprache soll mir beim programmieren so wenig wie möglich im wege stehen und weder java noch c# zeichnen sich hier meiner meinung nach aus, weil sie eben vor allem für sehr grosse, kritische Unternehmensanwendungen designt wurden, wo ganz andere bedingungen herrschen.

    ruby (und auch python) haben wesentlich kürzere entwicklungszeiten und skalieren trozdem prima, wenn die codebasis anwächst. Java ist vielleicht geeignet für ebay oder amazon, aber wohl nicht für musikstudent.

    Ausserdem unterstützen C#,Java und C++ zwar bis zu einem gewissen grad objektorientierte methoden, sind aber zum lernen von OOP nicht sehr gut geeignet (wegen der vielen ausnahmen).

    Zitat von Irrlicht

    Kommt wohl auf die Branche an. Aber Programme, bei denen z.B. Performance wichtig ist, werden wohl von keinem 'Profi' in Java geschrieben werden.

    mag sein, das trifft aber nur auf einen sehr kleinen teil des softwarekuchens zu.

    Es geht hier ja nicht wirklich darum, dass in einem projekt 'performance wichtig ist', sondern das 'performance so entscheident ist, das man die Nachteile einer (schnelleren) alternative in kauf nehmen muss'.

    (wobei mir ruby derzeit etwas mehr spass macht). Beide Sprachen sind nicht nur sehr mächtig, sondern auch sehr elegant und einfach zu lernen. Du erzielst einerseits sehr schnell fortschritte, andererseits bist aber in deinen möglichkeiten nicht beschränkt, falls du mal was komplexeres machen möchtest.

    Für Ruby gibt es zwei wichtige bücher, die du online lesen kannst:

    Why's (Poignant) Guide to Ruby richtet sich an programmieranfänger,und die ruby-bibel, Programming Ruby, fängt auch ganz vorne an.

    Auch für python findet sich viel gute documentation, die sich an anfänger richtet:

    http://www.python.org/moin/BeginnersGuide/NonProgrammers

    Unabhängig von der Sprache, hier noch drei tipps zum lernen:

    • Theorie lernen (buch) - ohne gehts nicht!
    • Selber viele programme schreiben - ohne gehts nicht!
    • Programme von anderen lesen und verstehen - ohne gehts nicht!


    besonders der letzte punkt ist sehr wichtig, weil er von vielen vernachlässigt wird und sich das früher oder später rächt.

    Zitat von Sicka

    Hast du vielleicht Vorschläge für eine gute Doku?

    Das von Lord Binary empfohlene sun tutorial findest du hier. Wahrscheinlich die beste quelle, weil ziemlich genau und detailliert. Das tutorial berhandelt aber viel mehr als nur die servlet api und ist zu beginn etwas mühsam, gerade weil es so ins detail geht.

    Es gibt auch ein kapitel über Servlets und JSPs in java ist auch eine insel, vielleicht ist das zum einstieg besser geeignet.

    javax.servlet ist teil von [wikipedia]J2EE[/wikipedia] (java enterprise endition).

    Tomcat ist die Referenzimplentierung eines J2EE Webcontainers und enhält auch die servlet-api. Für den anfang ist das alles, was du für die webentwicklung mit java brauchst. Abgesehen von viel Zeit und einer guten Doku natürlich :)