Home Blog Page 226

“MMRPG vẫn thống trị thị trường Mobile Game và Shooting và game cho nữ giới sẽ bùng nổ”

AMA (Ask Me Anything) là 1 sự kiện Q&A (Hỏi đáp trực tiếp) diễn ra đều đặn trên fanpage của TopDev vào thứ 6 hằng tuần.

Tuần này, AMA quay trở lại với các bạn đam mê IT với sự xuất hiện của khách mời Lê Giang Anh – CEO của JOY Enertaiment. 7 năm kinh nghiệm làm việc trong lĩnh vực video game, đặc biệt ở những mảng lập trình, thiết kế, quản lý chất lượng và sản xuất game giúp anh Giang Anh trở thành 1 nhân vật đình đám trong làng game Việt với kiến thức rộng rãi về mobile game, mobile app marketing.

Cùng AMA xem qua màn trò chuyện của anh vào ngày 13/1 nhé!

Tham khảo tuyển dụng lập trình Game hấp dẫn lương cao

Q: Chào anh Giang Anh, em có một thắc mắc nhỏ là không biết hiện nay thiết kế mobile app đang chuộng xu hướng nào ạ. Em cảm ơn anh

A: Hi bạn. Ý bạn là xu hướng về kỹ thuật hay xu hướng về kinh doanh? Nếu về kỹ thuật thì việc sử dụng các framework cross-platform mới như React Native đang lên ngôi.
Còn về kinh doanh thì ở nước ngoài đang rộ lên về Bot/AI. Tuy nhiên mình nghĩ việc áp dụng được vào team của chúng ta được hay không còn tùy thuộc nhiều yếu tố khác, ví dụ như thị trường, mục đích sản phẩm

Q: Anh đánh giá như thế nào về tốc độ phát triển của mobile marketing hiện nay và trong tương lai?

A:  Mình giả định bạn đang nói thị trường Việt Nam. Ở Việt Nam hiện nay chưa định hình chuẩn về mobile marketing. Chủ yếu vẫn chỉ dùng lại ở: Mobile Ads và SMS/Mobile Social Network. Còn các mảng khác như Mobile App Marketing (ASO, Re-marketing, branding, etc) thì gần như bỏ ngõ.

Q: Em chào anh Giang ạ. Anh ơi hiện tại em đang học về lập trình Java tuy nhiên em cũng có vài ý tưởng làm app trên mobile và em muốn ứng dụng Machine Learning vào ý tưởng của mình thì em nên tham khảo tài liệu gì vậy anh?

A: Hi bạn. Mình không chuyên sâu về tech như vậy nên không thể hỗ trợ bạn được. Tuy nhiên mình thấy ML và AI đang hot nên việc tìm kiếm tài liệu chắc không phải khó khăn. Tốt nhất bạn nên tìm hiểu các tài liệu mới bằng tiếng Anh

Q: Em chào anh Giang ạ, em hiện đang khá mê viết game nên em có đi tìm hiểu vòng vòng trên bác Google, thì thấy có mấy bác khuyên nên thử Python nếu như mới tập code game. Theo anh như vậy có hợp lý không anh?

A: Mình không rõ lý do các bạn khác khuyên xài Python là gì. Tuy nhiên hiện nay hầu hết các dev xài các game engine để có thể phát triển cross platform được dễ dàng. Ví dụ: Cocos2D-x, Unreal xài C++ và Unity3D xài C#

Q: A có thể hướng dẫn e về những phong cách trong lập trình game mobile ko a ?

A: Câu hỏi hơi rộng. Mình hiểu ý bạn là các các kiểu/style/quy mô của phát triển game. Như vậy thì có:

  • One man army: 1 mình cân tất
  • Tiny indie: Team từ 2-3 bạn làm game
  • Studio: team từ khoảng 5 bạn trở lên

Còn về thể loại thì nhiều: Tập trung vào casual games, tập trung vào online game, casino game, etc.

Q: Anh có lời khuyên nào dành cho những startup về mobile game không ạ? Cụ thể là về game dạng casino….

A: Đừng làm ở Việt Nam nhé bạn.

Q: theo anh nhận định thì thể loại mobile game nào sẽ phát triển mạnh mẽ nhất tại thị trường Việt Nam trong năm nay?

A: Mình nghĩ MMRPG vẫn thống trị. Tuy nhiên Shooting và game cho nữ giới sẽ bùng nổ

Q: Nếu là Startup nhỏ và không đủ kinh phí để phát triển mobile game trên cùng lúc cả 2 iOS và Android, thì mình lựa chọn 1 trong 2 dựa trên những yếu tố nào ạ?

A: Bạn có thể chọn các engine hỗ trợ multi-platform như Unity3D và Cocos2D-X nhé.

Q: Khi lập trình mobile game thì bước nào là quan trọng nhất ạ?

A: Tất cả đều quan trọng. Tuy nhiên hiện tại hầu hết các team đều yếu ở khâu game design

Q: Với tập khách hàng là nam giới tuổi từ 30-45 thì có nên dùng mobile ad thông qua mobile game để tiếp cận họ không anh? Em đang phân vân không biết nên tiếp cận tập khách hàng này bằng phương tiện nào vì budget cho quảng cáo của em cũng không quá lớn nên bị hạn chế về lựa chọn

A: Tập đó là trả tiền nhiều nhất đó bạn. Đặc biệt là các game chiến thuật

Q: Yếu tố nào là quan trọng nhất để một dự án mobile game thành công ạ?

A: Theo cá nhân mình nghĩ thì khoảng 40% là chất lượng sản phẩm, 60% là kinh doanh, marketing. Còn đi sâu hơn nữa thì chắc còn dài. Bạn có thể trao đổi trực tiếp với mình nhé

Q: Anh ơi không biết mình có thể Re-Marketing bằng Mobile app không ạ? Em đã tìm hiểu trên google nhưng không có tài liệu nào rõ ràng về việc này cả. Nếu được mong anh có thể cho em một vài gợi ý về những dự án Re-marketing bằng Mobile app mà anh cho là hay nhất được không ạ? Em cảm ơn anh nhiều.

A: Re-marketing là một khâu trong mkt. Nếu làm với app thì em có thể search chính những tài liệu của Google Play và sử dựng các tool của Google như adsense, Analytics

Q: theo em nghiên cứu thì ngành mobile game là một ngành cạnh tranh rất khốc liệt và ít doanh nghiệp nào có thể trụ lâu được. Vậy không biết anh có thể chia sẻ kinh nghiệm trong việc duy trì sự ổn định của dự án mobile game được không ạ?

A: Kinh nghiệm xương máu của mình là start nhỏ và chắc. Phải kiếm được những người cùng đam mê và có sự kiên trì. Một điều nữa là phải có chất lượng tốt dù làm game nhỏ.
Nên đi học các anh đi trước

AMA cảm ơn anh Giang Anh đã dành thời gian bận rộn cuối năm để tham gia chương trình. Đặc biệt, AMA và Topdev cũng cảm ơn các bạn đã luôn quan tâm và ủng hộ Topdev trong thời gian qua. Một năm Đinh Dậu với nhiều hứa hẹn, nhiều hy vọng đang đến gần, chúc các bạn dev sẽ gặt hái được nhiều thành công, có thật nhiều niềm vui trong cuộc sống!

Hướng đi đúng để apps kiếm tiền hiệu quả nhất

Hiện nay, ngành quảng cáo đang chứng kiến sự vươn lên mạnh mẽ của quảng cáo di động với dự báo Mobile Ads sẽ san bằng khoảng cách về doanh thu với quảng cáo trên Desktop trong vài năm tới. Xu hướng này cũng mở ra cơ hội kiếm tiền từ quảng cáo hết sức tiềm năng cho các nhà phát triển ứng dụng di động.
  • Vậy đâu là hướng đi đúng để apps của bạn kiếm tiền hiệu quả nhất?
  • Những chính sách gì có thể ảnh hưởng tới doanh thu, thậm chí có thể khiến apps của bạn bị “ban” trên Google Play?
  • Có những thủ thuật, giải pháp nào giúp tối ưu doanh thu quảng cáo di động hiệu quả?
Tất cả những câu hỏi trên sẽ được trả lời tại Workshop “BÍ QUYẾT ĐẺ TRỨNG VÀNG CHO ỨNG DỤNG TRONG NĂM ĐINH DẬU” do ADSOTA – Đối tác chiến lược của Google tại Việt Nam về mảng quảng cáo di động, phối hợp cùng đại diện Google tổ chức vào ngày 19.1.2017.
Nội dung trong chương trình do chính đại diện của Google và Adsota chia sẻ gồm:
  • Tổng kết ngành quảng cáo di động 2016
  • Dự đoán xu hướng nội dung, quảng cáo di động chủ đạo năm 2017
  • Các bí quyết nâng cao doanh thu quảng cáo từ ứng dụng di động của bạn
  • Giải đáp các thắc mắc của các Publishers về chính sách của Google nói chung và Google Play nói riêng.
Ngoài ra, các khách mời tham dự chương trình còn có cơ hội nhận được những phần quà đặc biệt hấp dẫn từ Adsota và Google.
Thông tin chi tiết về sự kiện:
  • Thời gian: 14:30 – 16:45 19/1/2017
  • Địa điểm: Tầng 10 tòa nhà LE Building, ngõ 71, Láng Hạ, quận Ba Đình, Hà Nội
Diễn giả trong chương trình:
  • Ms. Gaby Hien – Business Development Manager (OPG SEA, GOOGLE)
  • Ms. Pear Vijitra Natephisarnwanish : Google Strategist, Trust and Safety
  • Ms. Loan Nguyen: Project Manager Appota Ad Exchange
Cách thức đăng ký: Link đăng ký tham dự https://www.facebook.com/events/1839080686375859/
  • Bạn vui lòng đăng ký sớm trước ngày 17/1/2017. Ban tổ chức sẽ liên hệ với các bạn được lựa chọn trở thành khách mời trong chương trình
  • Mọi thông tin chi tiết vui lòng liên hệ hotline: 0947436045/ 0943190535 (Mr. Duy)

Đầu năm đàm đạo chuyện PHP & PHP7

Những ngày đầu năm 2017, ắt hẳn nhà nhà người người đều tất bật chuẩn bị cho những kế hoạch của năm mới và cả những dự định cho mùa Tết Đinh Dậu đang cận kề. Tuy bận rộn là thế nhưng hơn 100 dev vẫn không quên tề tựu tại sự kiện PHP & PHP7: Secrets Behind Optimization vào 12/01 vừa qua để đàm đạo, chia sẻ những giải pháp để tối ưu 1 trong những ngôn ngữ lập trình phổ biến nhất hiện nay.

Chủ đề đầu tiên bàn thảo chính là PHP Story, tổng hợp kinh nghiệm chinh chiến PHP hơn 6 năm của diễn giả Thảo Lê – Engineering Manager đến từ Harvey Nash. Ba câu hỏi được anh Thảo Lê tập trung giải quyết chính là:

  • What kind of language is it?
  • How do we implement PHP?
  • How do we control quality in PHP?

Trong đó, để kiểm tra chất lượng PHP, anh đã đề cập đến các cách thức như Automated Testing (Unit Tests, Test-Driven Development, Behavior-Driven Development; Automated Deployment (Shell scripts, Phing, Capistrano) cùng 1 số điểm tương quan giữa PHP & Node.js.

Xem ngay tin tuyển dụng PHP lương cao trên TopDev

Tiếp mạch chương trình, diễn giả Khánh Trần – Technology Evangelist của GEEK Up mang đến 1 chủ đề nhận được rất nhiều sự quan tâm của cộng đông dev thời gian qua là: Docker-Composer.

Đặc biệt, 2 mục mà BTC, khán giả và cả anh Khánh Trần tâm đắc nhất chính là: How to set-up a Phalcon PHP Project with Docker-Composer và 10 “mẹo” PHP cực hay không thể bỏ qua!

  • How to use volumes to store container’s data
  • Simplify application’s configuration by using links
  • Running development tasks with use on-off containers
  • Simplify docker-compose commands by using makelife
  • Mitigate remembering to many ports by using typicode/hotel
  • Experimental web scaling in development env.
  • Mount your docker.sock
  • How to config different environment
  • Avoid breaking change by using tagging image
  • Improve devops skill by learning from master

Phần Panel Discussion như càng tiếp thêm lửa cho sự kiện với sự xuất hiện của anh Lê Đức Huy trong vai trò moderator. Nguyên là trưởng phỏng sách điện tử tại tiki.vn với 6 năm kinh nghiệm phát triển sản phẩm hướng di động, gần đây nhất là sáng lập và xây dựng dự án Miki Ebook phát triển lên đến 500.000 thành viên đọc sách ebook, anh Huy đã góp phần “đẩy đưa” những câu hỏi về PHP & PHP7 của người tham gia đến 2 diễn giả 1 cách rất tài tình và cực kì hiệu quả.

Một lần nữa, Topdev Techtalk rất cảm ơn các bạn lập trình viên đã dành chút thời gian bận rộn đầu năm để đến tham dự và cùng nhau chia sẻ những kiến thức xoay quanh chủ đề của sự kiện. Hẹn gặp lại các bạn tại các sự kiện Topdev Techtalk tiếp theo ngay sau Tết Đinh Dậu, nhé!

Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev

11 cách tăng tốc nhanh cho WordPress bằng file wp-conig.php

Wordpress - Cách tối ưu web lên 99 điểm trên di động PageSpeed Insights

Việc tối ưu lại cơ sở dữ liệu luôn là một trong các việc quan trọng nhất cần phải làm khi một website đã có quá nhiều dữ liệu và có quá nhiều lượt truy cập. Bởi vì bạn biết rằng website càng có nhiều lượt truy cập thì website sẽ càng gửi nhiều truy vấn (query) về database để lấy dữ liệu ra (đa phần là truy vấn SELECT). Mà đã nhiều truy vấn rồi mà dữ liệu lại lớn, chưa được sắp xếp gọn gàng thì nó lại càng mất thêm thời gian để xử lý các truy vấn đó.

Ngoài việc dọn dẹp database, chúng ta còn một cách khác nhưng cũng rất quan trọng đó là tối ưu lại bảng wp_options của database. Bảng này sẽ chứa toàn bộ các thiết lập bên trong website, bao gồm các thiết lập theme và plugin. Điều đó có nghĩa là bạn đã từng cài nhiều plugin và theme vào website thì bảng này sẽ rất nặng mặc dù bạn đã tắt các plugin hoặc theme đó đi vì đa phần các plugin không hỗ trợ “làm sạch” chiến trường khi ta tắt đi để có thể sử dụng lại sau này.

Xem ngay tin tuyển dụng PHP lương cao trên TopDev

wp-config.php là một tập tin PHP nằm trong thư mục chứa website WordPress của bạn, bạn có thể tìm thấy file wp-config.php theo như danh sách như hình 1 bên dưới đây :

TopDev Techtalk #54: PHP & PHP7 – Secrets behind Optimization

*Hồ Chí Minh: 18h00 – 21h00 thứ 5, ngày 12/01/2017

9

Đây là tập tin chứa các thông tin cấu hình cần thiết để WordPress hoạt động bao gồm các thông tin như : thông tin đăng nhập MySQL, Authentication Keys,…

Các bạn cần lưu ý là các đoạn mã thiết lập bên dưới cần phải thêm vào phía trước dòng “require_once(ABSPATH . ‘wp-settings.php’);” trong file wp-config.php , nếu bạn thêm sau dòng này có thể gây ra lỗi website.

Debug truy vấn

Trước tiên, chúng ta cần nên xem trực tiếp các query có trên website và thời gian thực thi của nó để coi có query của plugin nào chiếm nhiều thời gian không. Có một cách làm việc này đó là sử dụng plugin Query Monitor.

Nhưng trước khi cài đặt nó, bạn bật debug trong wp-config.php lên.

Sau đó ở mỗi trang, bạn sẽ xem được query của nó bằng cách ấn vào nút xem debug ở Admin Bar.

query-monitor-adminbarBạn ấn vào và chọn Queries để xem các truy vấn nhé. Bây giờ bạn có thể biết trên trang đó có bao nhiêu truy vấn, mỗi truy vấn tốn bao nhiêu thời gian.

query-monitor-querytime

Nếu bạn thấy mình có quá nhiều truy vấn gửi vào table wp_posts thì hãy:

  • Hạn chế sử dụng truy vấn để lấy bài viết ra, bao gồm các widget. Các theme tin tức thường có rất nhiều query kiểu thế này.
  • Hạn chế số lượng bài viết hiển thị trên mỗi trang.
  • Ngoài ra bạn cũng có thể sẽ thấy truy vấn ở một vài plugin. Nếu bạn thấy plugin đó không cần thiết thì tắt đi.

Kế tiếp là bạn ấn vào menu Debug, chọn Hooks và bạn sẽ thấy có bao nhiêu thành phần được load ra như có bao nhiêu theme được kích hoạt, bao nhiêu hook ở widget, theme sử dụng hook nào để thực thi,…và nếu hạn chế được càng nhiều thì càng tốt.

query-monitor-hooks

Ngoài ra bạn có thể xem thêm phần PHP Errors để xem có lỗi nào trong PHP không, nó sẽ cho bạn biết lỗi đó là gì, nằm ở file nào đoạn số bao nhiêu trong code để bạn biết mà sửa.

Tối ưu bảng wp_options

Cột autoload trong bảng wp_options nghĩa là để nó xác định xem tuỳ chọn đó có được tải mặc định tự động ra bên ngoài hay không. Điều đó có nghĩa là mặc dù các plugin của bạn không dùng nữa nhưng các thiết lập trong database vẫn còn thì nó vẫn là autoload, đây là lý do sốt một khiến tốc độ truy cập website bị chậm đi.

Trong bài này có sử dụng truy vấn SQL. Để chạy truy vấn SQL, bạn vào phpMyAdmin -> chọn database cần làm việc và chọn tab SQL. Hoặc nếu bạn không có phpMyAdmin thì đăng nhập vào MySQL Server rồi gõ USE tên_database để chọn database.

Trước hết, chúng ta kiểm tra xem bảng wp_options có bao nhiêu hàng.

Như các bạn thấy là chúng ta có thể thấy được mình đang có 808 hàng trong bảng wp_options.

Bây giờ hãy thử thêm INDEX cho cột autoload để xem sự khác biệt.

Bây giờ bạn chạy lại truy vấn ở trên xem nó đã có giảm số hàng xuống chưa, đồng thời cột Extra của mình nó sẽ để là Using index condition.

Ngoài ra thì tốc độ truy vấn của mình cũng giảm đáng kể.

Trước đó:

query-monitor-adminbar

Sau khi thêm INDEX

query-monitor-after-index

Thế thì tại sao sử dụng INDEX trong MySQL lại giúp bạn giảm thời gian gửi truy vấn?

Bạn hãy tưởng tượng rằng, INDEX giống như bạn đánh số cho từng trang sách vậy. Khi bạn cần tìm một cái gì đó thì bạn chỉ cần giở ra đúng số trang mà bạn cần tìm thay vì ngồi mò từng trang, phải không? INDEX trong MySQL cũng thế, nó sẽ giúp cho các truy vấn WHERE tìm kiếm dữ liệu nhanh hơn để lấy ra bên ngoài.

Nếu bạn muốn thì bạn có thể thêm INDEX cho cột post_id và meta_key trong bảng wp_postmeta.

Xoá bớt các options không sử dụng

Như mình nói ở trên, mặc định table có cột autoload mà nếu hàng nào có giá trị là yes thì nó sẽ mặc định được gửi ra toàn bộ trong khi WordPress tải website của bạn. Nếu bạn dùng website đã lâu, đã từng sử dụng qua nhiều plugin nay không dùng nữa thì nên xoá đi các tuỳ chọn của nó trong bảng wp_options. Bạn có thể browse bảng này và xoá đi các tuỳ chọn giống như mình làm ở dưới, cẩn thận với các tuỳ chọn mặc định của WordPress (ở các trang đầu tiên).

Xoá các options không sử dụng nữa.

Cấu hình Post Revisions, Auto Save

Post Revisions cũng là bài viết được lưu trong bảng “wp_posts” của database, tuy nhiên nó chỉ thể hiện trong trang quản lý bài viết của /wp-admin/ mà không hiển thị ra trang ngoài.

Mỗi khi bạn soạn thảo bài viết trên WordPress thì WordPress sẽ tự động lưu lại các phiên bản của bài viết đó để bạn so sánh các thay đổi nội dung so với trước kia.

Điều này có thể cần thiết đối với nhu cầu của 1 số người, tuy nhiên nếu bạn không cấu hình Post Revisions cho WordPress thì sẽ có vô số bản nháp không cần thiết khi số lượng bài viết của bạn ngày càng nhiều, điều này sẽ có thể làm chậm website của bạn do việc xử lý database ngày càng nhiều.

Để khắc phục điều này, bạn có thể thêm các dòng sau

Theo mặc định thì khoảng 60 giây thì WordPress sẽ tự động tạo một phiên bản Post Revisions khi bạn đang soạn thảo bài viết, nếu bạn muốn tăng khoảng thời gian này lên thì có thể thêm vào dòng sau :

Cấu hình dọn dẹp Trash (thùng rác)

Khi bạn xoá post, page,… thì WordPress sẽ không xoá ngay mà tạm thời di chuyển chúng vào Trash để bạn có thể khôi phục lại nếu muốn. Theo mặc định thì WordPress sẽ xoá tất cả các đối tượng nằm trong Trash nếu sau 30 ngày bạn không khôi phục nó (tính từ lúc di chuyển đối tượng vào Trash). Nếu bạn muốn thay đổi thời gian mặc định này, bạn có thể thêm dòng sau

Tăng giới hạn bộ nhớ PHP cho WordPress

Theo mặc định thì WordPress sẽ thiết lập giới hạn bộ nhớ (RAM Memory) là 32 MB (Megabytes). Nếu nhà cung cấp Host bạn đang sử dụng cho phép bạn sử dụng nhiều hơn 32 MB RAM thì hãy thêm dòng sau

Lưu ý nếu bạn thiết lập thông số này cao hơn giới hạn cho phép của Host hoặc VPS thì sẽ không có tác dụng.

Thiết lập này sẽ rất hữu ích khi website của bạn phải xử lý nhiều dữ liệu như database lớn, sử dụng nhiều plugins,…

Automatic Database Optimizing

Từ phiên bản 2.9 trở đi thì WordPress cung cấp tính năng tối ưu và sửa chữa database (Optimizing & Repair Database). Đây là tính năng đặc biệt hữu ích khi WordPress không thể truy vấn table nào đó trong database do table đó bị crash. Để kích hoạt tính năng này, bạn thêm dòng sau

Sau khi kích hoạt tính năng, bạn truy cập vào url {$your_site}/wp-admin/maint/repair.php để thực hiện

Lưu ý : Bất kỳ ai cũng có thể sử dụng tính năng trên bằng cách truy cập vào url mà không cần phải đăng nhập, do đó sau khi đã fix database xong bạn nên vô hiệu tính năng này bằng cách sửa lại là define( ‘WP_ALLOW_REPAIR’, false );

Plugin & Theme Editor

Theo mặc định thì WordPress cho phép bạn chỉnh sửa các file *.php, *.js,… của Theme hoặc Plugin ngay trong trang quản trị của WordPress. Điều này là không cần thiết và không nên sử dụng, nếu bạn cần chỉnh sửa các file .php hoặc bất kỳ file này trong mã nguồn website thì chỉ nên dùng các chương trình IDE như PhpStorm, NetBeans, Notepad++, Sublime Text,… rồi upload lên host bằng các chương trình FTP clients như FileZilla, WinSCP,…

Để vô hiệu tính năng Plugin & Theme Editor của WordPress, bạn thêm dòng sau vào file wp-config.php

Sử dụng SSL (https) khi đăng nhập

Nếu bạn muốn Username & Password của người dùng an toàn hơn thì có thể cấu hình WordPress bắt buộc sử dụng SSL khi đăng nhập

Ngoài ra bạn cũng có thể cấu hình cho WordPress bắt buộc sử dụng SSL khi truy cập vào trang quản trị (/wp-admin/*)

Auto Update Core WordPress

Nếu bạn muốn Core WordPress (mã nguồn chính của WordPress, không phải Theme hay Plugin) luôn tự động cập nhật những phiên bản mới nhất của WordPress (từ trang https://wordpress.org/ ) thì thêm dòng sau :

Debug WordPress – Tìm lỗi website WordPress

Nếu bạn là Developer thì việc tìm các lỗi có trong website WordPress là việc nên làm để cải thiện hiệu năng và các lỗi của website.

Tuy nhiên việc hiển thị các lỗi của website không nên thực hiện trên website chính, bạn chỉ nên kích hoạt tính năng hiển thị lỗi của Web trên local hoặc phiên bản test.

Để kích hoạt trạng thái debug của WordPress trên phiên bản test, bạn sử dụng :

Còn trên phiên bản public của website bạn nên sử dụng :

Nếu bạn muốn chỉnh sửa các file JavaScript (*.js) hoặc Cascading Style Sheets (*.css) nằm trong các thư mục wp-includes/js, wp-includes/css, wp-admin/js, và wp-admin/css thì có thể sử dụng :

define( ‘SCRIPT_DEBUG’, true ); sẽ nạp các file chưa nén (uncompressed) thay vì các file đã làm nhỏ gọn (minify) như *.min.css và *.min.js chứa trong các thư mục trên.

Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev

10 tuyệt kĩ từ trang web nhanh nhất thế giới (phần 2)

#6 Inline

Mỗi lần ngồi suy nghĩ liệu inline CSS có đáng hay không thì tôi lại đi đến kết luận rằng.. tùy tình hình.

Nếu bạn là trang facebook.com và 99,9% lượt page views là return visitors, thì hãy có 1 file CSS riêng và lưu trữ nó. Nếu nhưng trang của bạn không cần nhiều lượt repeat visit thì bạn có thể muốn inline CSS và lưu 1 network request.

Nếu bạn muốn “tự tạo đau khổ” cho mình thì có thể thử để inline ở vào nửa trên của giao diện và phần còn lại sẽ tải trong 1 file CSS riêng.

Quy tắc riêng của tôi là: nếu bạn có thể tích hợp CSS vào HTML và dung lượng ở mức 14KB thì hãy làm đi (Và tại sao lại là con số 14 thì Tìm hiểu tại đây)

CSS + HTML (đã tinh giảm) của tôi là 3.5 KB –  nhờ vậy mọi thứ đều trở nhanh nhẹ hơn

#7 Preload, sau đó là load

Chúng tôi nghĩ <scripts>  nên ở phần cuối của <body>. Khi tôi nhận ra mọi người nói <scripts>  là footer, header và body. Thì tôi đã được khai sáng.

[5 phút sau…]

Thỉnh thoảng, tôi nghĩ mình là người dễ bị xao nhãng.

Tôi đang làm gì ở đây?

Ah đúng rồi, 1 bài blog về tốc độ website.


Một mô hình thường thấy trong React với SSR (Server Side Rendering) là:

  1. Trong server, generate HTML bằng cách gửi vài dữ liệu vào component để render
  2. Write dữ liệu đó vào HTML với lệnh như window.APP_DATA = data;
  3. Gửi cả DOM (dựa trên dữ liệu đó) đã được render và dữ liệu trở lại payload của HTML
  4. Trong browser, chạy lệnh window.APP_DATA và kết hợp ứng dụng với nó

Cách thức này có chút lãng phí nhưng thực sự không ảnh hưởng nhiều vì HTML sẽ được render trong cùng 1 thời gian, chỉ có JavaScript bị delay 1 chút. Nếu trang web của bạn chạy mượt trước khi Javascript tải thì chả ảnh hưởng gì.

Dưới đây là những gì tôi muốn nó diễn ra:

  • Bắt đầu tải dữ liệu ngay khi có thể (mà không chặn HTML)
  • Bắt đầu tải JavaScript của ứng dụng ngay khi có thể (mà không chặn HTML)
  • Khi cả script và dữ liệu đã được tải, và HTML đã được parse, script sẽ giúp page sống động hơn.

Tôi có thể thực hiện tất cả các thao tác trong JavaScript để quy trình này chạy tốt nhưng tôi có 1 giải pháp tốt hơn. Đúng là nó hiệu quả đấy nhưng tôi lại có cảm giác khó chịu là mình đang làm cái gì đó khá ngu ngốc.

  • Trong <head> tôi có 1 <link rel="preload" … > dành cho cả JSON và JS (tôi cũng có prefetch dành cho các browsers chưa hỗ trợ preload)
  • Ở phần cuối body, tôi tải ứng dụng JS trong tag <script>
  • Khi JS chạy, fetch() sẽ đẩy file JSON ra và .then() sẽ khởi động render cho ứng dụng React

Kết quả tương tự như sau:

Khi asset bất kì gặp vấn đề, các calls tải asset khác sẽ không mất khỏi network. Các network calls sẽ trông như thế này:

Vì vậy, nếu tôi không lầm, tôi không thấy có lý do mà mình không preload mọi thứ ở đầu trang.

Câu chuyện bên lề: tôi đã muốn mã hóa tên file JSON để có thể lưu trong cache mãi mãi. Tôi đã tự phá luật và tiến tới npm luôn. Tôi loay hoay 1 hồi trước khi nhận ra thư viện crypto được build ngay vào Node có thể qua mặt được mà không cần tốn quá nhiều sức.

#8 Tưởng thưởng hành vi tốt

Những users đang xài Chrome, Edge và Firefox là những người tốt bụng. Tôi đã từng có các production sites gửi đi những polyfills 30KB hàng triệu lần đến các users này và khiến tôi cảm thấy “lầy lụa” không chịu được.

Với dự án này, tôi chỉ tạo 1 file polyfill riêng và tải nó nếu cần. Trong HTML của tôi, tôi có 1 thứ như thế này:

Để generate 2 gói này với webpack rất đơn giản.

Nhờ đó, kích cỡ build của tôi giảm từ 90KB xuống 60KB.

Bạn có nhận ra mãi cho đến bây giờ tôi vẫn chưa đề cập đến kích cỡ tải? Là vì kích thước file không có liên quan.

Nếu bạn đang tính toán “thời gian tương tác” của trang web thì bạn đã tính đến kích cỡ file; cả thời gian tải và thời gian parse. Nếu bạn nghe ai đó nói là họ đã giảm file CSS đi 5KB thì hãy hỏi con số đó theo milliseconds.

Dưới đây là biểu đồ về kích thước file của ứng dụng mà tôi đã lập trình và React với tất cả các polyfills trước và sau khi có Preact.

Nếu bạn muốn làm rõ và điều chỉnh các polyfills cho mỗi hệ điều hành, polyfill.io đã làm điều đó. Dưới đây là 1 số lý do sẽ khiến bạn “mê mệt” polyfill:

  • Ở bất kì điểm nào, nếu ai đó làm gì đó sai, toàn bộ site có thể bị gãy. Và nó có thể gãy trong 1 hệ điều hành mà bạn không dùng nó nhiều. Có thể trang của bạn hiện đã hỏng tại 1 vài hệ điều hành. Làm thế nào bạn biết được?
  • Polyfill cực nhanh, nhưng đó là 1 blocking script ở phần đầu của trang web

Vì thế tôi chỉ đơn giản phục vụ cái package nhỏ nhất cho những ai đang sử dụng các hệ điều hành tốt và tất cả những người khác có thể đạt được mức 30KB.

(Tôi nhận ra mình khá xấu xa khi loại Safari ra – Safari 10 có hỗ trợ JavaScript – nhưng không có fetch tôi sợ chúng sẽ không tạo danh sách các browsers hiện đại được)

#9 Các service workers

Tôi đã trì hoãn nghiên cứu các service workers trong 1 thời gian dài. Khi tôi quyết định tạo trang web nhanh nhất hành tinh này, tôi nghĩ lý do đến từ thời gian.

5 tiếng sau, tôi hoàn thành. Và 4 giờ, 35 phút là để phạm lỗi lầm.

Dưới đây là cách thức vận hành:

  • Kết quả của build script mà tôi làm là 1 chùm các files trong danh mục tên là public (gồm index.html của tôi)
  • Sau đó tôi gọi thư viện sw-precache của Google để tạo file service worker sẽ cache mỗi file trong danh mục đó và cho phép trang của tôi làm việc offline được
  • Code clien-side đăng kí service worker mà sw-precacheđã tạo

Có 16 dòng code bắt buộc phải có.

13 dòng trong build script (tất cả các code của tôi nằm trong /public)

(Tôi không tải polyfill lên cache vì các browsers cần polyfills không có service workers)

Sau đó trong 3 dòng của client – nơi tôi cần tải service worker:

Một khi bạn đã tải trang 1 lần, nó sẽ vận hành mà không cần network. Nếu có sẵn phiên bản mới, nó sẽ cài đặt trong background nếu bạn đang online và khi refresh bạn sẽ có phiên bản mới.

Tương lai nằm ở đây. Hãy sử dụng service workers.  HÃY DÙNG NÓ.

Không may là 50% số người đọc được điều này trên Safari/iOS vào thời điểm này lại không có service workers. Apple chắc chắn đang nghiên cứu nhưng trái lại, nếu bạn muốn sở hữu Internet nhanh thì hãy mua 1 chiếc Android.

#10 Computers có những fonts đẹp

Web fonts là “nỗi đau”, là những thứ tốn thời gian. Nhưng nếu có được web fonts đẹp thì cũng tốt.

Tôi nhận ra 4 phần sau đây:

  • macOS có các font đẹp
  • Android có các font đẹp
  • Windows có các font đẹp
  • iOS có các font đẹp

Vậy tại sao lại không dùng chúng? Tôi đã chọn Calibri Light, Roboto và Helvetica Neue. Nếu bạn cần 1 font giống nhau, tùy chỉnh trên tất cả các thiết bị thì mọi thứ đã đi quá xa rồi và bạn không còn hy vọng nào đâu.

Vì vậy, đây là lý do tôi nghĩ mỗi website đơn nên có nền tảng typography.

Text đẹp, không request network.

Chính sửa: Ban đầu tôi có text-rendering: optimizeLegibility. Một ai đó đã nói trong comment rằng đây là 1 vấn đề liên quan đến hiệu suất.

Sau đó, tuy có chút ngần ngại nhưng tôi đã chạy vài trials và xem thử có khác biệt nào không.

Cảm ơn, Jacob Groß!

#11 Không bao giờ từ bỏ

app.js của tôi vào khoảng 28KB và tôi đã tự hỏi nó được tạo ra như thế nào. Sau khi fiddle, tôi nhận ra ImmutableJS chiếm 19KB. Một thư viện nhỏ mà đã chiếm hơn 2/3 toàn bộ kích cỡ app!

Tôi chỉ sử dụng 1 tập hợp rất nhỏ các tính năng của ImmutableJS và nhận ra tôi  có thể tự mình sao chép lại. Sau đó vài giờ, website có thể hoạt động mà không cần ImmutableJS và độ tăng trưởng về hiệu suất tốt hơn bất cứ thay đổi nào mà tôi từng thực hiện: giảm 60% thời gian tải.

Lý do không phải vì ImmutableJS “chậm”. Nó có thể chiếm 19KB của Javascript bất kì. Vấn đề đến từ thời gian để parse.

Tôi đã xử lý thành công 14% thời gian “first view” (và dưới 400 đối với “repeat view”) bằng cách loại immutable và không chuyển đổi file big data client-side đó.

Xây dựng 1 trang web nhanh cũng như nuôi thú cưng, đòi hỏi sự kiên nhẫn và nhất quán (cả về thời gian và từ những người liên quan). Bạn có thể giữ mọi thứ rất sạch sẽ, gọn gàng nhưng nếu bạn cẩu thả, sử dụng 1 thư viện 11KB để format date và để đống phân thú cưng đó trên giường, bạn sẽ gặp nhiều khó khăn để dọn dẹp sạch sẽ.

Nguồn: Techtalk via Hackernoon

10 tuyệt kĩ từ trang web nhanh nhất thế giới (phần 1)

Bài viết này phân tích về những kĩ thuật tăng hiệu suất của 1 trang web, vì thế hy vọng bạn sẽ không phiền nếu trang web được nói đến vẫn chưa hoàn thiện lắm.

Nhưng bạn cần có 1 cái gì đó để click vào và đánh giá xem ý kiến của tôi có giá trị hay không. Bạn có thể tham khảo tại đây: https://knowitall-9a92e.firebaseapp.com/

Hy vọng trang web sẽ mở nhanh để tôi có được chút danh tiếng ban đầu.

Nếu bạn đang tự hỏi tại sao tôi lại đang viết về trang web này khi nó vẫn chưa hoàn thiện.. là vì những góp ý. Hiệu suất là tập hợp chuỗi mẹo và các cách suy nghĩ về mọi việc. Vì vậy tôi sẽ rất vui nếu bạn có thứ gì đó hay ho để góp ý cho website bằng cách truy cập source tại đây.

Khi chế độ Strict Mode được bật, nếu tham số truyền vào là string, trong khi chúng

Hãy nói về tốc độ

Bạn có thể tham khảo biểu đồ sau.

Liệu bạn có muốn website được cách điệu 1 cách không cần thiết?

Đây có phải là cuộc chiến công bằng?

Không. Những trang web trên có chức năng hoàn toàn khác biệt, nên sẽ rất vô lý nếu chúng tải cùng 1 thời gian. Nhưng những trang web trên đã rất nỗ lực để cải thiện hiệu suất và đạt mục tiêu tạo được 1 trang web tải nhanh hơn trang homepage của Google.

Tại sao trông chúng lại không ấn tượng

Nếu bạn vô tình cảm thấy ấn tượng, tôi khuyên bạn nên bình tĩnh 1 chút. Tôi không phải read từ 1 database để sản xuất content hay bắt bạn đăng nhập hay tải 7 loại ads từ bên thứ 3 – mỗi cái thực hiện 40 redirects trước khi chúng tải được 1 file flash. Tôi thậm chí còn không dùng đến bất kì hình ảnh nào nữa cơ. Và page count = 1.

Tại sao chúng lại gây ấn tượng

Trước khi trang web được tải và sẵn sàng chạy, tôi đang tải về và parse 1 file JSON 75.000 line. Nếu được expanded, sẽ cho ra kết quả là 9.986 hàng.

Và tôi đang xài 1 thư viện. Các thư viện đều chậm (bất kể tốc độ nhanh chóng mà chúng đang có).

Dưới đây là 10 bài học mà tôi có được trong suốt hành trình đã qua. 7 trong số chúng khá hữu hiệu ở thời điểm cách đây 2 tháng, 3 cái còn lại thì khá… rác rưởi.

Tất nhiên, tôi sẽ không nói bạn đâu là 3 cái đó.

#1 Đừng cố gắng tạo 1 trang web chậm

Tôi nghe được điều này từ 1 người không phải là lập trình viên web. “Tôi đang lướt trang mercedes.com và nó quá chậm, làm thế nào mà họ có thể tạo được 1 trang chậm như thế”

Tôi cho rằng việc tạo nên 1 trang web chậm thì chẳng khó khăn gì, tất cả những gì bạn phải làm là cố gắng không phải tạo 1 trang web nhanh.

Đây là tin tức tốt, vì nếu tất cả những gì bạn làm là cố gắng tạo trang web nhanh, bạn sẽ tự động có được 1 trang web nhanh hơn.

Đối với trang web này, trong mỗi bước, tôi lại dành ra vài thời điểm để nghĩ về mức độ ảnh hướng đến hiệu suất trong những gì mình đang làm. Với mỗi thư viện mà tôi đã sử dụng trong ứng dụng này, tôi đo đạc lại 3 chỉ số này, trước và sau:

  • first meaningful paint
  • thời gian interactive
  • expanding 1 DOM node

Nếu 1 thư viện có ảnh hưởng tiêu cực, hãy bỏ nó ra. Ví dụ, tôi đã từng dùng lodash deepClone trong đối tượng JS có 75.000 prop. Sau khi chuyển sang Immutable.js thì mọi chuyện đã hoàn toàn khác.

Tôi đang sử dụng React, và thỉnh thoảng dùng đến thư viện classnames. Sau đó tôi ước lượng lại bằng số liệu lần nữa và… không có gì khác biệt.

Mỗi lần bạn nhập 1 thư viện mới hoặc tạo nên 1 sự thay đổi lớn để nâng cao hiệu suất, bạn chỉ tốn có 5 phút mà thôi..

#2 Do mobile first

Có 2 chiến lược “mobile first” ở đây.

Chiến lược đầu tiên (tôi vẫn làm mãi cho đến dự án này), tôi đã ngồi tại monitor 27″ với 1 style website imax trước mặt, 1 fan-cooled CPU “quái vật” và hàng tá RAM thực hiện mọi mệnh lệnh mà tôi đặt ra.

Sau đó, tôi viết CSS media queries với min-width và nói với bạn bè của mình rằng, tôi đang thực hiện chiến lược “mobile first”

Đối với dự án này, tôi thực sự đã làm mobile first. Đó là, phát triển trang web chạy trên thiết bị di động. Tôi làm điều này trước, và khi đã hài lòng về UI và hiệu suất, tôi tiến hành nó trên máy tính lớn.

Bạn sẽ bất ngờ khi nhận ra không hề khó để có 1 trang web nhanh chạy trên 1 machine nhanh!

(Câu chuyện không đơn giản như thế, tôi đã bắt đầu dự án với những thói quen cũ không tốt, sau đó nửa đường thì dần trưởng thành, học hỏi được nhiều hơn và đã mặc định là bắt đầu lập trình trên mobile)

Bây giờ, việc trang web chỉ chạy trên 1 chiếc điện thoại là 1 giấc mơ, nhưng khi so sánh các chỉ số về hiệu suất sau nhiều ngày và nhiều tuần, bạn muốn 1 benchmark nhất quán. Nếu bạn xem video này, bạn sẽ biết rằng testing trên 1 thiết bị mobile thực tế không hề chuẩn mực chút nào. Bạn cũng sẽ biết tại sao tôi lại nói 1 cái CPU – được – quạt – mát sẽ đóng vai trò rất quan trọng.

Khi bạn thực hiện benchmarking, bạn nên sử dụng Chrome DevTools and throttle CPU và network của bạn. Tôi sử dụng CPU giảm tốc 10x lần và để network ở chế độ “Good 3G”. Tôi biết nó có thể không chậm bằng chiếc điện thoại trung bình nhưng tôi không muốn bị làm phiền với các vấn đề về tốc độ.

Bởi vì không dừng lại ở 1 cái gật đầu và lời đồng tình rằng đây là ý tưởng tốt mà nó còn phải là 1 ý tưởng thực sự có giá trị.

 

Đây là 1 thứ khiến tôi khá ngạc nhiên: chúng thực sự rất ồn.

Đây là thứ khác khiến tôi ngạc nhiên: tôi có 1 CPU i7 lớn mà tôi sử dụng để làm hầu hết mọi việc và 1 Pixel XL hoàn toàn mới: chiếc điện thoại nhanh nhất trên thế giới. Theo bạn thì hiệu suất điện thoại của tôi sẽ ra sao? 80% desktop? 60%? Hay có ai đoán là trên 10% không?

Sai rồi! Chỉ có 10% mà thôi. Nếu tôi làm chậm i7 lại khoảng 10 lần, nó cũng bằng tốc độ với chiếc điện thoại 1400USD trước mặt tôi.

Đó là sự khác biệt giữa cái click 20ms và click 200ms. Hoặc 1 khung hình tốn 16ms để render với 160ms.

#3 Trở thành 1 kẻ rành về benchmark

Một khi đã nhận được nhận xét tốt trên 1 trang benchmarking, tôi lại càng muốn tiến hành với tất cả các trang benchmarking để được nghe lời khen nhiều hơn.

Khi tôi chạy lighthouse trên trang web, tôi chỉ nhận được 97 điểm. 3 điểm còn lại của tôi đã mất đi đâu rồi!!!

Như tôi đã thấy, tôi được nhận xét là tôi có 1 input latency 285ms. Nếu nó thực sự đúng, thì sẽ là chuyện khá kinh hãi. Nhưng tôi biết nó chỉ 20ms thôi.

Vậy thì nhân viên của lighthouse chẳng qua là những kẻ ngu ngốc.

Vì vậy, tôi ngập ngừng thừa nhận với bản thân rằng có lẽ tôi nên nghiên cứu điều này, dù thực tế cho thấy tôi đã hoàn toàn đúng và 1 thuật toán được viết bởi Google đã sai rõ ràng.

Nó nhắc tôi phải bắt đầu lại toàn bộ quá trình giảm tốc CPU, và chắc chắn, thời gian phản hồi mà tôi nghĩ là nhất thời đã chậm đến 200+ ms.

Vì vậy tôi đã làm vài profiling và hầu hết thời gian là dành cho React. Tôi đã thực hiện hầu hết các practices tốt nhất liên quan đến hiệu suất React, và không có “updates nào bị lãng phí”.

Tôi thậm chí còn memoize (memoization là một kỹ thuật tối ưu, nhằm tăng tốc chương trình bằng cách lưu trữ kết quả của các câu gọi function và trả về các kết quả này khi function được gọi với cùng input đã gọi) các components có số lượng phần tử thấp (low-cardinality)

Bạn cũng nên biết tôi là 1 fan bự của React. Nhưng hiệu suất đã đánh bật lòng trung thành đó.

Đầu tiên, tôi đã thử preact-compat. Nó tốn mất 15 phút để convert codebase cả tôi. Một sự tiến bộ vượt bậc.

Tôi kể chuyện này với 1 người bạn từng viết Preact và anh ấy nói tôi nên thử đầy đủ Preact và wowsers vì nó thậm chí còn nhanh hơn.

Dưới đây là biểu đồ tôi có được.

Có người còn bảo tôi hãy thử Inferno nên tôi đã chuyển ứng dụng của mình sang inferno để siết chặt thêm về hiệu suất.

Đây chính là kết quả thu được.

Đúng vậy tôi đã thử, Inferno nhanh nhưng không nhanh bằng Preact nên tôi rút lại thay đổi đó.

Tôi đã học được bài học ở đây rằng đừng ngần ngại gạch bỏ công việc. Nhưng bạn cũng nên rụt rè 1 chút. Không ai lại thích 1 kẻ hướng ngoại nói “nhiều” đâu.

Và đây…

Tiếp theo, tôi test trên yslow. Tôi gần như đã đạt được những điểm số cao nhất, ngoại trừ 1 con D (!) vì có quá nhiều DOM nodes. Điều buồn cười là vì tôi biết số lượng DOM nodes mà tôi cần và không ai khác có thể nói tôi nên làm cái gì vì tôi chính là người quản lý của chính tôi.

Có vẻ như những nhân viên của yslow đã sai.

Vì vậy tôi đã khá ngần ngại khi nghĩ đến việc tôi có thể giảm số lượng DOM nodes mà mình đã render. Vì thế, tôi đã thay đổi các nhánh trong tree của mình đã được expand mặc định.

Đây là biểu đồ dành cho bạn!

Cảm ơn các nhân viên của yslow, có vẻ như gợi ý ở trên khá tốt đấy.

#4 Render Client Side rất tốn kém

Client Side Rendering (CSR) cũng có những lợi điểm nhưng đối với trang web này thì lại vô dụng.

Tôi không có bất cứ phần nào dành riêng cho người dùng trên trang của mình nên tôi gửi cùng 1 HTML đến tất cả mọi người. Và tôi cũng có 1 nhiệm vụ processing khá năng thực hiện về phần client, khiến CSR ngày càng tệ hơn. CSR không phải là cách nhanh nhất để các pixels của tôi tiếp cận được ánh nhìn của bạn.

Đây là lời khuyên của tôi nếu bạn đang xây dựng 1 trang web cho 1 công ty có – và mong muốn duy trì dòng doanh thu:

  • Hãy xem bảng phân tích của bạn và xem thử phần trăm traffic đến từ Bing là bao nhiêu (đối với tổ chức của tôi là 1,6%)
  • Đúng vậy là Bing vì chúng không xài JS khi index và vì vậy không index 1 trang web CSR nào
  • Giúp thu nhập hằng năm của nhân viên bạn tăng 1,6%
  • Hãy hỏi công ty nếu họ hạnh phúc với số tiền được đưa vào cuộc cạnh tranh bởi vì bạn sẽ không thu được các kết quả tìm kiếm Bing nữa đâu

Có lẽ bạn đã hiểu. Tôi đã đi lạc đề.

Chỉ cần gửi HTML đã render từ server của bạn.

#5 Đừng server-render HTML

Đúng là nghe có vẻ nghịch lý. Làm thế nào bạn serve HTML mà không server-render HTML? Bạn làm đúng những gì mà mọi người có thể đã làm vào những năm 90…

React (và họ hàng nhanh hơn của nó) cần có vài tá milliseconds để render 1 trang HTML khiêm tốn. (Ai đó có số liệu về thời gian PHP hoặc JSP không? Tôi rất muốn so sánh). Điều đó đồng nghĩa là 1 single core chỉ phục vụ được khoảng 50 người trên mỗi giây, các requests thêm sẽ phải xếp hàng chờ đợi ngay ngắn và điều này không tốt chút nào.

Đối với trang web nhỏ của mình, tôi đang gửi cùng HTML vào mỗi response. Nếu trang của bạn tương tự thì bạn không cần 1 web server để render HTML và gửi đi các files CSSs và JS theo yêu cầu. Bạn có thể xuất HTML của mình vào thời điểm build time và ra mắt toàn bộ từ static hosting (hoặc cache it trên 1 CDN tốt). Github và Firebase và khả năng là những người khác sẽ cho bạn static hosting vì chúng rất thân thiện.

Ý tưởng này không áp dụng được nhiều nên bạn có thể bỏ qua phần này. Nhưng nếu bạn có bất kì trang nào có thể được render vào build time (như trang chủ của Linkedin, Paypal, Github) và tận dụng nó.

Tôi nghĩ ra ý tưởng này khi đang xem vài blog, nhận ra tôi chỉ tốn mất 96 milliseconds để nhấn vào link dẫn đến blog đã nói (nhưng nhìn chung tôi vẫn cho rằng trang của tôi là trang nhanh nhất trên thế giới – và thực tế đôi khi lại không công nhận điều đó)

Tôi đã phát hiện blog được hosted như 1 static site với Firebase. Nhưng điều đó đồng nghĩa là tôi phải generate HTML vào build time. .

Giá như React có thể output DOM đã generated như 1 string. Như thế tôi có thể chỉ cần lưu string đó vào 1 file HTML như 1 phần của build script.

Vốn dĩ React đã có 1 method có tên là renderToString (mặc dù bạn nên sử dụng renderToStaticMarkup).

(Đây là cơ hội tốt để chạy HTML qua 1 minifier trước khi lưu vào đĩa).

Mời bạn đọc tiếp phần 2

 Nguồn: Techtalk via Hackernoon (còn tiếp)

“Những sản phẩm bạn làm được ra mới là thước đo chính xác cho năng lực của bạn”

AMA (Ask Me Anything) là 1 sự kiện Q&A – Question & Answer (Hỏi đáp trực tiếp) với các chuyên gia hàng đầu trong ngành Tech diễn ra vào mỗi chiều thứ 6 hằng tuần trên fanpage của TopDev.

Những ngày cuối năm tuy bận rộn là thế những các diễn giả vẫn rất nhiệt tình nhận lời tham gia chương trình. Và 1 trong những gương mặt tiêu biểu chính là anh Vũ Tuấn Phong – Lead Full-stack Developer, Bravebits.

Trước khi dừng chân tại ngôi nhà Bravebits anh đã từng làm Architect tại Kume Design Asia. Tháng 10/2011 anh thành lập Jam.vn, một trang web chuyên về âm nhạc lần đầu tiên tại Việt Nam sử dụng công nghệ web 2.0. Đến năm 2013 anh đảm nhiệm chức vụ Design Consultant tại Not A Basement Studio.

Lĩnh vực chuyên môn mà anh Phong sẽ trao đổi tại AMA là: FullStack Web app Development, NodeJS, ReactJS, BackboneJS, UI & UX Design, Server Infrastructure.

Q: Anh Phong ơi Anh cho em hỏi là cần phải học bao lâu để trở thành UI/UX Desginer chuyên nghiệp. Em cảm ơn anh nhiều ạ

A: Để trả lời cho câu hỏi của bạn thì nó sẽ là 1 con đường rất dài và bạn sẽ phải đồng hành với nó. Học là thứ mà bạn phải làm hằng ngày, bạn cố gắng nắm bắt đc nhiều kiến thức mới mỗi ngày. Nhưng cái chính là bạn phải dùng những kiến thức bạn học được để làm ra được những sản phẩm thực tế hữu ích. Những sản phẩm bạn làm đc ra mới là thước đo chính xác cho năng lực của bạn. Còn đâu kiến thức dù nhiều đến đâu cung ko có tí giá trị nào.

Q: Anh ơi em muốn hỏi là những tố chất quan trọng nào để một Developer có thể đảm nhận một vị trí Full Stack Web app ạ em cảm ơn Anh ạ

A: Khi bạn tự tin nói “OK” với bất cứ công việc nào được giao, kể cả những việc bạn chưa làm bao giờ. Chắc chỉ thế là đủ!

Q: Anh ơi anh có thể chia sẻ về các resource hữu ích cho các bạn Developer muốn trở thành Full Stack Developer. Em cảm ơn anh nhiều ạ.

A: Resource quan trọng nhất là kinh nghiệm và chỉ có đc khi mình làm. Vậy mình khuyên là nên làm nhiều vào, nếu có thời gian. Tự đưa ra những project nhỏ và tự tìm cách giải quyết. Trong lúc làm bạn sẽ biết mình cần học j. Nếu bí thì có thể giúp bạn bè, người quen vào công việc thực tế. .. thực hành lý thuyết phải đi song song.

Q: Anh Phong ơi, tầm quan trọng của UI/UX trong việc lập trình hiện nay là thế nào ạ? Do em cũng muốn học về UX nhưng không biết có cần thiết lắm không.

A: Comment ở dưới sẽ trả lời câu hỏi của bạn. Bổ sung thêm về UX, theo mình thì UX cực kỳ quan trọng tới thành công của 1 sản phản, và ai trong team cũng dev hay design đi nữa, cũng phải có kiến thức căn bản về UX. Nó UX ko nhưng giúp cho trải nghiệm người dung tốt hơn mà còn chính trải nghiệm của bạn để cho flow dev thông minh hơn, đơn giản hơn và sáng tạo hơn.

Q: Em chào anh Phong. Theo em được biết anh là 1 bậc thầy về React ở BB, vậy hi vọng anh có thể tiết lộ cho em biết các dự án nào anh đã sử dụng react, và anh đánh giá kết quả của những dự án đó như thế nào? Em xin cảm ơn anh.

A: Chào bạn. Thực tế mình cùng mới bắt đầu với ReactJS khoảng hơn nửa năm trc. Và cũng là project đầu tiên mình build bằng ReactJS. Nói chung để hiểu và dùng đc React không mất khá nhiều thời gian, nhưng để master đc React là một quảng đường rất dài và gian nan. Tuy nhiên kết quả cho ra hơn cả mình mong đợi.

Q: vậy theo anh thấy ReactJs sẽ hiệu quả nhất trong những dự án nào và không nên dùng trong những dự án nào?

A: ReactJS phù hợp cho projects lớn và quy mô 1 chút với team nhiều người, và hiển thị nhiều dâta. ReactJS rất dễ đc chia nhỏ và khá chặt chẽ. Tuy nhiên tránh dùng ReactJS vào projects nặng animation + looping vì React rất dễ bị mất kiểm soát ở khâu update trong render chain và khó debug ở đoạn này. Mình đã thử dùng react làm app điều khiển máy bay và ko tốt chút nào.

Q: Chào anh Phong, anh cho em hỏi lập trình viên thuần code có cần quan tâm đến UI/UX hay không vậy anh ?

A: Mình nghĩ 1 lâp trình viên nên có kiến thức về design. Nếu hiểu sâu được càng tốt bởi vì nó không chỉ giúp bạn làm nhanh hơn đẹp hơn. Hiểu biết về design còn là chìa khoá mở ra những giải pháp tối ưu hơn cho 1 vấn đề của code. Ví dụ thực tế luôn. Bạn vào trang (http://www.woorockets.com/) và đầu bài là tên lửa phun khói làm sao phải thật như trong after effect, nhưng lại phải viết bằng javascript. Khi nhận đc đề bài này thì lúc đầu cũng hơi lo vì làm trong 2 ngày. Nhưng nhớ lại là hồi xua mình có làm rất nhiều 3D modeling & rendering vì mình từ desgin lên mà. Thì ngay lập tức những kiến thức về particles system, và physics lập tức trở về đúng là giải pháp tốt luôn và resolve issue trong 2 ngày.

Q: Chào anh Phong, em thấy anh biết khá nhiều framework vậy thì đâu là framework mà anh thường sử dụng và thấy nhiều ưu điểm nhất ạ. em cảm ơn anh nhé

A: Mỗi framework nó được làm ra để giải quyết những vấn đề của riêng nó. Cá nhân mình đã đùng thử 1 vài framework, thì mình thấy cái nào cũng có ưu điêm hết, nhưng để thực sự giải quyết đầu bài của bạn 1 cách triệt để, thì vẫn phải là bạn người dev. Trước mình thích Backbone.JS, vì đơn giản là nó nhẹ và có khá đầy đủ những thứ mình cần cho webapp độc lập. Nhưng khi làm app cho Joomla thì mình mới thấy nó không đáp ứng đươc. Ngay cả React bh cũng vậy.

Để thực sự làm chủ đc nó bạn vẫn cần phải viết khá nhiều plugins, đôi hi phải hack trực tiếp vào framework mình đang dùng để đạt được cái mình muốn.

Đây cũng là 1 điểm yếu của React bởi vì mình không thể can thiệp nhiều vào quá trình render and update view của nó. Cũng dễ hiểu thôi bởi vì React khá chặt chẽ và bắt dev phải tuân thủ theo đúng quy trình của React nếu muốn chọc vào bạn phải hiểu rất sâu về nó.

Q: thật sự em đang rất thích React, tuy nhiên những tài liệu hiện tại em đã đọc không thực sự thiết thực vậy anh có thể giới thiệu em một tài liệu mà anh thấy hay nhất được không anh. Nha anh

A: chỉ 2 nơi mà mình thường xuyên đọc là source code và developer docs.

Q: Em chào anh, em tò mò không biết môi trường làm việc ở BB như thế nào ạ, và anh có dự định gắn bó lâu dài ở đó không anh?

A: Mình đang lead 1 project chủ chốt ở BB và đang trong kế hoạch cho những projects tương lai. Thế nên chắc là sẽ còn gắn bó lâu lâu. Môi trường làm việc ở đây như gia đình vậy, không phân biệt sếp hay nhân viên, mọi ý kiến đều đc lắng nghe, mọi ý tưởng đều được tôn trọng …. Hiện tại team cũng đang chiêu mộ anh em đam mê mảng này để có thể mở rộng hơn cho ra nhiều những ý tưởng hay hơn nữa.

Q: Vậy tại sao anh quyết định trở thành fullstack webapp developer mà không phải chuyên sâu về một mảng nào đó ạ?

A: Mình muốn tạo ra được nhiều sản phẩm hay, và cũng nung nấu nhiều ý tưởng muốn được thực hiện. Kiến thức của mình bây giờ hoàn toàn không do mình dự đoán trước , mình chưa bao giờ nghĩ đến việc trở thanh 1 full stack developer, tuy nhiên làm công việc mình dam mệ và đi đung con đường mình hướng tới mang tới cho mình tất cả kiến thức và kỹ năng mình có đc hom nay.

Q: Anh Phong ơi ngoài thời gian làm việc tại BB anh có nhận thêm project ở ngoài không anh vì em thấy anh làm fullstack ạ

A: Mình hiện tại đang full-time tại BB và dành hầu hết thời gian vào các dự án của BB. Tuy nhiên trước kia mình cũng đã từng thực hành tại nhiều mảng khác nhau như iOS Apps, System Admin và Design. Tuy nhiên ngoài công việc căng thẳng ở cty, thì mình có 1 thú vui đo là chơi Drone. 1 Năm vừa rùi nghiên cứu và nghịch ngơm, thì cũng rút ra đc rất nhiều kiên thức cũng như thực hành thực tế, mà chính xác là làm mạch, nạp code cho MicroChips, C++, MobileApp để điều khiển, Unit testing và vo số skill khác nữa.

Q: Vậy em bên lập trình java nhưng em thích cả việc tổ chức sự kiện thì anh nghĩ em nên đi tìm hiểu về tổ chức sự kiện để sau này có thể tạo event cho anh em lập trình giao lưu với nhau hay là cứ chuyên tâm học code trước ạ

A: Hoặc em có thể tổ chức events j đó cho anh em có thể được ngồi code cùng nhau. Có phải e vừa học code vừa tổ chức events

Q: Anh ơi Anh cho em hỏi là sự khác biệt giữa React và các framework Js khác như Angular, Ember, Backbone là gì? Em cảm ơn anh ạ.

A: Mình ko có câu trả lời cho câu hỏi này. Mình nghĩ là người làm nên những thư viện này, mục đích của hộ không phải để mọi người đem ra so sánh!! mỗi thư viện đc làm ra để giải quyết 1 vấn đề cụ thể nào đó theo cách nghĩ của người làm. Thế neen mình hay có 1 thói quen là tự đưa ra 1 đầu bài của mình rùi dùng các thử viện khác nhau để đưa ra kết qua giống nhau. Làm như vậy bạn sẽ hiểu rõ hơn cái nào phù hợp với công việc của bạn. Nếu như kết quả như nhau, thì bạn học được thêm nhiều cách tư duy để giải quyết 1 vấn đề.

Một lần nữa, AMA rất cảm ơn anh Phong đã trả lời nhiệt tình rất nhiều câu hỏi của các bạn trẻ yêu thích công nghệ và lập trình. Bạn vẫn còn thắc mắc muốn được giải đáp? Đợi đến thứ 6 tuần sau, 13/1 để xem nhân tố bí ẩn lộ diện tiếp theo là ai nhé!

Xem các vị trí tuyển dụng lập trình IT tại đây

10 điều bạn cần biết về PHP7

5 tính năng mới trong PHP 7 cần phải biết

Nếu bạn là một web developer hoặc một người sở hữu website? Nếu trang web của bạn chạy trên CMS PHP như WordPress, Drupal, Joomla hay Magento? Vậy thì tôi có một tin vui cho bạn đây: phiên bản đầy đủ tính năng của PHP 7 mới đây đã được tung ra thị trường, bao gồm rất nhiều tính năng thú vị khiến chung tôi phải dành ra cả một bài viết về nó.

1.Tên của nó là PHP 7 (Không phải PHP 6)

Phiên bản ổn định hiện tại sử dụng phiên bản tên PHP 5.6. Tuy nhiên sau một số tranh chấp nhỏ thì đội ngũ phát triển quyết định sẽ bỏ qua PHP 6 trong lần ra mắt lớn lần này. PHP 6 thật ra đã từng tồn tại trong quá khứ như một dự án thử nghiệm nhưng đáng tiếc nó chưa bao giờ được triển khai thành một sản phẩm thật sự.

Nhằm đảm bảo người dùng không bị nhầm lẫn giữa phiên bản trong quá khứ và phiên bản thật sự lần này, lần ra mắt lớn này sẽ xuất hiện dưới cái tên PHP 7.

TopDev Techtalk #54: PHP & PHP7 – Secrets behind Optimization

*Hồ Chí Minh: 18h00 – 21h00 ngày 06/01/2017

9

2. Zend Engine mới

Zend engine đã hỗ trợ cho PHP kể từ năm 1999 khi nó được giới thiệu với PHP 4. Zend – không giống như Zend Framework – là một engine vận hành mã nguồn mở được viết ở ngôn ngữ C và thông dịch ngôn ngữ PHP. Phiên bản PHP 5.X sử dụng Zen Engine II nhằm tăng cường tính năng so với engine ban đầu và thêm vào mô hình đối tượng mở rộng cùng với việc tăng cường hiệu năng đáng kể cho ngôn ngữ.

PHP 7 sở hữu một phiên bản hoàn toàn mới của engine dưới cái tên PHP#NG (Next Generation).

Xem ngay tin tuyển dụng PHP lương cao trên TopDev

3. Tăng gấp đôi tốc độ

Ưu điểm dễ nhận biết nhất của engine PHPNG mới là sự cải thiện ấn tượng về hiệu năng. Đội ngũ phát triển của PHPNG đã tái cấu trúc Zend Engine và tối ưu bộ nhớ sử dụng một cách tối đa.

Bạn có thể nhìn vào biểu đồ dưới đây để thấy được kiểu quả mà nó mang lại. Sử dụng PHP 7 không chỉ giúp code của bạn thực thi nhanh hơn mà còn giúp bạn  giảm số lượng server cần dùng cho cùng 1 lượng users.

4. Dễ dàng kiểm soát lỗi

Không hề nói quá lên khi khẳng định rằng việc kiểm soát và phát hiện fatal error chưa bao giờ là công việc dễ dàng cho bất cứ lập trình viên PHP nào. Phiên bản Engine Exception mới sẽ cho phép bạn thay thế những lỗi này với biến thay thế. Nếu những biến thay thế đó không phù hợp, PHP sẽ tiếp tục trả về fatal error như phiên bản 5.X hiện tại.Chủ thể \EngineException không mở rộng \Exception Base Class. Điều này đảm bảo sự tương thích ngược và kết quả trong 2 loại biến thay thế khác nhau trong việc kiểm soát lỗi: truyền thống và engine exceptions.

Để lập trình viên có thể làm được cả 2, PHP 7 giới thiệu một Parent Class được chia sẻ mới dưới cái tên \BaseException.

5. Hỗ trợ hệ thống Windows 64-Bit

PHP là một thành viên thường trực của LAMP stack và điều đó cũng có nghĩa rằng môi trường tự nhiên của nó là Linnux – nhưng người dùng vẫn có thể chạy nó trên hệ thống Windows. Phiên bản 5.X chưa cung cấp 64-bit integer hoặc hỗ trợ file lớn, vì vậy các bản build x64 vẫn chỉ được xem như là phiên bản thử nghiệm trong quá khứ.

PHP 7 sẽ thay đổi tất cả những điều đó với việc tung ra phiên bản hỗ trợ 64-bit, điều đó có nghĩa cả 64-bit integers tự nhiên và file lớn sẽ đều được hỗ trợ, điều đó cho phép bạn tự tin hơn trong việc chạy ngôn ngữ trên hệ thống Windows 64-bit

6. Phương thức tính toán Spaceship và Null Coalescing mới

Phương thức tính toán Spaceship sẽ được vận hành dưới cái tên chính thức là Combined Comparison Operator. Kí hiệu của phương thức tính toán mới sẽ trông như thế này <=> (giống như một phi thuyền được tối giản hóa nếu ban là người có trí tưởng tượng phong phú)

Phương thức  tính toán spaceship sẽ trả về 0 nếu cả 2 toán hạng (operands) bằng nhau, 1 nếu bên trái lớn hơn và -1 nếu bên phải lớn hơn. Nó còn được gọi là phương thức tính toán so sánh 3 chiều, và nó đã tồn tại trong một ngôn ngữ lập trình nổi tiếng như Perl và Ruby

Phương thức tính toán Null Coalescing được hiển thị dưới 2 dấu chấm hỏi (??). Bạn có thể sử dụng nó mỗi khi bạn muốn kiểm tra sự tồn tại và trả về giá trị gốc của một thứ gì đó trong trường hợp nó không tồn tại. Phương thức tính toán Coalesce trả về kết quả của toán hạng đầu tiên nếu nó tồn tại và không bị null, và toán hạng thứ 2 trong những trường hợp còn lại.

Đây là cách toán hạng mới giảm thời gian dành cho những khai báo cơ bản

7. Kích hoạt khai báo kiểu chính xác

Bạn đã bao giờ mong ước sẽ không gặp phải tình trạng trả về giá trị một cách tình cờ sau khi khai báo giá trị trả về của một chức năng? Mong ước của bạn đã thành sự thật khi PHP 7 mới cho phép developers tăng cường chất lượng đoạn code với sự giúp đỡ của khai báo kiểu trả về.

Hình ảnh ở dưới diễn tả một phương pháp sử dụng rất đơn giản khi function foo() cần phải trả về array.

Xem những trường hợp phức tạp hơn tại đây

Để tăng cường tính năng này hơn nữa, PHP 7 giới thiệu 4 kiểu khai báo mới cho loại scalar: int, float, string và bool. Loại Scalar mới cho phép developer chỉ ra rằng họ đang mong muốn giá trị trả về là integer, float, string và Boolean.

8. Thêm vào các Class Anonymous

PHP 7 cho phép bạn sử dụng class anonymous, đặc trưng này đã tồn tại trong những ngôn ngữ lập trình object-oriented như C# và Java. Class anonymous là class vô danh. Object mà nó đại diện có cùng chức năng với object cùng tên.

Cú pháp của nó giống như những gì ta thường dùng trong class PHP truyền thống nhưng không có tên. Nếu class anonymous được sử dụng tốt, nó có thể tăng tốc độ lập trình cũng như thực thi. Class anonymous sẽ rất tốt khi class này chỉ dùng được 1 lần trong lúc thực thi và trong trường hợp class này không cần phải lưu lại.

9. Import thuận tiện từ cùng Namespace

Tính năng Group Use Declaration sẽ là món quà cho nhưng người muốn import nhiều class từ cùng namespace. Cú pháp mới sẽ không còn rườm rà như trước, khiến code của bạn sạch sẽ hơn và dễ theo dõi, đồng thời tiết kiệm rất nhiều thời gian đánh máy của bạn.

Nó cũng giúp developer dễ dàng đọc code và debug hơn, bởi vì group use declaration sẽ giúp bạn xác định import trong cùng module.

10. Dọn dẹp phần thừa

Mục tiêu của PHP 7 là làm trống và dọn dẹp nhằm cải thiện hiệu năng, vì vậy sẽ rất cần thiết khi dọn dẹp những phần thừa và cũ không còn được Server API hỗ trợ.

Tất cả những phần thừa bị loại bỏ đã tồn tại trong một thời gian trong PHP 5, vì vậy thường chúng đều là những thứ đã không sử dụng jtrong 1 thời gian dài. Tuy nhiên nên nhớ rằng nếu ban sử dụng app legacy chạy trên phiên bản PHP cũ hơn, PHP 7 mới có thể sẽ làm hư code.

Techtalk via Hongkiat

Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev

10 Frameworks tốt nhất hiện nay cho PHP

10 Frameworks tốt nhất hiện nay cho PHP

PHP được biết đến như một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới với sự phát triển mạnh mẽ kể từ khi xuất hiện lần đầu tiên dưới dạng 1 đoạn ngắn trong tập tin HTML.

Trong thời gian này, giới lập trình viên đã bắt đầu xuất hiện nhu cầu xây dựng những websites và webapps với độ phức tạp nhất định. Điều đó đồng nghĩa với việc sẽ tốn rất nhiều thời gian cũng như công sức để hoàn tất sản phẩm từ lúc nó chỉ còn là ý tưởng. Những framework của PHP cung cấp cho các developer một giải pháp tương đối để tạo ra một hướng đi tự nhiên hơn.

Trong bài viết này, chúng tôi đã cẩn thận chọn ra 10 framework cho PHP phổ biến nhất, với khả năng mạnh mẽ giúp việc phát triển Backend web trở nên thuận lợi và hợp lý hơn.

Lý do nên dùng Framework PHP

Đầu tiên, chúng ta hãy điểm qua những lí do quan trọng nhất mà phần lớn các developer thích sử dụng framework PHP, và cách mà những framework này tôi ưu hóa quá trình phát triển sản phẩm.

  • Tăng tốc quá trình phát triển.
  • Tổ chức, sắp xếp, duy trì và tái sử dụng code.
  • Cho phép sản phẩm của bạn phát triển từng ngày, bởi những web apps chạy trên framework đều có khả năng mở rộng.
  • Giúp bạn giảm bớt căng thẳng về vấn đề an ninh của site.
  • Đảm bảo tính logic và khả năng trình bày nhờ đi theo khuôn mẫu MVC (Model-View-Controller)

1. Laravel

Mặc dù Laravel là framework PHP mới (tung ra năm 2011), tuy nhiên theo khảo sát online mới đây của Sitepoint thì Laravel là framework được sử dụng phổ biến nhất trong giới developer. Laravel sở hữu một hệ sinh thái khổng lộ với instant hosting và nền tảng vận hành, và trang website chính thức của nó cung cấp rất nhiều hướng dẫn thông qua Laracasts.

Laravel sở hữu rất nhiều tính năng cho phép phát triển nhanh ứng dụng. Nó có một engine khuôn mẫu hạng nhẹ được gọi là “Blade”,  những cú pháp cực kì gọn gàng giúp công việc thường nhật của bạn như authentication, sessions, queuing, bộ nhớ đệm và RESTful routing trở nên nhẹ nhàng hơn rất nhiều. Laravel còn tích hợp môi trường làm việc riêng gọi là Homestead.

2. Symfony

Những thành phần trong framework Symfony 2 được sử dụng trong rất nhiều project ấn tượng như hệ thống quản lý nội dung Drupal hay forum phần mềm phpBB. Symfony sở hữu một cộng đồng developer rộng lớn với rất nhiều fan nhiệt huyết.

Những thành phần của Symfony được xem như là những thư viện PHP hỗ trợ bạn trong rất nhiều công việc, như tạo form, tùy chỉnh đối tượng, routing, authentication, templating, và rất nhiều những thứ khác. Bạn có thể cài đặt bất kì thành phần nào bạn muốn bằng cách sử dụng phần mềm quản lý Composer PHP. Website của Symfony có rất nhiều khu vực hấp dẫn, nơi bạn có thể quan sát một cách tổng thể cách mà các developer khác hoàn thành công việc của mình nhờ framework tiện lợi này.

3. CodeIgniter

CodeIgniter là một framework PHP thuộc hạng nhẹ với tuổi đời trên 10 năm (ra đời vào năm 2006). CodeIgniter sở hữu một quy trình cài đặt thẳng và chỉ yêu cầu một ít tùy chỉnh nhỏ, điều này có thể giúp bạn tiết kiệm được rất nhiều thời gian và công sức. Nó còn có những gợi ý nhằm giúp bạn tránh được xung đột giữa các phiên bản của PHP, và CodeIgniter hoạt động mượt trên hầu hết những hosting platform (phiên bản hiện tại chỉ yêu cầu PHP 5.2.4)

CodeIgniter không hoàn toàn dựa theo khuôn mẫu phát triển MVC. Sử dụng Controller là bắt buộc, nhưng Models và Views đều cho phép bạn lựa chọn hoặc bỏ qua, và bạn còn có thể sử dụng code riêng của mình và đặt tên cho quy ước. Tất cả đều là những bằng chứng cho thấy CodeIgniter tạo ra một sự thoải mái lớn cho người dùng như thế nào. Nếu bạn download nó, bạn sẽ nhận ra rằng CodeIgniter chỉ có độ lớn khoảng 2MB, vì vậy đây là một framework khá lean và cho phép bạn cài đặt plugins từ bên thứ 3 nếu có nhu cầu sử dụng những chức năng phức tạp hơn.

Xem ngay tin tuyển dụng PHP lương cao trên TopDev

4. Yii 2

Với việc lựa chọn Yii framework, ban đã góp phần tăng hiệu năng của sản phẩm khi nó nhanh hơn bất kì framework PHP nào khác nhờ sử dụng phương pháp lazy loading. Yii 2 thuần túy là một object-oriented, và nó dựa trên phương thức code DRY (Don’t Repeat Yourself), và nó cung cấp cho bạn nền tảng code khá rõ ràng và mang tính logic.

Yii 2 được tích hợp với jQuery, bao gồm cả một bộ tính năng của AJAX. Nó được xây dựng với cơ chế skin và theme dễ sử dụng, vì vậy đây sẽ là một sự lựa chọn tuyệt vời cho bất cứ developer đã có kinh nghiệm về Frontend. Nó còn sở hữu một code generator mạnh mẽ được gọi là Gii cho phép người dùng object-oriented thuận thiện và prototyping nhanh chóng, và cung cấp giao diện web-base cho phép bạn linh động tạo ra code bạn muốn.

5. Phalcon

Phalcon framework được tung ra vào năm 2012 và đẫ nhanh chóng nhận được sự quan tâm từ giới PHP developer. Phalcon được biết đến như một framework hoạt động cực kì nhanh nhờ được viết ở C và C++ nhằm đạt được hiệu suất hoạt động tối đa có thể. May mắn thay, bạn sẽ không cần phải học ngôn ngữ C để sử dụng, bởi những tính năng này có thể được sử dụng trong bất kì ứng dụng nào.

Phalcon đôi lúc được xem như một tiện ích mở rộng ngôn ngữ C, nó không chỉ tăng tốc độ hoạt động mà còn giảm tải lượng tài nguyên sử dụng. Phalcon cũng được tích hợp cùng rất nhiều tính năng thú vị như universal auto-loader, quản lý, bảo mật, dịch thuật, bộ nhớ đệm và nhiều thứ khác. Phalcon rất đáng để thử với một framework đầy đủ và dễ sử dụng.

Tuyển dụng PHP Hà Nội lương cao

6. CakePHP

CakePHP là framework tuy đã xuất hiện từ rất lâu (2005) nhưng vẫn nằm trong nhóm những framework PHP phổ biến nhất hiện nay nhờ luôn cập nhật và bắt kịp thời đại. Trong phiên bản mới nhất, CakePHP 3.0 đã nâng cấp phiên quản lý, tăng cường hiệu suất thông qua việc phân tách hàng loạt thành phần, và tăng cả năng tạo ra nhiều thư viện độc lập hơn.

Cake PHP sở hữu quầy trưng bày rất ấn tượng, nó tăng cường sức mạnh cho website của những hãng lớn như BMW, Huyndai và Express. Đây là một công cụ tuyệt vời cho việc tạo ra web app với nhu cầu bảo mật cao nhờ rất nhiều tính năng bảo mật đi kèm như xác nhận đầu vào (input validation), ngăn chặn sự xâm nhập SQL, ngăn chặn XSS (cross-site scripting), ngăn chặn CSRF (cross-site request forgery), và rất nhiều tính năng khác.

7. Zend Framework

Zend là một framework PHP mạnh mẽ và ổn định, tích hợp theo nó là rất nhiều lựa chọn tùy chỉnh do đó thường không phù hợp với những project nhỏ mà hiệu quả hơn ở những project yêu cầu độ phức tạp cao. Những đối tác của Zend bao gồm IBM, Microsoft, Google và Adobe. Trong phiên bản lớn tung ra trong thời gian tới, Zend Framework 3 sẽ được tối hưu hóa cho PHP7 nhưng vẫn hỗ trợ từ PHP5.5 trở lên.

Trong phiên bản hiện nay, Zend Framework 2 sở hữu rất nhiều tính năng thú vị như công cụ cryptographic coding, công cụ editor kéo-thả dễ sử dụng hỗ trợ công nghệ front-end (HTML, CSS, JavaScript), debug online và công cụ test PHP Unit, ngoài ra nó còn kết nối được với Database Wizard. Zend Framework được tạo ra nhờ phương pháp Angile nhằm mang lại app chất lượng cao cho khách hàng.

8. Slim

Slim là một micro framework của PHP cung cấp cho bạn tất cả mọi thứ mà bạn cần. Micro framework được tối giản trong thiết kế và là một sự lựa chọn tuyệt với cho những project nhỏ. Những người tạo ra Slim thừa nhận họ được truyền cảm hứng từ Ruby micro framework có tên là Sinatra.

Slim được sử dụng bởi rất nhiều PHP developer trong việc tạo ra RESTful APIs và dịch vụ. Slim được tích hơp những tính năng như URL routing, bộ nhớ đệm client-side HTTP, session và cookie encryption, và nó hỗ trợ tin nhắn “flash” xuyên suốt những yêu cầu HTTP.

9. FuelPHP

FuelPHP là một framework PHP linh động được tích hợp tất cả mọi thứ, nó không chỉ hỗ trợ khuôn mẫu MVC thông thường mà còn hỗ trợ cho phiên bản cao cấp hơn, HMVC (Hierarchical Model-View-Controller) ở mức độ cấu trúc. FuelPHP có thêm một lựa chọn được gọi là Presenter (trước đây nó được biết dưới cái tên khác là ViewModel), lựa chọn này nằm giữa layer Controller và View nhằm đảm bảo tính logic cần thiết để tạo ra View.

FuelPHP đảm bảo sự an ninh với việc cung cấp những tính năng như lọc input và URL cũng như mã hóa output, và nó còn sở hữu framework đươc chứng nhận, với rất nhiều tính năng rất tinh vi cùng tài liệu hướng dẫn chi tiết.

10. PHPixie

PHPixie là một framework còn khá mới, nó ra đời năm 2012 với mục đích tạo ra một framework hiệu suất cao cho những website read-only. PHPixie hỗ trợ khuôn mẫu thiết kế HMVC cũng giống như FuelPHP, và nó được xây dựng bằng cách sử dụng những thành phần độc lập, những thành phần này có thể dùng mà không cần framework. Những thành phần của PHPixie đều đã được trải qua thử nghiệm 100%, và việc sử dụng chúng yêu cầu một số lượng điều kiện rất ít.

Website chính thức của PHPixie có hướng dẫn giúp bạn học cách sử dụng Framework chỉ trong 30 phút, đồng thời blog của PHPixie được xây dựng rất chi tiết với nhiều ví dụ thực tiễn. Trong số những tính năng của PHPixie, bạn có thể tìm thấy ORM tiêu chuẩn (object relational mapping), bộ nhớ đệm, xác thực input, khả năng xác thực và phân quyền. PHPixie còn cho phép bạn sử dụng ngôn ngữ HAML, cho phép schema migration, và sở hữu hệ thống routing tinh vi.

Techtalk via Hongkiat

Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev

“Startup công nghệ fail vì sản phẩm không phù hợp với market hoặc làm không tới”

AMA (Ask Me Anything) là 1 sự kiện Q&A (Hỏi đáp trực tiếp) diễn ra vào mỗi chiều thứ 6 hằng tuần trên fanpage của TopDev, để các chuyên gia hàng đầu trong ngành Tech giải đáp những thắc mắc về công nghệ và lập trình của các bạn có quan tâm. 

Ngoài vị trí Android Tech Leader tại VCCorp, anh Lê Văn Giáp cũng đảm nhiệm vị trí Mentor của Vietnam Android Academy2015 và là Tech Advisor của GDG Hanoi. Đặc biệt anh Giáp là Founder của VietAndroid.com – Cộng đồng lập trình Google Android đầu tiên tại Việt Nam. Tất tần tật những câu hỏi về Mobile apps solution, IoT solution, Tech startup sẽ là trọng tâm giải đáp của anh Giáp trong AMA lần này. 

Q: Theo em thấy có rất nhiều doanh nghiệp startup công nghệ nhưng hầu hết đều thất bại, vậy theo anh lí do lớn nhất dẫn đến thất bại của các doanh nghiệp startup trong lĩnh vực công nghệ là gì ạ? Em cảm ơn anh nhiều ạ

Startup fail thì có nhiều lí do lắm. Mình chỉ đưa ra 2 lí do chính: 1. Sản phẩm không phù hợp với market (có thể idea hay nhưng sai thời điểm, chọn sai target market,…), 2. Làm không tới (ko giải quyết được bài toán khó về công nghệ trong khi triển khai, thiếu tầm nhìn và thiếu tiền)

Q: Anh ơi các Tech Startup thường gặp phải những khó khăn gì và cách khắc phục những khó khăn đó là gì ạ?

Có 2 khó khăn chính: 1. là giải pháp công nghệ tối ưu cho ý tưởng sản phẩm. 2 là tài chính

Nhiều tech startup có idea tốt nhưng khi triển khai lại gặp các bài toán khó nên sẽ fail nếu không tìm được sự trợ giúp.  Tài chính thì chắc ko cần giải thích nhiều.. ko có tiền thì khó mà làm được gì .. quan trọng cần bao nhiêu ??? và tiêu nó như thế nào ???

Q: Anh có thể chia sẻ những kinh nghiệm xương máu mà anh đúc kết được trong quá trình công tác tại VCCorp và GDG không ạ?

hi. câu hỏi hơi rộng: mình xin trả lời ngắn gọn nhá: làm việc ở VCCorp là môi trường theo mình rất good (năng động, thời gian không bị quản lí quá chặt/quản lí theo hiệu quả, nhiều người giỏi để học hỏi, các sếp rất tâm lý và có tầm nhìn ). Ở Google Developer Group (GDG Hanoi): ở đây mình cảm thấy rất thú vị, được tham gia hầu hết các tech event mà Google tổ chức tại Hà nội, và mình đều có vinh dự làm speaker. Ở đây mình có cơ hội giao lưu với các chuyên gia từ google và mở rộng mối quan hệ

Q: Em chào anh Giáp, hiện em đang có 1 project yêu cầu phải nghiên cứu về điểm khác biệt của iOS và Android. Em xin được phép hỏi anh những bất lợi của từng hệ điều hành là gì ạ?

câu hỏi hơi “KHOAI”, mỗi OS đều có cái hay riêng của nó và tùy vào nhu cầu của dự án và sẽ ưu tiên OS nào hơn. về chi tiết sự khác biệt thì bạn có thể google thêm, có nhiều bài viết so sánh 2 OS này

Tìm việc làm IOS developerAndroid developer hấp dẫn cho bạn

Q: Dạ em xin cảm ơn vì câu trả lời của anh. Hiện tại em đang có rất nhiều băn khoăn trong việc xác định nhược điểm lớn nhất của iOS và của Android là gì ạ? Em hi vọng sẽ được nghe quan điểm cá nhân của anh. Em xin cảm ơn anh.

Sự khác biết rõ dàng nhất đó là: Android -> open source và có đã tạo ra nhiều smartphone giá rẻ cho khách hàng bình dân -> điều này đã tác động/tạo ra một sự phát triển vô cùng mạnh mẽ của thị trường martphone toàn cầu nói chung và VN nói riêng. Nếu ko có Android thì sự phổ biến về smartphone sẽ không như bây giờ và trong tương lai.

Q: Anh ơi cho em hỏi các thiết bị IoT có thể giao tiếp với nhau không? Nếu có, chúng giao tiếp thế nào ạ?

Bản chất IoT (internet of thinhgs) đã nói lên điều đó, các thiết bị giao tiếp với nhau qua internet (phạm vi ngắn hơn là các kết nối không dây nội bộ). Các dự án độc lập nếu không có sự chia sẻ thì đương nhiên sẽ không kết nối được với nhau

Q:  Theo anh Giáp thì vai trò của Bluetooth trong IoT là gì vậy anh ơi ?

Chào bạn. BL chỉ là 1 giao thức để các device connect/communicate với nhau và còn nhiều giao thức khác nữa. BL là đơn giản là 1 giao thức tầm ngắn (limit ~ <=15 m). Tùy nhu cầu thực tế mà chúng ta sử dụng BL hay giao thức kết nối không dây (wireless) khác nhau: BLE, z-wave, zigbee,…)

Bluetooth đã có phiên bản mới nhất (BLE) tiêu thị rất ít điện năng và hỗ trợ kết nối 1 – N

Có rất nhiều giải pháp IoT hiện đang sử dụng giao thức này để giúp các thiết bị trong cùng một phạm vi ngắn (ngôi nhà, xe hơi, phòng meeting,…) giao tiếp với nhau.

Q: Chào anh Giáp, anh có thể chia sẻ giúp em điều gì có thể làm cho Internet of Things có thể biến đổi theo hoàn cảnh không ạ? Em cảm ơn anh ạ

Câu hỏi nãy hơi khó (hiểu) để trả lơi đúng. Một giải pháp IoT thông minh và có tầm nhìn xa thì chắc chắn nó sẽ thích nghi với hầu hết các hoàn cảnh và mong muốn thay đổi từ điều kiện sử dụng thực tế cũng như sự phát triển/ nâng cấp/mở rộng sau này

hiện tại AI (trí tuệ nhân tạo) đang được áp dụng vào các giải pháp IoT nên trong tương lại gần IoT sẽ được tăng thêm khả năng tự thích nghi với hoàn cảnh rất cao chứ không chỉ là những device giao tiếp thông thường nữa

Q: Theo như em tìm hiểu thì điện năng và băng thông thấp rất quan trọng với IoT? Tại sao lại như vậy anh ?

từ băng thông thấp hơi tối nghĩa, có thể hiểu là mức tiêu thụ điện năng thấp (low engery) và khả năng nén truyền dữ liệu trên 1 đường truyền có limit băng thông (ví dụ truyền video ổn định chỉ qua đường truyền 512kbs) -> một giải pháp mà có tính ổn định cao và tiết kiệm năng lượng thì luôn là lựa chọn hàng đầu cho người tiêu dùng rồi. Với lại một số giải pháp cho các IoT device cần dùng battery (pin) mà không dùng nguồn điện lưới nên chúng càng tiêu thụ ít năng lượng thì khả năng hoạt động sẽ được kéo dài hơn

Q: Nói đến IoT, Cisco có dự báo rằng đến năm 2020, sẽ có 50 tỷ đồ vật được kết nối với internet, bao gồm hàng tỷ thiết bị di động, TV, …thì xu hướng công nghệ Việt Nam nói chung và cộng đồng tech Việt hay Vietandroid.com nói riêng đã chuẩn bị và đang làm gì để chạy theo xu hướng này?

Chào bạn! đúng là có nhiều tập đoàn lớn về công nghê đã có nhiều dự đoán như vậy và cá nhân tôi cũng tin vào điều đó và nó đã và đang diễn ra rồi. Xu hướng ở VN: IoT trends ở VN cũng đã bắt đầu với nhiều event liên quan tới IoT, nhiều cộng đồng/group IoT đã được thành lập trên FB. Nhiều lớp học FREE cũng đã và đang được mở ra. Nhiều IoT club đang hoạt đôngj và dự là làn sóng IoT tại VN sẽ phát triển bùng nổ trong 2 năm tới đây. Xu hướng IoT VN: nhiều công ty công nghệ lớn cũng đã quan tâm tới IoT và họ đang có những dự án bí mật . Và có nhiều startup đang theo đuổi một sản phẩm về IoT  Vietandroid.com đơn giản chỉ là 1 cộng đồng về Lập trình Android thôi. Cá nhân mình đang setup 1 cộng đồng khác chuyên về IoT -> sẽ ra mắt vào đầu 2017

Q: Anh ơi anh có thể cho em một ví dụ cụ thể về cách mà IoT làm việc được không ạ?

Có rất nhiều bài viết giới thiệu cũng như hướng dẫn về IoT. Mình tóm lược như sau: Trước khi về nhà (vào mùa đông) bạn muốn có ai đó bật hộ bình nóng lạnh ở nàh trước 15 phút để về nhà có nước nóng tắm ngay. và IoT sẽ giúp bạn giải quyết vấn đề đó như sau: Bạn cài đặt 1 ứng dụng điều khiển từ xa trên smartphone, ứng dụng này sẽ gửi một yêu cầu (bật nóng lạnh) qua internet tới 1 thiết bị điều khiển tắt mở bình nóng lạnh ở nhà của bạn… đơn giản vậy đó

IoT là một khái niệm chung, còn các giải phaps cụ thể cũng như các mô hình hoạt động thì có nhiều loại khác nhau. Đơn giản giải pháp IoT tổng thể nó bao gồm: thiết bị đầu cuối và cloud/online service. Thiết bị đầu là các thiết bị được thiết kế ra để điều khiển hay thực hiện một công việc gì đó cụ thể (cảm biến nhiệt độ, độ ẩm, cảm biến khói, các bộ điều khiển điện tử), thiết bị cuối là các thiết bị tương tá trực tiếp với end user

Cảm ơn anh Giáp đã dành thời gian trả lời thắc mắc của các bạn fan của fanpage Topdev. Hãy cùng chờ đợi gương mặt tiếp theo sẽ lên sóng AMA vào tuần tới nha!

Tham khảo thêm các vị trí công việc IoT Development jobs

5 tính năng mới trong PHP 7 cần phải biết

5 tính năng mới trong PHP 7 cần phải biết

Sau khi PHP 5 ra mắt vào năm 2004 thì từ đó đến 2015 không hề có một phiên bản nâng cấp lớn nào của PHP, chủ yếu là các bản vá lỗi, cải thiện hiệu suất và một vài tính năng mới mới như lập trình hướng đống tượng, … cộng đồng PHP luôn luôn mong chờ có một cái gì đó thật sự đổi mới đối với PHP và vào cuối tháng 12 năm 2015 PHP 7 đã ra mắt chính thức với hàng loạt tính năng mới sau một thời gian dài beta (PHPNG). Trong bài này mình sẽ nói về 5 điểm mới trong PHP 7 mà theo mình là rất đáng giá.

1. PHP 7 cho tốc độ nhanh hơn 2 lần PHP 5

Tốc độ trong PHP 7 được cải thiện đến đáng kinh ngạc khi nó nhanh hơn PHP 5 ít nhất 2 lần, nếu bạn biết tối ưu thì nó còn nhanh hơn nữa, có thể lên đến 3-4 lần. Bảng benmark tốc độ dưới đây sẽ cho bạn thấy điều đó, khi test thử trên 2 CMS nổi tiếng đó là Drupal và WordPress, chưa cần tối ưu gì tốc độ cũng đã nhanh hơn 2 lần, đặc biệt hiện có 25% các trang web đang chạy trên WordPress, đây là điều tuyệt vời cho tất cả mọi người.

2. PHP 7 cho phép khai báo kiểu của biến

Tính năng này trong PHP7 gọi là Tyle Declarations, nó cho phép khai báo kiểu của biến thay vì để PHP tự động quyết định kiểu như trước kia. Trước PHP 7 nó vẫn bị chê là ngôn ngữ không chặt chẽ, weak typed language nhưng với tính năng này bạn có thể sử dụng để ràng buộc biến vào một kiểu dữ liệu cụ thể nào đó giúp cho code của mình dễ đọc hơn.

Ở PHP 5, bạn cũng có thể sử dụng tính năng type hint để chỉ định kiểu dữ liệu mong muốn của một tham số khi khai báo hàm, phương thức nhưng tất cả chỉ dừng lại ở khai báo. Khi bạn gọi hàm này, PHP sẽ kiểm tra xem các tham số có đúng với kiểu đã chỉ định hay không. Nếu không, trình biên dịch sẽ thông báo lỗi và chương trình sẽ được tạm dừng, Type hint của PHP 5 không những bị giới hạn chỉ sử dụng trong khai báo hàm mà còn bị giới hạn 2 kiểu đó tên class hoặc 1 mảng thôi, dưới đây là một ví dụ:

Ví dụ với hàm enroll() ở trên, chúng ta có  thể chỉ định tham số đầu tiên là một student object và tham số thứ hai là một mảng các class. Nếu cố tình truyền vào một chuỗi thay vì một đối tượng, bạn sẽ nhận được thông báo lỗi, nếu chúng ta chỉ truyền vào 1 class thay vì một mảng các class chúng ta cũng sẽ nhận được thông báo lỗi. Hãy xem thêm một ví dụ dưới nữa:

Nếu như đoạn code trên chạy trên PHP 5 nó sẽ báo lỗi vì như mình đã nói ở trên, type hint trong php5 chỉ cho phép 2 kiểu đó class và array, truyền như trên là bạn truyền theo kiểu string rồi nghĩa là kiểu dữ liệu của biến là kiểu chuỗi nhưng php5 nó hiểu cái hàm này là truyền vào một đối tượng thuộc class string.

Xem ngay tin tuyển dụng PHP lương cao trên TopDev

Scalar Type Hints

Ở mục 2, mình có nói type hint trong PHP 5 chỉ có 2 kiểu đó là class và array nhưng trong PHP 7, nó đã bổ sung thêm nhiều kiểu nữa đó là integer, float, string, bool. Với tính năng này, PHP đã không còn bị mang tiếng là ngôn ngữ không chặt chẽ nữa rồi, tuy nhiên để sử dụng được Scalar Type Hints bạn phải bật chế độ strict mode, mình sẽ nói ở dưới, với Scalar Type Hint trong PHP 7, giúp code chúng ta viết được chặt chẽ hơn và dễ đọc hơn. Nói gì thì nói cũng phải có ví dụ :

Khi chế độ Strict Mode được bật, nếu tham số truyền vào là string, trong khi chúng ta khai báo là float, nó sẽ báo lỗi Fatal error: Uncaught TypeError: Argument 2 passed to getTotal() must be of the type float, string given.

Nếu bạn truyền vào là một số kiểu int, PHP sẽ thực hiện một thủ tục gọi là “mở rộng (widening)” va nó sẽ tự thêm vào “.0” vào cuối để thành kiểu float.

PHP 7 cho phép khai báo kiểu trả về

Nếu bạn đã từng lập trình với các ngôn ngữ như C, C++, Java, … thì chắc sẽ quen với cú pháp khai báo hàm đó là khai báo kiểu trả về của hàm trước tên hàm. Trong PHP 7 trở về đước thì nó không như thế mà bạn có thể trả về bất cứ kiểu dữ liệu nào bạn muốn, điều này nhiều khi vô tình làm cho hàm của chúng ta không được chặt chẽ, do đó PHP 7 đã bổ sung tính năng cho phép khai báo kiểu trả về của hàm, nếu kiểu trả về sai so với khai báo, nó sẽ sinh ra lỗi. Để chỉ định kiểu trả về cho hàm, bạn chỉ cần khái báo thêm dấu hai chấm và theo sau là kiểu trả về ngay sau tên hàm, trước dấu ngoặc nhọn, ví dụ:

Lưu ý:  Non-strict Int trong PHP 7

Nếu chúng ta chỉ định kiểu trả về là kiểu int nhưng bật chế độ strict mode thì coi như là chúng ta chưa chỉ định kiểu trả về, do đó nếu khai báo kiểu trả về là int thì bạn cần khai báo chế độ strict mode (declare (strict_types=1))

Strict-int: 

Nếu trong hàm bạn chỉ định kiểu dữ liệu của biến là float nhưng kiểu trả về lại là kiểu int và có bật chế độ strict mode thì PHP sẽ báo lỗi, do đó bạn cần phải ép kiểu, xem ví dụ sau:

3. Toán tử mới 

Spaceship Operator

PHP 7 cung cấp thêm một số toán tử mới, đầu tiên đó là spaceship operator (< = >), trông nó giống cái tàu con thoi nên họ đặt tên thế. Đây là toán tử so sánh 2 giá trị, để hiểu rõ hơn mời bạn xem ví dụ sau đây:

Toán tử này viết bắt đầu bắng dấu nhở hơn, tiếp là dấu bằng và dấu lớn hơn (<=>), toán tử sẽ kiểm tra nếu 2 giá trị bằng nhau nó sẽ trả về 0, nếu giá trị bên trái nhỏ hơn giá trị bên phải, trả về -1, còn giá trị bên trái lớn hơn bên phải nó sẽ trả về 1

Null Coalesce Operator

Một toán tử mới khác đó là Null Coalesce, rất hữu ích khi bạn muốn kiểm tra một giá trị có phải là NULL hay không, toán tử này sẽ trả về giá trị bên trái nếu nó không phải NULL, ngược lại nó sẽ trả về bên phải, cách viết toán tử này đó là 2 dấu hỏi chấm ??

Ở ví dụ trên, biến $name sẽ nhận giá trị của biến $firstName nếu nó không NULL, ngược lại biến $name sẽ nhận giá trị “Guest”.

Trước PHP7, để làm thế này bạn phải viết như sau:

Toán tử này còn thế dùng với nhiều giá trị, trong ví dụ sau nó sẽ kiểm tra từ trái qua phải xem giá trị nào không NULL thì nó sẽ lấy giá trị đó gắn cho biến $name

4. Easy User-land CSPRNG

Easy User-land CSPRNG là cái gì?

 User-land là một khái niệm liên quan tới không gian làm việc của ứng dụng, phần mềm với các nhân của hệ thống và được bảo vệ bởi các quyền riêng, nó ám chỉ tới các đoạn code mà chạy bên ngoài của hệ thống ví dụ như PHP là một phần mềm bên ngoài được cài vào hệ thống và nó hoạt động không liên quan gì tới nhân của hệ điều hành, đó là user-land. PHP 7 sử dụng một khái niệm đó là CSPRNG (Cryptographically Secure PseudoRandom Number Generator)

Bạn có thể thấy trong PHP5 có một số hàm random như rand(), đây là hàm tạo ra các số ngẫu nhiên, tuy nhiên user-land của hàm này chỉ nằm trong phạm vi của PHP mà thôi, do đó nó có thể dễ dàng bị hack, việc bảo mật các hàm random này là rất quan trọng. Trong PHP 7, những hàm random này sử dụng interface của hệ thống cho việc random, nghĩa là user-land của nó không còn nằm trong PHP nữa mà nằm trong nhân của hệ thống, như vậy cho dù PHP có bị hack thì cũng rất khó hack vào hệ thống, đặc biệt khi mà những hàm random này được dùng cho việc random mật khẩu.

Ngoài ra PHP 7 có thêm 2 hàm random mới đó là random_int và random_bytes.

Random Bytes 

Khi sử dụng random_bytes, bạn cung cấp một tham số duy nhất đó là độ dài của chuỗi sẽ được trả về, hàm này sẽ trả về một chuỗi chứa các byte ngẫu nhiên được mã hoá an toàn. Nếu bạn sử dụng hàm bin2hex() bạn sẽ nhận được các số dạng như số thập phân.

Những số này không phải là số nguyên, do đó nếu muốn bạn phải dùng hàm random_int

Random_int

Khi sử dụng hàm này bạn phải cung cấp 2 tham số min và max, nó sẽ trả về số ngẫu nhiên trong khoảng min, max này, ví dụ

Nếu bạn vẫn đang sử dụng hàm rand() của PHP5, hãy chuyển sang hàm random_int để được bảo mật hơn.

5. Error Handling

Tính năng tiếp theo mà theo mình là rất hữu ích trong PHP7 đó là Error Handling. Fatal Error là lỗi rất phổ biến trong PHP5 và được coi là lỗi chết người và chương trình dịch buộc phải dừng việc biên dịch lại. Đôi khi nó còn xuất hiện màn hình trắng xoá rất dễ gây nhầm lẫn tới người dùng. Trong PHP 7, xử lí ngoại lệ được cải thiện, một exception sẽ sinh ra khi lỗi Fatal xảy ra, trong PHP 5 thì nó chỉ dừng chương trình lại thôi còn PHP 7 ngoài việc dừng chương trình nó còn sản sinh ra exception.

Trong PHP 7, Xử lí lỗi và xử lý ngoại lệ được ứng dụng một class mới đó là Throwable, chi tiết về cái này bạn search Google nhé.

Type Error

Một tính năng mới trong việc xử lí lỗi đó là Type Error. Đây là một instance của lớp Throwable và nó sẽ sinh ra khi tham số truyền vào hàm không đúng với kiểu dữ liệu đã khai báo, mời xem bạn xem ví dụ dưới đây để hiểu rõ hơn:

 

Parse Error

Đây cũng là một instance của lớp Throwable và nó sẽ sinh ra khi bạn include/require file trong PHP hoặc khi sử dụng hàm eval() mà chứa lỗi cú pháp, bạn xem ví dụ sau sẽ hiểu:

Một tình huống khá phổ biến đó là khi chúng ta thiết kế trang đăng nhập, và bạn muốn kéo một file nào đó vào sau khi người dùng đăng nhập, nếu như file này có vấn đề nó sẽ thông báo cho chúng ta biết file này cần được  sửa, nếu không có Parse Error, chúng ta có thể không biết lỗi này do đâu. Tóm lại Error and Exception trong PHP 7 đã được cải thiện rất nhiều để giúp các lập trình viên code hiệu quả hơn.

Kết luận

Có rát nhiều tính năng mới được thêm vào PHP 7 nhưng mình không thể liệt kê hết ra trong bài này được, bạn có thể tự search Google hoặc đọc tài liệu PHP Manual. Có thể kể ra một vài cái hay như:

PHP 7 cho phép tạo ra các biểu tượng emotion chuẩn của Unicode như

Ngoài ra, PHP 7 còn gỡ bỏ đi khá nhiều hàm cũ như các hàm mysql, exec, do đó nếu bạn đang nâng cấp từ PHP 5 lên PHP 7 thì hãy cẩn thận một số hàm cũ không dùng được, các này bạn có thể tìm hiểu thêm trên trang Docs của PHP Manual. Bài dài rồi, mình xin kết thúc tại đây, cảm ơn bạn đã đọc đến đây :D, có gì cần giải đáp thì liên hệ mình qua Facebook nhé.

Nguồn: Techtalk via Vietnamlab

Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev

Anh hào UX hội tụ tại Building your UX Design from scratch

Anh hào UX hội tụ tại Building your UX Design from scratch

Sự kiện Building your UX Design from Scratch diễn ra vào ngày 26/12 vừa qua do VNG phối hợp cùng Topdev tổ chức đã hội tụ được gần 100 anh em UX từ khắp mọi nơi cùng nhau tranh luận những vấn đề UX nóng bỏng và thiết thực nhất.

Mở màn sự kiện là phần chia sẻ UX muôn màu của diễn giả Lê Anh Quang với cái nhìn tổng quan về mối liên hệ giữa UX & UI, bên cạnh 5 case studies nổi tiếng và tiêu biểu của Instagram, Cucre.vn, Google và Brike Manufactur Vanmoof và Odenplan Station. Nhờ đó, người tham dự thực sự hiểu rõ hơn cách cải thiện UX của các marketers, businessman, developers.. trong bức tranh UX muôn hình vạn trạng.

Xem thêm: Tuyển dụng ui ux thu nhập tốt cho bạn

Tiếp theo chương trình là phần Demo của 4 nhóm đến từ Khóa huấn luyện UX Design, đưa ra các giải pháp tối ưu trải nghiệm người dùng trên website 123phim.vn 1 cách hiệu quả nhất. Các đội không những áp dụng được những kiến thức thu hoạch từ Khóa huấn luyện về User Persona, User Interview… mà còn tự mình tìm kiếm, đề xuất được những ý tưởng độc đáo, có tính ứng dụng cực kì cao.

Khuôn mặt đăm chiêu nhưng không kém phần háo hức của BGK trước phần trình bày của các nhóm…

Cuối cùng, chuyên mục Panel Discussion diễn ra trong không khí sôi nổi đã phần nào “chữa lành” những “nỗi đau” mang tên UX mà người tham dự mang gặp phải nhờ kinh nghiệm chinh chiến lâu năm trên mặt trận trải nghiệm người dùng của 4 anh tài UX anh Lê Anh Quang – Product Director của Websosanh.vn, anh Tùng Jacob – Head of Product của Thế giới di động, anh Nguyễn Hoài An – Head of 123Phim VNG và anh Trương Duy Khang – Lead Designer 123Phim tại VNG

Diễn ra hơn 3 tiếng, gần 100 anh em UX, 4 diễn giả kinh nghiệm, 4 phần demo của 4 đội thi tài năng đến từ Khóa huấn luyện UX Design là những con số sống động minh chứng cho sự thành công của Building your UX Design from Scratch nói riêng và chuỗi chương trình UX của hợp tác giữa VNG và Topdev nói chung.

Đội 1 đã giành phần thắng chung cuộc với màn trình bày thuyết phục nhất

Nếu đã bỏ lỡ các UX Event vừa qua, thì còn ngần ngại gì nữa mà không nhấn LIKE fanpage Life at VNGTopDev để liên tục cập nhật các UX Event hấp dẫn tiếp theo, bạn nhé!

“Làm PM, theo anh không cần biết về code, nhưng phải hiểu về SQL, database, những khái niệm cơ bản của code”

chia sẽ làm PM từ anh trân quang kiên

AMA (Ask Me Anything) là 1 sự kiện Q&A (Hỏi đáp trực tiếp) diễn ra vào mỗi chiều thứ 6 hằng tuần trên  fanpage của TopDev, tạo cơ hội cho các bạn yêu thích công nghệ nói chung & lập trình nói riêng lắng nghe những chia sẻ của các diễn giả hàng đầu trong ngành Tech thông qua chính câu hỏi mà các bạn đặt ra. 

Việc làm SQL lương cao hấp dẫn

Việc làm Database mới nhất cùng công ty hot

Gương mặt AMA lần này là anh Trần Quang Kiên – Product Manager của Adayroi trực thuộc tập đoàn Vingroup. Với kinh nghiệm khi còn làm tại Admicro ở vị trí Editor (1/2008 – 8/2008) và VTC online ở vị trí UX Designer (8/2010 – 1/2012), anh Kiên sẵn sàng trao đổi những thắc mắc liên quan đến các lĩnh vực BA (Business Analyst), UX Design và Ecommerce.

Q: Thưa anh Kiên hiện tại em đang là sinh viên em đang rất thích lĩnh vực Business Analyst mình có cần hiểu về các kiến thức trong lĩnh vực kinh tế , doanh nghiệp ko ạ?

Hi em, anh quote lại câu trả lời hôm trước anh có post trên facebook của anh Ngo Trung, Đạt tham khảo trước nhé.

“Theo em, công việc hàng ngày của BA bao gồm:
– Giải các bài toán hiện tại (ví dụ như TMĐT thì gồm các toán như: làm sao giao hàng trong ngày, làm sao để tăng SEO?, hay chi tiết hơn như: khi search 1 từ khóa, danh mục nào sẽ được hiển thị đầu tiên để lọc, khi khách đặt hàng thì sourcing về kho nào khi có 100 kho trên toàn quốc đều có hàng?) – để giải toán này cần có khả năng tổng quát rất cao, tránh giải quyết adhoc, rồi liên tục đi vá lỗi. Ví dụ: khi nhận ra khi khách đặt hàng cần phải ưu tiên những kho gần khách hàng hơn, thì phải tổng quát hóa là: cần có sourcing strategy bao gồm các yếu tố như: khoảng cách, số tồn, xxx…. sau đó chỉ việc config và add thêm các yếu tố mới nếu cần. Như vầy để làm được việc này thì cần business mind để biết tương lai có thể phát sinh điều gì, nhưng cũng cần biết về tech để biết làm như nào là tổng quát. Vậy 50 -50.
– Xây dựng những thứ mới. Ví dụ: build công cụ CRM để làm việc này, việc kia….Thật ra yêu cầu tương đối giống bên trên. 50-50.
– Lắng nghe, tiếp nhận và truyền tải ý tưởng. BA phải làm với nhiều người để lắng nghe vấn đề. Sau khi ra giải pháp phải biết document lại để thuyết phục sếp, truyền tải cho developer/design, sau đó khi launching phải training cho người vận hành – Gốc business sẽ quen với việc này hơn. 70 – 30
– Manage quá trình hiện thực hóa ý tưởng (phần này công ty to thường có bộ phận riêng hoặc PM riêng) – Bình thường background business có lợi thế hơn trong project management, nhưng nếu đây là sản phẩm kỹ thuật thì có tech background sẽ lợi thế hơn để quản trị, tracking, xử lý. 40 – 60

Như vầy, nói chung business có lợi thế hơn tech background 1 xíu. Nhưng nếu người có background về tech mà có khả năng lắng nghe và truyền đạt thì sẽ lợi thế hơn rất nhiều (vì business đi học tech thì cần nhiều thời gian hơn).”

Về cơ bản, em là BA ngành nào thì em phải là master trong ngành đó, thì đấy mới là cơ sở để em có thể giải được các bài toán khó trong ngành.

Ngoài ra về kỹ năng thì việc tiếp nhận và truyền tải thông tin rất quan trọng, em lưu ý bổ sung trước những kỹ năng này.

Cuối cùng là về project management thì em sẽ học được rất nhanh qua thực nghiệm, nhưng nếu em muốn tham gia BA trong ngành CNTT thì hãy tìm hiểu về Agile/Scrum, đến tham quan 1 cty theo mô hình này để thấy được cái hay của nó.

Q: Anh Kiên ơi, Anh cho em hỏi dùng thương mại điện tử có phải là giải pháp tối ưu cho bán hàng hay không?

Có hoặc không. Cũng tùy sản phẩm và tùy quy mô của doanh nghiệp. Nhưng nhìn chung, hạ tầng dành cho TMĐT VN giờ cũng khá lắm (dịch vụ vận chuyển rất sẵn sàng, dịch vụ thanh toán cũng ok, khách hàng cũng ko fraud nhiều nữa,…) thành ra các DN cũng không khó để thử ứng dụng TMĐT.

Q: Chào anh Kiên em không biết là làm Product Manager anh có cần biết về code không ạ

Hi Hoàng Anh, theo anh là không cần biết về code, nhưng phải hiểu về SQL, hiểu về database, hiểu về những khái niệm cơ bản của code. 1 là em có thể biết cái gì làm được, cái gì muốn làm thì sẽ rất mất công. 2 là em sẽ có ngôn ngữ để giao tiếp được với coder/developer tốt hơn, dễ hiểu nhau hơn.

Q:  Anh ơi nghề BA có phải là cầu nối giữa khách hàng và doanh nghiệp không anh?Và tầm quan trọng của người làm BA đối với doanh nghiệp của mình?

Hi Hoàng, ở comment phía trên anh có brief qua công việc hàng ngày của BA. Từ đó em sẽ thấy là BA khác với UX designer. UX thì nghiêng nhiều vào trải nghiệm người dùng cuối (nếu là trong ngành ICT thì thường là xử lý các vấn đề của website). BA thì nặng về phân tích, giải toán hơn. Em sẽ giải các bài toán vận hành và bài toán tăng trưởng của doanh nghiệp, ví dụ: triển khai cross-border bán hàng xuyên biên giới, triển khai subscription – để khách mua 1 lần sẽ nhận hàng tháng, hay bài toán nhỏ hơn như: luồng vận hành ở kho để tránh sai xót. Nhìn như vậy thì BA nặng về tạo ra các sản phẩm phục vụ vận hành, nội bộ, khách hàng sẽ là các bộ phận vận hành nhiều hơn. Nhưng cuối cùng, những công cụ đó sẽ để giúp khách hàng cuối có trải nghiệm tốt hơn, ví dụ: tạo ra công cụ CS Tool để quản trị được tình trạng đơn hàng, alert được đơn hàng trễ, có khả năng issue giftcode cho những đơn khách không hài lòng… để nhân viên CSKH sử dụng, thì nếu công cụ này mạnh, khách hàng cuối sẽ đc phục vụ tốt hơn.

Một lần nữa, cảm ơn anh Kiên đã dành thời trả lời thắc mắc của các bạn fan của fanpage Topdev. Hãy cùng chờ đợi gương mặt tiếp theo sẽ lên sóng AMA vào tuần tới nha!

Xem thêm >>> Các vị trí tuyển dụng nhân viên it trên Topdev nhé!

“Ngành IT này học rất dễ, tài liệu ko bao giờ thiếu. Quan trọng là phải có đam mê và chịu cày”

Diễn ra đều đặn trên fanpage của TopDev, sự kiện AMA (Ask Me Anything) là 1 sự kiện Q&A (Hỏi đáp trực tiếp) là cơ hội tuyệt vời để các bạn yêu thích công nghệ nói chung & lập trình nói riêng được tiếp xúc, học hỏi kinh nghiệm với các diễn giả hàng đầu trong ngành Tech. 

Tuần này, AMA quay trở lại với 1 nhân vật chuyên về .Net và .Net Core, đã có trên 10 năm kinh nghiệm làm nghề. Đó chính là anh Nguyễn Lê Quỳnh Thiện – Engineering Manager của Harvey Nash.

Anh đã từng có 7 năm “thăng trầm” tại Pyramid Consulting Vietnam với những vị trí như: Senior Software Developer, Technical Lead, Technical Architect và .NET Team Manager. Nhưng con thuyền sự nghiệp của anh đã rời bến Pyramid Consulting để đến với NashTech từ tháng 6 năm 2014 đến nay – tại đây anh đảm nhiệm chức vụ Engineering Manager.

Đặc biệt ngoài những giờ làm việc ở công ty, hàng đêm anh Thiện đều kiên trì, hăng say nghiên cứu và phát triển một sản phẩm e-commerce mã nguồn mở có tên là SimplCommerce. Đây là một hệ thống e-ecommerce ĐẦU TIÊN được viết trên .NET core có thể chạy tốt trên Windows, Linux và MacOS và là 1 mã nguồn mở được cộng đồng IT rất quan tâm trong thời gian gần đây.

Bên cạnh đó, anh Thiện đã từng góp mặt tại các sự kiện công nghệ hàng đầu tại Việt Nam với vai trò Speaker, điển hình như sự kiện Vietnam Web Summit 2016 vừa qua.

Lĩnh vực chuyên môn trao đổi của anh trong AMA lần này là .NET, .NET Core và Simplcommerce.

Q: Anh có thể so sánh ưu nhược điểm của ASP.NET MVC và ASP.NET Core MVC được không ạ? Cả 2 cái thì phù hợp với business nào ạ? Trong tương lai, theo suy đoán của anh thì cái nào sẽ phát triển hơn? Cám ơn anh.

So sánh toàn diện thì dài lắm, nên a chỉ nói những điểm nổi bậc thôi hen: ASP.NET Core cross platform, gọn nhẹ hơn và chạy nhanh hơn. Nhược điểm của nó là còn mới, thiếu nhiều API, tooling chưa ổn định, hosting ở Việt Nam chưa thấy support. Nếu em làm những ứng dụng web hoặc api đơn thuần, ko có dính dáng nhiều đến những hệ thống cũ thì asp.net core ok. A đang phát triển 1 website bán hàng bằng aspnet core mvc https://github.com/simplcommerce/SimplCommerce, chưa thấy vấn đề gì. Tương lai thì chắc chắn asp.net core sẽ phát triển hơn rồi

https://www.techempower.com/benchmarks/
Share cho những bạn nào muốn xem những web framework nào chạy nhanh nhất

Q: Anh chia sẻ thêm những “thăng trầm” ở Pyramid Consulting Vietnam đi anh. Anh có kinh nghiệm gì dành cho các bạn sinh viên đang theo ngành IT hiện nay k? Thank anh

Lúc mới vào Pyramid Consulting (gọi tắt là Pyco) a gà lắm. Có thể nói là yếu nhất so với các bạn vào cũng đợt. Biết được điểm yếu của mình a ra sức cày bừa, hồi đó a cày nghê lắm, tối ngày cắm đầu vào máy đọc và đọc và code. Cuối tuần cũng cày luôn 😀 ngày qua ngày rồi cũng lên tay. Với lại hồi trước Pyco có rất nhiều người giỏi, a học được rất nhiều từ họ. A thấy ngành IT này học rất dễ, tài liệu ko bao giờ thiếu. Đọc xong là có thể thử nghiệm được liền. Quan trọng là phải có đam mê và chịu cày. A thường follow những developer nỗi tiếng trên twitter, có gì hay hay, họ sẽ tweet lên đó, mình nhận được liền. Thỉnh thoảng a cũng hay tìm đọc những open source trên mạng, xem cách họ thiết kế, cách họ code như thế nào và học hỏi… để trở thành một lập trình viên giỏi thì đam mê + cố gắng = đảm bảo 100% sẽ thành công

Q: Chào anh, được biết ở caption rằng: SimplCommerce là hệ thống e-ecommerce ĐẦU TIÊN được viết trên .NET core. Vậy trong quá trình tìm hiểu và nghiên cứu như vậy, những khó khăn mà a gặp phải và a đã giải quyết những khó khăn đó như thế nào? Em cảm ơn ạ.

a bắt đầu viết SimplCommerce khi ASP.NET Core chưa release chính thức. Ban đầu do Entity Framework Core còn bug nhiều và ít tính năng quá, a đã viết ASP.NET Core trên dotnet full framework. Cho tới bản ASP.NET Core RC2 được Microsoft release a mới chuyển qua .NET Core. Khó khăn nhất chắc có lẽ là còn mới quá, cộng đồng chưa nhiều, nên có nhiều vấn đề mình google ko ra. Nhiều khi bí quá, phải mò vô code của ASP.NET đọc, có lần anh đã nhờ sự giúp đỡ của 1 leader từ ASP.NET team bằng cách tweet lên twitter của họ

Q: Anh Thiện ơi em thấy ở trường khi học lập trình web, thầy cô có dạy rất nhiều về .NET và MVC framework, với kinh nghiệm về .NET dày dặn như anh thì anh có từng nghĩ sẽ làm giáo dục để truyền thụ những kinh nghiệm đã có cho giới trẻ chưa ạ? Hoặc mở những khóa học về .NET ở bên ngoài? Em cảm ơn ạ

thật ra ở cty a cũng thường làm training cho các bạn, a rất thích share những kiến thức, kinh nghiệm tới nhiều người. Nhưng ở cty thì dễ, bên ngoài thì a chưa biết tổ chức sao, hy vọng sắp tới có nhiều người đứng ra tổ chức, giống như topdev chẳn hạn

Q: Em cũng muốn tìm hiểu và học hỏi thêm .Net core thì có những nguồn nào hay để em có thểm tham khảo vậy anh Thiện?

Em có thể vào trang .net home page của Microsoft
https://www.microsoft.com/net
ASP.NET Core doc https://docs.microsoft.com/en-us/aspnet/core/
Tìm những video về .net core trên https://channel9.msdn.com/
Google những bài viết về .net core
và đọc code của SimplCommerce https://github.com/simplcommerce/SimplCommerce

Q: Em vẫn đang sử dụng .NET từ trước đến giờ vậy ASP.NET,WPF hay Winforms nền tảng mới này có gì hấp dẫn hơn không a?

a ko rõ em dùng .NET như thế nào. ASP.NET thì dùng để viết những website hoặc web api. WPF or Winforms thì để viết ứng dụng Windows.
.NET Core là thế hệ mới của .NET, hấp dẫn nhất là nó open source, chạy được trên Linux, Mac .NET Core được build để khắc phục những yếu điểm của .NET

Một lần nữa, cảm ơn anh Thiện đã dành thời trả lời thắc mắc của các bạn fan của fanpage Topdev. Hãy cùng chờ đợi gương mặt tiếp theo sẽ lên sóng AMA vào tuần tới nha!

Gameloft Career Day: Cái kết đẹp cho Game Jam 2016

Cuộc thi Game Jam 2016 đã đi đến hồi kết ngày hôm nay. Buổi bế mạc được tổ chức trong chỉnh thể chương trình Gameloft Career Day, vừa giúp vinh danh những cái tên thắng cuộc với cộng đồng, vừa đem lại cho các khán giả đến tham gia một buổi giao lưu, thưởng lãm, và giải trí đầy thú vị.

Một số thông tin về Game Jam 2016

Cuộc thi Open Game Jam 2016 được tổ chức bởi Gameloft Đông Nam Á. Cuộc thi mở ra nhằm đem lại sân chơi hấp dẫn và đầy hứng khởi cho tất cả các bạn đam mê, yêu thích phát triển game ở Việt Nam và Indonesia. Đây là dịp để các bạn cùng làm việc – chia sẻ kinh nghiệm – và trên hết cùng sáng tạo ra những sản phẩm game tuyệt vời nhất trong vòng 48h.

Từ ngày 18-20/11/2016 vừa qua đồng thời tại 4 thành phố:  Hồ Chí Minh, Đà Nẵng, Hà Nội và Yogyakarta, 200 bạn thí sinh đã tham gia tranh tài gay cấn để dành những giải thưởng của cuộc thi, với tổng giá trị lên tới 8,400 USD.

Chủ đề ca cuc thi

Trong vòng 48h, các đội tạo ra một Game đơn giản (Minimalism Game), hấp dẫn, thu hút mọi đối tượng và có thể chơi mọi lúc mọi nơi.

Tiêu chí chm gii

Các game được chấm dựa trên 5 tiêu chí:

  • Xut Sc (25%): game được đánh giá một cách toàn diện (cách chơi, tính cân bằng, cách điều khiển, đồ họa…)
  • Sáng To (25%): game có nhiều yếu tố mới lạ, độc đáo và duy nhất
  • Vui (25%): game có tính giải trí cao, cuốn hút và tạo được khả năng gây nghiện cho người chơi
  • Đam mê (15%): khi tạo ra game đòi hòi người làm game phải đặt tâm huyết và đam mê vào game
  • Gn kết (10%): tính gắn kết giữa game và chủ đề của cuộc thi

Thông tin gii thưởng

GIẢI THƯỞNG TÊN ĐỘI
Giải Nhất: trị giá 4,800 USD BLUE MOON
(TP. Hồ Chí Minh)
Giải Xuất Sắc: trị giá 1,500 USD INCREDIBL3
(Hà Nội)
Giải Sáng Tạo: trị giá 1,500 USD SHTT
(Đà Nẵng)
Giải bình chọn Game được yêu thích nhất: trị giá 600 USD NEWBIES
(TP. Hồ Chí Minh)

 

Thông tin Đội Vô Địch

Thành viên:
– Đinh Ngọc Minh: Lập Trình Viên
– Nguyễn Tuấn Linh: Đồ Họa
– Đậu Phạm Hữu Tài: Lập Trình Viên
– Nguyễn Hoàng Duy: Thiết Kế Game
Tên game: FLOW
Link: http://gamejam.gameloft.com/games2016/bluemoon/bluemoon/index.html

Nội dung

Game được sáng tạo trên tiêu chí đơn giản, dễ chơi nhưng lại có tính chiến thuật, có chiều sâu và dễ gây nghiện. FLOW mang đến trải nghiệm mới cho người chơi từ những mũi tên 4 hướng quen thuộc, cố gắng nối đuôi nhau tạo thành dòng ghi điểm. Game có cách chơi đơn giản, nhưng vẫn đòi hỏi người chơi cố gắng suy nghĩ thật kỹ trước mỗi bước đi, sao cho nối được dòng dài nhất, hay ghi được điểm cao bằng những bước kết hợp đặc biệt.

Trong tương lai, đội có dự định sẽ nâng cấp game để có những chức năng mới, cải tiến hơn, sử dụng thuật toán cân bằng tốt hơn, hứa hẹn một game đặc sắc và cuốn hút hơn cho người chơi.

Những điểm nổi bật

Gameplay mới, có sự kết hợp tốt giữa hình ảnh và âm thanh. Âm thanh sử dụng sống động, chân thật, tạo được cảm
hứng cho người chơi.

Gameloft Career Day

Được ra đời với thông điệp “Level Up Your Career!”, GCD nhằm đem đến cho các bạn trẻ yêu thích Công Nghệ Thông Tin nói chung và ngành công nghiệp Game nói riêng cơ hội được tương tác trực tiếp và lắng nghe chia sẻ đến từ các chuyên gia đào tạo hàng đầu tại Gameloft.

Ngay từ sáng sớm, sự kiện đã tiếp nhận sự quan tâm hào hứng từ một lượng lớn các bạn trẻ quan tâm đến game và những cơ hội/chia sẻ nghề nghiệp hấp dẫn tại đây.

Khoá huấn luyện UX Design: Khai phá vùng đất UX đa sắc màu

Khoá huấn luyện UX Design: Khai phá vùng đất UX đa sắc màu

Với mục tiêu xây dựng chương trình học UX bài bản và tầm nhìn xây dựng cộng đồng mở về UX, VNG đã phối hợp cùng Topdev tổ chức Khóa huấn luyện UX Design và Sự kiện UX Exclusive Meet-up: Building your UX Design from scratch dành cho các bạn đam mê UX và mong muốn có sự đầu tư nghiêm túc vào ngày 17/12/2016 tại VNG Office.

Xem thêm: Tìm việc làm ui ux lương cao, việc IT hấp dẫn

20 ứng viên, dưới sự hướng dẫn của trainer Lê Anh Quang (Quang Phowr) – Product Director của Websosanh đã có 8 tiếng cùng nhau tìm hiểu những nội hàm về UX cơ bản và thực tiễn nhất. Đặc biệt, dựa trên app Pikachu, Khoá huấn luyện đã xây dựng thành công những bài tập yêu cầu tính tương tác cao giữa các thành viên, giữa diễn giả với các nhóm và giữa các nhóm với nhau. Chính điều này tạo nên không khí sôi động, hứng khởi và tràn đầy tiếng cười với hạt giống kiến thức được nảy mầm trên vùng đất UX đa sắc màu.

Một số practice được anh Quang trình bày có thể kể đến User Sympathy và cách brainstorm đặc điểm người dùng, User Interview và cách đặt những câu hỏi hiệu quả, xây dựng paper prototype, Internal testing…

Các học viên tập trung giải quyết bài tập đưa ra từ trainer

Thuyết trình, làm việc nhóm, hỏi đáp liên tục với trainer… quá nhiều thứ hay ho luôn!

Thông qua Khoá huấn luyện, các học viên sẽ hiểu rõ hơn quy trình tạo nên được 1 sản phẩm có đầy đủ các yếu tố UX, từ những viên gạch đầu tiên cho đến khi sản phẩm được hoàn thiện. Trong thời gian tới, VNG cùng Topdev sẽ tổ chức nhiều hoạt động UX hơn nữa để đáp ứng nhu cầu của cộng đồng. Hãy cùng đón đợi nhé!

Gameloft Career Day – Trải nghiệm hay, nhận ngay quà khủng!

Được xem là thị trường game lớn nhất Đông Nam Á với số lượng game thủ cực lớn, Việt Nam được đánh giá là mảnh đất màu mỡ đối với các doanh nghiệp đang hoạt động trong lĩnh vực game nói chung và ngành công nghiệp sản xuất game nói riêng.

Sự phát triển nhanh chóng của thị trường kéo theo nhu cầu nhân lực ở tất cả các khâu sản xuất game ngày một nâng cả về số lượng lẫn chất lượng đồng thời cũng đã mở ra vô số cơ hội cho những bạn đang học khối ngành IT và thiết kế đồ họa.

Câu hỏi đặt ra là: nghề phát triển game liệu có thực sự phù hợp với bạn?

Vì là ngành tương đối mới nên khá nhiều người vẫn có cái nhìn thiếu chính xác đối với công việc của người làm game. Chính vì vậy Gameloft Career Day chính là cơ hội giúp cho bạn trải nghiệm và có cái nhìn chính xác hơn về công việc này.

Với Gameloft – một tập đoàn đi đầu về việc sản xuất game tại Việt Nam, bao gồm 4 bộ phận chính:

  • Game Designer – Người Thiết Kế Game

Là người phụ trách chính từ việc đưa ra ý tưởng cho đến việc thiết kế nội dung, cốt truyện, luật chơi, màn chơi và cách thức hoạt động của tất cả các đối tượng trong game như chướng ngại vật, nhân vât, và phần thưởng trong game…

Ngoài ra người thiết kế còn phải đảm bảo về việc cân bằng các chỉ số trong game, kinh tế của game nhằm mang lại những trải nghiệm tuyệt vời nhất và hấp dẫn nhất cho người chơi. 

  • Game Developer – Người Lập Trình Game

Là người giúp hiện thực hóa ý tưởng nhằm đưa những cái không thể thành có thể. Họ có khả năng làm cho các đối tượng di chuyển, tương tác với nhau một cách chính xác đến hoàn hảo nhằm mang lại trải nghiệm người dùng một cách triệt để nhất và đúng đắn nhất. Ngoài ra họ còn phải đảm bảo cho game đáp ứng các yêu cầu về Framerate (FPS), memory (bộ nhớ)..

Tham khảo các vị trí tuyển dụng game developer tại Topdev

  • Game Artist – Người Thiết Kế Đồ Họa Game 

Nếu xem người thiết kế game là người tạo nên linh hồn của game thì người thiết kế đồ họa sẽ là người tạo nên hình hài của game. Trách nhiệm và sứ mệnh chính của họ là tạo nên những nhân vật, bối cảnh, giao diện, hiệu ứng…một cách tuyệt vời nhất và chân thật nhất nhằm thể hiện một cách hoàn hảo với ý tưởng của người thiết kế game. Họ có thể bỏ cả ngày để trau chuốt cho một nhân vật hay một bối cảnh nào đó để rồi sẵn sàng bỏ nó đi chỉ vì cảm thấy nó chưa đạt đến mức độ hoàn hảo mà họ đề ra.

Nói dài dòng như vậy để mọi người có thể hiểu rõ hơn một phần nào đó về sự vất vả mà một người thiết kế đồ họa phải gánh chịu.

Tham khảo các vị trí tuyển Game Artist tại Topdev

THIẾT KẾ ĐỒ HỌA GAME 2D (2D GAME ARTIST) – Netviet Media tuyển dụng

[Hà Nội] 2D Game Artist, Game FX Artist – Gear Inc tuyển dụng

  • Game Tester – Người Kiểm Lỗi Game  

Một game chỉ xem là hoàn hảo khi mà lượng lỗi của nó khi tung ra thị trường là thấp nhất. Người phát hiện các lỗi trong game, có trách nhiệm chơi game và kiểm tra và đánh giá game liên tục nhằm tìm ra số lượng lỗi càng nhiều càng tốt, sau đó report lỗi cho các bộ phận bên trên để chỉnh sửa. Công việc của họ chỉ kết thúc khi game đủ chất lượng để phát hành ra công chúng

Có thể nói, không như vẻ hào nhoáng bề ngoài, làm game là một công việc phức tạp, đòi hỏi sự kết hợp “ăn rơ” đến từ nhiều cá nhân, nhiều đội ngũ. Trên tất cả, bạn cần hiểu rõ sở thích và năng khiếu bản thân, từ đó chọn cho mình những hướng đi phù hợp ngay từ ban đầu, tránh mất thời gian vô ích.

Ngoài ra, bạn cũng có thể tham khảo các vị trí tuyển Game Editor tại đây

Gameloft Career Day – không đơn giản chỉ là ngày hội tuyển dụng

Với thông điệp “Level up your career!”, ngày hội hướng nghiệp Gameloft Career Day là điểm đến mà các bạn sinh viên mới tốt nghiệp các trường CNTT hoặc có đam mê phát triển sự nghiệp trong ngành Game không thể bỏ qua!

Sự kiện sẽ mang đến cơ hội trải nghiệm chân thật về môi trường làm việc tại Gameloft – một “thiên đường game” mà các bạn trẻ luôn mơ ước được đặt chân đến để thỏa sức tung hoành đam mê của mình bằng cách tham gia tuyển dụng và phỏng vấn trực tiếp “người thật việc thật”. Đây chính là cơ hội “hiếm có khó gặp” để xử lý những vấn đề tiềm ẩn khi tự đi ứng tuyển như: CV bị thất lạc, bị loại từ vòng “gửi xe”, lãng phí thời gian chờ phản hồi…

Trên tất cả, các bạn trẻ sẽ được tham gia giao lưu, lắng nghe những câu chuyện, những kinh nghiệm khởi nghiệp, xây dựng thương hiệu cá nhân trong ngành CNTT thông qua các case study thực tế của các chuyên gia danh tiếng đang giữ các chức vụ quản lý cao cấp tại Gameloft như:

  • Mobile Advertising – Beyeon Digital của diễn giả Đặng Thành Tâm
  • Kiểm tra chất lượng game của diễn giả Benjamin Porrier
  • Lập trình game của diễn giả Lê Minh Tài
  • Đồ họa và thiết kế game của diễn giả Phạm Đình Thịnh & diễn giả Nguyễn Phú Hồng Phúc

Đặt ngay lịch hẹn với GameLoft Career Day cuối tuần này nào!

  • Thứ 7 ngày 17/12/2016 | 8:00 – 12:00
  • Eastin Grand Hotel Saigon: 253 Nguyễn Văn Trỗi, Q. Phú Nhuận, TP. HCM
  • Đăng ký miễn phí tại: https://www.gameloft.com/en/

[Updating] Câu chuyện xuyên mưa về Scalable Social Network

Vào chiều tối ngày 09/12/2016 vừa qua, sự kiện Topdev Techtalk #53: Design a Scalable Social Network đã diễn ra trong cơn mưa tầm tã của những ngày cuối đông. Có vẻ như, đây chính là dấu hiệu tốt cho 1 đêm sự kiện bùng nổ với vô số những kiến thức hữu ích và hàng loạt những câu hỏi thắc mắc được giải đáp.

Đúng như vậy, diễn giả Châu Nguyễn Nhật Thanh – Head of Game Backend & Cloud của VNG Corp đã mang đến 1 phần trình bày ấn tượng với những nội dung thiết thực xoay quanh social network. Anh đã đề cập đến 9 vấn đề khi thiết kế scalable social network dựa trên case study xây dựng mạng xã hội Zingme. Mỗi vấn đề lại được anh Thanh dẫn đến 1 giải pháp mới thuyết phục, thay thế cho các giải pháp truyền thống để đạt được mục đích cuối cùng là tối ưu hóa các hệ thống cồng kềnh có hàng triệu users, hàng trăm ngàn request đồng thời.

Tham khảo cho bạn các vị trí việc làm Network:

Q&A sôi nổi với nhiều câu hỏi xoay quanh 9 vấn đề của scalable social network

Đặc biệt, phần Q&A đã diễn ra cực kì sôi nổi, 1 phần đến từ nội dung có tính ứng dụng cao được rất nhiều bạn lập trình viên đang làm web hoặc đang muốn tìm hiểu web quan tâm, 1 phần vì sự nhiệt tình giải đáp của diễn giả. Tất cả cùng hòa hợp để khép lại câu chuyện Scalable Social Network của Topdev Techtalk #53 giữa cơn mưa rộn ràng của Sài Gòn.

Tham khảo thêm các vị trí tuyển dụng lập trình viên it lương cao tại Topdev.

“Mục tiêu và thách thức của Chatbot là hiểu được cảm xúc của người dùng và có cảm xúc riêng”

Diễn ra đều đặn trên fanpage của TopDev, sự kiện AMA (Ask Me Anything) là 1 sự kiện Q&A (Hỏi đáp trực tiếp) là cơ hội tuyệt vời để các bạn yêu thích công nghệ nói chung & lập trình nói riêng được tiếp xúc, học hỏi kinh nghiệm với các diễn giả hàng đầu trong ngành Tech. 

Tuần này, AMA quay trở lại với Quán quân cuộc thi FPT Hackathon 2016 – anh Nguyễn Đức Minh Quân.

Hiện tại, anh là Solutions Manager của FPT Technology Solutions với rất nhiều đóng góp điển hình như ứng dụng Intelligent Traffic Information Bot – giúp người dân có thể cung cấp và tiếp nhận tình trạng giao thông chung trên thành phố thông qua các dịch vụ OTT (Over – The – Top) phổ biến như: Facebook Messenger, Zalo, Skype, Slack… Khi giao tiếp với chatbot, người dùng có thể sử dụng ngôn ngữ tự nhiên để hỏi thông tin. Đây cũng chính là sản phẩm giúp anh đạt được giải nhất cuộc thi FPT Hackathon 2016 vừa qua.

Bên cạnh đó, anh cũng là diễn giả quen thuộc tại các hội thảo lớn như: FPT Techday, Saigon Docker Day, Vietnam Web Summit, TopDev Techtalk,…

Lĩnh vực chuyên môn trao đổi của anh Minh Quân tại AMA là: ứng dụng Chatbot, những kiến thức về Microservices và kinh nghiệm phát triển sản phẩm..

Q: Hi anh, theo anh trong quá trình làm việc với Microservices thì anh thấy Microservices có những bất lợi gì a? Em hiện nay là sinh viên và thường xuyên nghe tới Microservices nhưng vẫn chưa hình dung được là nó được áp dụng cho những sản phẩm hay lĩnh vực nào, Anh có thể cho em một ví dụ cụ thể trong Microservices hiện nay không ạ?

A: Theo anh thì, điểm bất lợi nhất của microservice là việc quản lý tất cả các services đấy (càng đông càng khó quản mà). Đó cũng là lý do Service discovery là một thành phần quan trọng của Microservices

Về ứng dụng, thì về lý thuyết em có thể sử dụng MicroService trong bất kỳ thể loại ứng dụng nào. Tuy nhiên, bằng cách hiểu rõ ưu nhược điểm của MicroServices, ưu nhược điểm của em hoặc team em (quản trị hệ thống tốt không, có kinh nghiệm làm kiến trúc không) và tính chất của sản phẩm (đông người xài không, phức tạp không, …) để đánh giá xem có nên dùng MicroServices không

Q: anh ơi, nhược điểm lớn nhất của Chatbot có phải là nó vẫn chưa hiểu được cảm xúc của người dùng không?

A: Thật ra, đó không hẳn là nhược điểm. Bởi một chatbot vẫn hoàn thành tốt nhiệm vụ của nó mà có thể không cần quan tâm đến cảm xúc của người dùng. Chính xác hơn, mục tiêu và thách thức của Chatbot (hoặc các dạng AI giao tiếp với con người khác) là hiểu được cảm xúc của người dùng, và có cảm xúc của riêng Chatbot/AI. Trên thực tế, con người đôi khi cũng không hiểu được cảm xúc của người khác, nhất là khi giao tiếp gián tiếp (phone, chat, mail, …). Cho nên việc hiểu cảm xúc của người dùng là 1 bài toán khó đối với Chatbot/AI

Q: Hi anh, hiện anh & team có đang ấp ủ ý tưởng sản phẩm nào có ứng dụng Chatbox không anh?

A: Bên team anh đang ấp ủ tạo nên một Framework giúp các dev có thể làm chatbot 1 cách nhanh nhất.

Q:  Anh chia sẻ thêm về sản phẩm Intelligent Traffic Information Bot đi anh. Nhờ đâu anh có ý tưởng hay như vậy, quá trình làm có gì cần rút kinh nghiệm hay bài học lớn nhất mà anh có được?

Chatbot Thông tin Giao thông xuất phát từ nhu cầu thực tế của team. Trước đây, mỗi khi muốn biết tình hình giao thông phải cài nhiều app phức tạp, phải lên website về giao thông (do team phát triển) để tìm kiếm thông tin. Với Chatbot, chỉ đơn giản là mở Facebook Messenger lên và hỏi chatbot thôi (dùng voice Tiếng Việt luôn).

Bài học rút ra là, sản phẩm muốn thành công, phải xuất phát từ nhu cầu thực tế của người dùng, cho nên việc tìm hiểu nhu cầu thực tế là tối quan trọng.

Q: Công việc ở FPT có áp lực không anh. Vị trí solutions manager là đưa ra các giải pháp cho sản phẩm?

A:  Đã đi làm thì tất nhiên có áp lực rồi. Quan trọng là chuyển được áp lực thành động lực. Solution Manager hiện tại có nhiều định nghĩa. Tuy nhiên trong FPT, anh phụ trách đưa ra ý tưởng, quản lý việc phát triển, quản lý vòng đời của các giải pháp, trong giải pháp sẽ bao gồm nhiều sản phẩm phần mềm, hạ tầng, phần cứng…

Q: Anh chia sẻ thêm về sản phẩm Intelligent Traffic Information Bot đi anh. Nhờ đâu anh có ý tưởng hay như vậy, quá trình làm có gì cần rút kinh nghiệm hay bài học lớn nhất mà anh có được?

A: Chatbot Thông tin Giao thông xuất phát từ nhu cầu thực tế của team. Trước đây, mỗi khi muốn biết tình hình giao thông phải cài nhiều app phức tạp, phải lên website về giao thông (do team phát triển) để tìm kiếm thông tin. Với Chatbot, chỉ đơn giản là mở Facebook Messenger lên và hỏi chatbot thôi (dùng voice Tiếng Việt luôn).

Bài học rút ra là, sản phẩm muốn thành công, phải xuất phát từ nhu cầu thực tế của người dùng, cho nên việc tìm hiểu nhu cầu thực tế là tối quan trọng

Q: Hiện tại em rất muốn tìm hiểu thêm về chatbot, anh có thể cho em lời khuyên em nên bắt đầu tìm hiểu ở đâu? Nguồn tài liệu nào hay cách nghiên cứu Chatbot của anh là gì? Cảm ơn anh

A: Chatbot không khó về mặt kỹ thuật. Có rất nhiều tool, framework hỗ trợ làm chatbot rất nhanh (Microsoft BotFramework + Bot Builder, Node-red + RedBot, AIML, RiveSript, …), thường thì chỉ tầm 1 ngày là em đã có 1 con chatbot prototype rồi.

Cái khó khi làm chatbot là sử dụng để làm gì, ý tưởng như thế nào, nghĩ ra các mẫu hội thoại mà người dùng có thể hỏi. Đối với các chatbot hỏi đáp thông tin, thì 1 phần cũng không kém phức tạp là dữ liệu (em crawler dữ liệu như thế nào, lưu trữ và phân tích ra sao). Nói chung chatbot chỉ là một dạng giao diện (Conversation UI) của ứng dụng sẵn có mà thôi. Do đó, chatbot đòi hỏi em phải có sẵn 1 backend cung cấp thông tin cho nó.

Em có thể google các framework ở trên để làm thử 1 con chatbot. Và nghiên cứu thêm về Machine Learning, AI, … để làm chatbot thông minh hơn.

AMA của TopDev luôn có sự hiện diện của các diễn giả “chất lượng” nơi các bạn được giải đáp các thắc mắc “thầm kín”, không biết hỏi ai. Hãy cùng chờ đợi sự kiện AMA vào tuần tới nha!

Đam mê game? Hãy đến với Gameloft Career Day – Level Up Your Career!

Có một thực tế không thể phủ nhận là: để thành công, đam mê thôi là chưa đủ. Đam mê, nếu thiếu đi định hướng đúng đắn thì rất dễ lầm đường lạc lối, tốn thời gian vô ích. Đam mê, nếu thiếu đi tinh thần xông pha, dám thử, dám làm lại rất dễ nản lòng, rất dễ bỏ cuộc.

Đến với chương trình Gameloft Career Day – Level Up Your Career, bạn sẽ không còn phải lo lắng về điều đó!

  • Bạn đam mê Game và mong muốn có cái nhìn cận cảnh hơn về ngành công nghiệp Game tại Việt Nam?
  • Bạn khát khao gia nhập đội ngũ sản xuất ra những trò chơi nổi tiếng đang được trải nghiệm bởi hàng triệu người dùng trên thế giới?
  • Bạn không biết bắt đầu từ đâu, không biết làm thế nào để thực hiện hóa đam mê của mình?

Nắm bắt được những băn khoăn của rất nhiều bạn trẻ, Ngày hội hướng nghiệp Gameloft Career Day được ra đời với thông điệp “Level Up Your Career!”, nhằm đem đến cho các bạn trẻ yêu thích Công Nghệ Thông Tin nói chung và ngành công nghiệp Game nói riêng cơ hội được tương tác trực tiếp và lắng nghe chia sẻ đến từ các chuyên gia đào tạo hàng đầu tại Gameloft, hiểu rõ hơn quy trình ứng tuyển, đồng thời mở ra nhiều cơ hội được tuyển dụng trực tiếp vào những vị trí “hot” nhất tại Gameloft.

  • Thứ 7 ngày 17/12/2016 | 8:00 – 12:00
  • Eastin Grand Hotel Saigon: 253 Nguyễn Văn Trỗi, Q. Phú Nhuận, TP. HCM

Đặc biệt các bạn trẻ còn được thử thách bản thân thông qua những game “đỉnh và khủng” nhất hiện nay của Gameloft.

Trên tinh thần đó, các chủ đề và diễn giả của Ngày hội hướng nghiệp Gameloft Career Day được BTC nghiêm túc đầu tư xây dựng với đầy đủ những nội dung nóng, đang nhận được rất nhiều sự quan tâm trong cộng đồng.

Tìm việc làm Game đãi ngộ tốt trên TopDev

1. MOBILE ADVERTISING – BEYOND DIGITAL!

Diễn giả: Đặng Thành Tâm – Trưởng nhóm Quản lý dự án Game

Nói đến Gameloft, ắt hẳn chúng ta sẽ hình dung nhiệm vụ chính của công ty là sản xuất những trò chơi có tính giải trí cao đem đến niềm vui và những khoảnh khắc thư giãn cho người dùng. Tuy nhiên, tại Ngày hội lần này, anh Đặng Thành Tâm – Trưởng nhóm Quản lý dự án Game sẽ mở ra cho các bạn trẻ một cái nhìn hoàn toàn khác biệt, cận cảnh, sâu sắc và đa chiều hơn về mảng Quảng Cáo trên Điện Thoại Di Động – một dịch vụ mới đang được phát triển mạnh tại Gameloft Vietnam.

Với hơn 14 năm trong ngành công nghệ thông tin và phát triển Game cùng 5 năm làm việc tại Gameloft, anh Tâm sở hữu kho kinh nghiệm quản lý dự án dồi dào, tiêu biểu trong lĩnh vực sản xuất Game và phát triển Game quảng cáo trên các hệ điều hành khác nhau như iOS, Android, HTML5. Chính vì vậy, đây là dịp có 1-0-2 để các bạn trẻ tiếp thu những bài học kinh nghiệm quý báu, nắm bắt cơ hội phát triển sự nghiệp trong lĩnh vực đầy tiềm năng này bên cạnh mảng sản xuất Game đơn thuần

2. KIỂM TRA CHẤT LƯỢNG GAME

Đảm nhận vai trò Trưởng nhóm Quản lý dự án Game, anh Benjamin Porrier hiện đang làm việc với 1 đội ngũ nhân viên đa văn hóa, năng động và sáng tạo trên toàn thế giới. Anh hứa hẹn sẽ đem đến ngày hội những kiến thức sâu rộng hơn về nghề Kiểm Tra Chất Lượng Game, song song với những kĩ năng các bạn trẻ cần trang bị để làm hành trang vững chắc cho những bước tiến xa hơn trên con đường sự nghiệp này

3. LẬP TRÌNH GAME

Trước khi đến với vai trò Trưởng Nhóm Đào Tạo Lập Trình Viên tại Gameloft, anh Lê Minh Tài từng tham gia vào quá trình sản xuất những trò chơi đình đám, gây tiếng vang lớn trên thị trường như: Street Fighter, Date Or Ditch 2, Vampire Romance, Gangstar 3. Bên cạnh đó, nhờ trực tiếp thực hiện các hoạt động tuyển dụng và đào tạo các bạn lập trình viên, anh Tài sẽ tiết lộ bức tranh toàn cảnh đầy hấp dẫn của ngành Lập Trình Game, đồng thời chia sẻ những định hướng mà các bạn trẻ nên theo đuổi trong lĩnh vực có tính cạnh tranh cực kì cao này

4. ĐỒ HỌA VÀ THIẾT KẾ GAME

Diễn giả: Phạm Đình Thịnh – Trưởng bộ phận đồ họa Game

Diễn giả: Nguyễn Phú Hồng Phúc – Trưởng bộ phận Thiết kế Game

Bạn muốn hiểu hơn về vai trò của bộ phận Đồ Họa và Thiết kế Game, những điểm khác biệt và những mối tương quan bổ trợ của hai bộ phận này để sản xuất ra một game hoàn chỉnh? Bạn chắc chắn không thể bỏ qua phần trình bày của anh Phạm Đình Thịnh – Trưởng bộ phận đồ họa Game và anh Nguyễn Phú Hồng Phúc – Trưởng bộ phận Thiết kế Game. Nếu anh Thịnh đã tham gia các dự án game nổi tiếng của Gameloft trên nhiều hệ điều hành khác nhau như: iOS, Andorid, HTML5, Windows trong 6 năm làm việc tại đây thì anh Phúc đã gắn bó với Gameloft Việt Nam trên 10 năm với rất nhiều những thành tích đáng nể và vinh dự được đề đạt lên vị trí Quản lý. Ngoài ra, anh Thịnh và anh Phúc đã từng là quản lý của Team Creation 3D lớn nhất của Gameloft Vietnam.

Ngoài 4 chủ đề đặc sắc kể trên, Ngày hội Hướng Nghiệp Gameloft còn có các hoạt động rút thăm trúng thưởng với nhiều phần quà hấp dẫn như máy tính bảng Samsung Galaxy Tab A6 10.1 (giải nhất), đồng hồ Misfit Shine 2 (giải nhì) và loa di động NFC Sony SRS-BTV 5 (giải ba).

Còn chần chờ gì nữa, Ngày hội Hướng Nghiệp Gameloft – “Level up your career!” là một trong những sự kiện hàng đầu dành cho các bạn trẻ đam mê, yêu thích ngành công nghiệp sản xuất Game. Hãy nhanh tay nắm bắt cơ hội tuyệt vời này để nâng cao hành trang nghề nghiệp của mình, bạn nhé!

LỊCH TRÌNH CỤ THỂ

Thời gian Hoạt động
8:00 – 8:30 Đón khách
8:30 – 9:00 Khai mạc chương trình
9:00 – 9:15 Lễ trao giải cuộc thi “Mini Games”
9:15 – 9:45 Giới thiệu tổng quan về Gameloft
9:45 – 10:30 Hội thảo: Mobile Advertising – Beyond Digital!Diễn giả: Đặng Thành Tâm – Trưởng nhóm Quản lý dự án Game
Hội thảo chuyên đề về Kiểm Tra Chất Lượng GameDiễn giả: Benjamin Porrier – Trưởng bộ phận Kiểm tra chất lượng Game
10:30 – 11:15 Hội thảo chuyên đề về Lập Trình GameDiễn giả: Lê Minh Tài – Trưởng nhóm đào tạo lập trình Game
Hội thảo chuyên đề về Đồ Họa và Thiết Kế GameDiễn giả: Phạm Đình Thịnh – Trưởng bộ phận đồ họa Game

Diễn giả: Nguyễn Phú Hồng Phúc – Trưởng bộ phận Thiết kế Game

11:15 – 11:30 Rút thăm may mắn
11:30 – 12:00 Bế mạc

 

THÔNG TIN CHI TIẾT

GAMELOFT VIETNAM

Về GAMELOFT VIETNAM

Ra đời vào năm 2000, Gameloft® đã trở thành một trong những doanh nghiệp đột phá và đi đầu trong lĩnh vực sản xuất các ứng dụng trò chơi trên nền tảng kỹ thuật số và mạng xã hội trên thế giới. Gameloft hỗ trợ tất cả các nền tảng số; và nhờ vào lượng người dùng hàng tháng lên tới 140 triệu, Gameloft mang lại cho các nhà quảng cáo cơ hội tiếp cận và kết nối khách hàng vượt trội, thông qua dịch vụ Giải pháp Quảng cáo của mình. Một số sản phẩm đã được phát hành thuộc bản quyền của Gameloft như Asphalt®, Order & Chaos, Modern Combat và Dungeon Hunter

Đồng thời công ty cũng là đối tác với những thương hiệu lớn bao gồm Universal, Illumination Entertainment, Disney®, Marvel®, Hasbro®, Fox Digital Entertainment, Mattel®  và Ferrari®. Công ty phân phối sản phẩm tới hơn 100 quốc gia với đội ngũ nhân viên trên 6,000 người. Gameloft là một công ty thuộc tập đoàn Vivendi.

Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev