Home Page of Alberto Lepe Garza
About Computers
About Computers

YayahuicYayahuic

What is Yayahuic Framework?

Yayahuic framework is more about a way to work than a specific coding. It can be applied with almost any server-side language. Is about to work organized from the beginning and reuse as much as possible the codes in order to produce faster and high quality web systems.

This website (www.alepe.com) was developed using Yayahuic Framework in Php.

Advantages:

- High Quality (DTD, XSD, XML)
- High Security
- High Stability
- Easy To Debug (logs)
- Easy Modularity
- High Performance (cache)
- Fast Development
- Best Organization
- Best Team Communication
- Specialize Not Generalize
- Easy Internationalization
- High Ranking In Search Engines
- Can Be Improved/updated Easily
- Compatible With Other Technologies
- Good Interaction With Graphic Design
- Fast Learn Curve (no New Tech. Required)

Disadvantages (not that much):

- XSLT Required
- Some Simple Tasks May Take Longer To Develop
- Server Require More Ram Memory

About the name:

When it was originally in Java, I named it QP/R (Quick Programming with Roles). After recoding it in Php I decided to rename it to Yayahic. Yayahuic means "black" in Nahuatl (an ancient dialect in Mexico). I named it in tribute to my wife's beloved pet called the same way.


Background:

In 2004 I developed a framework in Java based in my experience working in teams, developing and designing complex sites, and with my experience with some other frameworks. Later in 2006 I started to use it together with Php, however the performance was not good enough. Because my experience in Java is limited, I decided in 2008 to recode it in Php, which gained performance and flexibility.

Even there are many frameworks out there, most of them require learn new syntax or procedures, making it difficult to implement in an busy environment. I thought in a way to work easily without having to change too much the programming, using already known technologies.

This framework uses the power of XML + XSL to produce pieces of a web page, not enterely a web page. The reason is because in this way, each piece can be managed differently and organize it better in memory. Aditionally, the use of XML + XSL provides stability (through DTD and XSD validations), better compatibility with other systems, between other benefits.

Details:

In conventional teams, programmers work in sections requiring to code database connections, security access, language management, etc. separately, and each of them can modify any file within the system.

The potential problems with this way of working are:
a) It is not difficult to mess other's code, because nobody think in the same way.
b) good performance is difficult to achieve because different codes may behave different. Think about the security issues it may have if a user can login into a website from different sections relying in each programmer's capacity to anticipate unauthorized access risks.
c) It is very easy to duplicate codes (procedures) within a system.
d) Because not all programmers will have the same level of development, quality could be different between sections.

The idea is to separate programming roles according to experience level, preventing less experienced programmers to mess important codes and impact directly to website performance. Other advantage when the roles are separated is that programmers can become more specialized in certain technologies, being possible to be promoted to higher role level.

Those roles are:

Role Name

Responsible of

Technology

Experience

GUI

(Green)

Implement the design of the User Interface

HTML, JSP or Php, Javascript, CSS

Junior

Faces

(Yellow)

Create interfaces between the core and the GUI.

Java or Php, XSL, XML

Senior

Core

(Red)

Code the main functions of the framework.

Java, Php or C++

Lead

Note:

The number of programmers per each level can be assigned dynamically according to the demand. Also, a solo programmer may play all three roles simultaneously.

CORE:

Programmers in this level will develop or improve the core functions, that are (not limited to):
- Database access
- Security
- Sessions
- Language
- Logging
- Cache Management
- XML to XSL Transformations
- Clustering
- Performance procedures
- URL Filtering

Because is intended to affect all websites under this framework, benchmarks can be easily done in this level that may translate to a direct global performance benefit.

FACES:

Programmers in this level will serve the interfaces that GUI programmers will use. Core additions will be requested by these users.

- Modules (small classes to be used in any website, e.g. galleries, etc.)
- XML data structures
- XSL elements
- Interfaces CORE->GUI (Classes)

Interfaces CORE->GUI are expected to be intuitive and well documented. Functions modifications are expected to be handled as in Java.

GUI:

Programmers in this level will be in communication with designers. They are require to build the web pages accordingly the W3C specifications. In order to keep the development organization, the use of Php (or JSP, etc.) has to be limited to very basic functions, as "while", "switch", "substr", etc. Any Php function that bypass those functions implemented in higher role levels are prohibited to be used, such as a direct connection to the database, cache objects, or XML structures, as well, coding in HTML + Php parts of the web page that must be inside an interface (e.g., a menu, headers, footers, catalogs, etc.).




The illustration shows the general organizational idea. In the center, the core (in red) is shared through all the applications. In the middle, the interfaces (in yellow) communicate between the core and the GUI. Depending of the applications, some interfaces may be reused in other applications. Finally, in the border, the GUI (in green) is different for each application (different green variations).

Examples:

Comming soon......

Source Code:

Comming soon......

Yayahuic... by Alberto Lepe G.

Site Map - CopyLeft 2008 - Powered by Yayahuic Framework - Made by Alberto Lepe G.
Check http header Validate webpage Validate style sheet Check accessibility