• Welcome to the new COTI server. We've moved the Citizens to a new server. Please let us know in the COTI Website issue forum if you find any problems.
  • We, the systems administration staff, apologize for this unexpected outage of the boards. We have resolved the root cause of the problem and there should be no further disruptions.

Software Development

Totally agree on the "one style/face/colors/fonts" concept. Basically pulling the same trick MS did with Office that "looks the same" for Word/Excel/PPoint.

Finding the right combination will take some experimentation. And they might depend a bit on the general target platform(s). The font must be availabel on all platforms and remain readabel on them, colors must also work. Stuff to play around/do some prototype GUIs.

With the basic libraries I am envisioning something a bit past "write this class to XML". The library would IMHO have a method "writeCharacter(thisCharacter,thisId)" and then handle file generation on the file system (That can be quite different for i.e mobile platforms). Basically a wrapper around the Mapper that is provided by the libraries (In JAVA the mapper would be Castor, JAXB etc) providing the additional functionality.

When building the GUI the size should be kept low. Many Netbooks (like the Lenovo 10-3) and the low end tablet/convertible (Asus MT101, S10-3t) have a 1024x600 screen size. And these are the Windows XP/Windows 7 system one would quite likey find at a gaming table since they are small, cheap, silent and have a long battery life.

I would settle for one language to share code as much as possible. Group projects/Non commercial project must plan for loosing developers for a number of reasons. Having one language gives better chances for the remaining members to take up the work.

With that in mind: Agree on a coding style and naming conventions. And if the language supports integral documentation (i.e like JavaDocs) use them.

Build test cases. Test driven development might not be doabel but when having multiple developers a set of tests that check the external interfaces are extremly useful.

Use a source code control system. Can be as simple as MS Source Safe, will more likely be SVN or GIT. A continous integration system like HUDSON is nice but not a must. Automated build scripts OTOH are a must IMHO. Can be as simple as good ole make or as complex as Maven

Set up a task list system like JIRA or Bugzilla. That way you can keep track of open issues, known bugs etc.

I agree with all this. I do not have any MS systems to play with so if I am going to do anything we will need to stick to stuff that works with Linux. (I don't want anything to do with MS in any case).

Unit testing is a great way to go at least for some parts but first I want to know who the leader is here and what language they want to go with and what tools and what licence this project is under. Do we have official traveller support?

Unit testing info for those that are clueless about it.
http://diveintopython.org/unit_testing/index.html

A naming standard that I use for my Python code. I am not strict about it but it is well thought out and good to use.
http://www.python.org/dev/peps/pep-0008/
 
The equivalent coding style for JAVA. Should also work for C/C++/C# and VB/VB.NET. For the latter two you sometimes find Hungarian Notation aka "Hungarian Warts". Some like them, some don't. If you do a lot of planning before coding they work. If you do "Rapid Prototyping" and "Incremental Development" they can hurt a lot.

For proper coding and best practice I can also recommend this website. One can see a lot of those tips used in the wild(1)

================================

The common testing framework for JAVA is JUnit. Also availabel for Delphi and C/C++/C#. Well used and documented and quite easy in usage. This is for unit/blackbox testing, not for testing user interfaces or load testing. For that you need other tools

================================

I recommend finding and using a Integrated Development Platform that all can live with. Most current platforms support autoformating of code based on user-defined coding style. I.e Eclipse has a "nag" option in style that tells me "you should put JAVADOC at the method", looks for private/public and does a proper formating / linebreaks on pressing a hotkey. IIRC even more important in Python that uses indentations for structure





(1) I once saw code that used around 80 percent of it. And the rest was likely skipped because it would not work in the choosen language
 
Sorry all but I took up some new hobbies and do not visit often.

I am watching carefully and if T5 looks like it will grow and the rules can be automated (rules from previous editions had a lot of holes) I might.

I have some other things in the pipe right now so it is just as well T5 is not ready.

I have all the tools, licensing software, and so on already. I would tell you all how long I have been doing this but it makes me sound old and that supresses my ego!
 
Back
Top