Patterns and anti patterns 2014

From Rost Lab Open
Jump to: navigation, search
REGISTRATION FOR THIS SEMINAR IS NOW OVER. WE DO NOT ACCEPT NEW REGISTRATIONS. (JULY 1ST, 2014)

Write better code

Contents

Description

Participating students will research and prepare presentation about ways to structure computer code in an efficient way that can be shared, re-used and maintained by others. Students will research the literature on some of the most (and less so) known coding patterns and anti-patterns and will present their finding to the class using an existing code base found on github and demonstrate the potential for code optimization. They summarize their findings in a seminar thesis.

In this seminar you will be asked to look at existing javascript code, understand its functionality, identify its weaknesses and refactor the code using one of the design patterns we are covering. Please note that I expect you to search for existing javascript code on GitHub[1] (trying to refactor your own code is not acceptable).

Tips for presentation

Note that each session will include one 30 minutes presentation by each student.

  1. give an overview of the topic you chose to present
  2. give an introduction describing the project you are re-factoring/optimizing
  3. a through code critique should identify the strength and weaknesses of the code.
  4. suggest an improvment using a JS pattern you think is suitable.
  5. be ready to defend your choice, while a JS pattern may seem a good fit there are always some tradeoffs.

NOTE you should only use the patterns that are available to you from the topic you chose. If you chose Functional patterns then Object creation patterns are not relevant to your project. Keep this in mind when searching for a project to refactor on GitHub.


[1] https://github.com

Learning outcome

In the end students know about common patterns and anti-patterns, they can communicate sophisticated technological matters to their peers and they can summarize this in a written report.

Important Dates

June 16 11:00: Seminar pre-meeting.

September 8th - presentations due.

Seminar Dates: September 29 - October 3

Seminar Times: 12:00 - 13:45

Room: Rostlab seminar room I12

Presentation Schedule

NOTE: due to some students dropping the seminar some talks were cancelled (marked with a strike through) and the schedule has changed.

Date Time Topic Assigned to
Sep 29 12:00 Design patterns and antipattterns and their importance in software maintainability and sustainability Kshitija Nagaraj
Sep 29 12:00 General patterns Amr Arafat
Sep 29 13:00 Literals and Constructors Patterns Amit Sama
Sep 30 12:00 Design patterns Yaroslav Dushko
Sep 30 13:00 Functional patterns Reza Sefidgar
Oct 1 12:00 Object Creation Patterns Abdul Basit
Oct 1 13:00 Code Reuse Patterns Zeeshan Nasir
Oct 1 13:00 jQeury specific patterns Mark J. Becker
Oct 2 12:00 jQuery Plugin Patterns Divya Joseph

References

  1. (Highly recommended:) JavaScript: The Good Parts http://shop.oreilly.com/product/9780596517748.do
  2. http://sourcemaking.com/design_patterns
  3. http://www.jspatterns.com
  4. The Essentials of Writing High Quality JavaScript http://net.tutsplus.com/tutorials/javascript-ajax/the-essentials-of-writing-high-quality-javascript/
  5. JSPatterns http://www.jspatterns.com/
  6. jQuery Anti-Patterns for Performance & Compression http://paulirish.com/2009/perf/
  7. How DRY Affects JavaScript Performance http://velocityconf.com/velocityeu/public/schedule/detail/21634
  8. Object Oriented JavaScript http://www.packtpub.com/object-oriented-javascript/book
  9. JavaScript Patterns http://shop.oreilly.com/product/9780596806767.do
  10. Pro JavaScript Design Patterns http://jsdesignpatterns.com/
  11. Essential JavaScript Design Patterns For Beginners, Volume 1. http://www.addyosmani.com/resources/essentialjsdesignpatterns/book/
  12. Eloquent JavaScript http://eloquentjavascript.net/
  13. http://en.wikipedia.org/wiki/Anti-pattern#Programming
  14. http://c2.com/cgi/wiki?CodeSmell
Personal tools