HeaderSIS.jpg

IS480 Team wiki: 2015T1 Chipmunks Technologies

From IS480
Revision as of 13:34, 13 August 2015 by Shaun.teh.2013 (talk | contribs)
Jump to navigation Jump to search
Chipmunks-logo-small.png


Team Chipmunks Icon Home.png   HOME

 

Team Chipmunks Icon AboutUs.png   ABOUT US

 

Team Chipmunks Icon Overview.png   PROJECT OVERVIEW

 

Team Chipmunks Icon ProjectManagement.png   PROJECT MANAGEMENT

 

Team Chipmunks Icon Documentation.png   DOCUMENTATION

 


Chipmunks Technologies Title.png

Operated Technologies


Chipmunks Technologies.png

Purpose of Enabling Technologies


Technology Factor Description
AngularJS Modularized Structure The separation between directives, controllers, and views enable portions of the functionality to be modularized, enabling easy debugging and separation of concerns. This also allows new or old functionality to be pieced together and removed easily. It also promotes code reusability.
Two-way Data Binding With Java on the backend, it makes it seamless when dealing with objects as AngularJS’. Through the use of ng-models, information can easily be retrieved as compared to using jQuery.
Dependency Injection Dependency injection allows developers to create reusable components through directives. One such example would be the use of ui-router or ng-cookies through simple dependency injection. This allows quick and efficient reuse of already-developed codes available online.
Single Page Application AngularJS enables Single Page Applications through dynamic routing and rendering. This enables the website to be more responsive and hence, lead to better user experience.
Maven Standardised Directory Structure Maven predefines a standardised folder structure and organization of a project for different parts of a project (codes, configuration files, tests). This allows future developers of the project to understand and adopt other team’s projects easily.
Declarative Dependency Management Generally, Java based projects require different projects and open source frameworks to function properly. It is difficult to download these dependencies manually and keep track of versions in the project. Maven allows users to declare these dependencies in a centralised location. It is able to download dependencies automatically and this greatly aids dependency management.
Uniform Build Abstraction Maven has a uniform interface for building projects. It allows developers to build other Maven projects easily and they can focus more on development.
Hibernate Productivity Hibernate shields developers from writing and handling complex SQL statements, JDBC APIs and data handling. This decreases development time and improves productivity.
Maintainability Hibernate reduces the amount of codes through configurations, thus making it easier to understand.
Vendor Independence Hibernate abstracts an application from the underlying database and dialect, which gives developers the portability to support multiple databases.
Active Community Hibernate is a popular object-relational mapping tool among developers and there are many materials written online and offline. Therefore, making it very easy for developers to seek help.
Spring Inversion of Control (IoC) & Dependency Injection (DI) Spring binds object at run time instead of compile, this enables developers to programme against a set of interfaces, which can be swapped out in different environments without recompiling the code.
Aspect-Oriented Programming (AOP) As Spring is based on IoC and DI, it can wrap instances of the dependencies it injects to decorate method calls with other behaviour.
Data Access & Transaction Management Spring provides a set of data access tools that simplify the extraction and persistence of Java objects in relational databases. These features make unit testing data access easier for developers. It also provides extensive support for the Java Persistence API and object-relational mappers.
Model-View-Controller Pattern for Web Application Spring has a model-view-controller (MVC) pattern framework that simplifies the process of creating web applications. Instead of manually dealing with the complexities of Servlets, HttpServletRequests, it provides classes to handle them for developers.