Đã 2 năm ngày mình đạt được chứng chỉ quốc tế này. Nhắc tới các ngày đó, chỉ xét riêng cảm xúc trong chuyện thi cử và đỗ đạt này thì mình rất thú, rất vui mừng, và đầy hãnh diện.
Cá nhân mình tại sao lại thích thú cái bằng này, và phải đi lấy nó. Nói cho đúng thì mình đã bị "dụ" - đúng nghĩa luôn đấy chứ. Mình đọc một số bài, một số comment của những chàng developer nước ngoài (bạn nhớ kỹ là nước ngoài nha), đại đa số nhận xét là sau khi lấy được cái bằng này, con đường nghề nghiệp của họ thăng tiến nhanh hơn, mức lương cũng được đề bạt cao hơn... Nói chung đây nhưng là một tấm vé VIP cho một khoản thu nhập mới.
Điều này hoàn toàn không sai nha (nhưng một lần nữa mình phải nói là ở nước ngoài thì không sai), vì để có được chứng chỉ ZCPE này, bạn phải có 1 lượng kiến thức đủ với chương trình thi của nó - thật không ít, các bạn có thể xem lại bài này để thấy tại thời điểm đó, cần gì để có thể lấy ZCPE. Và để có được lượng kiến thức này, bạn phải thực sự nghiêm túc ôn tập và thực hành. Thêm nữa, chứng chỉ ZCPE lại là chứng chỉ có giá trị quốc tế, được chính công ty Zend phát hành nên bạn có nó thì chắc hẳn trình PHP của bạn ổn đó. Từ đó thì không khó nhận ra là cầm cái bằng này thì lương lậu cũng ngon.
Nhưng...
Một weblog bé tí của một con người bé tí, nhằm chia sẻ những điều bé tí để hy vọng những thứ ấy kết hợp lại thành một cái to lớn.
Showing posts with label PHP. Show all posts
Showing posts with label PHP. Show all posts
June 9, 2016
April 28, 2016
Cài đặt APCu trên Windows với WAMP
Cách đây xưa thiệt là xưa, xa thiệt là xa, mình có bài viết cài đặt APC trên nền Linux, cụ thể lúc đó mình dùng CentOS nhằm hỗ trợ tăng tốc cho PHP. APC có cái lợi vừa opcode cache vừa data cache (xem lại bài này để biết chi tiết). Nhưng từ khi PHP 5.5 ra đời thì mình dẹp luôn cái APC vì Zend Optimizer+ ngon, bổ, rẻ nó tích hợp sẵn.
Dự án APC không vì đó mà ngừng lại, họ tách phần data cache ra, tạo một extension riêng cho PHP là APCu - APC User Cache. Thật ra mình cũng không dùng sau này, vì có memcache, redis hỗ trợ ổn cho vấn đề cache data.
Nhưng hôm nay vì lý do phải dùng nó, mà máy công ty là Windows, đang dùng WAMP, nên thôi viết tiếp bài này chia sẻ chơi cho vui.
Dự án APC không vì đó mà ngừng lại, họ tách phần data cache ra, tạo một extension riêng cho PHP là APCu - APC User Cache. Thật ra mình cũng không dùng sau này, vì có memcache, redis hỗ trợ ổn cho vấn đề cache data.
Nhưng hôm nay vì lý do phải dùng nó, mà máy công ty là Windows, đang dùng WAMP, nên thôi viết tiếp bài này chia sẻ chơi cho vui.
Labels:
APC,
Cache,
PHP,
WAMP,
Web Developer
June 2, 2015
Technical Leader vs PHP Trainer

Cũng lâu lắm rồi, mình không viết blog, có lẽ chạy theo vài dự án mà mình đang rất tâm đắc. Hôm nay, có một chút thời gian rãnh, ngồi viết lại tí tí, chia sẻ dòng cảm xúc chứ cũng không có viết gì về kỹ thuật hết.
Từ khi mình nghỉ HDViet tới nay cũng đã hơn 2 tháng, và mình cũng đã tham gia phát triển sản phẩm cho công ty compare.vn, với tư cách là "technical leader". Tính tới thời điểm này thì Compare vẫn chưa có cái sinh nhật đầu tiên, nên có lẽ đó là lợi thế của mình - "Cá lớn trong ao nhỏ". Với vai trò đó, mình thách thức bản thân nhiều thứ khác hơn là kỹ năng chuyên môn, nó hoàn toàn khác với vai trò PHP Trainer mà mình từng làm trước đây, nhưng đâu đó, cũng có vài nét tương đồng. Bài viết này nhầm ghi lại những suy nghĩ HẾT SỨC CÁ NHÂN về việc so sánh 2 vai trò: Technical Leader với PHP Trainer
Location:
Ho Chi Minh City, Ho Chi Minh, Vietnam
January 26, 2015
TDD và quan điểm của tôi
![]() |
| http://www.filecatalyst.com/wp-content/uploads/tdd.png |
Test Driven Development (TDD) là một trong rất nhiều quy trình phát triển phần mềm (không chỉ trong lĩnh vực web). Đây là một quy trình phát triển sản phẩm dựa trên test.
KHÔNG BÀN LUẬN
Bài viết này không nhằm giải thích thế nào là TDD, không phân tích ưu nhược điểm TDD, không so sánh TDD với các quy trình khác, và càng không hướng dẫn mọi người cách thực hiện TDD. Nếu bạn đang tìm một trong những thứ mình vừa đề cập bên trên, bạn có thể ngừng đọc tiếp phần bên dưới ^_^VẬY BÀN ĐIỀU GÌ - NOTHING ^_*
Bài viết cũng chẳng bàn thêm gì trong TDD, chỉ là chia sẻ góc nhìn của mình khi dấn thân làm TDD, những cảm nhận, suy nghĩ, khó khăn và những thú vị xung quanh TDD mà mình từng trải nghiệm.
Labels:
Phalex,
PHP,
TDD,
Unit Test,
Web Developer,
Zend Framework 2
Location:
Ho Chi Minh City, Ho Chi Minh, Vietnam
December 12, 2014
Slide: Reusable and Configurable project with ZF2
Labels:
Composer,
PHP,
Presentation,
Slide,
Web Developer,
Zend Framework 2
Location:
Ho Chi Minh City, Ho Chi Minh, Vietnam
September 29, 2014
Tôi & PHP Frameworks

Sau một khoảng thời gian làm việc với PHP, trải qua 1 số dự án lớn nhỏ, và cũng gặt hái được một số thành tích đối với mảng PHP này. Đặc biệt thì 6/2014 mình đã đạt được chứng chỉ của Zend về PHP, đây có lẽ là điều mình tự hào nhất khi nhắc với ai đó về khả năng PHP của mình. Bài viết này nhằm mục đích "kể lể" một số framework PHP mà mình đã từng làm, và những góc nhìn cá nhân dành cho Framework đó. Đây chỉ là quan điểm cá nhân, các bạn nên xem với tinh thần tham khảo là chính, đừng bắt bẻ soi mói quá ^^
Labels:
Framework,
PEM,
PET,
Phalcon,
Phalcon Extension Toolbar,
PhalconExt Module,
PHP,
Silex,
ZCPE,
Zend Framework,
Zend Framework 2
Location:
Ho Chi Minh City, Ho Chi Minh, Vietnam
June 9, 2014
Người thứ hai đạt chứng chỉ ZCPE - chuẩn PHP 5.5 tại Việt Nam
Như vậy là sau bao nhiêu ngày tháng học tập, làm việc với PHP thì cuối cùng mình cũng đã lấy được chứng chỉ PHP của Zend. Đây là bằng cấp quốc tế thứ 2 của mình trong năm. Thật tế thì ở Việt Nam đã có 33 anh hùng hào kiệt lấy được chứng chỉ PHP của Zend - và mình là người thứ 33. Tuy nhiên, từ tháng 10/2013 thì Zend đưa ra chuẩn mới dựa theo PHP 5.5, và từ lúc đó đến giờ thì ở Việt Nam mình có được 2 người đạt chuẩn này - và mình là người thứ 2 - nên "giựt tít" cho thêm phần sôi nổi ^^
Labels:
Chứng chỉ quốc tế,
PHP,
PHP 5.5,
Web Developer,
ZCPE,
Zend,
Zend Certified PHP Engineer
Location:
Ho Chi Minh City, Vietnam
March 24, 2014
Techcamp Saigon 2014 - Buổi nói chuyện đầu tiên tại sự kiện cộng đồng
Sự kiện Techcamp Saigon 2014 vừa rồi (diễn ra tại trường đại học RMIT ngày 23/3) mình cũng có đăng ký tham gia chia sẻ. Chủ đề mình đăng ký nói về PHP Framework Phalcon và một module nhỏ do mình làm ra nhằm mục đích dễ phát triển hơn với Phalcon. Nhân một chút rãnh rỗi, ngồi viết lại bài blog này chia sẻ cùng mọi người.
October 24, 2013
PHP - Design Pattern - Observer
![]() |
| Nguồn: http://mydevelopedworld.files.wordpress.com/2013/03/observer-pattern-uml.png |
Labels:
Design Patterns,
Event,
Event-Driven Programming,
PHP,
Web Developer
Location:
Ho Chi Minh City, Vietnam
PHP - Design Pattern - Observer
![]() |
| Nguồn: http://mydevelopedworld.files.wordpress.com/2013/03/observer-pattern-uml.png |
Labels:
Design Patterns,
Event,
Event-Driven Programming,
PHP,
Web Developer
Location:
Ho Chi Minh City, Vietnam
August 6, 2013
PHP - Tốc độ giữa Foreach vs For
Làm việc với PHP cũng có được vài năm kinh nghiệm, lại là một người yêu thích về mặt tốc độ khi triển khai ứng dụng web. Ngày hôm qua, sau khi đọc 1 bài viết phân tích sâu về ARRAY PHP và trong bài viết này đã cho rằng foreach chậm hơn for đã làm cho mình thật sự không tin. Benchmark không biết bao lần, dẫn chứng cho bao người xem, cuối cùng sau khi đọc hết bài viết, test thử và gật gù thừa nhận. Và phải nhìn lại rằng PHP là một ngôn ngữ tuy rất dễ chịu nhưng cũng thật huyền bí, thay đổi 1 vài thứ sẽ lật ngược ván cờ về performance. Bài viết không có ý định trình bày lại những gì tác giả kia đã viết, chỉ một chút minh họa để nhìn lại vấn đề performance thôi.
Labels:
High Performance,
PHP,
Tip,
Web Developer
Location:
Ho Chi Minh City, Vietnam
April 30, 2013
Zend Framework 2: Login ZF2 using session basic
Việc dùng session trong một ứng dụng web là chuyện rất bình thường và gần như là một điều bắt buộc trong việc lập trình ứng dụng web ngày nay. Bài viết không có ý định giải thích session là gì, cách khai báo, cơ chế như thế nào... trong session. Bài viết chỉ đơn giản làm một ví dụ minh họa cách dùng session đơn giản nhất trong Zend Framework 2 (ZF2). Việc ứng dụng hay dùng nhất và cũng đơn giản nhất đó chính là việc login/logout trong một website, như vậy mình cũng sẽ dựa vào đây để làm ví dụ minh họa cho bài viết này.
Labels:
Login,
PHP,
Session,
Web Developer,
Zend Framework 2
Location:
Ho Chi Minh City, Vietnam
March 4, 2013
Xdebug (part1) - Debug code PHP with Netbeans
1 – Giới thiệu
Viết một ứng dụng PHP điều gặp khó khăn nhất so với các ngôn ngữ lập trình khác đó là việc debug – dò lỗi trong source code. Nhưng điều đó không có nghĩa là không thể làm được. Xdebug là một công cụ dùng để debug source web viết bằng PHP, một việc làm rất quan trọng cho việc lập trình và tìm ra lỗi nhanh nhất. Ngoài ra, Xdebug còn là một công cụ profiler rất tốt cho website. Đây là một tính năng giúp tìm ra thắt cổ chai (bottleneck) nhằm cải thiện tốc độ website.Trong bài viết này, tôi xin giới thiệu với mọi người sử dụng Xdebug cho việc dò lỗi trong ứng dụng web. Và để thực hiện điều này, tôi sẽ dùng Netbeans để tích hợp công cụ này và debug lỗi.
Labels:
Netbeans,
PHP,
Tools,
Web Developer,
Xdebug
April 4, 2012
Zend Framework: Install by Wamp and Netbeans
Hôm nay mình giới thiệu đến mọi người cách thức cài đặt Zend Framework dựa trên bộ WAMP và IDE Netbeans. Kết hợp đó, mình giới thiệu mọi người cách tạo virtual host để xem link tạo localhost hấp dẫn hơn. Zend Framework thì có lẽ không cần giới thiệu nữa vì nó đã rất phổ biến trong những năm gần đây, và đây là bộ framework PHP MVC theo đánh giá của cá nhân mình là rất hoành tráng và đồ sộ theo nghĩa bóng lẫn nghĩa đen.
Labels:
Cài đặt,
Framework,
Install,
MVC,
Netbeans,
PHP,
Virtual Host,
WAMP,
Zend Framework
Location:
Hồ Chí Minh, Việt Nam
December 22, 2011
Some tip to improve performance PHP
1 - Không dùng các biến chưa khai báo.
Nếu chúng ta thực hiện phép tăng hoặc giảm ( ++, +=, --, -= ) cho 1 biến chưa khai báo trước thì nó chậm gấp 9, 10 lần so với việc ta khai báo nó xong mới thực hiện toán tử.
2 - Hạn chế tối đa việc gọi hàm trong vòng lặp.
Hàm sẽ được thực thi xuyên suốt vòng lặp. Đặc biệt không dùng for($i = 0; $i < count($arr); $i++)
Nếu chúng ta thực hiện phép tăng hoặc giảm ( ++, +=, --, -= ) cho 1 biến chưa khai báo trước thì nó chậm gấp 9, 10 lần so với việc ta khai báo nó xong mới thực hiện toán tử.
2 - Hạn chế tối đa việc gọi hàm trong vòng lặp.
Hàm sẽ được thực thi xuyên suốt vòng lặp. Đặc biệt không dùng for($i = 0; $i < count($arr); $i++)
Labels:
High Performance,
Optimize,
PHP,
Tip
Location:
Hồ Chí Minh, Việt Nam
December 4, 2011
PHP MVC Framework - Made in "Cá Nhân"
Như vậy là sau hơn một tháng trời cặm cụi ngồi nhai cái này thì cuối cùng hôm nay mình cũng cho ra được cái MVC Framework tự tay làm. Mừng quá nên post lên đây chia sẻ cho những ai quan tâm đến mô hình MVC framework và có cái nhìn tổng quan về mô hình này.
Sẽ có người hỏi, tại sao không dùng những framework có sẵn vì trên thị trường, cái này là rất nhiều mà hoàn toàn free cũng không ít. Hiện tại, tại công ty mình thì vẫn sử dụng Zend Framework (ZF), theo đánh giá cá nhân thì đây là bộ framework rất mạnh, chuẩn và đầy đủ nhất. Có ý kiến cho rằng ZF là bộ framework rùa bò nhất trong tất cả, mình không phản đối ý kiến này, nhưng nhìn lại ZF là một gã khổng lồ thì dĩ nhiên di chuyển có phần chậm chạp nhưng sức càn quét thì không ai so sánh được đâu ^^
Sẽ có người hỏi, tại sao không dùng những framework có sẵn vì trên thị trường, cái này là rất nhiều mà hoàn toàn free cũng không ít. Hiện tại, tại công ty mình thì vẫn sử dụng Zend Framework (ZF), theo đánh giá cá nhân thì đây là bộ framework rất mạnh, chuẩn và đầy đủ nhất. Có ý kiến cho rằng ZF là bộ framework rùa bò nhất trong tất cả, mình không phản đối ý kiến này, nhưng nhìn lại ZF là một gã khổng lồ thì dĩ nhiên di chuyển có phần chậm chạp nhưng sức càn quét thì không ai so sánh được đâu ^^
Labels:
Framework,
MVC,
My Production,
PHP
Location:
Hồ Chí Minh, Việt Nam
November 13, 2011
PHP - Design Pattern - Multiton & Factory
Tiếp nối chuỗi bài Design Pattern bằng ngôn ngữ PHP, hôm nay mình giới thiệu thêm 2 mẫu thiết kế cũng rất phổ biến và thông dụng, đó là mẫu Multiton và mẫu Factory.
Mẫu Multiton được mở rộng từ mẫu singleton. Nếu bạn nào để ý sẽ phát hiện ngay trong mẫu singleton phần contructor hoàn toàn không có tham số trong đó. Nhưng trong rất nhiều trường hợp, chúng ta cần khởi tạo một đối tượng với những thông số cấu hình nhất định, và cũng chính vì điều này mà multiton ra đời.
Multiton
Mẫu Multiton được mở rộng từ mẫu singleton. Nếu bạn nào để ý sẽ phát hiện ngay trong mẫu singleton phần contructor hoàn toàn không có tham số trong đó. Nhưng trong rất nhiều trường hợp, chúng ta cần khởi tạo một đối tượng với những thông số cấu hình nhất định, và cũng chính vì điều này mà multiton ra đời.
Multiton
<?php
class Multiton
{
private static $_instances = array();
private static $_key;
private $_opt1;
private $_opt2;
protected function __construct($param1, $param2)
{
$this->_opt1 = $param1;
$this->_opt2 = $param2;
}
public static function getInstance($param1, $param2)
{
self::$_key = $param1 . $param2;
if(!self::$_instance[self::$_key] instanceof self)
self::$_instance[self::$_key] = new self($param1, $param2);
return self::$_instance[self::$_key];
}
}
Labels:
Design Patterns,
PHP
Location:
Hồ Chí Minh, Việt Nam
November 6, 2011
PHP - Design Patterns - Singleton & Registry
Hôm nay mình chia sẻ tới mọi người một khía cạnh khác trên blog cá nhân của mình - code PHP. Mình giới thiệu tới mọi người 2 mẫu design patterns rất phổ biến và đơn giản, đó là mẫu Singleton và mẫu Registry.
Singleton là mẫu thiết kế rất phổ biến trong OOP. Với singleton, sẽ hạn chế việc tạo nhiều thực thể trên cùng một lớp đối tượng, mà thay vào đó nó sẽ cho phép chúng ta sử dụng chung một thực thể, hay nói một cách khác là dùng một shared instance. Việc này sẽ có lợi điểm cho bộ nhớ của hệ thống, không phải cứ phát sinh đối tượng tùm lum ra.
Singleton:
Singleton là mẫu thiết kế rất phổ biến trong OOP. Với singleton, sẽ hạn chế việc tạo nhiều thực thể trên cùng một lớp đối tượng, mà thay vào đó nó sẽ cho phép chúng ta sử dụng chung một thực thể, hay nói một cách khác là dùng một shared instance. Việc này sẽ có lợi điểm cho bộ nhớ của hệ thống, không phải cứ phát sinh đối tượng tùm lum ra.
Singleton:
<?php
class Singleton
{
private static $_instance;
protected function __contruct(){}
public static function getInstance()
{
if (!isset (self::$_instance))
self::$_instance = new self;
return self::$_instance;
{
}
Labels:
Design Patterns,
PHP
Location:
Hồ Chí Minh, Việt Nam
October 16, 2011
Memcached - Data PHP Caching
Tiếp nối chủ đề cache trên PHP, hôm nay mình giới thiếu tiếp đến các bạn một kỹ thuật cache nữa cũng rất phổ biến. Đó là data caching. Ở những loạt bài trước mình đề cập tới việc Opcode caching dành cho PHP, tuy nhiên nếu chỉ dừng lại tại mức đó thì performance cho web vẫn chưa có gì cải thiện lắm, và vẫn bị bottlenecks khi truy xuất DB. Và giải pháp data caching ra đời nhằm mục đích giải quyết cái bottlenecks này. Bài viết sau nhằm chia sẻ tới mọi người tổng quan việc cải thiện performance nhờ data caching, và một công cụ hữu dụng của việc này là Memcached
Location:
Hồ Chí Minh, Việt Nam
October 14, 2011
XCache - Opcode Cache dành cho PHP
Hôm nay, mình giới thiệu thêm 1 công cụ hỗ trợ opcode cache PHP khác, đó là XCache. XCache cũng là 1 extension PHP hoàn toàn miễn phí, và cũng như APC đã giới thiệu ở bài trước, XCache có thể cài đặt trên Windows và Linux. Nhưng mình cũng chỉ tập trung vào Linux
Location:
Hồ Chí Minh, Việt Nam
Subscribe to:
Posts (Atom)













