Search
 
 

Display results as :
 


Rechercher Advanced Search

Latest topics
Shopmotion


Navigation
 Portal
 Index
 Memberlist
 Profile
 FAQ
 Search
Affiliates
thanh nien phật tử
 
December 2016
MonTueWedThuFriSatSun
   1234
567891011
12131415161718
19202122232425
262728293031 

Calendar Calendar


Học PHP - "6 gia đoạn, 1 quá trình"

View previous topic View next topic Go down

Học PHP - "6 gia đoạn, 1 quá trình"

Post by Spammer on Wed Sep 23, 2009 1:41 pm

Để học bất cứ một ngôn ngữ lập trình nào những người mới bao giờcũng phải trải qua 6 giai đoạn.

1. Quan niệm
2. Thử nghiệm
3. Trải nghiệm
4. Kiểm nghiệm
5. Chiêm nghiệm
6. Sáng tạo


Quan niệm
Hãy xác định nhiệm vụ học cho các bạn. Không có định hướng, không còn tầm nhìnbao quát
về thế giới phần mềm và không có cátính, bạn chắc rồi cũng rời bỏ sớm
ngành phần mềm nếu không thì cũng chỉ là mộtcoder hay tester ba phải,
người mà lúc nào cũng chỉ được coi là một nhân vậtbình thường về mọi
mặt, không có sự nổi bật và luôn đứng đầu trong đề cử danhsách về hưu non.

Tiêu chuẩn số 1 của một nhà phát triển phầnmềm giỏi là sự đề cao tự học. Trường lớp hay trung tâm không phải là nơi đángtin cậy để học vì người giỏi ko bao giờ chịu mài đũng quần trên ghế bục giảngđể giảng đi giảng lại một thứ kiến thức liên tục cũ đi sau vài tháng. Nếu ngườigiỏi thích nói chuyện thì conference là chỗ của họ vì họ thích trao đổi với cácindustry expert chứ không phải là dọa dẫm học viên.

Diễn đàn này cũng có thể là nơi để học hỏi nhưng đừng nghĩ là người có
hiểubiết sẽ trả lời bạn một cách tường tận và chi tiết như thể họ là
ông nội củabạn vậy. Muốn họ trả lời hãy học cách hỏi, trước khi hỏi hãy search. Sau khinhận được câu trả lời hãy search.

Thử nghiệm
PHP là một công nghệ bao gồm có 6 bộ phận:
+ Bộ thông dịch
+ Ngôn ngữ
+ Cấu trúc dữ liệu
+ Các thuật toán trên dữ liệu hay còn gọi là các API
+ Các công nghệ đi kèm hoặc có thể giao tiếp được với PHP.
+ Các best practice đặc thù của riêng công nghệ đó.

Hãy tập cài đặt bộ thông dịch PHP, Apache, MySQL và chạy triển khai các ứngdụng PHP có sẵn.
Hãy thử nghiệm ngôn ngữ PHP với các vòng lặp, điều kiện, in, nhúng HTML, làmquen function, method, class
Cấu trúc dữ liệu là một phần khác của PHP. Ở côngnghệ này Hash, Array
và Map đều được gộp vào kiểu array. Rất dễ chịu chobạn khi bạn đã từng
làm quen với các cấu trúc dữ liệu của C# hay Java.
Cấu trúc dữ liệu không phải là một cấu trúc chết. PHP cung cấp khoảng
hơn 1000function (API) xử lý nó. Array là một kiểunhư vậy. DOM là một
kiểu khác. Làm bài tập trên các API dạng này là một cáchtốt để làm quen
với ngôn ngữ và bộ thông dịch. Các bài
tập có thể chỉ là in ramột cái resume, tạo một cái layout đơn giản nhất
từ việc sử dụng include, tạomột form nhập liệu đơn giản, tạo một form
upload đơn giản...

Tài liệu sách vở thì có rất nhiều. Bạn nên đọc các chương trong PHP Manual. Đọccác tutorial trên mạng và luyện tiếng Anh. Các ebook đáng chú ý:

++ Apress Beginning PHP and MySQL 5 From Novice to Professional 2nd Edition(2006)
++ Apress Beginning PHP and PostgreSQL E.Commerce (2006)
++ Prentice Hall PHP 5 Power Programming (2004)
++ O'reilly Programming PHP 2nd Edition (2006)

Các công nghệ đi kèm với PHP là một thế giới cực kì phức tạp.
Bạn có thể sẽ làmquen với các công nghệ opcode hay biên dịch mã PHP ra
mã nhị phân để chạy thayvì nhìn nó dưới dạng text. Nó là một extension
nguồn mở của công nghệ PHP. Bạncũng có thể quan tâm đến việc sử dụng
PHP để giao tiếp với các hệ thống controngLinux như shared memory, gettext,socket,
stream... Socket và stream là các công cụ vạn năng để PHP giao tiếp
vớicác hệ thống phần cứng và phần mềm. Bạn cũng có thể quan tâm đến sử
dụng PHP vàC trên cùng một file PHP thông thường hay nhúng mã dll của
các thư viện trênWindows
vào PHP và sử dụng lại. PHP làm việc này thông qua việc sử dụng mộtext.
mã nguồn mở do Wez viết có thể tải về PECL. Bạn cũng có thể quan tâm
đếnviệc sử dụng PHP để viết các ứng dụng desktop mà bạn có lẽ vẫn dùng VB để viếtbằng cách sử dụng thư viện GTK.

Tuy nhiên điều bạn có thể sẽ quan tâm hơn cả là liệu PHP được hỗ trợ
như thếnào để giao tiếp với các hệ thống khác. PHP có thư viện để giao
tiếp với ActiveDirectory, LDAP, các hệ thống hỗ trợ
SMTP/POP3/IMAP/FTP/SSL, SMS Gateway, GISserver, Router... PHP được Java
hỗ trợ tốt để trở thành
một công nghệ trên Javaplatform và nhờ đó bạn có thể gọi các gói Java
để sử dụng lại hay sử dụng cácapplicationserver của Java như Sun
OneWebserver, Glassfish application server thay cho Apache server hoặc
sử dụng cácdịch vụ Java khác như OpenSSO. JSON và XML
được hỗtrợ buit-in trong PHP cũng là phần rất đáng tìm hiểu vì các nhà
côngnghiệp phần mềm ở các tổ chức chuẩn công nghiệp như OASIS, ECMA hay
W3C sử dụngcác gọi này để giúp PHP hỗ trợ kiến trúc Webservice/SOA,
SDA, MDA (phần này doIBM đóng góp cho cộng đồng PHP).....

Phần PHP giao tốt tốt nhất có lẽ là database. OCI doOracleđóng góp, DB2
do IBM đóng góp, libmysql doMySQLAB đóng góp và pgsql do cộng đồng
PostgreSQL đóng góp và luôn hỗ trợ cácbản database mới nhất. Ngoài ra
PHP có sẵn một database server SQLite nhúng đikèm với mọi bản PHP 5.0+ có thể giúp bạn tiện trong việc xử lý các nhóm datanhỏ nhưng đủ mạnh mẽ như Access.

PHP là một công nghệ đặc biệt và nó có các đặc trưng riêng như share
nothing.Điều này làm cho PHP có tính scalability rất tốt và được các
mạng xã hội rấtchuộng. Không phải ngẫu nhiên mà Tim Bray, giám đốc các
công nghệ Web của Sunlại cho là PHP có tính scalable hơn Java trên tầng
presentation (http://www.tbray.org/talks/php.de.pdf)trong
khi từ trước đến nay họ vẫn tự hào là công nghệ Java cho họ thống trị
thếgiới web doanh nghiệp, các phần mềm ngân hàng và thị trường viễn
thông, vượt trội cho với công nghệ .NET củaMicrosoft. Đặc điểm này của
PHP cũng là tâm điểm tạo ra các best practice màbạn cần khai thác khi
lập trình với PHP.

Trải nghiệm
Là giai đoạn bạn bắt đầu quan tâm đến việc dùng PHP để code các ứng
dụng sảnxuất bằng việc tự tin sử dụng các API. Giai đoạn này hoàn toàn
phù hợp với việclấy một chứng chỉ Zend nếu bạn muốn. Tuy nhiên Zend chỉ
chứng nhận bạn là có kĩnăng để nhớ API, một điều khá cần để code API
với notepad Đặc
trưng của giai đoạn này là thực hành đểcó các cảm nhận chung về kĩ năng
code. Giai đoạn này sẽ đem lại cho bạn mộtniềm tự hào trẻ con nhưng rất
cần thiết. Giai đoạn này bạn sẽ phải kết hợp PHPvới CSS/XHTML, graphic design,
SQL, web authoring, Javascript, web hosting,system scripting... Là một
lập trình PHP, bạn tự biết mình phải đa tài hơn cáclập trình viên
ASP.NET, nơi tooling thống trị kĩ năng handcode, hơn Java, nơimà kĩ
năng viết business logic được chú trọng hơn

Kiểm nghiệm
Nếu như giai đoạn trải nghiệm là giai doạn code bung bét, bug tùm lum,
bảo mậtbằng không thì đây chính là lúc bạn quan tâm đến việc refactor
lại code. Bạn cóthể tạo ra nhiều function và class hơn trong một nỗ lực
cố gắng làm cho chúng modularhơn. Bạn sẽ cố áp dụng các thư viện như
PEAR hay Smarty, PHPSavant vào ứng dụngcủa bạn để làm cho cách code của
bạn đi vào chiều hướng ổn định. Lúc này bạn đãthấy được sự cần thiết
phải có một coding convention nhất
quán([url=http://pcdinh.googlepages.com/phpvietnamcodingstandards]Reference[/url).Bạn
sẽ quan tâm đến bảo mật
hơn. Giai đoạn này sẽ giúp bạn có một lối tư duychín chắn hơn nhưng
nhiều lo ngại hơn vì bạn cho rằng bạn vẫn chưa thực sự hiểuPHP.

Chiêm nghiệm
Đây là giai đoạn bạn đã tiến đến mức cao. Bạn đã nắm được bản chất của
PHP. Bạnquan tâm đến cơ chế PHP vận hành ở mức compiler hơn. Bạn bắt
đầu học UML,design pattern, tìm hiểu về các hệ thống lớn. Bạn đã vững
vàng trong việc tạora các lớp và muốn tổ chức các lớp đó cho khoa học
hơn. Bạn quan tâm đến cácsoftware engineering processes và tự hỏi làm
sao đểáp dụng XP, Scrum hay các agile methodology khác. Bạn sẽ quan tâm
đếnperformance, object oriented engineering, database design, system
architect,code review. Bạn sẽ bắt đầu chán Pear và ghét Smarty. Việc
tương tác giữa PHPvà các hệ thống khác như Python, Ruby, Jaav, Erlang
.. trở nên quan trọng hơnvới bạn lúc này vì cuối cùng thì bạn đã nhận
ra PHP có nhiều điểm yếu nhưngkhông tới mức phải thay thế PHP bằng 1
giải pháp khác. Các công nghệ mã nguồnmở và tự do sử dụng phân phối như
Java, Perl, Python, Ruby, JRuby, Groovy,Erlang, Lua... cho phép chúng
tận dụng các thư viện của nhau cũng như các điểmmạnh riêng của nhau. Đó
là thời gian bạn thấy sung sướng vì đã chọn 1 công nghệnguồn mở như
Java hay PHP hay Python.

Sáng tạo
Là giai đoạn cao nhất và cũng phức tạp nhất vì lúc này bạn đã hiểu công
nghệđến mức có thể triển khai các hệ thống lớn, customize và migrate
các ứng dụngphức tạp. Có đủ tư duy và kiến trúc cũng như độ trải nghiệm
thực tế để thiết kếhệ thống . Lúc này bạn đã có thể tự đặt cho mình mục
tiêu làm các ứng dụng lớnvới PHP kiểu như
+ Flickr: 60 000 LOC
+ Digg: 200 000 LOC
Bạn cũng có thể hoàn toàn tự tin dùng PHP để tạo ra các ứng dụng ERP,
CRM,Forecast System vốn thường được code bằng Java, ASP.NET hay Delphi
có truyềnthống đắt đỏ, kén server, đòi hỏi nhiều tài nguyên. Lúc đó,
PHP trong tay bạnđã vượt ra khỏi phạm vi của một công nghệ web vì bạn
đã biết đủ PHP và mối quanhệ với các công nghệ bổ sung cũng như kinh
nghiệm triển khai các công nghệ đó.

Bạn đột nhiên quan tâm nhiều đến các cuộc hội thảo. Bạn thấy kinh
nghiệm củacác industry expert thật cần thiết và gần gũi với khả năng
của bạn. Có thể mộtlúc nào đó, bạn thấy mình gần như là một thought
leader. Một lúc khác, bạn lạimuốn nhập vai một C hacker.

Lúc này bạn đã lớn rồi. Ai dám khuyên bạn nữa chứ Cẩn thận, bạn có thể là một PHP Dictator đấy.


(Sưu tầm)

Spammer

Posts : 31
Points : 75
Reputation : 0
Join date : 2009-06-23

View user profile

Back to top Go down

View previous topic View next topic Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum