SGS Best Practices - Understand what is going on under the hood.
Ok, so this isn't really an SGS specific comment, but more of advice when dealing with frameworks in general.
One thing I've seen from a lot of people is that they get their hands on a new framework, and while they can write applications using it, they really don't understand what is going on under the hood. SGS isn't magic, but it does help solve a lot of problems inherit in multiuser game server design. These solutions are not without their limits and prices. Just like I suggest anyone that uses any of the standard Collection objects be familiar with the general idea of how the data structures they are based on work, I suggest you peer a bit under the hood of SGS and see how it ticks. This will of course become easier once SGS is made Open Source, but that isn't the only way to get more familiar with SGS.
Dig into the class hierarchy and documentation, and try to get a clear picture in your head how it's structured. Even without code access you can make educated guesses about how it works. Focus on the main classes: ManagedObject, ManagedReference, Task, Channel, DataManager, TaskManager, and ChannelManager. Besides classes, get familiar with SGS Transactional contracts, since they bind all these individual classes into atomic actions. Everything that it accomplishes is grounded in patterns and solutions available to all java developers, not just SGS users. Don't be afraid to try stuff out, experiment, play around, and remember, write lot's of unit tests.
One thing I've seen from a lot of people is that they get their hands on a new framework, and while they can write applications using it, they really don't understand what is going on under the hood. SGS isn't magic, but it does help solve a lot of problems inherit in multiuser game server design. These solutions are not without their limits and prices. Just like I suggest anyone that uses any of the standard Collection objects be familiar with the general idea of how the data structures they are based on work, I suggest you peer a bit under the hood of SGS and see how it ticks. This will of course become easier once SGS is made Open Source, but that isn't the only way to get more familiar with SGS.
Dig into the class hierarchy and documentation, and try to get a clear picture in your head how it's structured. Even without code access you can make educated guesses about how it works. Focus on the main classes: ManagedObject, ManagedReference, Task, Channel, DataManager, TaskManager, and ChannelManager. Besides classes, get familiar with SGS Transactional contracts, since they bind all these individual classes into atomic actions. Everything that it accomplishes is grounded in patterns and solutions available to all java developers, not just SGS users. Don't be afraid to try stuff out, experiment, play around, and remember, write lot's of unit tests.
Labels: Best Practices
