Dạy thiết kế web - Hướng dẫn thiết kế web, Kỹ thuật thiết kế website

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

Xem kết quả: / 7
Bình thườngTuyệt vời 
Để 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ột lú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ại muốn nhập vai một C hacker.
Nguồn http://thegioiweb.vn/Story/vn/laptrinhweb/laptrinhweb_PHP/2009/11/9735.html
 

Khắc phục lỗi

Công cụ thiết kế website

Top 10 Add-on “hot” cho Firefox Top 10 Add-on “hot” cho Firefox Firefox vẫn nổi tiếng với hệ ...
Tool upload và download từ server Tool upload và download từ server FTP Commander 7.40 - chương trình ...
Một số trang web cung cấp tool online Một số trang web cung cấp tool online 1. Web 2.0 Badges – Tạo badges ...
Tool hỗ trợ làm flash mạnh mẽ nhất Tool hỗ trợ làm flash mạnh mẽ nhất Với SWiSH Max2 bạn có thể ...
Firebug -kiểm tra website Firebug -kiểm tra website Firebug là một công cụ chủ ...

Ebook

Ebooks Flash CS3 (english) Foundation Flash CS3 for Designers What you’ll ...
24h học Action scipts Dưới đây là tài liệu dùng để học action ...
Ebook học JavaScript Ebook học JavaScript bao gồm cả Tiếng Anh và ...
Ebook web nghe nhạc trực tuyến Bạn đang có ý định làm một website nghe ...
Tài liệu tiếng việt về PHP Biên soạn bởi: Mr. Cảnh Phúc Hiệu trưởng ...

Tin tức

Những tên miền Những tên miền "nguy hiểm nhất thế giới" Đó là những tên miền quốc gia Cameroon (.cm), ...
Tạo website trực tuyến, chuyên nghiệp, miễn phí Tạo website trực tuyến, chuyên nghiệp, miễn phí Nhằm phục vụ cho nhu cầu học tập, trao đổi, ...
Thiết kế Website và Làm thế nào để có 1 website ? Thiết kế Website và Làm thế nào để có 1 website ? Để có một website bạn phải tiến hành những ...
Các loại website Các loại website Có rất nhiều loại website nhưng có thể phân ...
Domain là gì ? Domain là gì ? Tên miền (Domain name) là định danh của website ...

Thăm dò

Bạn quan tâm về website ở điểm nào ?