Zum Inhalt springen

arlegermi

Mitglieder
  • Gesamte Inhalte

    1.052
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    13

Alle Inhalte von arlegermi

  1. Sicher gibt's auch Bremser, was mich aber ebenfalls aufregt, sind die Leute, denen anscheinend alles total egal ist. Die machen seit Jahren ihren Job und die immer gleichen Handgriffe und haben keinerlei Ambitionen, etwas daran zu ändern. Als ich hier anfing, sah unser Patchprozess so aus, dass alle 14 Tage ein (und immer nur der eine) Entwickler den aktuellen Stand aus'm CVS ausgecheckt hat, in Visual Studio auf "neu erstellen" geklickt hat und dann die Dateien, die in den Patch gehören, gezippt und an drei Stellen im Intranet gelegt hat. Wenn der Kollege mal Urlaub hatte, fiel der Patch dann eben aus. Weil niemand anderes wusste, welche Dateien in den Patch gehören, welche Inkantationen notwendig waren, um die richtigen Releasenotes zu erzeugen, etc. etc. Das schlimmste? Das haben alle - vom Entwickler über Produkt-/Projektmanager bis hin zur Geschäftsleitung - so hingenommen. Als ich dann irgendwann aus Frust mal mit CI angefangen habe (erstmal nur für mich), hieß es "och, das ist ja schick". Überhaupt keine Ablehnung, sondern eher Überraschung, dass es sowas gibt und funktioniert. Mittlerweile laufen hier vier Boxen als Build-Server mit Dutzenden Builds pro Tag und einem annähernd automatisierten Patch-Ablauf. Aber der einzige, der sich drum kümmert und neues anstößt bin immer noch ich. Auf der einen Seite macht's mir ja Spaß, die Prozesse mal in's 21. Jahrhundert zu holen, aber auf die Dauer strengt's halt einfach an, immer derjenige sein zu müssen, der den Ball am Rollen hält. Das ist auch der Grund, wieso ich auf absehbare Zeit eine neue Stelle suchen werde, auch wenn's mir hier was die Entlohnung und die Kollegen angeht, wirklich nicht schlecht geht.
  2. arlegermi

    C# , FileSystemWatcher

    Nur als kleinen Hinweis noch, weil's mich beim ersten Mal etwas Zeit gekostet hat, um es rauszufinden: Das zitierte hier ist die Stelle, ab der der Watcher aktiv ist. Durch das reine Erzeugen etc. passiert erstmal gar nichts. Erst, wenn man das hier setzt, bekommt man die Events auch in der Anwendung.
  3. Ich als Prüfer (der ich nicht bin) würde nur erwarten, dass du Abweichungen von dem, was im Antrag steht, in der Doku erwähnst. Wenn du Dinge machst, die im Antrag nicht explizit genannt wurden, sind das für mich keine nennenswerten Abweichungen, die aufgeführt werden müssten (besonders bei einer so schwammigen Anforderung wie "soll sich gut einpassen"). Kurz: Ich stimme deiner Einschätzung zu.
  4. Das frage am besten deine IHK / deinen PA. Je nach Kontext sind m.M.n. beide Interpretationen plausibel.
  5. Genau, da geht's quasi hin. Auch wenn man das "in echt" natürlich anders lösen würde.
  6. Vielleicht führt das jetzt zu weit (und wirklich sinnvoll ist es außer als Übung auch nicht), aber: Anstatt die BinaryCalculations ineinander zu schachteln kannst du dir auch überlegen, eine Klasse zu schreiben, die beliebig viele Operanden akzeptiert und die dann alle aufaddiert. Das Gerüst könnte so aussehen: public class SeriesCalculation : ICalculation { private BinaryCalculation _binaryCalculation; private double[] _numbers; public SeriesCalculation(BinaryCalculation binaryCalculation, params double[] numbers) { _binaryCalculation = binaryCalculation; _numbers = numbers; } public double Calculate() { // immer zwei Zahlen aus _numbers nehmen, die Berechnung ausführen und das Ergebnis in die // nächste Berechnung übergeben. } } //aufrufbar wäre das dann folgendermaßen: var calc = new SeriesCalculation(new Addition(), 1,2,3,4,5,6); // hierfür bräuchtest du noch einen neuen Konstruktor in Addition Wie gesagt: Das mag gerade ein wenig zu kompliziert sein, ist vielleicht aber eine ganz schöne Übung, um das Prinzip zu verstehen. Einfacher ist's vielleicht erstmal immer nur aufzuaddieren, ohne die Berechnung auch von außen mit reinzunehmen. Wenn "params" neu für dich ist, kannst du hier was dazu lesen.
  7. Für mich ist das nur wieder ein Zeichen dafür, dass hier im Forum teils sehr penibel auf die Formalitäten geachtet wird. Viele IHKs sind (nach meiner persönlichen Erfahrung und dem was man hier im Forum lesen kann) deutlich laxer als es hier zuweilen dargestellt wird. Es gibt da auch andere Fälle (IHK Köln würde mir da spontan einfallen), aber ich habe das Gefühl, dass die Anforderungen an Anträge hier im Forum oft deutlich höher sind als die der IHKs selber. Nur damit's nicht falsch verstanden wird: Das ist ja nicht verkehrt. Wenn man grundsätzlich von einer "strengeren" IHK ausgeht, wird der Antrag bei einer "milderen" ja auch durchgehen.
  8. Dass der Text nicht superschön ist, stimmt. Du könntest dir jetzt überlegen, ob du in deinem ICalculation Interface noch eine Methode definierst, die eine "schöne" Ausgabe liefert. Beispielsweise: public interface ICalculation { double Calculate(); string GetRepresentation(); } public abstract class BinaryCalculation : ICalculation { // ... bekannter Kram public abstract string GetRepresentation(); } public class Addition : BinaryCalculation { // ... bekannter Kram public string GetRepresentation() { return $"Addition: ({_firstOperand} + {_secondOperand})"; } } //... beim Schreiben: File.AppendAllText(_file, $"{calculation.GetRepresentation()}, result: {calculation.Calculate()}"); Damit bekämst du dann eine vernünftig lesbare Ausgabe à la "Addition: (5 + 4), result: 9". p.s. Das ganze kann man auch durch überschreiben von ToString erreichen, ich finde das explizit aber manchmal angenehmer.
  9. Ich schreibe das jetzt mal in C#, weil ich VB nicht kann: Du kannst das grundsätzlich beliebig kompliziert machen, aber für einen ersten Wurf fände ich folgende Definitionen sinnvoll: public interface ICalculation { double Calculate(); } public abstract class BinaryCalculation : ICalculation { protected double _firstOperand; protected double _secondOperand; public BinaryCalculation(double a, double b) { _firstOperand = a; _secondOperand = b; } public abstract double Calculate(); } public class Addition : BinaryCalculation { public Addition(double a, double b) : base(a, b) { } public override double Calculate() => _firstOperand + _secondOperand; } So, und jetzt kannst du kreativ werden. Ich könnte mir bspw. so etwas vorstellen: public class ResultWriter { private string _file; public ResultWriter(string path) { _file = path; // Fehlerbehandlung lasse ich hier mal raus } public void WriteResultToFile(ICalculation calculation) { File.AppendAllText($"{calculation.GetType()} result: {calculation.Calculate()}"); } } Du kannst das aber auch in die Konsole schreiben, oder in eine Datenbank, oder oder oder... (und natürlich kannst du auch hier ein Interface definieren, das nur die Methode "SaveCalculationResult(ICalculation calculation)" hat). (Und statt "calculation.GetType()" könntest du in ICalculation natürlich auch eine Methode "GetDescription()" vorsehen, die dir das in schön ausgibt.)
  10. Da wir von VB.NET reden, kannst du jede .NET-Logging-Bibliothek verwenden. Neben NLog gibt's da z.B. noch log4net oder serilog (wobei letzteres etwas ungewöhnlicher ist, aber auch sehr spannend).
  11. Da gibt's auch Services online, zum Beispiel den hier.
  12. Ich würde das irgendwo zwischen 35k und 40k p.a. sehen. Wenn du ein wenig pokern möchtest, auch ruhig etwas höher einsteigen in die Verhandlungen.
  13. Da würde mich tatsächlich mal der echte Antrag interessieren. Nach dem, was du da oben geschrieben hast, klang das echt dünn.
  14. Das hast du vllt. falsch verstanden. Es geht hier um das konkrete Vorhaben, nicht das abstrakte Ergebnis. Nur, weil jemand anderes schonmal ein DMS eingeführt hat, ist das im Rahmen deines Unternehmens dennoch ein Projekt. Und das mit der mangelnden Reproduktionsfähigkeit bezieht sich darauf, dass man ein und dasselbe Projekt nicht jedes Jahr auf's Neue durchführt. Ein Projekt ist grundsätzlich erstmal eine einmalige Sache. Sobald es da um Regelmäßigkeit geht, bewegt man sich in die Richtung eines (Geschäfts-)Prozesses.
  15. Ihr entwickelt eure Software also nicht mehr weiter? Ihr müsst doch irgendwas tun den ganzen Tag lang - daraus lässt sich doch irgendwo ein Projekt ableiten.
  16. Achso; ich hatte das so verstanden, dass der Mitarbeiter einen Anruf einem Projekt zuordnen kann, auf das er seine Stunden bucht. Das was du da schreibst, ist ja tatsächlich eher so Richtung CRM. @allesweg Erfassung von Kunden, Projekten etc. in einer Zeiterfassung ist natürlich notwendig - wohin soll ich sonst meine Stunden buchen? (Dass man dafür eigentlich keine doppelte Datenhaltung braucht, sondern sich die Daten aus dem zentralen System nimmt, sei jetzt erstmal dahingestellt...)
  17. Ah, das hatte ich nicht gesehen. Dann ist das tatsächlich nicht relevant, was ich geschrieben habe. In dem Fall schließe ich mich @r4phi an und schlage vor, dass du mal mit dem Debugger durch dein Programm durchgehst und guckst, welche Werte da denn tatsächlich auftauchen. Eine kleine Einführung zum Debugger gibt's bspw. hier: https://msdn.microsoft.com/de-de/library/mt243867.aspx
  18. Was bedeutet das? Welche neue Benutzerumgebung? Und was für Anpassungen? Klingt zumindest missverständlich. Bei einem Black-Box-Test hast du ja per Definition keinen Zugriff auf den Code / einen Debugger. Ist das nicht ein wenig hoch gegriffen? Die Masken für die Mitarbeiter dürften ja recht trivial sein - und auch die Auswertungsseite stelle ich mir nicht wahnsinnig komplex vor. Prinzipiell halte ich das Projekt für einen AE für ok - nur die Beschreibung gefällt mir noch nicht wirklich. Du schreibst im Text oben bspw. etwas von einer Anruferfassung, führst das aber weder weiter aus (Einbindung in Telefonanlage?) noch taucht es in der Zeitplanung auf.
  19. Form1 Form11 = new Form1(); Form2 Form12 = new Form2(); Form3 Form13 = new Form3(); Form4 Form14 = new Form4(); Form5 Form15 = new Form5(); Form6 Form16 = new Form6(); Form7 Form17 = new Form7(); Was dir hier fehlt, ist die Fenster auch aufzurufen. Sprich, etwas in der Art Form1 Form1 = new Form1(); Form1.ShowDialog(); // hiermit bringst du das Fenster zur Anzeige //nachdem das Fenster wieder zu ist, kannst du den Wert abfragen: int summe += Form1.Counter; Im Grunde würde "man" so ein Programm ungefähr so aufbauen (stark vereinfacht und sicher nicht "perfekt"): public StartForm : Form { Form[] quizFragen = new Form[5] { new Form1(), new Form2(), new Form3(), new Form4(), new Form5() }; public void StartQuiz() { int summe = 0; for(int i = 0; i < quizFragen.Length; i++) { quizFragen[i].ShowDialog(); summe += quizFragen[i].Counter; // <-- das hier funktioniert so nicht direkt; weißt du, wieso? } ZeigeAuswertung(summe); } public void ZeigeAuswertung(int punktzahl) { ResultForm resultForm = new ResultForm(); resultForm.Ergebnis = punktzahl; resultForm.ShowDialog(); // auf dem ResultForm zeigst du dann deine Auswertung } } Wie gesagt: Das ist stark vereinfacht, aber grundsätzlich die Art und Weise, auf die man so etwas lösen kann. Man kann da auch noch viel weiter gehen (in die Richtung, die @Whiz-zarD mit Dependency Injection angesprochen hat, z.B.) - aber für den Anfang wär's erstmal ganz wichtig, dass du dich mit Dingen wie Arrays, Schleifen und Objekten an sich auseinandersetzt.
  20. Erstmal ist das, was @Whiz-zarD geschrieben hat, richtig. Vielleicht hilft's dir aber, wenn man ein wenig simpler einsteigt. Um die Variable "von außen" sehen zu können, muss sie "public" sein. Das bedeutet: // statt dem hier: int counter1 = 0; // muss das so aussehen: public int counter1 = 0; // in C# sind öffentliche Felder aber eher verpöhnt, daher // nutzt man normalerweise Properties. Die Feinheiten sind // hier eher egal - sollte man sich aber angewöhnen public int Counter1 { get; set; } So, dein Counter ist jetzt also von außen einsehbar. Wie kommst du jetzt da dran? Recht einfach: // eine Variable zur Speicherung der Gesamtsumme int counterSum = 0; // hiermit erzeugst du eine neue Instanz deines Formulars MyForm form = new MyForm(); // hier wird das Formular angezeigt form.ShowDialog(); // nach der Anzeige kannst du den Counter aus dem Formular // auf deine Summe draufaddieren counterSum += form.Counter1; Das ist so ziemlich die Grundlage von OO. Du erzeugst dir Objekte (Instanzen von Klassen), arbeitest mit denen und greifst von anderen Objekten auf diese zu.
  21. Nein, das Byte für den Flag musst du überall einrechnen. Das signalisiert ja nur, ob es sich bei dem Wert um einen Durchschnittswert handelt. Du musst also immer - egal ob Durchschnittswert oder nicht - mit 15 Byte rechnen.
  22. Wirkt auf mich fachlich etwas dünn. Im Großen und Ganzen ist das doch nur die Installation einer Slack-Alternative auf einem Server + bissl Grundeinrichtung. Kannst du näher darlegen, worin deine eigentliche Leistung besteht?
  23. Meinst du damit, dass man sich durch korrekte Rechtschreibung und Grammatik von der Masse abhebt oder dass man sich nicht von der Masse abhebt, wenn's da hapert? Das erste fände ich erschreckend

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...