Nguyen Anh Khoa
Mobile: 0987 835 855
-
rickyv
-
muibrog
-
vdchuyen
-
xoai
-
carok
-
picapixels
-
hrrrthrrr
-
staff
-
hunsonisgroovy
-
extra-bvlgari
-
stylelab
-
er0
-
bee-bee
-
dzunglv
-
aurorae
-
pocopoko
-
male
-
kari-shma
-
lapisxlazuli
-
monorainbows
-
lookbookdotnu
-
mothmilk
-
maxum
-
springfieldtheme
-
somethingintellectual
-
hieutran
-
dedlena
-
gary
-
japanese00img
-
fuckyeahtattoos
-
lovehello
-
juicylucy
-
loveofthepenis
Điều quan trọng là chúng ta phải tìm cách kết nối ba yếu tố đam mê cháy bỏng, nỗ lực hết mình và mục đích tối thượng lại với nhau. Dù là trong các hoạt động thể thao, kinh doanh, nghiên cứu khoa học, y học, giáo dục, phục vụ cộng đồng, tôi không tin có người nào làm việc hết sức mình mà lại không mảy may có một chút đam mê. Trên bước đường vươn đến cuộc sống viên mãn, rất có thể bạn sẽ gặp thất bại, sẽ nản lòng thoái chí, bị lợi dụng, bị bạn bè chơi khăm, bị vắt kiệt cả tiền tài lẫn sức lực… Dường như lúc nào cũng có những nguyên nhân rất thuyết phục khiến chúng ta phải chùn bước và muốn buông bỏ. Những lúc như vậy, nếu không có niềm đam mê thực sự, có thể bạn sẽ bỏ cuộc nửa chừng. Đó chính là lý do tại sao niềm đam mê lại là điều tiên quyết cần có trong ba yếu tố kể trên.
The Mythical Man-Month: Essays on Software Engineering (Chuyện tưởng tượng về Man-Month: Thử nghiệm trong kỹ thuật phần mềm)là một cuốn sách về quản trị dự án phần mềm được viết bởi Fred Brooks, tập trung ở đó là phát biểu “Thêm người vào một dự án đang bị trễ sẽ làm cho nó trễ hơn.” Ý tưởng này được biết đến như là luật của Brooks, có mặt cùng với hiệu ứng “hệ thống thứ hai” và sự ủng hộ tích cực của Mẫu đầu tiên của phần mềm. Lần đầu tiên xuất bản năm 1975, sau đó được tái bản như là phiên bản kỷ niệm vào năm 1995 (ISBN 0-201-83595-9) với tiểu luận “No Silver Bullet” và lời chú của tác giả.
Những quan sát của Brooks dựa trên kinh nghiệm làm việc của ông tại IBM khi quản lý dự án phát triển Hệ điều hành OS/360. Ông đã có một sai lầm khi thêm nhân lực vào một dự án đang bị trễ so với kế hoạch. Ông còn mắc phải một sai lầm khi đánh giá một dự án viết một ngôn ngữ lập trình tên là Algol sẽ cần sáu tháng mà không chú ý đến số lượng nhân lực sẽ tham gia. Khuynh hướng những quản trị dự án lặp lại những sai lầm tương tự khiến Brooks đặt tên cuốn sách là “Thánh kinh của phát triển phần mềm” bởi vì “Mọi người đều đọc nó nhưng không ai làm tương tự”
For anyone who doesn’t know, Magento is a new open-source e-commerce platform first stable released Q3 2008 using the PHP5 Zend Framework.
Zend Framework

Introduction
Before we begin our exploration of the architecture of the Zend Framework (ZF), it is important to discuss how a typical MVC application is built. Examining and understanding the architecture of an MVC Web application allows you to make more contextually sound choices when building your application.
- Three-tier Architecture
The three-tier architecture focuses on defining responsibilities between different parts of the application. It has the following tiers:
Presentation Tier
The top-most level of the application is the UI. The main function of the interface is to translate tasks and results to something the user can understand.
Application Tier
This layer coordinates the application, processes commands, makes logical decisions and evaluations, and performs calculations. It also moves processes data between the two surrounding layers.
Data Tier
Here information is stored and retrieved from a database or file system. The information is then passed back to the logic tier for processing, and then eventually back to the user.
- Model-View-Controller Architecture
Although the three-tiers is similar to the MVC architecture, they are different. Conceptually the three-tier architecture is linear. The Presentation tier never communicates directly with the data tier and all communication must pass through the Application tier. However, the MVC architecture is triangular: the View sends updates to the Controller, the Controller updates the Model, and the View gets updated directly from the Model.

Zend Framework
Zend Framework provides components for the MVC and Table Gateway design patterns which are used in most Web applications. Developed by Zend Technologies and released in 2005, Zend Framework is heavily based on the Solar Framework, developed by Paul M. Jones, reason why they share a similar underlying architecture.
There are 3 types of Web application frameworks:
- The ones that offer a solid infrastructure: Symfony, Solar, Ruby on Rails and Django.
- The ones that offer a component library: ezComponents and PEAR.
- The ones that offer both: Zend Framework.
Zend Framework not only offers a solid infrastructure, but also an extensive component library. The component structure of ZF is somewhat unique, each component is designed with few dependencies on other components. This loosely-coupled architecture allows developers to use components individually.
Architecture
The framework architecture is based on the Front Controller and Model-View-Controller architectural patterns:
MVC pattern
The Model is the part of the application that defines its basic functionality behind a set of abstractions. The data access layer and some business logic is defined in the Model. The Views define exactly what is presented to the user. Usually controllers pass data to each view to render in some format. The Controllers bind the whole pattern together. They may manipulate models, decide which view to display based on the user’s request and other factors, pass along the data that each view will need, or hand off control to another controller entirely.
Front Controller pattern
Zend_Controller is the heart of Zend Framework’s MVC system. Zend_Controller_Front implements a Front Controller pattern, in which all requests are intercepted by the front controller and dispatched to individual Action Controllers based on the URL requested.
Coupling
ZF provides a loosely-coupled component library simplified to provide most of the functionality everyone needs to develop Web applications. In object-oriented programming coupling or dependency is the degree to which each component relies on each one of the other components. The biggest advantage of a loosely-coupled architecture is that it allows developers to use components individually.
Neil Garb did an excellent job measuring the level of coupling in the Zend Framework based on the number of dependencies set in code. I’ve extended his work by measuring the level of coupling between components set at runtime. I’m using the Inclued extension to trace through the hierarchy of file inclusions and class inheritance at runtime.
The following diagrams where generated using Graphviz:
![]()
Zend_Controller dependencies
![]()
Zend_Controller and Zend_Db dependencies
![]()
Zend_Controller, Zend_Db and Zend_From dependencies
A standard Zend Framework application requires the following components: Zend_Controller, Zend_Uri, Zend_Registry, Zend_Loader, Zend_Config, Zend_Layout, Zend_View, Zend_Filter, Zend_Validate, Zend_Db, Zend_Form and Zend_Exception.
Criticism
Zend Framework is intended to serve as a novel way to manage Web development complexity. Many consider ZF to deliver reasonably well on this promise, however, it does not universally accommodate all design styles, environments or requirements.
Performance
The performance of a framework is influenced by many factors, particularly the configuration of your servers. However, the design of an application can make a big difference and determine whether your site is slow or highly responsive. Recent benchmarks show that the Zend Framework is slower than other Web frameworks.
Although low coupling is a sign of a well-structured system, it may reduce performance, and a highly-coupled system is sometimes desirable to achieve maximum efficiency. Regardless, in many modern frameworks, the cost of reduced performance is often seen as a worthy trade for the benefits to the software development process that result from low coupling.
Design
Although the framework supports modularity, it lacks of some basic features, such as a Module Coordinator. The system doesn’t include any component or configuration mechanism to deal with Model and Controller dependencies, making it very difficult to share modules between applications. Also, Zend_Controller doesn’t allow modular systems to load model files from within its own module as well as outside modules.
The system lacks of local containers to manage object dependencies and interrelationships. Instead, it uses a global container to store objects. According to Troels Knak-Nielsen, the problem with this is that a global container, whether primitive or sophisticated, will always be a global symbol. Most programmers will agree that global variables are bad design, and that goes for a global containers as well.
Namespaces
With PHP 5.3 coming up on the horizon, the Zend Framework API faces a re-design. While namespaces will hopefully lead to more readable code, Zend developers will finally need to start thinking about some standards for abstract classes and interfaces.
Trong kinh tế học, lạm phát là sự tăng lên theo thời gian của mức giá chung của nền kinh tế. Trong một nền kinh tế, lạm phát là sự mất giá trị thị trường hay giảm sức mua của đồng tiền. Khi so sánh với các nền kinh tế khác thì lạm phát là sự phá giá tiền tệ của một loại tiền tệ so với các loại tiền tệ khác. Thông thường theo nghĩa đầu tiên thì người ta hiểu là lạm phát của đơn vị tiền tệ trong phạm vi nền kinh tế của một quốc gia, còn theo nghĩa thứ hai thì người ta hiểu là lạm phát của một loại tiền tệ trong phạm vi thị trường toàn cầu. Phạm vi ảnh hưởng của hai thành phần này vẫn là một chủ đề gây tranh cãi giữa các nhà kinh tế học vĩ mô. Ngược lại với lạm phát là giảm phát. Một chỉ số lạm phát bằng 0 hay một chỉ số dương nhỏ thì được người ta gọi là sự “ổn định giá cả”.
This module attempts make using HTML templates simple and natural. It
extends standard HTML with a few new HTML-esque tags - <TMPL_VAR>,
<TMPL_LOOP>, <TMPL_INCLUDE>, <TMPL_IF> and <TMPL_ELSE>. The file
written with HTML and these new tags is called a template. It is
usually saved separate from your script - possibly even created by
someone else! Using this module you fill in the values for the
variables, loops and branches declared in the template. This allows
you to seperate design - the HTML - from the data, which you generate
in the Perl script.
- Make Fewer HTTP Requests
- Use a Content Delivery Network
- Add an Expires or a Cache-Control Header
- Gzip Components
- Put Stylesheets at the Top
- Put Scripts at the Bottom
- Avoid CSS Expressions
- Make JavaScript and CSS External
- Reduce DNS Lookups
- Minify JavaScript and CSS
- Avoid Redirects
- Remove Duplicate Scripts
- Configure ETags
- Make Ajax Cacheable
- Flush the Buffer Early
- Use GET for AJAX Requests
- Post-load Components
- Preload Components
- Reduce the Number of DOM Elements
- Split Components Across Domains
- Minimize the Number of iframes
- No 404s
- Reduce Cookie Size
- Use Cookie-free Domains for Components
- Minimize DOM Access
- Develop Smart Event Handlers
- Choose <link> over @import
- Avoid Filters
- Optimize Images
- Optimize CSS Sprites
- Don’t Scale Images in HTML
- Make favicon.ico Small and Cacheable
- Keep Components under 25K
- Pack Components into a Multipart Document
Quy tắc 1: Giảm thiểu sự kết nối tới MySQL Server.
Quy tắc 2: Thiết lập các trường index và cố gắng truy vấn dữ liệu thông qua các điều kiện xác lập trên chỉ số.
Quy tắc 3: Chấp nhận dư thừa dữ liệu
Quy tắc 4: Chỉ lấy đúng và đủ dữ liệu cần thiết
Quy tắc 5: Giải phóng bộ nhớ ngay sau khi sử dụng xong

