ORM and Code generation for persistent layer – which one is better?

Object Relation Mapping là kĩ thuật ánh xạ từ mô hình hướng đối tượng xuống cơ sở dữ liệu quan hệ.
Code generation for persistent layer là kĩ thuật sinh code từ các bảng cơ sở dữ liệu quan hệ dưới database ra tầng persistent để giao tiếp với hệ quản trị cơ sở dữ liệu. Trong bài viết này tôi không đề cập đến khái niệm code generation chung chung – mà muốn đề cập đến những framework gen code cụ thể cho persistent layer hiện nay như Net Tier.
Đã có rất nhiều người hỏi tôi rằng ORM (Object Relation Mapping) và Code generation for persistent layer – cái nào tốt hơn? Và khi nào thì dùng ORM, khi nào ta nên sử dụng các tool gen code cho persistent layer .
Thực tình mà nói – tôi không dám khuyên bạn sử dụng công cụ nào – nếu tôi không biết dự án bạn đang làm là gì? và nguồn lực bạn đang có ra sao?
Tôi đã đánh hơn 5 dự án sử dụng Hibernate (kể cả NHibernate của .NET), 1 dự án sử dụng iBatis của Java. Với những nền tảng đó – tôi tương đối hiểu sâu về những kĩ thuật và cách thức tương tác với các ORM framework.
Dự án đầu đời mà tôi bắt tay làm – tôi sử dụng MyGeneration (một công cụ gen code) để sinh ra persistent layer cho .NET. Tôi cũng nghiên cứu khá kĩ về các tool gen code đang sử dụng phổ biến trong cộng đồng open source (.NET cũng như Java). Với những kinh nghiệm đó, tôi muốn chia sẻ với các bạn những gì tôi đã từng trải qua. Hy vọng có thể đóng góp được những điều bổ ích và thú vị cho các bạn.
Những ưu điểm và nhược điểm của ORM
Trước tiên ta tạm xét những ưu điểm nổi trội của các framework ORM hiện nay:
Độc lập hệ quản trị cơ sở dữ liệu. Điều này hẳn ai cũng biết – hầu hết các framework ORM luôn được thiết kế để độc lập với các hệ quản trị cơ sở dữ liệu quan hệ. Chỉ cần thay đổi driver tương tác là bạn có thể giao tiếp với một database khác mà không phải thay đổi bất kì dòng code nào.
Cung cấp các API đơn giản – dễ dùng. Lập trình viên không cần phải nhớ mình nên select, update bao nhiêu field cho lọai đối tượng nào, chỉ cần sử dụng thành thạo các hàm Save, Load, Query, Update + một ngôn ngữ query ORM (nếu như framework ORM hỗ trợ – ví dụ ngôn ngữ HQL của Hibernate).
Giúp cho bản thiết kế của bạn gần gũi hơn với lập trình viên – vì đi theo tư duy OOP khi thiết kế entity cho persistent layer. Lập trình viên chỉ cần nắm được sơ đồ thiết kế lớp là đã có thể implement dễ dàng.
Bảng thiết kế sẽ linh động – chi phí trả giá cho việc sửa code khi thay đổi model ít hơn so với sử dụng các tool gencode để sinh ra persistent layer.
Vậy nhược điểm của các ORM là gì?
Nếu thiết kế không đúng cách bạn sẽ trả giá rất lớn về performance.
Các ORM thường gen ra sql để insert, update, query phía bên dưới – nên đôi khi bạn khó can thiệp sâu để optimize performance. Thông thường các ORM framework vẫn hỗ trợ ta gọi câu sql trực tiếp xuống database trong những tình huống cần thiết
Bạn sẽ phải đối đầu với rất nhiều tình huống nan giải mà bất kì ai làm việc với ORM cũng phải gặp qua: cách thức quản lý session truy xuất của ORM – nếu bạn làm việc với Web project, lazy loading, tình huống load tòan bộ database lên nếu không thiết kế đúng cách, …
Để nắm bắt được cách thiết kế tối ưu cho ORM và có thể control được một ORM framework đòi hỏi phải có một thời gian làm việc lâu dài – không phải chỉ trong một sớm một chiều mà đạt được. Vì vậy bạn khó tìm được nguồn nhân sự nắm vững về ORM cho dự án (ở Việt Nam).
Đôi khi bạn sẽ thấy cấu trúc bảng quan hệ bên dưới database rất khó quản lý – nếu như bạn lạm dụng việc kế thừa quá nhiều trong thiết kế class cho ORM.
Những ưu điểm và nhược điểm của việc sử dụng các tool gencode cho Persistent layer
Để dễ đọc tôi tạm viết tắt cụm từ “việc sử dụng các tool gencode cho Persistent layer” thành PLCG – Persistent Layer Code Generation.
Ưu điểm:
Code được sinh ra một cách tường minh – bạn có thể dễ dàng thay đổi và optimize tùy thích.
Ít gặp vấn đề về performance.
Dễ dàng tìm được nguồn nhân sự phục vụ dự án. Chỉ cần người có thể nắm vững các kĩ năng truy vấn database – và người có kinh nghiệm sử dụng code generation tool (cách sử dụng code generation tool cũng rất đơn giản).
Nếu bạn là một người phụ trách việc quản lý dữ liệu trên database – bạn sẽ thấy cấu trúc bảng quan hệ bên dưới “thân thiện hơn và dễ quản lý hơn”.
Nhược điểm:
Khi bạn đối đầu với những cấu trúc phức tạp về model, những quan hệ business rule chằng chịt thì những tool gen code không đủ sức đáp ứng nhu cầu của bạn nữa. Khi đó bạn phụ thuộc rất nhiều vào cấu trúc bảng phức tạp dưới database – khả năng sử dụng tool gen code sẽ ít đi, mà thay vào đó bạn phải viết những hàm xử lý tách biệt nhiều hơn.
Khi cấu trúc của model thay đổi – nếu như bạn đã có sửa đổi code trong các class ở persistent layer, bạn gần như không thể gen code lại mà buộc phải sửa đổi trong các hàm đã gen ra. Điều gì xảy ra – nếu như việc thay đổi không chỉ là thêm/bớt field mà thay đổi cả mối quan hệ phụ thuộc giữa các bảng => Kết quả tất yếu là chi phí sửa đổi code sẽ cao hơn so với sử dụng các framework ORM.
Sau khi phân tích một số ưu khuyết điểm của 2 xu hướng trên, ắt hẳn bạn sẽ hỏi tôi: “vậy khi nào thì dùng cái nào?”… Dưới đây là câu trả lời của tôi.
Uống thuốc đúng liều và đúng cách
Khi nào thì sử dụng ORM
Chỉ sử dụng ORM cho dự án của bạn nếu bạn có người từng có kinh nghiệm về một framework ORM trên 2 năm. (điều kiện tiên quyết)
Nên sử dụng ORM nếu cấu trúc của các đối tượng nghiệp vụ phức tạp – thường xuyên thay đổi.
Sử dụng ORM nếu bạn có thể đánh đổi chi phí phát triển với chi phí upgrade hardware để optimize performance trong tình huống xấu nhất.
Khi nào thì sử dụng PLCG
Khi cấu trúc các đối tượng nghiệp vụ của bạn đơn giản. Phần lớn là ánh xạ 1-1 với các class nghiệp vụ và ít thay đổi.
Nếu bạn không có người expert về ORM để làm dự án (sure – )
Bạn cần tốc độ tối ưu cho ứng dụng nhưng không muốn tốn chi phí cho việc upgrade hardware.
Nếu bạn host một dự án web (ASP.NET) bằng share hosting service thì nên test cẩn thận việc gọi qua lại giữa các dll của ORM và các hàm của ứng dụng Web. (thường bị chặn security level). Nếu không thể gọi được các DLL của ORM tại host đó thì nên chuyển qua host khác hoặc viết lại Persistent layer sử dụng các tool gen code

Bước chân vào thế giới lập trình

Thế là bạn nghĩ rằng lập trình là một thế giới vô cùng thú vị, và bạn muốn tham gia vào thế giới ấy?

Trước khi bạn bắt đầu, điều duy nhất mà tôi muốn khuyên là: nếu bạn thực sự yêu thích lập trình thì đó rõ ràng đó là công việc tốt nhất mà bạn có thể có được. Ngược lại, nếu bạn chỉ cảm thấy thích, hay không quan tâm lắm đến lập trình, thì đó rõ ràng là công việc tồi tệ nhất của bạn. Bởi vì bạn đang gia nhập vào một thế giới mà sự cạnh tranh luôn là nỗi ám ảnh không thể tránh khỏi. Phát triển phần mềm gần như là một cuộc đua tranh. Trong đó, cuộc sống của bạn là một con đường và bạn phải chạy càng nhanh càng tốt, không cần biết dưới chân có gì, cho đến khi gặp đồng bằng hoặc là đụng phải vách đá cheo leo. Nếu bạn sẩy chân, mọi thứ kết thúc, và đó hoàn toàn là lỗi của bạn. Nghe có vẻ hơi ghê gớm đúng không? Nhưng đừng để những điều đó làm bạn nản lòng. Tôi chỉ không muốn vẽ nên một viễn cảnh tươi đẹp, nơi có những cánh đồng xanh ngút ngàn và những đám mây lững lờ trôi trên nền trời xanh thẳm. Thực tế là có thể chỉ vài phút sau đó trời sẽ mưa và bạn thì chẳng mang theo dù. Thế nhưng, chính những điều không chắc chắn, những thách thức và áp lực sẽ làm cho cuộc sống trở nên đầy hứng thú.

Bạn vẫn còn đọc đến đây ư? Rất tốt, thế có nghĩa là bạn hoàn toàn nghiêm túc về điều này. Bây giờ điều tôi sẽ nói với bạn là một bản phác thảo về những gì đang chờ đợi bạn trong thế giới lập trình, chúng ta sẽ nói một ít về kỹ thuật và cả những niềm vui của thế giới ấy.

Bạn cần gì để trở thành một lập trình viên? Tôi không nghĩ rằng có một vài yêu cầu khó khăn nào đó khiến bạn không thể trở thành lập trình viên, tôi chỉ đơn giản nghĩ rằng bất cứ ai có một ít (hay rất nhiều) mong muốn đều có thể trở thành lập trình viên. Vấn đề chỉ là bạn dành ra bao nhiêu thời gian. Điều đó có nghĩa là tôi nghĩ có nhiều quan niệm sai

lầm về những kỹ năng cần có để trở thành lập trình viên. Trước tiên, bạn không cần phải thật xuất sắc trong môn Toán, bạn chỉ cần có khả năng hiểu được những điều cơ bản. Dĩ nhiên là có những ngoại lệ, nếu bạn có hứng thú trong lĩnh vực đồ họa hay lập trình game thì một kiến thức Toán vững vàng sẽ giúp bạn rất nhiều. Một quan niệm sai lầm khác là bạn cần phải là thiên tài logic. Nói chung, điều đó không phải là bắt buộc, dĩ nhiên tư duy logic càng tốt thì càng dễ dàng hơn khi tiếp cận thế giới lập trình. Vậy thì kỹ năng nào là cần thiết? Bị thúc đẩy bởi những thách thức là yếu tố quan trọng nhất. Đơn giản là vì bạn đang tham gia vào một trò chơi trong đó thách thức xuất hiện trong mọi ngõ ngách. Một điều quan trọng khác là phải không ngừng theo đuổi mục tiêu, nhưng vẫn phải luôn uyển chuyển để không đuổi theo một cách mù quáng những mục tiêu xa vời.

Còn trường học thì sao? Trường học là nơi tuyệt vời để học mọi thứ ngoại trừ công nghệ. Đừng cho là tôi sai, tôi không nói rằng tôi nghĩ trường học là không quan trọng. Ngược lại, tôi nghĩ trường học là rất quan trọng, nhưng không phải để học lập trình. Những gì bạn nên tập trung thật sự ở trường là học cách để làm việc với những người khác trong một đề án. Cũng như học cách những người xung quanh giải quyết vấn đề và cách thức giải quyết của họ khác cách của bạn ở chỗ nào. Trường học thường bắt bạn phải làm những thứ có thể bạn không thích. Chẳng hạn, tôi nhớ lúc tôi học môn “Thiết kế trình biên dịch”, tôi tự nhủ: “Thật là mất thời gian một cách vô ích, tôi chẳng bao giờ cần phải thiết kế trình biên dịch làm gì”. Nhưng, điều tôi đã học được là làm thế nào để giải quyết những vấn đề hoàn toàn khác nhau, và kiến thức này giúp tôi làm được nhiều việc khác. Một trong những thuận lợi bạn có được từ trường học là bạn có thể gặp gỡ bạn bè có cùng chí hướng và có thể sau này trở thành đồng nghiệp của bạn. Ngành công nghiệp phần mềm ở nhiều khía cạnh rất giống với ngành công nghiệp điện ảnh, khi có ai đó bị lôi cuốn vào một đề án đầy tham vọng, họ thường mời bạn bè cùng hợp tác. Nếu bạn không biết họ từ trước, bạn sẽ không thể mời (hay thuê), và trong nhiều trường hợp, trường học chính là nơi bạn có thể tìm được những người có cùng sở thích. Một khía cạnh khác không thể bỏ qua là trường học không chỉ dạy về kỹ thuật mà còn dạy về lịch sử, về tâm lý,… Và trong khi những thứ ấy có vẻ không liên quan trực tiếp đến lập trình, bạn có thể sẽ rất ngạc nhiên nếu biết rằng đó cũng là một trong những nguồn cảm hứng mà tôi từng có.

Tôi nên bắt đầu từ đâu? Trước tiên, tôi khuyên là bạn nên cân nhắc cẩn thận trước khi có một quyết định quan trọng. Như tôi đã nói, thế giới lập trình có thể rất lý thú, nhưng cũng đầy gian nan. Do đó, đừng bao giờ nhảy bổ vào mà không suy nghĩ kỹ. Việc đầu tiên cần làm dĩ nhiên là tìm mua một cuốn sách dạy lập trình. Nhưng có quá nhiều sách và quá nhiều ngôn ngữ. Tôi khuyên bạn nên chọn một trong các ngôn ngữ sau: C, C++, Visual Basic, Pascal (Delphi) hay Java. Khoan hãy nghĩ đến những ngôn ngữ khác, bởi vì chúng hoặc là quá phức tạp cho người mới bắt đầu hoặc là quá đơn giản để có thể đưa bạn vào thế giới lập trình. Nhưng dù thế nào thì bạn cũng nên chọn một ngôn ngữ vào thời điểm này. Những ngôn ngữ này rất giống nhau, và vô cùng mạnh mẽ. Hầu như mọi ứng dụng thương mại đều có thể được viết bởi một trong những ngôn ngữ trên. Phương pháp của tôi là chọn 2 quyển sách cho mỗi ngôn ngữ đã nêu ở trên. Đọc sơ qua trước, và chú ý các ví dụ, mã nguồn trong đó. Sau khi đã đọc sơ qua tất cả các quyển sách đã chọn, hãy chọn quyển sách gây cho bạn nhiều hứng thú nhất. Và ngôn ngữ mà quyển sách đó đề cập chính là ngôn ngữ bạn nên học đầu tiên. Bây giờ hãy chọn thêm vài quyển sách về ngôn ngữ đó, mỗi quyển, bạn hãy đọc một phần chương đầu tiên, bạn có cảm thấy quan tâm đến nó không? Nếu không, hãy bỏ quyển sách ấy và chọn một quyển khác; nếu có, hãy lật đến giữa quyển sách và một phần chương mà bạn bắt gặp, vẫn cảm thấy quan tâm đến quyển sách ấy đúng không? Tốt, đó là quyển sách có thể bạn sẽ chọn. Đừng cố hiểu nó viết cái gì, chỉ cần tìm hiểu xem nó có mang đến cho bạn sự quan tâm về ngôn ngữ đó hay không. Tiếp tục phương pháp này cho đến khi không còn quyển sách nào cả, bạn có thể tìm được quyển sách gây cho bạn nhiều hứng thú nhất để học ngôn ngữ đó.

Những công cụ cần thiết Hãy nhìn thẳng vào vấn đề, chọn đúng công cụ sẽ làm cho công việc trở nên dễ dàng hơn. Điều này càng chính xác hơn trong lĩnh vực phát triển phần mềm. Có thể Microsoft đã tạo ra môi trường phát triển tốt nhất, Microsoft Developers Studio. Do đó, nếu bạn dùng C/C++, Visual Basic,… thì có lẽ đây sẽ là thứ bạn cần. Tuy nhiên, vẫn có nhiều công cụ thay thế miễn phí khác cho những ngôn ngữ này. Bạn có thể kiểm tra thử nếu thích.

Một công cụ khác cũng rất quan trọng, đó là trình soạn thảo mã lệnh (code editor). devStudio có một trình soạn thảo mã lệnh tích hợp sẵn, và đó là một trong những lý do khiến nhiều người dùng nó. Cá nhân tôi không thích bị ràng buộc bởi một môi trường phát triển nào. Do đó, tôi thích dùng công cụ soạn thảo MultiEdit Tôi đã sử dụng nó trong nhiều năm. Và tôi rất tự hào khuyên những ai muốn tìm một công cụ thay thế cho DevStudio hãy dùng nó. Hãy là người lạc quan Tôi từng nghe người ta nói rằng kẻ lạc quan nhất trên thế giới chính là nhà phát triển phần mềm. Trong suy nghĩ của họ, không có phần mềm nào là không thể viết được. Một ví dụ nhỏ, bạn hãy vào thử một site download phần mềm nào đó mà xem. Có hàng trăm hàng ngàn phần mềm bao gồm mọi lĩnh vực. Làm thế nào mà người ta có thể sáng tạo ra từng ấy phần mềm. Chúng nhiều và tốt đến nỗi bạn không thể nghĩ ra nên sáng tạo thêm phần mềm nào. Thế nhưng từng ngày từng giờ, các nhà phát triển phần mềm luôn sáng tạo và cho ra nhiều phần mềm mới hơn nữa, những phần mềm mà đã có thời người ta cho là không thể tạo ra được. Dù sao thì lạc quan mấy cũng phải có giới hạn. Mấu chốt của vấn đề là họ không nhìn mọi thứ một cách tổng thể, mà ở từng phần cụ thể. Ở một chừng mực nào đó, có thể xem đấy là đặc trưng của ngành thiết kế phần mềm, chia dự án ra thành những phần nhỏ và giải quyết từng phần. Nếu bạn không phân phối thời gian hợp lý, bạn sẽ không thể nào hoàn thành công việc. Khi bạn bắt đầu viết chương trình “thực sự” đầu tiên (nghĩa là chương trình có thể thực hiện được một công việc nào đó cần thiết cho mọi người, không phải cho riêng bạn), phải chắc chắn rằng bạn dành đủ thời gian để vạch ra kế hoạch về những việc bạn định làm, thứ tự thực hiện, và kết quả cuối cùng là gì. Nếu bạn làm điều này, bạn sẽ thấy mọi thứ trở nên dễ dàng hơn và có thể hoàn thành nhanh hơn là bạn nghĩ. Hãy làm việc theo nhóm! Nếu bạn dự định trở thành một lập trình viên đơn độc, hãy suy nghĩ lại. 99,9% các dự án đòi hỏi phải làm việc theo nhóm. Và do đó, bạn cần phải có kinh nghiệm làm việc theo nhóm, phối hợp với những người khác trong một dự án. Một khi bạn đã hoàn thành những dự án nhỏ của riêng mình, đó là lúc bắt đầu tìm cách tham dự vào một dự án có nhiều người tham gia. Đó có thể là một game, một bản demo, hay bất cứ thứ gì. Chỉ cần đó là dự án làm bạn quan tâm. Có nhiều các để tìm dự án, bạn có thể gia nhập vào những dự án đã có, tìm kiếm những nhóm vừa mới thành lập và xin gia nhập, hay thậm chí tự lập một dự án và mời người khác cùng cộng tác. Điều quan trọng nhất là bạn phải học cách làm việc cùng với những người khác để thực hiện mục tiêu chung.

Những thứ nên đọc! Đọc sách là nguyên tắc cơ bản… Và điều này càng chính xác trong ngành phát triển phần mềm. Nếu bạn là người không thích đọc sách, có lẽ bạn nên chọn một công việc khác. Bởi vì đọc sách chính là chìa khóa để củng cố và hiện thực hóa những tiềm năng của bạn. Bạn có thể tự hỏi vì sao tôi có thể viết nhiều phần mềm trong thời gian ngắn như thế? Có 3 lý do chính: kinh nghiệm, những đồng nghiệp tài năng mà tôi luôn hài lòng khi được làm việc chung và cuối cùng là những quyển sách tôi đã đọc. Tôi không thể giúp bạn có được kinh nghiệm và những bạn đồng nghiệp giỏi, nhưng tôi có thể giới thiệu cho bạn những quyển sách hay:

Code Complete:
Đây là quyển sách cần thiết cho mọi nhà phát triển phần mềm, bất kể họ đang dùng ngôn ngữ lập trình nào. Nó bao gồm nhiều bài thực hành và nhiều kỹ thuật liên quan đến phong cách viết mã.
ISBN: 1-55615-484-4

Rapid Development:
Quyển sách này hướng đến việc lập kế hoạch cho một dự án, tập trung vào những lỗi tiềm ẩn có thể mắc phải,… Đây là quyển sách cho bạn biết thế giới thực sự của ngành phát triển phần mềm.
ISBN: 1-55615-900-5

Dynamics of Software Development:
Quyển sách này có một hướng tiếp cận khác, tập trung vào việc làm việc theo nhóm và động lực của việc lập trình. Đây là điều thỉnh thoảng bị xem nhẹ, và hậu quả có thể được thấy trong nhiều dự án bị thất bại.
ISBN: 1-55615-823-8

The Mythical Man-Month
Đây thực sự là một quyển sách nên đọc. Dù rằng nó đã được viết cách đây hơn 20 năm, thế nhưng vẫn có nhiều điều có thể áp dụng.
ISBN: 0-201-83595-9

Programming Windows
Nếu bạn có ý định lập trình trên Windows (bằng C hay C++), bạn cần phải mua quyển sách này. Theo tôi đây là quyển sách dạy lập trình Windows tốt nhất.
ISBN: 1-57231-995-X

The Art of Ware
Tôi là một người hâm mộ cuồng nhiệt Tôn Tử, do đó tôi rất thích thú khi đọc quyển sách này. Đây là một quyển sách có phong cách viết rất lôi cuốn, với những bài học trong binh pháp Tôn Tử được vận dụng vào ngành phát triển phần mềm.
ISBN: 1-55851-396-5

NgoHung

Phương pháp học tập ở bậc đại học

Tôi nhận được những chia sẽ này trong một bài nói chuyện về phương pháp học tập ở bậc ĐH, tôi xinh chia sẽ mọi người.
1. Tự học

® Ghi chép: ở lớp, ở thư viện, ở các seminars, ở viện bảo tàng, khi đi tham quan… tập quan sát và ghi nhận thông tin

® Tìm tài liệu: qua sách báo, trên internet; trong thư viện của trường; ở nhà… à tập nhận biết và chọn lọc thông tin

® Đọc tài liệu: đọc ý chính, đọc nhanh và nắm bắt ngay nội dung, gạch dưới những ý chính trong tài liệu à tập phân loại thông tin

® Tóm tắt tài liệu/thông tin: chỉ ghi những ý cần thiết, tránh dài dòng à tập diễn đạt ngắn gọn và xúc tích

2. Học tập theo nhóm

® Lập lịch họp nhóm

® Phân công giữa các thành viên

® Ghi chép và trao đổi thông tin

® Tranh luận và bảo vệ ý kiến

® Tham khảo chuyên gia hoặc giảng viên

3. Thực tập

® Nhận giấy giới thiệu và liên hệ nơi thực tập

® Tuân thủ nội quy thực tập/làm việc tại đơn vị

® Quan sát, học hỏi kinh nghiệm và nêu thắc mắc, không ngại khó

® Viết báo cáo

(Sưu tầm)

Muốn làm CNTT – phải có đam mê và định hướng cụ thể

Giám đốc Cty CMC Nguyễn Trung Chính đã khẳng định như vậy trước hàng nghìn sinh viên trong buổi giao lưu với chủ đề “Làm thế nào để gia nhập các công ty CNTT hàng đầu Việt Nam” diễn ra hôm 24-10, tại Đại Học Bách Khoa Hà Nội. Đây là một phần của chương trình trong ngày hội mang tên “Hướng đi mới trong đời sống và học đường”, do báo Tuổi Trẻ cùng Hãng máy tính Intel tổ chức.

Đúng 8 giờ sáng 24-10, tiền sảnh nhà C1 ĐH Bách Khoa chật kín sinh viên từ rất nhiều trường học ở Hà Nội về tìm hiều công nghệ mới, tranh tài trong các cuộc thi soạn nhạc, thuyết trình về tương lai CNTT và giao lưu với các chuyên gia CNTT hàng đầu…

Mặc dù Ban Tổ chức đã bố trí rất nhiều máy tính nối mạng và báo phát nhưng dường như vẫn không đủ để áp ứng nhu cầu của các bạn tham dự.

Các sinh viên đã liên tiếp đặt câu hỏi sau những phần giới thiệu công nghệ, thuyết trình hỏi đáp của Intel, Microsoft như: tại sao phải thi chứng chỉ Microsoft, làm thế nào để kết nối mạng không dây…Đặc biệt, phần giao lưu “Làm thế nào để gia nhập các công ty CNTT hàng đầu Việt Nam” đã thu hút rất nhiều bạn trẻ.

Không khí trở nên sôi nổi hẳn lên khi Giám đốc FPT Software Nguyễn Thành Nam và Giám đốc điều hành CMC Nguyễn Trung Chính trả lời nhiều câu hỏi thiết thực của sinh viên về các hình thức đào tạo và điều kiện tuyển dụng, bí quyết dùng người và cách làm thế nào để trở thành người quản lý giỏi.

Chia sẻ về những băn khoăn với các bạn trẻ đang còn ngồi trên ghế nhà trường về cách trở thành người tài giỏi về CNTT, ông Nguyễn Trung Chính đưa ra lời gợi ý: “Trước hết cần phải có niềm đam mê, có định hướng cụ thể để biết mình muốn gì, cần gì và có quyết tâm thực hiện nó. Ví dụ bạn muốn làm quản trị mạng, thì bạn nên tìm hiểu mình phải bắt đầu từ đâu, cần phải luyện gì, thi những chứng chỉ gì để sau này ra trường có thể thể hiện khả năng của mình trước nhà tuyển dụng”.

Ông Chính cũng khuyên rằng “các bạn trẻ đừng ngần ngại thử sức mình vào những vị trí khó, và nên coi việc tiếp xúc với các doanh nghiệp là hoạt động cần thiết và bổ ích để phát triển khả năng mình”.

Nói về tiêu chuẩn khi tuyển dụng nhân viên, ông Chính cho biết: “Nhiều bạn trẻ không đạt điểm cao trong quá trình đi học, nhưng mạnh dạn, tự tin thể hiện được khả năng của mình qua các đề tài, kinh nghiệm đều được đánh giá cao”.

Không chỉ có những câu hỏi liên quan đến vấn đề tìm việc, cách tuyển dụng của các doanh nghiệp, nhiều sinh viên còn đặt ra nhiều câu hỏi rất hắc búa đối với Giám đốc FPT Software Nguyễn Thành Nam.

Chẳng hạn như làm cách nào từ một lập trình viên có thể trở thành người quản lý giỏi. Cách dùng người thành công của doanh nghiệp… Mặc dù không giải đáp hết thắc mắc của các em, nhưng hầu hết các chuyên gia đều đã đưa ra được rất nhiều kinh nghiệm bổ ích giúp các em có thể chuẩn bị tốt hơn cho tương lai.

“Chính từ buổi giao lưu này chúng em có thêm kinh nghiệm và định hướng cho tương lai. Em coi đây là cơ hội tốt để học hỏi và khám phá bản thân mình”, Trung – một nam sinh viên – bộc bạch.

(TuoiTre)

Tôi muốn trích đăng lại tin ngắn trên từ báo TuoiTre khi thấy bài viết có một tựa đề khá thú vị và bổ ích cho nhiều người cũng như chính bản thân tôi. Từ đó mình cũng có điều kiện nhìn nhận lại vấn đề như cuộc sống, công việc cũng như đam mê và định hướng.

Những cột mốc trong cuộc sống mỗi người:

1. Tuổi thơ dữ dội: Tùy theo mỗi người mà tuổi thơ dữ dội của chúng yta có thể là từ Đại học chữ to (Mẫu giáo) cho đến Đại học chữ nhỏ (khoảng cuối cấp 1, hoặc cấp 2). Lứa tuổi chỉ bết học mà chơi và chơi mà học. Tuổi này là tuổi tinh nghịch hồn nhiên, nhí nhảnh.

2. Tuổi mộng mơ: Tuổi này rơi trọng tâm vào lứa tuổi cấp 3 – PTTH. Lứa tuổi mộng mơ và những hoài bão của mình.

3. Giai đoạn học tập & phát triển công việc: Khởi đầu là một anh chàng sinh viên, cũng có thể là một anh chang học việc. Gia đoạn vùa học vừa làm và rồi trau dồi kiến thức và kinh nghiệm để phát triển nghề nghiệp của mình.

4. Lứa tuổi với những định hướng gia đình: Tùy theo vùng (nông thôn / thành thị), tùy theo trình độ học vấn mà gia đoạn này có thể đi cùng với giai đoạn (3) hay là đi sau nó vài năm.

5. Về đích trong công việc, chăm lo mái ấm gia đình …. đến về già: ……

Với bài viết này, tôi chỉ muốn tấp trung vào định hướng nghề nghiệp, những nhân tố ảnh hưởng đến nó, tức là ở giai đoạn thứ 3, lứa tuổi của các bạn trẻ như tôi và các bạn trẻ đang định hình cho công việc, hướng đi của chính mình.

Muốn làm CNTT – phải có đam mê và định hướng cụ thể

Chỉ CNTT thôi ư, không những CNTT mà bất cứ ngành nghề nào thì khi làm việc cũng cần phải có đam mê và định hứng cụ thể. Có được những yếu tố đó nó giúp cho chúng ta biết minh đang đứng tại vị trí nào và tương lai mai này rồi sẽ ra sao. Tôi nghe được câu này: “Chẳng biết ngày sau có ra sao, dù có ra sao cũng chẳng sao“, triết lý đấy nhưng tôi không đồng ý với ý kiến đó. Chủ nghĩa bình quân làm con người ta nhụt chí, không định hướng cho bản thân mình.

Nguồn : http://blog.360.yahoo.com/blog-XckJEY8_fKl68a_VSVflbIEYqQ–?cq=1&l=41&u=45&mx=229&lmt=5

Tối ưu hóa cú pháp CSS với CleanCSS

Vào website này để thực hiện tối ưu hóa cú pháp CSS. Đã test thấy hấp dẫn lắm hihi

http://www.cleancss.com/

Nhìn lại ngành CNPM Việt Nam

Lâu rồi không quan tâm đến IT Việt Nam; quan tâm theo cách nhìn tổng quát top-down, ko phải kiểu bottom-up, ví dụ: Khoa CNTT nên xài mã nguồn mở, SV nên thế này, nên thế kia. Đọc bài của GS. Hiền tự nhiên thấy ngộ ra được nhiều điều.

Thử làm một số điều tra nhỏ về sản phẩm của các công ty ở VN, thấy rõ nhất là khá nhiều công ty ra đời lấy gia công phần mềm làm bước khởi đầu. SELab của HCMUNS cũng đặt gia công phần mềm làm một trong các dịch vụ chính (đưa SELab làm ví dụ ở đây vì SELab xuất phát từ môi trường học thuật, có thể nghiên cứu và làm ra các sản phẩm tiên tiến). Đã là gia công phần mềm thì không có chuyện tôi làm ra cái này, tôi làm ra cái kia. Ví dụ, VTechMate dù viết phần mềm cho các dịch vụ của các máy điện thoại SoftBank ở Nhật nhưng cũng chỉ có thể nói tham gia vào dự án đó mà thôi, sản phẩm thì chỉ có SoftBank mới được phép nói rằng, đó là sở hữu của tôi.

Gia công phần mềm mang lại lợi nhuận thế nào và tương lai ra sao. Tôi không đủ số liệu và kinh nghiệm để đánh giá. Lần trước gặp một người bạn, anh ta nói với tôi, cứ hình dung gia công giống như mình đi gặm xương vậy. Mình nghèo nên gặm xương vẫn sống được, thậm chí vẫn đủ no. Nhưng tương lai, khi nhiều người cùng gặm xương, thì lúc đó để đủ no, phải nỗ lực nhiều hơn. Trong lĩnh vực gia công, lĩnh vực may mặc đi trước phần mềm rất nhiều. Việt Tiến là một ví dụ. Trước kia chỉ là gia công, giờ có thêm bộ phận nghiên cứu để thiết kế mẫu mã thời trang mới. Nói vậy để thấy, làm gia công trong tương lai sẽ rất khó sống.

Nhìn qua các sản phẩm của các công ty VN. Trong lĩnh vực phần mềm phục vụ cho kinh doanh trực tuyến, hầu như là đi theo các luồng sản phẩm đã có ở nước ngoài. Ví dụ, CMS – quản trị nội dung, thương mại điện tử, mạng xã hội, chia sẻ video và ảnh, tìm kiếm nhạc. Nguồn thu từ những dịch vụ này có lẽ là quảng cáo. Tuy nhiên, với sự thâm nhập của các ông lớn như Yahoo, Google, thị phần quảng cáo dành cho các công ty VN cũng có thể sẽ phải thu hẹp lại trong tương lai.

Về mặt kĩ thuật, tôi nghĩ rằng, viết mấy chương trình kiểu cms, thương mại điện tử, mạng xã hội, chia sẻ nội dung như liệt kê ở trên không quá khó. Chỉ cần có kĩ năng lập trình cực tốt, hiểu biết về cơ sở dữ liệu, hệ thống phân tán là có thể hiện thực được. Do đó, nếu lập công ty mới, thì vấn đề chính nằm ở chiến lược kinh doanh kia, chứ ko phải nằm ở kĩ thuật. Bởi vì, để có nhân lực có kĩ năng lập trình tốt, có thể vào các đơn vị đào tạo là có thể kiếm được. Nói như vậy để thấy, nếu bạn muốn thu lợi từ Internet, chỉ có ý tưởng kinh doanh tốt là đủ. Phần kĩ thuật, bạn có thể thuê lại hoặc tìm đối tác.

Tôi thì vẫn hứng thú với sự ra đời của các công ty có những sản phẩm/công nghệ khác với những công nghệ thông thường đã có kia. Ví dụ, khi mọi người tập trung vào thiết kế website, kinh doanh thương mại điện tử, Alexa cho ra đời công cụ TrafficRank. Những ý tưởng mới là những ý tưởng đặt trên nền tảng giả thiết rằng, giả sử chúng ta đã có nhiều sản phẩm thông dụng X, Y, Z rồi, và từ đó phát triển các giá trị gia tăng trên đó kiểu như Alexa đã làm.

Tạm dừng ở đây đã.

Theo Lê Đình Duy’s blog

10 dự án lập trình viên PHP nên trải qua

Đối với một lập trình viên PHP bạn luôn hiểu rằng PHP là một ngôn ngữ phổ biến và có một lượng khổng lồ mã nguồn để tham khảo, đa số các thành phần của một Website đã được phát triển dưới dạng nguồn mở việc sử dụng nó yêu cầu tuân thủ theo giấy phép của tác giả đôi khi không bao gồm sự ràng buộc nào. Việc mở mã nguồn mang lại rất nhiều lợi ích so với việc bạn giữ mã nguồn của mình trừ trường hợp thương mại hóa sản phẩm, đơn cử như:

  • Mã nguồn mở được đóng góp bởi nhiều người, kết quả của sản phẩm được làm bởi nhiều người sẽ tốt hơn rất nhiều so với việc bạn phát triển một mình.
  • Dễ dàng cập nhật tính năng mới dựa trên sự đóng góp mã nguồn của các nhà phát triển khác nhau.
  • Giảm thời gian phát triển, giảm giá thành sản phẩm…
  • và nhiều lợi ích khác nữa…:)

PHP Module

Tớ đã làm việc với PHP trong khoảng 4 năm trở lại đây, bản thân là một Freelance Developer nên không tự cho rằng mình là Master PHP bởi tớ luôn sử dụng PHP như một thành phần phát triển theo ý thích chứ không tâm niệm mình phải làm chủ được ngôn ngữ đó :D
Những dự án dưới đây là những thành phần phổ biến của một Website, tính thông dụng của nó như là một bắt buộc phải biết đối với Web Developer.

  • Gửi eMail: Đây là tính năng phổ biến nhất của mọi Website, hàm mail(); là đủ cho hầu hết các yêu cầu khác nhau của người dùng, ngoài ra PHP còn hỗ trợ một số hàm khác nếu bạn muốn đính kèm tập tin hay gửi mail của SMTP server để có thể dễ dàng tạo một chương trình gửi eMail.
  • Hỗ trợ người dùng: cho phép cá nhân hóa nội dung Website, có thể đa sở hữu, phân cấp quyền quản lý thông tin của cá nhân cũng như các nội dung khác. Tính năng chính của thành phần này hỗ trợ việc đăng nhập, truy vấn sửa đổi cơ sở dữ liệu, phiên làm việc…
  • Tạo RSS, tin rút gọn Feeds: Thời điểm hiện tại Website của bạn sẽ được đánh giá là tụt hậu nếu không hỗ trợ Feed trong việc cung cấp thông tin, lấy tin bằng Feed cho phép người dùng đơn giản hóa việc theo dõi nội dung của một Website nào đó. Tớ sử dụng Magpie RSS trong phần lớn các dự án của mình.
  • Xác định vị trí: xác định vị trí địa lý của người dùng đơn giản nhằm thống kê lượng người truy cập nội dung từ nước nào để có thể phục vụ tốt hơn, tính năng này không thật sự quan trọng nhưng đôi khi lại khá hiệu quả nếu bạn muốn biết người của nước nào hay vào Website mình nhất :D
  • Lấy thông tin từ xa: truy vấn thông tin từ nhiều nguồn khác nhau, thích hợp với một cổng thông tin tổng hợp, các nội dung này được lưu vào cơ sở dữ liệu.
  • Lưu tạm dữ liệu {Cache data}: giảm truy vấn tới cơ sở dữ liệu, tránh quá tải hệ thống do phần lớn các dự án cá nhân không được tối ưu về mã nguồn cũng như hiệu xuất làm việc, lưu tạm dữ liệu là một giải pháp đơn giản đề tối ưu hệ thống Website có thể hoạt động ổn định.
  • Hệ thống giao diện: Dễ dàng thay đổi giao diện Website, đơn giản hóa quá trình thiết kế, giảm công sức tạo lập Website mới. Một hệ thống giao diện tốt không có nghĩa là phải đầy đủ tính năng mà chỉ cần đáp ứng được đúng nhu cầu sử dụng, tốt nhất là bạn nên tự viết sẽ hoàn hảo hơn sử dụng của người khác, theo tớ thì Hệ thống giao diện gần như là nhân {core} của một hệ thống quản lý nội dung. Tiêu biểu như Smarty của PHP
  • BBcode: Tính năng thường thấy của các diễn đàn, nó đơn giản hóa việc trình bày nội dung giúp người sử dụng thông thường có thể tạo một văn bản chuyên nghiệp mà không cần biết về mã HTML, khách hàng của bạn sẽ dễ dàng sử dụng nó như một ứng dụng văn phòng mà thôi. Hãy thử StringParser_BBcode vì nó rất dễ tùy biến theo ý muốn của bạn.
  • Hệ thống truy vấn cơ sở dữ liệu: Cơ sở dữ liệu là phương án tối ưu nhất để lưu trữ dữ liệu của bạn, dữ liệu của bạn có thể lưu trong một hệ CSDL lớn như Mysql hay đơn giản như là một Text file thì hệ thống truy vấn cơ sở dữ liệu sẽ hỗ trợ việc truy vấn dữ liệu, đơn giản và giản lược mã nguồn đi rất nhiều, giảm bớt công sức viết mã nguồn. Cũng như hệ thống giao diện nó là một trong những thành phần quan trọng nhất của tớ khi viết một dự án Web. Hãy thử ezSQL để giảm bớt khai báo truy vấn cho từng query của bạn.
  • Môi trường nhập liệu văn bản: Về cơ bản nó là một dạng xử lý nội dung form được hỗ trợ bở Javascript và kết hợp BBCode nhằm phục vụ người dùng một cách tốt nhất có thể, mục đích của nó là cố gắng mô phỏng môi trường làm việc như các ứng dụng văn phòng. FCKEditor là một ví dụ đơn giản nhất :)

Mỗi người một quan điểm khác nhau nhưng ít nhiều ai cũng từng phải làm việc qua một trong những dự án trên, 10 thành phần đó không phải là toàn bộ mà chỉ là thông dụng thôi. ;)

Theo narga.net

Thế nào là một lập trình viên php chuyên nghiệp

Nguồn: http://blog.vnext.vn/?p=18

Cùng là lập trình PHP, nhưng điều gì tạo ra sự khác biệt giữa 1 lập trình viên PHP chuyên nghiệp, và 1 lập trình viên PHP “mới vào nghề”, hoặc “vào nghề lâu nhưng không chịu bước lên chuyên nghiệp”? Sau đây là 1 số đặc điểm của người chuyên nghiệp. (Số điểm là tôi tự cho, bạn được mấy điểm nhỉ?)

  • PHP5 vs PHP4: phải kể ra ít nhất 3 tính năng quan trọng tạo ra sự khác biệt giữa hai phiên bản này. (5)
  • Mạng: có khả năng lập trình socket, hoặc ít nhất cũng hiểu cách kết nối đến các máy khác. (2)
  • OOP: hiểu sâu về LT HĐT để có thể trả lời vài câu hỏi đơn giản, thí dụ các phương thức private và protected khác nhau thế nào. Phải hiểu (không nhất thiết phải dùng hết) các khái niệm: interface, constructor, private/public/protected, kế thừa, đa hình, phương thức tĩnh. (7)
  • CSDL: hiểu thế nào là một CSDL được chuẩn hóa, hiểu về các khóa chính và khóa ngoại. (5)
  • Design patterns: không nhất thiết lúc nào cũng phải dùng, nhưng quan trọng là phải hiểu tại sao nó có ích. (3)
  • Quản lí mã nguồn (source control): ít nhất nhất một hệ thống quản lí mã nguồn (chứ không phải là zip các tập tin rồi lưu vào thư mục tạm nào đấy). Điểm thưởng cho ai chỉ ra ít nhất 1 khuyết điểm của CVS. (2)
  • Unit Testing: hiểu thế nào là unit testing, tại sao nó quan trọng. Điểm thưởng cho test driven design, unit test javascript, biết sử dụng Selenium. (2)
  • Tham gia vào cộng đồng: tôi có thể google vài thứ hay ho mà bạn làm với PHP hoặc các công nghệ web, cẩn thận nếu tôi không thể google được gì về bạn. Điểm thưởng nếu bạn có tham gia vào một đề án nào đó. (3)
  • Kĩ năng javascript: biết cách làm việc với DOM (appendChild, removeChild, nextSibling, v.v…), biết tạo lớp riêng trong JS, điểm thưởng nếu biết tạo biến cục bộ trong javascript. (3)
  • Kĩ năng CSS: biết về mô hình hộp (box model) của CSS , hiểu các CSS selector và cách kế thừa. (3)
  • Đam mê cải tiến: yêu những gì bạn đang làm. Biết tạo cho mình những kĩ năng riêng và trở nên có giá trị hơn. (7)

Quy trình làm web

Nhằm tăng cường sự phối hợp trong đội ngũ làm web với nhau cũng như với “người đặt hàng” (có thể là khách hàng, sếp, hoặc đồng nghiệp khác của bạn, hoặc có thể là chính bạn – nếu bạn tự thực hiện ý tưởng của mình), dựa trên kinh nghiệm bản thân và tham khảo 1 blog khác, tôi viết (/dịch) bài viết này.

Quy trình làm web trong thực tế được quy thành 16 bước như sau.


BƯỚC 1: THẢO LUẬN CHUNG

Đầu tiên là quá trình chát-chit, nói chuyện với sếp hoặc khách hàng .

Đầu tiên bạn (có thể 1 mình bạn đảm nhận vai trò của cả designer và programmer, hoặc bạn là trưởng nhóm) cần phải xác định quy mô công việc, cũng như xác định rõ vai trò, trách nhiệm (ai sẽ người chuẩn bị nội dung, hình ảnh, ai sẽ lo về hosting, tên miền, upload, bảo trì, những việc mà vốn dĩ, CÓ THỂ không phải là của bạn)


BƯỚC 2: PHÁC THẢO TỔNG THỂ.

Mọi người sẽ thảo luận (brainstorming) về cấu trúc của website. Ở đây ta phải thống nhất về khái niệm design (thiết kế). Thiết kế không phải chỉ là những gì được nhìn thấy (look and feel) mà bao gồm cả chức năng. Phần việc này trách nhiệm sẽ đặt nặng lên đôi vai của designer (dù thực tế là khách nói sao thì vẫn phải làm vậy thôi, nhất là ở VN).

Chúng ta sẽ làm rõ. Điều gì là quan trọng nhất cho site, mục đích của site là gì, người xem là ai, điều gì không quan trọng, mỗi trang cần có gì. Tùy vào quy mô của website, có thể phải vẽ ra cả sitemap đưa cho khách hàng.


BƯỚC 3: CHUẨN BỊ KHUNG SƯỜN

Khung sườn ở đây là xương sống của website, tức là các chức năng, các liên kết, và nội dung các phần của trang web cuối cùng. Nhớ rằng ta KHÔNG SỬ DỤNG HÌNH ẢNH trong phần này.

Với site quy mô nhỏ, phần này có thể vẽ tay, hoặc dùng Illustrator, Photoshop.

Với 1 site có quy mô tương đối lớn, cần làm phần này bằng HTML (nhắc lại: tối thiểu hóa việc dùng hình ảnh) để khách hàng có thể click chuột thử nghiệm, đảm bảo rằng các trang web đều nằm đúng chỗ của nó. Tôi tạm gọi cái này cái này là HTML Prototype. Đây là minh họa để thống nhất về mặt chức năng trước khi tổ chức code, nếu giai đoạn này không thống nhất thì những thay đổi về sau sẽ rất mất thời gian. Giai đoạn này cũng giúp khách hàng, designer và programmer có cùng chung 1 cái nhìn tổng thể về website. NẾU vì quá gấp gáp ta bỏ qua giai đoạn này thì sau này có thể chúng ta sẽ phải trả giá ĐẮT.


BƯỚC 4: THIẾT LẬP NỘI DUNG.

Sau khi đã có Phác Thảo Tổng Thể và Khung Sườn, bạn và khách hàng cần ngồi lại với nhau để đặt kế hoạch cho nội dung – tôi nhấn mạnh là NỘI DUNG, tức là phần TEXT sẽ hiện thị ra, đây là phần rất mất thời gian, đặc biệt là cho khách hàng.


BƯỚC 5: BẮT ĐẦU THIẾT KẾ.

Lúc này designer đã có thể bắt đầu thiết kế trang chủ và những trang con. Nếu thời gian quá gấp, và bên programmer rất giỏi và phối hợp tốt với bên design thì có thể bắt đầu luôn việc viết xHTML và CSS, thậm chí 1 số chức năng về JS.


BƯỚC 6: KHÁCH HÀNG PHẢN HỒI.

Khi thiết kế cơ bản là xong, khách hàng cần kiểm tra xem thiết kế có đúng ý tưởng ban đầu chưa, và có thể đề nghị 1 số thay đổi.


BƯỚC 7: DESIGNER THIẾT KẾ LẠI.

…theo yêu cầu của khách hàng…


BƯỚC 8: KHÁCH HÀNG CHẤP NHẬN.

…cho đến khi mọi bên đều happy.

Các bước 5-6-7: thiết kế-phản hồi-tái thiết kế sẽ lặp lại trong nhiều giai đoạn của dự án. Như vậy, bên cạnh việc chuẩn bị nội dung, khách hàng cũng có trách nhiệm liên tục xem xét và xác nhận thiết kế. Tất nhiên với những dự án quá nước rút, trách nhiệm này được giao trọn vào tay designer (không những làm hộ mà còn nghĩ hộ khách hàng lun, hic, hic).


BƯỚC 9: THIẾT KẾ CHI TIẾT.

Sau khi khách hàng đồng ý với thiết kế cơ bản, bạn sẽ tiến hành thiết kế các trang con.

Với các site qua mô lớn, có thể bạn sẽ phải thiết kế cả những trang hướng dẫn và những trang thông báo lỗi nữa.


BƯỚC 10: ĐỒNG Ý.

Khách hàng xem lại thiết kế các trang 1 lần nữa và đồng ý lần cuối cùng.


BƯỚC 11: XÂY DỰNG NỘI DUNG HTML (content layer).

Bước này do Programmer làm sau khi nhận bản thiết kế bằng hình vẽ của bạn. Để công việc tiến hành trôi chảy, bạn cần mô tả cho họ rõ ràng các thông số về web như: font chữ, mã màu chữ và nền, viền, phần cố định kích thước bao nhiêu, phần nào là co giãn được…đồng thời cung cấp cho Programmer toàn bộ các chất liệu/số liệu cần thiết như: file PSD, file AI, file PNG, các file Icon, file swf và fla (nếu làm cả Flash), file Photoshop thì cần chia cụ thể các layer…


BƯỚC 12: XÂY DỰNG CSS (presentation layer).

Bước 11 và 12 có thể gộp chung thành: “Xây Dựng HTML và CSS” vì thường người làm CSS cũng là người làm HTML. Nhưng để nhấn mạnh tầm quan trọng của CSS, tôi tách nó ra thành 1 bước riêng. Thực ra ngay khi làm HTML thì đã phải tính toán sẽ áp dụng kỹ thuật CSS và JS nào cho tối ưu.


BƯỚC 13: VIẾT Javascript (behavior layer).

Nếu website lớn thì có thể cần người phụ trách riêng mảng này.


BƯỚC 14: GIỚI THIỆU CHO KHÁCH HÀNG.

Bạn và khách sẽ thống nhất về giao diện.


BƯỚC 15: TEST SẢN PHẨM HOẶC GHÉP NỐI VỚI CƠ CẤU HOẠT ĐỘNG CỦA TRANG WEB (server side).

Đối với web tĩnh, đến bước này là coi như hoàn thiện sản phẩm, cần kiểm tra 1 lần nữa là có thể đưa lên server.

Đới với web động, ngay từ bước 4, bạn có thể đã cần triển khai làm những phần cơ bản (core) để sau này ghép với layout của phần “web tĩnh” vừa tạo ra.

Nhân tiện nói qua về web động, web động chẳng qua là sự sinh ra web tĩnh 1 cách TỰ ĐỘNG ở trên server dựa trên thiết kế web tĩnh đã có.

Đến bước 15 này, bạn sẽ tiến hành các thao tác ghép nối.


BƯỚC 16: ĐƯA WEBSITE VÀO HOẠT ĐỘNG

Quá trình thiết lập cơ cấu hoạt động của trang web không đơn giản, nhưng tạm thời ta không nói đến quy trình này.

Sau khi quá trình ghép nối và kiểm thử thành công. Nếu như hợp đồng không bao gồm việc bảo trì và nâng cấp trang web, quá trình coi như hoàn tất.

THE END.

Nguồn : http://ohisee.com/dd/showthread.php?tid=326

Danh sách các trang web chat Yahoo trực tuyến