Changes between Version 15 and Version 16 of StudentTips
- Timestamp:
- 2012-03-20T11:08:11Z (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
StudentTips
v15 v16 1 1 = Tips for (not only) students = 2 2 3 On this page, we provide tips for authors of HelenOS master and bachelor theses, and various software projects. The tips are based on previous experience in this area. For official guidance, please consult your thesis / projectsupervisor or mentor.3 On this page, we provide tips for authors of HelenOS master and bachelor theses, various software projects and [GSOC Google Summer of Code participants]. However, many of the tips can be generally helpful to any contributors to HelenOS. The tips are based on previous experience in this area. For official guidance, please consult your thesis / project advisor, supervisor or mentor. 4 4 5 5 ---- … … 11 11 == Writing tips == 12 12 13 This section is only relevant to you if one of the outcomes of your project is some kind of a written publication such as a thesis or design documentation.13 This section is only relevant to you if one of the outcomes of your project is some kind of a written publication such as a paper, a thesis or design documentation. 14 14 15 15 === Content === 16 * If you provide some sort of HelenOS overview chapter, please do not blindly follow the pretty much outdated 0.2.0 design documentation (i.e. forget about pseudothreads) and stick to the things that seem relevant to your own thesis(e.g. no need to provide in-depth description of the kernel architecture if your focus is on some userspace application). There is also no point in retelling the early history of the project in each thesis.17 * If you provide a related work chapter, consider providing comparison with similar m ultiserver operating systems (if applicable), i.e. the Hurd and MINIX 3. These will be very interesting and useful as you will be comparing apples with apples and not apples with elephants.16 * If you provide some sort of HelenOS overview chapter, please do not blindly follow the pretty much outdated 0.2.0 design documentation (i.e. forget about ''pseudothreads'' and use the current terminology) and stick to the things that seem relevant to your own work (e.g. no need to provide in-depth description of the kernel architecture if your focus is on some userspace application). There is also no point in retelling the early history of the project in each thesis. 17 * If you provide a related work chapter, consider providing comparison with similar microkernel multiserver operating systems (if applicable), i.e. the Hurd, L4 and MINIX 3. These will be very interesting and useful as you will be comparing apples with apples and not apples with elephants in case of comparing HelenOS with GNU/Linux or any other monolithic system. 18 18 19 19 === Form === … … 22 22 === Planning === 23 23 * Getting the thesis into a good shape (grammatically, stylistically and visually) can take as much as half of the entire time you reserved for working on the text of the thesis. People don't usually believe this advice or don't take it seriously enough, but then all of them are found to have a very eventful and exciting submission week and the end result is not as good as it might have been if more time was spent on editing the thesis. 24 * Most of the time, there will be people willing to proof-read your thesis, so plan ahead to allow enough time for these proof-readers to do you this favor and also to incorporate their suggestions. 25 26 ---- 24 * Most of the time, there will be people willing to proof-read your thesis, so plan ahead to allow enough time for these proof-readers to do you this favour and also to incorporate their suggestions. 27 25 28 26 == Coding tips == … … 30 28 === Implementation === 31 29 * Stick to the [http://www.helenos.org/cstyle HelenOS coding style]. We really mean this. Your failure to adhere to the coding style of the surrounding code requires someone else's extra work to perform the cleanup after you. The fact that you may prefer another coding style is quite insignificant in the context of HelenOS. Get over it and use our coding style. 32 * Adhere to good coding practices, such as adequate commenting, avoiding dense code, using horizontal spacing as visual delimiter and keeping the block nesting level under control. 30 * Adhere to good coding practices, such as adequate commenting, avoiding dense code, using horizontal spacing as visual delimiter and keeping the block nesting level under control. Also pay attention to seemingly subtle and unimportant decisions, such as proper naming of identifiers, following a coherent naming pattern, etc. Remember that the code is written once, but read many times. Do not make it harder for the reader than it is strictly necessary. 33 31 * Self-contained code is good, but avoid poorly integrated code. Poorly integrated code is pointlessly concentrated in one subdirectory of the source tree. For example, putting new generic ADT's and IPC primitives under the networking directory is a sign of poorly integrated code. 34 32 * As with the text of your thesis, similar citation rules should apply in your code. When using third party code, always give credit where the credit is due, always follow the license of the third party code. It would be kind of embarrassing to discover portions of e.g. Linux header file in code which you advertise as yours. … … 42 40 * Try to make more smaller commits than few larger commits. 43 41 * Unrelated changes should go into separate commits. 44 * Don't forget to review your changes before committing them. 45 46 ---- 42 * Don't forget to review your changes before committing them and avoid committing unintended changes (temporary hacks, purely debugging stuff) by accident. 47 43 48 44 == Social interaction tips ==