Landing : Athabascau University

Unit Five Reflection Diary

  • Public
By Jesse McCarthy December 29, 2016 - 11:54pm

Work Competed and Learning Outcomes:

Write well-structured, easily maintained JavaScript code following accepted good practice, including

  • general appearance and form: well-commented, properly laid out, appropriate capitalization. 
  • structure: modular, using functions, classes and objects effectively, making effective use of variables.
  • standards-compliant: avoiding proprietary elements where possible and working with the vast majority of web browsers.
  • accessible: usable in some form by people with a wide range of disabilities or, if not, failing gracefully and offering alternatives to achieve similar functionality.


  • Code is well commented, and functions are documented using standard JsDocs.
  • Objects are used repeatedly throughout the program, and in some cases making efficient use of prototypical inheritance.
  • Works in all current major browsers.
  • Content is created for a specific niche of people, and can be used by the audience that it targets.


Make effective and efficient use of a full range of programming constructs including sequence, selection and iteration.

JavaScript is a funny cross between procedural, object-oriented, and functional programming, as such everything must occur in sequence. There are many actions that must be performed in a certain order or else required variables and value would be undefined crucial points in an algorithm.


Conditions are used in many different places, mainly in logical algorithms such as most object update functions.


Iteration is used in the Infinite Skies Banner object to iterate through a list of background stars.

Effectively use variables, including passed parameters, local and global variables and arrays, to improve the efficiency, re-use, and maintainability of the code.

A huge amount of thought was put into structuring for efficiency, and although it is no where near perfect, I am pleased with what I have created.

 Global variables are used as sparsely as possible, objects and functions were created in a very modular method specifically for maintainability and re-use.

Use a wide range of programming features and commands to improve the efficiency, re-use and maintainability of the code.

Objects, prototypical inheritance, and functions were huge tools that were used in order to improve the mentioned attributes.

Write JavaScript code that works in all major browsers (including IE, Mozilla-based browsers such as Firefox, Opera, Konqueror, Safari, Chrome).

Has been tested and functions in all major browsers.

Effectively debug JavaScript code, making use of good practice and debugging tools.

Mainly used the developer tools across several browsers as well as stack overflow to correct errors.



Rationale for What Has Been Done:

There have been several large changes since the previous unit.

I’ve decided to remove the blog page. The purpose of this page was to share thoughts and ideas with visitors, however I concluded that the learning page would be sufficient for such activities and that the blog page was superfluous.

Another major change has been a separate style sheet for mobile. This was perhaps a mistake. That is a huge change and requires a lot of attention, care and maintenance. It will be impossible for me to complete a full mobile site in the time that is remaining in this course. In the future, I believe it would be extremely beneficial to have but it would require more time than I have. I am therefore not fully supporting mobile version of web. This may be okay though considering the targeted audience for the games are all non-mobile currently and the tutorials for computer programming would be difficult to follow on a mobile device.


The Good and The Bad:

In this unit, I’ve created a solid foundation for any modifications to come. It’s been created in such a way that adding new content will not be impossible without a large site refactoring.

However, the vision that I have created for Jm-Games is much larger than can be accomplished, and is well beyond the scope of this course.


What I Would Have Done Differently:

Given the opportunity to begin again, I would not have taken on the task of creating a desktop and mobile website… YET. After this course completes I will finish the task. The undertaking has left my website in a state of limbo before its completion though. What is displayed through mobile will not reflect my capabilities as a web designer/programmer. 


Below is my site directory to date.

Site Directory