Zum Inhalt springen

Klischeepunk

Mitglieder
  • Gesamte Inhalte

    30
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Klischeepunk

  1. Nach lesen und Googlen zieh ich zurück Damit seh ich auch excps als mittel der Wahl. Ich bin etwas verwirrt, wieso ich Fest davon ausgegangen bin dass die Exception gelöscht wird.Thx für die Erläuterungen.
  2. Wenn ich mich richtig erinner meckert bei Java netterweise auch der Compiler, wenn ich ne Exception nicht behandel, mein Compiler übersetzt folgendes allerdings Problemlos: main() { Klasse objekt; // bezeichner gültig, trotz exception objekt.test(); // keine Möglichkeit die Gültigkeit zu prüfen -> Absturz } Allein deswegen würd ich das Ding fertig erstellen lassen - oder mich an einer anderen Stelle darum kümmern. Wie gesagt, lieber einmal zu oft auf .IsValid() prüfen, einen zustand den ich im Konstruktor setzen könnte, anstatt auf gut Glück etwas zu tun. Im Falle Klasse *Objekt = NULL; Objekt = new Klasse(); sieht das anders aus, da kann ich brav NULL prüfen, aber da ich nicht immer auf'm Heap rumhampel und mich auch bei einem $Fremder nicht darauf verlassen will, dass er meine Fehlerbehandlungen korrekt übernimmt, würde ich lieber ein gültiges Objekt erstellen, das versucht die von $Fremder eingebauten Fehler vernünftig zu behandeln. In einer hypothetischen double CBruch::Divide(); Methode eben bspw. zu prüfen n == 0 und einen Ausnahmezustand zurückgeben, o.ä., allerdings einem anderen - soweit irgendwie möglich - nie die möglichkeit einräumen das Programm zu crashen. Oder eben wie gesagt: Factory her, wie ich meinen Konstruktor da behandel ist gänzlich mir überlassen und ich entscheide was $Fremder in die Hand bekommt.
  3. Achja anmerkung noch: Wenn du für andere Libs, Frameworks oder was auch immer gestaltest - dann bau ne saubere Schnittstelle, die sich um das Objekt kümmert, dann muss dein gegenüber absolut nichts vom Objekt wissen und du gibst nur ein true/false zurück ob das ding korrekt erstellt wurde oder nicht (aus deiner Interfacemethode, NICHT dem Objektkonstruktor!) Dein "Nutzer" kann dann schlichtweg if(createObjekt(objBuf)) { /*Fange etwas damit an */ } machen und ist happy, oder wegen mir auch Objekt *objBuf = NULL; objBuf = createObjekt(z, n); if(objBuf != NULL) {/***** you dolphin and whale*/} Objekt *createObjekt(int z, int n) { /*Ausnahme Abfangen*/ if(n == 0) { return NULL; } /* ... */ } Irgendetwas in die Richtung. Wichtig ist nicht ob ich ne Zeile mehr oder weniger tippen muss, sondern ob ich was vernünftiges aus deiner "BlackBox" zurück erhalte. Und vernünftig bedeutet etwas,das entweder Gültig ist und im Fehlerfall auch Fehler wirft, oder etwas dem ich ansehe dass irgendwas gründlich schief gegangen ist.
  4. @Schlitzauge nur interesse halber: Sicher das dein Code funktioniert? Imho landest du da wunderbar im Nirvana, ein Überlauf von long double über LDBL_MAX dürfte bei LDBL_MIN landen und damit völlig valide sein. Überläufe kannst du hier nicht abfangen, dies müsste früher geschehen (eingabe?) - Hatte aber keine lust das ding zu compilieren oder zu googlen. Und für den fall, dass eben genau diese Prüfungen nichts bringen, hätte es ein "(long double)var" ebenso getan. Die genauigkeit lässt sich btw. deutlich eleganter in pow(10, iDecimals) ausdrücken und zu guter letzt 0.0 == 0.00000000 == 0. Also die Prüfung geht nach hinten los und der rest ist trivial. Was die Typen angeht, wenn ich sie noch richtig im Kopf hab: (f)loat, (L)ong double für Gleitpunktzahlen (l)ong, (u)nsigned und (u)nsigned (l)ong also (ul) für Ganze Zahlen.
  5. An der Idee ein sinnloses Objekt freizugeben ist nichts krank, dies allerdings in einem Bereich zu tun, in dem das Objekt existiert und auf den Gerade zugegriffen wird, hat schon etwas krankes. Wenn ich in eine Funktion springe und ihr gleichzeitig den Speicher wegnehme, dann dürfte es mit recht hoher Wahrscheinlichkeit dazu führen, dass dir dein Stack mit Pauken und Trompeten um die Ohren fliegt. Nach ner Diskussion mit nem Kumpel außerdem noch: Eine Exception hat im Konstruktor nichts, aber auch gar nichts verloren. Der Konstruktor hat _immer_ korrekt zu terminieren. Logischerweise. Wir wollen unsere Variablen korrekt initialisieren und das Objekt Gültigkeit erlangen lassen. Sind nacher unerwarteterweise korrupte Daten drin, fangen wir das lieber in eine .IsValid()/.AssertValid() Methode ab, bauen uns Validitätsprüfungen an den Anfang der Methode oder aber, lassen das Objekt in ner Factory erstellen, wo wir bereits vor erstellen des Objektes die Validität der Übergebenen Parameter prüfen können. Hierzu: Factory method pattern Ansonsten würde ich flashpixx Aussage weiter verfolgen: Membermethode Exception werfen lassen, sollten wir unerwarteteerweise doch murks im Objekt stehen lassen und vllt im Konstruktor "Ausnahmenwerte" definieren. (bspw. Erwartete eingabe ist immer >= 0 wäre -1 eine Option eine Ausnahme zu kennzeichnen, seis nun "kein wert erhalten" oder "something has gone terribly wrong") . Zu guter letzt: Dein Objekt "gehört" immer jemand anders, nie sich selbst, von daher kann der Besitzer sich auch darum kümmern, dass er seinen Speicher wieder sauber hinterlässt. - Seis die Factory, die main() oder ein anderes Objekt oder auch nur Methode. Undefinierte Zustände sind jederzeit vermieden, also sollte es auch kein Problem darstellen das Objekt sauber zu zerstören. (erst danach beginnt undefiniertes verhalten )
  6. Du wirst ihm halt wohl oder übel irgendwo die defines mitgeben müssen. Wie du das nun realisierst (einbinden einer Header, Compiler Flag, von hand #define WIN32 angeben, whatev) ist dir überlassen. Letztendlich muss dein Compiler wissen was er tun soll, sonst macht er Mist. Wie das bei deinem Compiler am komfortabelsten funktioniert sagt dir: Das Handbuch.
  7. Sich selbst zerstören? Speicher einer Funktion zum Zeitpunkt der Lauftzeit (dieser Funtkion) wieder freizugeben? Halt ich jetzt nur sehr bedingt für nen Plan, dass man sich damit ins Knie schießt sollte eigentlich selbstverständlich sein. 4) Genau dieser Aufbau könnte relevant sein, vorallem da du von korrekt erzeugten/fehlerhaft erzeugten Objekten sprichst, Wenn im Konsturktor einfach nur ein "Zähler = z", "Nenner = n" ausgeführt werden ist das ding trotzdem völlig korrekt gebaut, die hypothetische Methode "CBruch::divide()" fliegt dir dann halt um die Ohren. Vom Korrekten Anlegen halber Objekte hab ich noch nicht gehört, entweder es klappt oder es klappt nicht. 0 oder 1. 5) Wann nicht? Ein Objekt kann noch so dynamisch sein, es ist trotzdem nur innerhalb seines Scopes gültig.
  8. 1. if(z==0) throw Exception(); 2. try{/*whatev*/}catch(Exception e){objekt.~CBruch();}finally{/*whatev*/} 3. Ein kurzer Blick in die C++ ref hätte dir das btw. auch beantwortet. 4. Benenn deine Variablen Anständig und CBruch(int, int) ist keine Klasse, sondern maximal der Konstruktor. Die Klasse ist CBruch, wenn überhaupt. 5. Ich behaupte einfach mal ohne deinen Code zu kennen, deine Instanz der Klasse CBruch wird innerhalb einer Funktion erzeugt. Nach ablauf der Funktion ist es nicht mehr gültig und wird automatisch zerstört.
  9. Klar, #ifdef XY #endif Deiner IDE teilst du mit welcher define für welches profil gesetzt wird. Voila. Bspw. #ifdef _MS_DOS_ oder #ifdef WIN32...
  10. TIOBE Software: The Coding Standards Company Gibt Anhaltspunkte für die fundierte Auswahl
  11. Das ist der Punkt weswegen ich auch nicht versteh wieso immer noch über Sprachen diskutiert wird. Die Sprache ist von deinem Betrieb, Einsatzbereich, persönlichen Vorlieben der Zuständigen, etc. abhängig, das vorgehen ist universal. Also: Irgendeine Sprache schnappen und Programmieren lernen.
  12. Jo SQL ist nicht schlecht wenn du mit Datenbanken zu tun hast... ^^ Es gibt für wohl jede Sprache den richtigen Anwendungsbereich. Von daher, wenn du nicht heut schon weisst woran genau du arbeiten wirst hör auf dir über Quatsch Gedanken zu machen. Wenn du Programmieren lernst, kannst du diese Prinzipien in so ziemlich jeder Sprache umsetzen. In der einen mit mehr, in der anderen mit Weniger aufwand, aber funktionieren tu'n die alle gleich. Syntax ist schnell gelernt. Solang du dir allerdings überlegst ob du nun SQL oder lieber Java lernst hast du wirklich andere Sorgen. Das erlernen von neuem als "Zeitverschwendung" zu sehen halte ich übrigens für sehr fraglich.
  13. Und das ist sie zurecht. Noch einmal in aller gebotenen Nettigkeit: a) Die Situation mag noch so verfahren sein, die Schuld auf der ganzen Welt außer bei sich oder um sich zu suchen ist erbärmlich und bedarf _keiner_ Diskussion. Ich bin selbst politisch aktiv und habe genug das ich anprangern könnte, aber das hat weder hier in diesem Thread noch in irgendeinem Gespräch das mit meinem Arbeitsplatz zu tun hat etwas verloren. Wo es etwas verloren hat ist bei der Begründung der Ablehnung der Arbeitsplatzes, sollte er diese begründen müssen, oder aber in politischen Diskussionen. Wenn meine Qualifikationen daraus bestehen einen PC zu besitzen und eine Ausbildung gemacht zu haben (von der übrigens keine Schwerpunkte oder betroffenen Felder genannt wurden) dann sollte ich damit aufhören irgendwelchen Jüdischen Geldhaien, Zionisten oder Israelis oder Marsmännchen zu flamen, sondern ein Fachbuch in die Hand nehmen, aus dem PC etwas besonderes machen, mich - da er FiSi ist - mit Serversystemen, Netzwerken/Netzwerkplanung/Netzwerktechnik zu befassen - und das verdammt nochmal fundierter als die Beschäftigung mit ALLEM was bisher genannt wurde. Heiße Luft mag tatsächlich zu nem Arbeitsplatz verhelfen, aber verdient hat man ihn noch lange nicht. Letztendlich darf irgend jemand anders gemachte Fehler ausbügeln weil der Herr sich zu fein ist, sich mit seiner Arbeit auseinanderzusetzen. c) In unmittelbarem Zusammenhang: Sind wir ehrlich: Nein. Du bist kein Maurer, der jeden Tag die gleiche Mauer hochzieht (no offense @ Maurer). Die Informatik ist ne Wissenschaft und da gehört mehr dazu als 3 Knöpfe in der immer gleichen Reihenfolge zu drücken. Problemanalyse ist ein Feld für das man sich eben auch mit Dingen beschäftigen muss auf die man stößt, ohne dass der Betrieb dir etwas anlernt was du wiederverwenden kannst. Wie willst du Analysieren in was für einem Netz du dich aufhälst und wo seine Schwächen liegen, wenn du nur weisst wie der Betrieb sein Netz gerne hätte? Wie will man neue Netze planen konkret auf die Anforderungen eines Kunden bezogen? Woher will man ohne Betriebsunabhängiges theoretisches Wissen begreifen was in Netzen eigentlich vorgeht? Wie will er entscheiden ob für den Kunden eine Domäne eine angebrachte Lösung wäre? Ob die Vorteile überwiegen? Ob man zusätzliche Software einsetzen sollte? Ob freie oder kommerzielle Software die bessere Lösung ist? Ob man sich mit dem Kunden über seine Wünsche nochmal unterhalten sollte oder ob sie ausreichend formuliert sind, ob das Lastenheft vollständig ist, ob Entscheidungsmöglichkeiten bestehen die er oder der Kunde treffen sollte, ... d) Muscheln sammeln? Viele Dokumente sind nach wie vor Englisch, schaut einfach als Beispiel in die MSDN und lest die maschinelle Übersetzung von teils wichtigen Dokumenten. Daraus versucht man entweder schlau zu werden, oder man schafft sich ein fundiertes Englisch an und liest die Originale die sehr, sehr gute Beschreibungen, Lösungen und Dokumentationen enthalten. Mit dem englisch da oben, würde ich mir sogar lieber n 3er oder 4er Kandidaten holen, bei dem ich davon ausgehen kann, dass er mit seiner Aufgabe nicht überfordert ist. e) Nochmal der Ausgangspunkt meines ersten Kommentares: Das ist hohles und sinnfreies Geblubber. Daran mache ich seine Kompetenz fest: Er hat keine Ahnung was er tut. _Gar keine_. Man Mag zu Vista und 7 stehen wie man will, die Fortschritte zu den vorherigen NTs müssen klar beachtet und bewertet werden. Dazu gehört nicht zuletzt bspw. eine API für Virenscanner, die striktere Trennung von Benutzer(konten) und Workspaces, die Ausführungsverhinderung, viele erweiterte Sicherheits- oder Anwendungsoptionen. Das leichtfertig als Schnickschnack abzutuen, als _(Fach)Informatiker_, im einzigen Gebiet in dem er Ahnung haben KÖNNTE (Wie gesagt, Unix? Linux? Andere Systeme? Andere Angaben? Völlige Fehlanzeige.) Und nach einem solchen Fehlschuß ist es kaum verwunderlich, dass ich seine Fähigkeiten im Bereich der Netzwerke ähnlich einschätze. 2 Rechner an nen Switch stecken, kann ich dem ungeschulten auch ohne Informatiker beibringen. P.S.: Ich war btw. selbst in einer ähnlichen Situation, ich stell mich keineswegs hin und sag das ist nicht schlimm. Die Situation ist zum ****en, aber ****en hilft nicht.
  14. Ist es nicht. In diesem Sinne nochmal disqualifiziert ernst genommen zu werden. @ Der Kleine: Darf ich mal in den Popcorn Eimer fassen?
  15. @TE ist zwar nichts technisches, aber gewöhn dir bitte gar nicht erst an deine Variablennamen groß zu schreiben. EURO oder DOLLAR hab ich bei schnellem überfliegen für defines gehalten und mich gewundert, was zum Geier du zu tun versuchst. Die while Schleife würde ich übrigens durch ne for ersetzen: Beide kopfgesteuert, abhängigkeit von einer einzelnen Zählvariable, identischer "step" - for bietet sich hier einfach an. So long.
  16. Sein Frust ist mir egal, und hat nichts hier verloren, darum gehe ich auch nicht auf ihn ein. Aber im einzigen Bereich in dem er angibt (mit viel Phantasie) Erfahrung gesammelt zu haben hat er keine ("Schnick Schnack" - diese qulitativ hochwertige Analyse find ich immer noch super). Unsachlich? Weit gefehlt, es dreht sich um nichts anderes als die Sache.
  17. Allein diese völlig blödsinnige Einschätzung wäre für mich ein Grund dir bereits im Vorstellungsgespräch lebe wohl zu sagen. Diese Behauptung mal so in den Raum zu stellen, zeugt davon, dass mein Gegenüber keine Ahnung von dem Job hat, den es anstrebt. Mal ganz ehrlich: XP Vista vorziehen, kann ich verstehen - aus bequemlichkeit. Allerdings ist der Schritt von XP zu Vista in vielen bereichen für MS einfach bemerkenswert - du hast nirgendwo Linux/Unix Erfahrung, oder als System mitangegeben, daher gehe ich davon aus, dass deine "Arbeitsschwerpunkte" auf MS Systemen liegen - und wenn da die beschreibung dieses wichtigen Major Release des Kernels ist "Schnick Schnack" hast du in meinem Augen in der Informatik nichts - aber auch absolut gar nichts - verloren. Serversysteme sind überhaupt nicht angegeben, also fällt das auch flach (Ist Windows 2008 eigentlich auch lediglich schnick schnack? Warum eigentlich nicht 3.1x oder NT4 nutzen? Ist Ressourcenschonender... Kopf -> Wand) Wenn du deine Netze mit einem ähnlichen Fachwissen planst kann ich nur hoffen, dass du nie einen Job findest. Dein Englisch verbessern.
  18. siehe Microsoft code-beispiele, Google Parameter: inrul:msdn Viele Infos. Gute Infos. Funktionierende Infos. Dass dein String alleine erstmal gar nichts macht ist dir ja hoffentlich klar?
  19. ODBC - Google-Suche OLEDB - Google-Suche ^^ /e: Kleiner tip: Google Parameter "inurl:msdn" verwenden
  20. Naja hier haben DLLs doch ganz klare vorteile, du belässt das gesamte Paket wie es ist und tauscht für jeden Kunden die DLL "Lizenzeug.dll" aus, die Verfahren sind die gleichen, etc.pp - oder aber du baust dir ne "config.cfg" oder sowas in der du u.a. den Key hinterlegst - zwingt dich ja niemand ihn hart zu codieren und lieferst nur die Funktionalität in ner DLL, das wäre relativ schnell zu bewerkstelligen und ohne großen mehraufwand je kunde (key erzeugen, lizenzfile erzeugen, als "Update" zukommen lassen, voila)
  21. Was meinst du mit Schlüssel mitgeben? Signaturen werden mit dem Private Key erstellt, beinhalten diesen aber nicht. Mit dem Public Key kann die Korrektheit überprüft werden. Verschlüsselung an sich wiederrum findet mit einem Publickey statt die über einen Private Key wieder umgekehrt werden kann. Hier wäre ein individueller PrivK für jeden Kunden zu wählen, der die Lizenzdatei entschlüsseln kann. Und selbst wenn er sie entschlüsselt und mit einem fremden PubK wieder verschlüsselt kann er sie nicht signieren (dass sie von dir kommt), also Prüfung auf Signatur und der Käs' ist gegessen.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...