Technologies
Stanfy is aiming to make technologies work best for the project's needs.
The rule is to consider the whole set of available solutions and choose the best one.
We follow the J2EE direction for server environment. This doesn't limit us
but makes us experts in using a powerful family of open source technologies with numerous APIs and ready
to use frameworks.
- Web/Application servers: Tomcat and JBoss
- Frameworks and APIs: Spring, Struts (Struts 2), Hibernate, Lucene, Velocity,
ehCache, poi, axis, batik, fop etc.
We use both Flex and Java Script approaches for GUI.
The main decision making arguments here are balancing between interactivity of first and flexibility of second.
We work with different DB servers. It often depends on the existing customer's IT
infrastructure and may vary a lot, but most of our projects use either MySql or Oracle database servers.
We keep our projects integrated with modern internet services, social networks,
instant messengers, payment systems, hosting environments and other public APIs and platforms.
- External APIs and integration with: Instant messaging (ICQ, GTalk, MSN, Yahoo, AIM, Twitter),
Web mailers (Yahoo, GMail, AOL, Hotmail), Social networks (Facebook, MySpace, hi5), Payment
systems (PayPal, 2checkout, Moneris), Amazon Web Services (Amazon S3, Amazon EC2)
Typical Server Architecture
Our projects are commonly based on the Spring+Hibernate+Struts core.
This combination provides us with all needed underlying mechanisms,
templates and tools for the Web 2.0 system infrastructure.
-
Spring is used for the automated configuration and wiring application objects.
Based on the Inversion of Control and the Dependency Injection patterns it creates a
flexible infrastructure for the objects management and gives ability to move a significant part of the objects' life
cycle routines out of the sources to configuration files.
-
Spring wrappers for the JPA are used as an annotation driven Object Relation Mapping technology.
Hibernate is used as a JPA provider. It helps to hide the persistent data objects implementation
essentially improving time needed to implement DAO (data access objects) layer.
-
Struts combines a set of presentation layer patterns like Model-View-Controller,
Composite View etc. with the number of tools for creating View
components. It gives us powerful techniques for the presentation layer code reuse
and separation of the web and business logic components development.
Technological Process
We pay great attention to the technological process as a core
component of our development power. A set of tools and techniques,
rules and principles which we apply, forms our unique development approach
and software design culture. The process is adopted to support
the entire life cycle and gives the ability to handle continuous development,
maintenance, release and deployment. It also plays an important role for
project communication, bug tracking and features adding processes.
- Planning methodology - Agile
- Version control system - SVN
- Issue tracking - Eventum, Bugzilla
- Build process - ANT, Maven
- Continues Integration - Cruise Control
- Documentation - Wiki
- Testing - Unit tests, Selenium
learn more about our services