|
|
|
|
| Zitat von Renga
Da würde ich eher NULL-Werte erlauben.
| |
|
|
|
|
|
|
|
Wo ich gerade Businesslogik lese, betreibt hier eigentlich jemand Clean Architecture nach Uncle Bob?
Und was die Kategorie angeht:
- 1:1 oder n:m?
- muss ein Eintrag immer (min.) eine Kategorie haben?
- ...
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Elkano am 06.01.2018 18:59]
|
|
|
|
|
|
erleuchte mich.
|
|
|
|
|
|
|
| Zitat von Renga
erleuchte mich.
| |
Ich weiß nicht, ob ich mir die Mühe machen möchte/sollte bei einer Nachfrage mit einem Ironiegsicht drüber.
Nur so viel und in Kürze. NULL heißt undefiniert und nicht "Nicht zugeordnet". Das als ein Typ/Zustand zu verwenden ist in diesem Fall ein Code-Smell der sich durch jeden Codeteil durchziehen würde, wenn die genutzte Programmiersprache es nicht durch eigene Überladungen/spezielle Syntax löst.
Statt:
|
Code: |
element.getCategory().isActive();
|
|
wird
|
Code: |
if(element.getCategory() == null ){
return bla;
}
element.getCategory().isActive();
|
|
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von DeineOmi am 07.01.2018 0:14]
|
|
|
|
|
|
| Zitat von DeineOmi
| Zitat von Renga
erleuchte mich.
| |
Ich weiß nicht, ob ich mir die Mühe machen möchte/sollte bei einer Nachfrage mit einem Ironiegsicht drüber.
| |
Naja, war auf das Bild bezogen, ohne ne Erklärung zu liefern.
| Zitat von DeineOmi
| Zitat von Renga
erleuchte mich.
| |
Ich weiß nicht, ob ich mir die Mühe machen möchte/sollte bei einer Nachfrage mit einem Ironiegsicht drüber.
Nur so viel und in Kürze. NULL heißt undefiniert und nicht "Nicht zugeordnet". Das als ein Typ/Zustand zu verwenden ist in diesem Fall ein Code-Smell der sich durch jeden Codeteil durchziehen würde, wenn die genutzte Programmiersprache es nicht durch eigene Überladungen/spezielle Syntax löst.
Statt:
|
Code: |
element.getCategory().isActive();
|
|
wird
|
Code: |
if(element.getCategory() == null ){
return bla;
}
element.getCategory().isActive();
|
|
| |
Ok, da hab ich mich wohl einfach schlecht ausgedrückt. Mir gings eigentlich eher um den DB-Storage. Das der null-Wert der aus der DB kommt gekapselt in getCategory() auf eine Kategorie als Repräsentaten gemappt werden soll ist klar.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Renga am 07.01.2018 11:50]
|
|
|
|
|
|
|
|
|
|
Hier sind doch auch ein paar Windows Spezis (Garland, Peace?) am Start.
Jemand Erfahrung mit WebSockets Programmierung als Client in .Net und C#?
Gibts keine coole async WebSocket Libs, die einfach onMessage, onConnected, etc. exposen? Muss ich wirklich in einer while-schleife wie 1990 auf Messages warten?
Das macht meinen UI-Thread kaputt
|
|
|
|
|
|
|
ich hab damit jetzt nie gearbeitet, aber anhand der Struktur von TcpListener würde ich sagen, daß du einfach per BeginAcceptSocket startest und der callback-Handler, den du BeginAcceptSocket mitgeben musst, ist sozusagen dein Startpunkt für eingehende Verbindungen.
https://msdn.microsoft.com/de-de/library/system.net.sockets.tcplistener.beginacceptsocket(v=vs.110).aspx
|
Code: |
// Thread signal.
public static ManualResetEvent clientConnected =
new ManualResetEvent(false);
// Accept one client connection asynchronously.
public static void DoBeginAcceptSocket(TcpListener listener)
{
// Set the event to nonsignaled state.
clientConnected.Reset();
// Start to listen for connections from a client.
Console.WriteLine("Waiting for a connection...");
// Accept the connection.
// BeginAcceptSocket() creates the accepted socket.
listener.BeginAcceptSocket(
new AsyncCallback(DoAcceptSocketCallback), listener);
// Wait until a connection is made and processed before
// continuing.
clientConnected.WaitOne();
}
// Process the client connection.
public static void DoAcceptSocketCallback(IAsyncResult ar)
{
// Get the listener that handles the client request.
TcpListener listener = (TcpListener) ar.AsyncState;
// End the operation and display the received data on the
//console.
Socket clientSocket = listener.EndAcceptSocket(ar);
// Process the connection here. (Add the client to a
// server table, read data, etc.)
Console.WriteLine("Client connected completed");
// Signal the calling thread to continue.
clientConnected.Set();
}
|
|
Edit: und der aus der Verbindung erstellte Socket hat selbst auch wieder asynchrone Methoden, die auf ähnliche Weise funktionieren.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von GarlandGreene am 30.01.2018 13:39]
|
|
|
|
|
|
Danke dafür schonmal.
Habe hier noch eine Wrapper-Klasse gefunden, die macht einen ganz guten Eindruck auf mich
|
|
|
|
|
|
|
Hab ein Jobangebot. Hat mit Perl zu tun. Gilt das als Provokation?
|
|
|
|
|
|
|
Nein, es ist die Zukunft.
|
|
|
|
|
|
|
Ich haette die Wahl zwischen Java und Perl. Mal schauen.
|
|
|
|
|
|
|
Welche Version von Perl/Java?
|
|
|
|
|
|
|
| Zitat von Noch_ein_Kamel
Welche Version von Perl/Java?
| |
Das werde ich dann beim Gespräch in Erfahrung bringen. Hab heute ne Mail von denen bekommen, durch Vitamin B natürlich. War trotzdem überrascht, weil es nicht abgesprochen war.
|
|
|
|
|
|
|
Auch nicht totzukriegen hier.
|
|
|
|
|
|
|
Ich bin jetzt nach Jahren der Dienstleistung auch endlich auf Seiten des Großkonzerns gelandet /o\
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Zensiert am 05.02.2018 10:04]
|
|
|
|
|
|
Unser Startup (wo ich meine Masterarbeit schreibe) musste jetzt die Räumlichkeiten der Uni verlassen und ist aus irgendwelchen Gründen in zwei verschiedene Gebäude gezogen, vermutlich war das billiger und die brauchen gerade das Geld anders. Jetzt bin ich hier in dem schöneren Büro, aber habe kein Internet weil der Provider das frühestens übernächste Woche schaltet. Und weil das hier so eine Legebatterie für Startups und kleine Firmen ist, empfange ich ungefähr 50 WLANs, die mir den Empfang vom Uninetzwerk des Instituts irgendwo im Gebäude verhageln.
Und weil mein Account per LDAP existiert, kann ich mich nicht einloggen. Also schreibe ich gerade als lokaler Admin ein paar Zeilen für meine Ausarbeitung, ohne dass ich auf meine IDE oder wenigstens meine Literaturverwaltung Zugriff hätte.
Merkt man, wie motiviert ich bin?
|
|
|
|
|
|
|
Oh, ich konnte ja einfach in der /etc/shadow einen Eintrag zu meinem Account anlegen und das Passwort vom lokalen Admin da hin kopieren. Das war doch leichter als erwartet und erhöht meine Produktivität auf geschätzte 40%.
|
|
|
|
|
|
|
So wird aus dir aber kein guter wissenschaftlicher mitarbeiter!
|
|
|
|
|
|
|
Hierfür werde ich ja auch nicht bezahlt. Ich will jetzt endlich die Masterarbeit durchkriegen und dann richtiges Gehalt kriegen, da hab ich keinen Bock mehr auf solche Verzögerungen.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Danzelot am 05.02.2018 11:47]
|
|
|
|
|
|
Das klingt wie ein vorgeschobener Grund. In Wirklichkeit ist Freitag einfach Abgabetermin
|
|
|
|
|
|
|
Schön wärs, aktuell peile ich Mai für die Abgabe an.
|
|
|
|
|
|
|
Abgabetermine werden überbewertet
Mein (geplanter) hat sich mittlerweile von letzten September über Dezember und März auf Ende Mai geschoben... Wenn das so weiter geht wird das sogar was
|
|
|
|
|
|
|
| Zitat von Zensiert
Ich bin jetzt nach Jahren der Dienstleistung auch endlich auf Seiten des Großkonzerns gelandet /o\
| | ha, willkommen auf der dunklen Seite \o/
|
|
|
|
|
|
|
| Zitat von limlug
Abgabetermine werden überbewertet
Mein (geplanter) hat sich mittlerweile von letzten September über Dezember und März auf Ende Mai geschoben... Wenn das so weiter geht wird das sogar was
| |
Gut, Dezember hatte ich im Frühling auch mal geplant. Dann habe ich den Sommer mit Burnout verbracht, jetzt steht halt Mai an.
|
|
|
|
|
|
|
Das ist ja fast wie meine Projekttermine...
Sollte fertig sein im Oktober für Livegang anfang Dezember.
Ende November wurde der Livegang dann halt auf ende Februar geschoben... und ich seh immer noch kein wirkliches Licht am Ende der Scheisse, die die anderen verzapfen
e: alles während ich an nem anderen projekt arbeiten sollte das nen fixen endtermin mit messe o.ä. hat.
Also eigentlich alles normal
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Noch_ein_Kamel am 05.02.2018 22:21]
|
|
|
|
|
|
Projekttermine sind eh dazu da, um das 5fache der ursprünglichen Umsetzungszeit überzogen zu werden. Die In-Leute sind ja auch immer die letzten auf der Party, das weiß man doch.
|
|
|
|
|
|
|
| Zitat von Ashtray
| Zitat von Zensiert
Ich bin jetzt nach Jahren der Dienstleistung auch endlich auf Seiten des Großkonzerns gelandet /o\
| | ha, willkommen auf der dunklen Seite \o/
| |
So dunkel ist's hier gar nicht. Ganz angenehm sogar
|
|
|
|
|
|
|
Hey ich hab ne kurze Frage zum Thema virtueller Güter und digitaler Güter in Zusammenhang mit ner Uni-Arbeit von mir.
Ich habe es so definiert, dass virtuelle Güter eine Unterkategorie digitaler Güter sind. Der große Unterschied dabei ist, dass virtuelle Güter nur in virtuellen Welten existieren können (also zB ein Drachentöterschwert in WOW oder sonstigen MMORPGs) während digitale Güter in jeder digitalen Form existieren können (zB das PDF-Dokument auf einem Computer).
Nun frage ich mich, ob virtuelle Güter üblicherweise in MMORPGs alle individuelle IDs haben, oder eigentlich alle 1:1 Kopien sind, die dann den jeweiligen Charakteren zugewiesen werden.
Also ob ein virtuelles Gut nie doppelt existieren kann (zwar das Gleiche, nicht aber das Selbe), die restlichen digitalen Güter allerdings (mal abgesehen etwaiger Kopierschutze) problemlos kopierbar sind. Wie wird das technisch gelöst in der Datenbank?
Macht das Sinn?
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Br41n0 am 26.02.2018 21:54]
|
|
|
|
|
|
Ich würde sagen, in den meisten Fällen haben die eine eindeutige ID.
Die brauchst du u. a. wenn gleiche Gegenstände nicht gleich sind, weil bestimmte Stats zufällig generiert sind oder mit dem Charakterlevel bei Drop skalieren oder die Gegenstände nachträglich angepasst werden können. Auch wenn es ein Inventar gibt, in denen man die Gegenstände selbst anordnen kann, brauchst du eindeutige IDs (im Gegensatz zu Massenware mit immer gleichen Stats, die einen festen Slot haben und stacken, Ingamewährung wäre da das Standardbeispiel).
Sind die Gegenstände außerdem für Echtgeld (oder ein Äquivalent) erwerbbar oder zwischen Spielern übertragbar (Handel oder Ingame-Auktionshaus), möchte man auch eindeutige IDs, um den Weg eines Gegenstands nachvollziehen und bei Betrugsfällen einen teilweisen Rollback durchführen zu können.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von red am 26.02.2018 22:13]
|
|
|
|
|
Thema: Gehirnsalat ( wir unter uns ) |