SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
Tìm	
  nền	
  tảng	
  lập	
  trình	
  cho	
  5	
  năm	
  tới	
  
cuong@techmaster.vn	
  
Tôi	
  là	
  
•  Trịnh	
  Minh	
  Cường,	
  học	
  điện	
  tử	
  viễn	
  thông	
  K37	
  Bách	
  Khoa	
  HN	
  
•  Lắp	
  mạch	
  radio,	
  bóng	
  bán	
  dẫn	
  khi	
  học	
  lớp	
  7	
  
•  Lập	
  trình	
  từ	
  năm	
  1993	
  …	
  
•  Thạc	
  sỹ	
  khoá	
  cơ	
  khí	
  tại	
  
KAIST	
  Hàn	
  Quốc	
  2006	
  
•  Sáng	
  lập	
  TechMaster	
  
hdp://techmaster.vn	
  
Techmaster	
  Việt	
  nam	
  
•  Xây	
  dựng	
  	
  phần	
  mềm	
  di	
  động	
  –	
  cloud	
  –	
  web	
  
•  Khách	
  hàng:	
  100%	
  quốc	
  tế	
  
•  Công	
  ty	
  đầu	
  sên	
  đào	
  tạo	
  lập	
  trình	
  viên	
  iOS	
  –	
  Android	
  –	
  
Windows	
  Phone,	
  PHP	
  Phalcon,	
  Ruby	
  On	
  Rails	
  tại	
  Hà	
  nội	
  (cũng	
  có	
  
thể	
  là	
  Việt	
  nam)	
  
•  Số	
  lượng	
  lập	
  trình	
  viên:	
  14	
  ~	
  16	
  người	
  (nhỏ	
  xinh	
  nhưng	
  chuyên)	
  
•  Già	
  nhất	
  (1975)	
  còn	
  lại	
  khoảng	
  1992-­‐1986	
  
Nội	
  dung	
  trình	
  bày	
  
Vấn	
  đề	
  thực	
  sễn	
  chúng	
  tôi	
  đang	
  
nghiên	
  cứu,	
  giải	
  quyết	
  
“Với	
  nguồn	
  kinh	
  phí	
  có	
  hạn	
  (thấp)	
  
làm	
  sao	
  xây	
  dựng	
  dịch	
  vụ	
  web	
  –	
  web	
  
service	
  cho	
  di	
  động	
  tốt	
  cho	
  càng	
  
nhiều	
  người	
  càng	
  tốt”	
  
Các	
  tiêu	
  chí	
  để	
  tìm	
  
•  Miễn	
  phí	
  –	
  mã	
  nguồn	
  mở	
  
•  Phải	
  chạy	
  được	
  trên	
  Linux,	
  giảm	
  tối	
  đa	
  chi	
  phí	
  bản	
  quyền,	
  phần	
  
cứng	
  
•  Mới,	
  mạnh,	
  hiệu	
  quả,	
  được	
  công	
  ty	
  Mỹ	
  -­‐Nhật-­‐	
  Âu	
  dùng,	
  nhưng	
  
không	
  quá	
  đại	
  trà	
  như	
  ASP.net,	
  PHP,	
  Rails,	
  Java	
  để	
  còn	
  kiếm	
  đất	
  
vượt	
  lên	
  
•  Tốc	
  độ	
  -­‐	
  Chịu	
  Tải	
  tốt	
  trên	
  cả	
  phần	
  cứng	
  đại	
  trà	
  
•  Đã	
  được	
  minh	
  chứng	
  qua	
  các	
  ví	
  dụ	
  thành	
  công	
  thực	
  tế	
  
80%	
  đề	
  tài	
  tốt	
  nghiệp	
  của	
  sinh	
  viên	
  
•  Ứng	
  dụng	
  web	
  quản	
  lý	
  sinh	
  viên	
  
•  Web	
  site	
  bán	
  hàng	
  trực	
  tuyến	
  
•  Web	
  site	
  xem	
  phim	
  trực	
  tuyến	
  
•  Ứng	
  dụng	
  quản	
  lý	
  quan	
  hệ	
  khách	
  hàng	
  
•  Ứng	
  dụng	
  quản	
  lý	
  kho	
  bãi	
  
•  Ứng	
  dụng	
  đề	
  thi	
  thực	
  tuyến	
  
•  ….	
  
Điểm	
  chung	
  là	
  gì?	
  
•  Mô	
  hình	
  client	
  –	
  server	
  
•  Desktop	
  client	
  nối	
  vào	
  database	
  server	
  (đã	
  rất	
  cổ)	
  
•  Desktop	
  client	
  nối	
  vào	
  web	
  service.	
  Web	
  service	
  gọi	
  
vào	
  database	
  
•  Dynamic	
  web	
  nối	
  vào	
  database	
  server	
  
•  Cơ	
  sở	
  dữ	
  liệu	
  quan	
  hệ	
  
•  Microso›	
  SQL	
  Server,	
  Oracle,	
  MySQL,	
  Postgresql	
  
•  Có	
  nhiều	
  bảng	
  chung	
  như:	
  user…	
  
Nhiều	
  năm	
  rồi	
  vẫn	
  thế	
  
•  Các	
  đề	
  tài	
  tốt	
  nghiệp	
  khoa	
  CNTT	
  ở	
  VN	
  thường	
  
dừng	
  ở	
  mức:	
  phân	
  œch	
  –	
  thiết	
  kế	
  (UML)	
  -­‐	
  lập	
  
trình	
  chức	
  năng	
  –	
  CRUD	
  
•  Chèn	
  thật	
  nhiều	
  code	
  cho	
  dày	
  luận	
  văn	
  tốt	
  
nghiệp.	
  
•  Tốt	
  nghiệp	
  xong	
  -­‐>	
  xin	
  việc	
  -­‐>	
  đào	
  tạo	
  lại	
  	
  
Vừa	
  mua	
  xong	
  một	
  luận	
  văn	
  ngành	
  quản	
  trị	
  kinh	
  
doanh,	
  Nguyễn	
  Văn	
  N.	
  sinh	
  viên	
  Đại	
  học	
  Kinh	
  tế	
  
Quốc	
  dân	
  phấn	
  khởi	
  chia	
  sẻ:	
  “Luận	
  văn	
  tốt	
  nghiệp	
  
gần	
  trăm	
  trang	
  mà	
  giá	
  chỉ	
  30	
  nghìn	
  đồng,	
  không	
  
bằng	
  cả	
  Zền	
  công	
  đánh	
  máy.	
  Em	
  phải	
  chọn	
  đề	
  tài	
  
của	
  anh	
  chị	
  sinh	
  viên	
  cách	
  đây	
  mấy	
  khóa	
  để	
  khi	
  
chấm	
  các	
  thầy	
  cũng	
  không	
  thể	
  nhận	
  ra”.	
  	
  
3	
  năm	
  gần	
  đâycó	
  thêm	
  lập	
  trình	
  di	
  động	
  
•  iOS,	
  Android,	
  Windows	
  Phone,	
  hybrid	
  app:	
  bản	
  chất	
  vẫn	
  là	
  client	
  app	
  cài	
  đặt	
  
trên	
  thiết	
  bị	
  
•  Ứng	
  dụng	
  di	
  động	
  không	
  kết	
  nối	
  trực	
  sếp	
  vào	
  database	
  server	
  mà	
  phải	
  kết	
  
nối	
  vào	
  web	
  service:	
  
•  Phương	
  thức	
  REST	
  trả	
  về	
  JSON/XML	
  
•  Phương	
  thức	
  SOAP	
  trả	
  về	
  XML	
  
•  Techmaster	
  chỉ	
  dạy	
  trong	
  khoảng	
  5	
  tháng	
  là	
  code	
  được	
  ứng	
  dụng	
  di	
  động	
  để	
  
đi	
  xin	
  việc.	
  
Thực	
  tế	
  phức	
  tạp	
  hơn	
  nhiều	
  
•  Với	
  kinh	
  phí	
  đầu	
  tư	
  phần	
  cứng	
  có	
  hạn,	
  làm	
  sao	
  cung	
  cấp	
  dịch	
  vụ	
  
cho	
  nhiều	
  người	
  hơn?	
  
•  Ứng	
  dụng	
  hỗ	
  trợ	
  đa	
  nền	
  tảng	
  (Web	
  –	
  Desktop	
  –	
  Di	
  động)	
  
•  Dịch	
  vụ	
  dễ	
  dàng	
  bảo	
  trì,	
  nâng	
  cấp,	
  điều	
  chỉnh	
  cho	
  từng	
  khách	
  
hàng	
  
•  Rẻ	
  và	
  rẻ	
  hơn	
  nữa,	
  thậm	
  chí	
  cho	
  không	
  để	
  thu	
  sền	
  bằng	
  cách	
  
khác	
  
•  Trải	
  nghiệm	
  tốt	
  hơn,	
  mới	
  hơn.	
  Khác	
  biệt	
  với	
  đối	
  thủ-­‐>	
  khách	
  
hàng	
  sướng	
  
Web	
  site	
  techmaster.vn	
  
•  2011-­‐2012:	
  share	
  host	
  ở	
  **C:	
  200,000	
  VND	
  /tháng.	
  Truy	
  cập	
  
100	
  ~200	
  visit/day.	
  1	
  tháng	
  phải	
  gọi	
  hỗ	
  trợ	
  kỹ	
  thuật	
  1	
  lần	
  vì	
  site	
  
lăn	
  ra	
  chết	
  
•  2012	
  –	
  2013:	
  VPS	
  host	
  ở	
  Linode,	
  data	
  center	
  tại	
  Nhật,	
  20	
  USD	
  /
tháng.	
  Truy	
  cập:	
  200	
  ~	
  300	
  visit/day.	
  Quảng	
  cáo	
  rất	
  tốt,	
  nhưng	
  
I/O	
  đọc	
  ghi	
  ổ	
  cứng	
  rất	
  kém	
  
•  2013	
  –	
  2014:	
  VPS	
  host	
  ở	
  Digital	
  Ocean,	
  data	
  center	
  tại	
  
Sanfransico,	
  10	
  USD	
  /tháng.	
  Truy	
  cập:	
  500-­‐800	
  visit	
  /day.	
  
Host	
  được	
  2-­‐3	
  WordPress	
  site	
  đồng	
  thời.	
  Hiệu	
  quả	
  tốc	
  độ	
  lẫn	
  
đầu	
  tư.	
  Chạy	
  ổn	
  định	
  
Bán	
  hàng	
  nhỏ	
  lẻ,	
  
câu	
  kéo	
  khách	
  
hàng	
  rất	
  mệt	
  và	
  
không	
  hiểu	
  quả	
  
Lượng	
  truy	
  cập	
  tăng	
  ~	
  doanh	
  số	
  
Tăng	
  50	
  
page	
  
view	
  /	
  
ngày	
  
Có	
  thêm	
  1	
  
khách	
  
hàng	
  
tái	
  đầu	
  tư	
  
công	
  
nghệ,	
  bài	
  
giảng	
  
Page	
  view	
  
tăng	
  
Khách	
  
hàng	
  tăng	
  
Họ	
  giới	
  
thiệu	
  cho	
  
bạn	
  bè	
  
Hãy	
  tìm	
  giải	
  pháp	
  	
  
•  Web	
  site	
  bán	
  vé	
  tàu	
  từ	
  Nam	
  ra	
  Bắc	
  quá	
  tải	
  lúc	
  giáp	
  Tết.	
  Có	
  thể	
  
có	
  gần	
  800,000	
  người	
  cần	
  mua	
  vé	
  trong	
  khoảng	
  2	
  tuần.	
  
•  Web	
  site	
  đăng	
  ký	
  œn	
  chỉ	
  quá	
  tải	
  đầu	
  học	
  kỳ.	
  Số	
  lượng	
  sinh	
  viên	
  
truy	
  cập	
  đồng	
  thời	
  >	
  600	
  
•  Ứng	
  dụng	
  di	
  động	
  nổi	
  sếng	
  như	
  Foursquare,	
  FlipBoard,	
  Paper,	
  
Whatsapp,	
  Viber	
  có	
  thể	
  hàng	
  triệu	
  người	
  dùng	
  đồng	
  thời,	
  trên	
  
nhiều	
  quốc	
  gia	
  khác	
  nhau?	
  
Web	
  site	
  dịch	
  vụ	
  trực	
  tuyến	
  có	
  hàng	
  nghìn	
  truy	
  cập	
  đồng	
  
thời	
  từ	
  cả	
  web	
  và	
  di	
  động.	
  Chi	
  phí	
  hosEng	
  chỉ	
  khoảng	
  50	
  
~	
  70	
  USD/tháng	
  
Số	
  lượng	
  truy	
  cập,	
  dữ	
  liệu	
  tải	
  =>	
  thay	
  đổi	
  kiến	
  trúc,	
  công	
  nghệ	
  
•  <	
  50	
  users:	
  client	
  –	
  server	
  cổ	
  điển	
  
•  >	
  50	
  users:	
  80%	
  read	
  –	
  20%	
  write:	
  bổ	
  xung	
  disk	
  cache	
  –	
  mem	
  
cache	
  
•  >	
  100	
  users	
  đến	
  x1000	
  users.	
  
•  Giảm	
  tối	
  đa	
  page	
  reload	
  =>	
  AJAX	
  
•  CDN	
  host	
  stasc	
  files	
  
•  Cache	
  –	
  cache-­‐	
  cache	
  
•  Phân	
  tải	
  (load	
  balance)	
  –	
  Phân	
  tán	
  (distributed)	
  
•  Kết	
  hợp	
  RDBMS	
  với	
  NoSQL	
  
•  HDD	
  -­‐>	
  SDD	
  -­‐>	
  Fast	
  Memory	
  
•  ….	
  
Chẩn	
  đoán	
  bệnh	
  à	
  kê	
  đơn	
  
•  Tối	
  ưu	
  ở	
  Front	
  End	
  (CSS,	
  JavaScript)	
  
•  Combine	
  CSS,	
  JavaScript.	
  	
  
•  Tối	
  ưu	
  phần	
  cứng	
  +	
  băng	
  thông	
  	
  =>	
  tốn	
  Zền	
  
•  Tối	
  ưu	
  cách	
  viết	
  mã	
  (CSS,	
  JavaScript,	
  HTML,	
  web	
  programming)	
  
=>	
  mất	
  nhiều	
  công	
  đọc	
  lại	
  code	
  
•  Tối	
  ưu	
  kiến	
  trúc	
  –	
  nền	
  tảng,	
  thư	
  viện	
  của	
  ứng	
  dụng	
  =>	
  phải	
  chọn	
  
ngay	
  từ	
  đầu,	
  đầu	
  tư	
  dài	
  hạn	
  
•  Web	
  Server	
  
•  Web	
  Framework	
  
•  Web	
  Programming	
  Language	
  
Web	
  server	
  
Phalcon:	
  viết	
  lại	
  thư	
  viện	
  C	
  extension	
  cho	
  PHP	
  
hdp://techmaster.vn/en/2014/02/tai-­‐sao-­‐chung-­‐toi-­‐chon-­‐phalcon/	
  
HHVM:	
  Just	
  In	
  Time	
  compiler	
  để	
  dịch	
  mã	
  PHP	
  
thành	
  byte	
  code	
  
Phalcon:	
  lập	
  trình	
  bắt	
  buộc	
  phải	
  viết	
  ứng	
  dụng	
  	
  sử	
  dụng	
  thư	
  viện	
  Phalcon	
  
	
  
HHVM	
  tối	
  ưu	
  tốc	
  độ	
  cho	
  những	
  web	
  site	
  sử	
  dụng	
  các	
  thư	
  viện	
  khác	
  nhau.	
  
Không	
  tương	
  thích	
  100%	
  với	
  nhiều	
  web	
  site.	
  
HHVM	
  tăng	
  đáp	
  ứng	
  resquests	
  per	
  second.	
  	
  
Đồ	
  thị	
  ở	
  trang	
  hdp://blog.liip.ch/archive/2013/10/29/hhvm-­‐and-­‐symfony2.html	
  	
  
blocking	
  I/O	
  sang	
  non-­‐bloking	
  I/O	
  
•  Nginx	
  
•  Node.js	
  
•  Puma	
  server	
  
•  Nedy	
  
•  Akka	
  –	
  Spray	
  
Server	
  Sent	
  Event	
  vs	
  Polling	
  
Polling:	
  client	
  đều	
  đặn	
  –	
  liên	
  tục	
  gửi	
  yêu	
  cầu	
  lấy	
  dữ	
  liệu	
  
mới	
  nhất	
  từ	
  server	
  à	
  khiến	
  máy	
  chủ	
  quá	
  tải	
  
	
  
Server	
  Sent	
  Event:	
  client	
  đăng	
  ký	
  nhận	
  thông	
  báo	
  từ	
  
server.	
  Có	
  thay	
  đổi	
  thì	
  báo	
  về	
  
Tham	
  khảo	
  Server	
  Sent	
  Event	
  
•  hdp://developereventlog.blogspot.com/2013/06/aspnet-­‐
signalr-­‐real-­‐sme-­‐applicason_6.html	
  
•  hdp://www.jayway.com/2012/05/11/html5-­‐server-­‐sent-­‐events	
  
•  Các	
  server	
  hỗ	
  trợ	
  
•  IIS	
  –	
  Signal	
  R	
  
•  Ruby	
  On	
  Rails	
  4	
  (dễ	
  dùng,	
  chạy	
  không	
  nhanh)	
  
•  Node.js	
  –	
  Server	
  Sent	
  package	
  (dễ	
  dùng,	
  chạy	
  nhanh)	
  
•  Play	
  Framework	
  (khó	
  học,	
  chạy	
  nhanh)	
  
Phân	
  tải	
  ~	
  Load	
  Balancing	
  
Một	
  khối-­‐	
  Monolithic	
  
Kho	
  dữ	
  liệu	
  
chung	
  
Máy	
  chủ	
  
khoẻ	
  
Web	
  site	
  A	
  
Web	
  site	
  B	
  
Web	
  site	
  C	
  
Hay	
  
ì  Xây	
  dựng	
  nhanh	
  
ì  Dùng	
  ít	
  công	
  nghệ	
  vẫn	
  làm	
  
được	
  
ì  Cơ	
  sở	
  dữ	
  liệu	
  tập	
  trung,	
  nên	
  
tạo	
  báo	
  cáo,	
  œch	
  hợp	
  dữ	
  liệu	
  
dễ	
  dàng	
  
Dở	
  
ì  Khó	
  mở	
  rộng	
  –	
  bảo	
  trị	
  
ì  Khó	
  bổ	
  xung	
  thêm	
  nhiều	
  server	
  
à	
  Dễ	
  bị	
  quá	
  tải	
  
ì  Lỗi	
  một	
  nơi,	
  sập	
  cả	
  hệ	
  thống	
  -­‐
Single	
  point	
  of	
  failure	
  
Kiến	
  trúc	
  một	
  khối	
  
Kiến	
  trúc	
  phân	
  tán	
  
Hay	
  
ì  Giảm	
  “single	
  point	
  of	
  failure”	
  
ì  Giảm	
  tải,	
  chuyên	
  biệt	
  hoá	
  
ì  Mở	
  rộng	
  tốt	
  hơn	
  (scale)	
  
ì  Dễ	
  nâng	
  cấp,	
  bảo	
  trì	
  từng	
  khối	
  
con	
  
Dở	
  
ì  Kết	
  nối	
  giữa	
  các	
  khối	
  con	
  có	
  thể	
  
phức	
  tạp	
  
ì  Nếu	
  tác	
  vụ	
  ghi	
  ở	
  nhiều	
  khối	
  
khác	
  nhau	
  à	
  rất	
  khó	
  đồng	
  bộ	
  
dữ	
  liệu	
  
ì  Không	
  dùng	
  blocking	
  call	
  để	
  gọi	
  
giữa	
  các	
  khối	
  con	
  à	
  ngáng	
  
chân	
  nhau	
  
Hệ	
  thống	
  phân	
  tán	
  thiết	
  kế	
  lộn	
  xộn	
  
Enterprise	
  Service	
  Bus	
  Architecture	
  
Enterprise	
  Service	
  Bus	
  
A	
  
D	
  
B	
  
E	
  
C	
  
Producson	
  
Management	
  
Accounsng	
  
System	
  
CRM	
  +	
  Single	
  
Sign	
  On	
  
Inventory	
  
Messaging	
  between	
  applications	
  
•  Rabbit	
  MQ	
  hỗ	
  trợ	
  các	
  ngôn	
  ngữ	
  lập	
  trình	
  
khác	
  nhau.	
  Rabbit	
  MQ	
  viết	
  bằng	
  Erlang	
  
chạy	
  rất	
  nhanh.	
  Nhưng	
  khi	
  giao	
  sếp	
  với	
  
khối	
  xử	
  lý	
  chậm,	
  nó	
  sẽ	
  bị	
  suy	
  giảm	
  tốc	
  độ	
  
	
  
•  Akka	
  –	
  Actor	
  viết	
  bằng	
  Scala	
  biên	
  dịch	
  	
  
chạy	
  trên	
  JVM.	
  Chạy	
  rất	
  nhanh,	
  tốn	
  ít	
  bộ	
  nhớ	
  
Sẽ	
  nói	
  ở	
  phần	
  sau	
  
	
  
Đi	
  tìm	
  một	
  nền	
  tảng	
  lập	
  trình	
  cho	
  5	
  
năm	
  tới	
  
hdp://spray.io/zse/#/6	
  
Đồ	
  thị	
  trước	
  cho	
  thấy	
  
•  Số	
  lượng	
  transistor	
  trên	
  một	
  lõi	
  (core)	
  vẫn	
  sếp	
  tục	
  tăng	
  	
  
•  Năng	
  lực	
  œnh	
  toán	
  của	
  single	
  thread	
  đã	
  tới	
  hạn	
  
•  Tốc	
  độ	
  xung	
  nhịp	
  của	
  CPU	
  cũng	
  tới	
  hạn	
  
•  CPU	
  không	
  nên	
  sêu	
  thụ	
  thêm	
  năng	
  lượng	
  mà	
  thậm	
  chí	
  phải	
  
giảm	
  (thời	
  kỳ	
  di	
  động	
  rồi	
  !)	
  
•  Số	
  lõi	
  (core)	
  sếp	
  tục	
  tăng	
  
Xử	
  lý	
  song	
  song	
  ~	
  Parallel	
  Computing	
  
Tỷ	
  lệ	
  mã	
  chạy	
  song	
  
song	
  càng	
  tăng	
  tốc	
  
độ	
  càng	
  nhanh	
  !	
  
Chọn	
  Scala	
  
•  Ngôn	
  ngữ	
  Scala	
  ra	
  đời	
  2003.	
  Biên	
  dịch	
  chạy	
  trên	
  Java	
  Virtual	
  
Machine	
  
•  Phát	
  triển	
  nhanh,	
  nhiều	
  œnh	
  năng	
  hơn	
  Java.	
  Java	
  8	
  mới	
  có	
  
funcsonal	
  programming.	
  
•  Code	
  viết	
  ngắn	
  gọn	
  hơn	
  Java	
  
•  Kết	
  hợp	
  OOP	
  +	
  Funcsonal	
  Programming	
  
•  Sử	
  dụng	
  chung	
  các	
  thư	
  viện	
  có	
  sẵn	
  của	
  Java	
  
•  Chạy	
  từng	
  dòng	
  lệnh	
  hoặc	
  viết	
  mã	
  rồi	
  biên	
  dịch	
  
•  API	
  xử	
  lý	
  collecson,	
  chuỗi…	
  rất	
  phong	
  phú	
  
•  Hỗ	
  trợ	
  sẵn	
  đa	
  nhiệm,	
  Async:	
  Future	
  -­‐	
  Promise	
  
Scala	
  nói	
  ít	
  làm	
  nhiều	
  
class Barista extends Actor {!
def receive = {!
case CappuccinoRequest =>!
sender ! Bill(250)!
case EspressoRequest =>!
sender ! Bill(200)!
case ClosingTime => context.system.shutdown()!
}!
}!
Các	
  đối	
  tượng	
  Scala	
  trong	
  cùng	
  1	
  process	
  
hoặc	
  từ	
  xa	
  có	
  thể	
  truyền	
  sn	
  cho	
  nhau	
  kiểu	
  di	
  
bộ	
  (asynchronously)	
  hết	
  sức	
  đơn	
  giản	
  
Play	
  Framework	
  
•  Linked	
  In,	
  Coursera,	
  Gilt,	
  The	
  Guardian,	
  Lucid	
  Chart,	
  MiaVia,	
  
Walmart	
  Canada…	
  dùng	
  	
  
•  Biên	
  dịch	
  bytecode	
  chạy	
  trên	
  JVM	
  nhưng	
  lại	
  Hot	
  Reload	
  giống	
  
như	
  PHP	
  
•  Tích	
  hợp	
  với	
  Akka,	
  Actor	
  để	
  chạy	
  song	
  song	
  trên	
  nhiều	
  CPU,	
  
máy	
  chủ	
  khác	
  nhau	
  
•  Non-­‐Blocking	
  I/O:	
  Nedy.	
  Bản	
  3.0	
  chuyển	
  sang	
  Spray.IO	
  
•  Server	
  Sent	
  Event	
  –	
  WebSocket	
  
•  Mô	
  hình	
  MVC	
  
•  Kết	
  nối	
  CSDL	
  qua	
  Slick:	
  Funcsonal	
  Relasonal	
  Mapper	
  vs	
  ORM	
  
Kinh	
  nghiệm	
  sau	
  5	
  tháng	
  làm	
  việc	
  
•  Ngôn	
  ngữ	
  Scala	
  khó	
  học.	
  LTV	
  cần	
  cởi	
  mở	
  tư	
  duy	
  khi	
  lập	
  trình	
  
Funcsonal.	
  Mất	
  khoảng	
  3	
  tháng	
  để	
  thực	
  sự	
  hiểu	
  trong	
  khi	
  PHP	
  
chỉ	
  mất	
  khoảng	
  2	
  tuần.	
  
•  Nhiều	
  ký	
  tự	
  lạ	
  cần	
  phải	
  nhớ:	
  =>	
  :	
  ::	
  :::	
  ~	
  ~>	
  !	
  `	
  :+	
  +:	
  
	
  
Kết	
  quả	
  
•  Khi	
  đã	
  quen	
  thì	
  nền	
  tảng	
  Play	
  Framework,	
  Akka,	
  Spray,	
  Slick	
  
cùng	
  Scala	
  sẽ	
  giúp	
  xây	
  dựng	
  web	
  site,	
  dịch	
  vụ	
  web	
  service	
  đáp	
  
ứng	
  sêu	
  chí	
  khắt	
  khe:	
  scalable	
  –	
  resilient	
  –	
  event-­‐driven.	
  Tham	
  
khảo	
  hgp://www.reacZvemanifesto.org	
  
•  Một	
  site	
  cho	
  khách	
  hàng	
  Mỹ	
  
•  Một	
  site	
  dịch	
  vụ	
  trực	
  tuyến	
  dự	
  kiến	
  
•  Tuyển	
  thêm	
  nhiều	
  sinh	
  viên	
  thực	
  tập	
  để	
  dạy	
  lập	
  trình	
  Scala,	
  Play	
  
Framework.	
  Các	
  bạn	
  sinh	
  viên	
  học	
  rất	
  nhanh	
  và	
  hứng	
  thú	
  
Mong	
  muốn	
  
•  Trường	
  Đại	
  học	
  Quốc	
  Gia	
  Hà	
  nội	
  mạnh	
  dạn	
  đưa	
  công	
  nghệ	
  mới	
  
vào	
  đào	
  tạo	
  
•  Đặc	
  biệt	
  kỹ	
  năng	
  lập	
  trình	
  Scala,	
  Funcsonal	
  Programming,	
  Akka	
  
–	
  Actor,	
  Spray,	
  Slick…	
  
•  Giới	
  thiệu	
  học	
  viên	
  đam	
  mê	
  công	
  nghệ	
  đến	
  thực	
  tập	
  tại	
  
Techmaster	
  -­‐>	
  làm	
  tốt,	
  tuyển	
  dụng	
  lại	
  
•  Hướng	
  dẫn	
  sinh	
  viên	
  xây	
  dựng	
  những	
  ứng	
  dụng	
  mobile-­‐web	
  
kiến	
  trúc	
  mới,	
  œnh	
  đến	
  tốc	
  độ,	
  tải,	
  khả	
  năng	
  phân	
  tán	
  
Nếu	
  đam	
  mê	
  thực	
  sự	
  thì	
  tham	
  gia	
  đội	
  nhé!	
  hdp://techmaster.vn	
  	
  

Más contenido relacionado

La actualidad más candente

Tìm hiểu về Wordpress - Wordpress presentation
Tìm hiểu về Wordpress - Wordpress presentation Tìm hiểu về Wordpress - Wordpress presentation
Tìm hiểu về Wordpress - Wordpress presentation Khổng Xuân Trung
 
Giới thiệu wordpress
Giới thiệu wordpressGiới thiệu wordpress
Giới thiệu wordpressMisu Kem
 
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuTự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuKhanhPham
 
Hướng dẫn tạo website nhanh chóng bằng wordpress
Hướng dẫn tạo website nhanh chóng bằng wordpressHướng dẫn tạo website nhanh chóng bằng wordpress
Hướng dẫn tạo website nhanh chóng bằng wordpressTí Bụng Bự
 
Sinh viên CNTT làm gì trong 5 năm tới
Sinh viên CNTT làm gì trong 5 năm tớiSinh viên CNTT làm gì trong 5 năm tới
Sinh viên CNTT làm gì trong 5 năm tớiTechMaster Vietnam
 
Lap trinh web la gi bat dau hoc lap trinh web tu dau
Lap trinh web la gi bat dau hoc lap trinh web tu dauLap trinh web la gi bat dau hoc lap trinh web tu dau
Lap trinh web la gi bat dau hoc lap trinh web tu dautuananh1896
 

La actualidad más candente (10)

Wordpress
WordpressWordpress
Wordpress
 
Tìm hiểu về Wordpress - Wordpress presentation
Tìm hiểu về Wordpress - Wordpress presentation Tìm hiểu về Wordpress - Wordpress presentation
Tìm hiểu về Wordpress - Wordpress presentation
 
Giới thiệu wordpress
Giới thiệu wordpressGiới thiệu wordpress
Giới thiệu wordpress
 
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuTự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
 
Hướng dẫn tạo website nhanh chóng bằng wordpress
Hướng dẫn tạo website nhanh chóng bằng wordpressHướng dẫn tạo website nhanh chóng bằng wordpress
Hướng dẫn tạo website nhanh chóng bằng wordpress
 
Sinh viên CNTT làm gì trong 5 năm tới
Sinh viên CNTT làm gì trong 5 năm tớiSinh viên CNTT làm gì trong 5 năm tới
Sinh viên CNTT làm gì trong 5 năm tới
 
Lap trinh web la gi bat dau hoc lap trinh web tu dau
Lap trinh web la gi bat dau hoc lap trinh web tu dauLap trinh web la gi bat dau hoc lap trinh web tu dau
Lap trinh web la gi bat dau hoc lap trinh web tu dau
 
WORDPRESS
WORDPRESSWORDPRESS
WORDPRESS
 
Tong quanthietkeweb
Tong quanthietkewebTong quanthietkeweb
Tong quanthietkeweb
 
Ispring Suite 7
Ispring Suite 7Ispring Suite 7
Ispring Suite 7
 

Destacado

Cấu hình Postgresql căn bản trong 20 phút
Cấu hình Postgresql căn bản trong 20 phútCấu hình Postgresql căn bản trong 20 phút
Cấu hình Postgresql căn bản trong 20 phútTechMaster Vietnam
 
Postgresql các vấn đề thực tế
Postgresql các vấn đề thực tếPostgresql các vấn đề thực tế
Postgresql các vấn đề thực tếTechMaster Vietnam
 
Cơ sở dữ liệu postgres
Cơ sở dữ liệu postgresCơ sở dữ liệu postgres
Cơ sở dữ liệu postgresTechMaster Vietnam
 
Authentication and Authorization
Authentication and AuthorizationAuthentication and Authorization
Authentication and AuthorizationTechMaster Vietnam
 
Prototyping giao diện sử dụng Expression Blend Sketch Flow
Prototyping giao diện sử dụng Expression Blend Sketch FlowPrototyping giao diện sử dụng Expression Blend Sketch Flow
Prototyping giao diện sử dụng Expression Blend Sketch FlowTechMaster Vietnam
 
Bài trình bày cho sinh viên Bách Khoa 9/2012
Bài trình bày cho sinh viên Bách Khoa 9/2012Bài trình bày cho sinh viên Bách Khoa 9/2012
Bài trình bày cho sinh viên Bách Khoa 9/2012TechMaster Vietnam
 
Elasticsearch and Spark
Elasticsearch and SparkElasticsearch and Spark
Elasticsearch and SparkAudible, Inc.
 

Destacado (13)

Minimum Viable Products
Minimum Viable ProductsMinimum Viable Products
Minimum Viable Products
 
Postgresql security
Postgresql securityPostgresql security
Postgresql security
 
Cấu hình Postgresql căn bản trong 20 phút
Cấu hình Postgresql căn bản trong 20 phútCấu hình Postgresql căn bản trong 20 phút
Cấu hình Postgresql căn bản trong 20 phút
 
Postgresql các vấn đề thực tế
Postgresql các vấn đề thực tếPostgresql các vấn đề thực tế
Postgresql các vấn đề thực tế
 
Cơ sở dữ liệu postgres
Cơ sở dữ liệu postgresCơ sở dữ liệu postgres
Cơ sở dữ liệu postgres
 
Authentication and Authorization
Authentication and AuthorizationAuthentication and Authorization
Authentication and Authorization
 
Making a living
Making a livingMaking a living
Making a living
 
Prototyping giao diện sử dụng Expression Blend Sketch Flow
Prototyping giao diện sử dụng Expression Blend Sketch FlowPrototyping giao diện sử dụng Expression Blend Sketch Flow
Prototyping giao diện sử dụng Expression Blend Sketch Flow
 
iOS Master - Detail & TabBar
iOS Master - Detail & TabBariOS Master - Detail & TabBar
iOS Master - Detail & TabBar
 
Slide that wins
Slide that winsSlide that wins
Slide that wins
 
Bài trình bày cho sinh viên Bách Khoa 9/2012
Bài trình bày cho sinh viên Bách Khoa 9/2012Bài trình bày cho sinh viên Bách Khoa 9/2012
Bài trình bày cho sinh viên Bách Khoa 9/2012
 
Why Play Framework is fast
Why Play Framework is fastWhy Play Framework is fast
Why Play Framework is fast
 
Elasticsearch and Spark
Elasticsearch and SparkElasticsearch and Spark
Elasticsearch and Spark
 

Similar a Tìm nền tảng lập trình cho 5 năm tới

Hướng nghiệp Lập trình Web
Hướng nghiệp Lập trình WebHướng nghiệp Lập trình Web
Hướng nghiệp Lập trình WebVKhang Yang
 
Vận dụng kiến thức lập trình web vào môi trường thực tế
Vận dụng kiến thức lập trình web vào môi trường thực tếVận dụng kiến thức lập trình web vào môi trường thực tế
Vận dụng kiến thức lập trình web vào môi trường thực tếVKhang Yang
 
Chuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web độngChuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web độngTHPT Ngô Quyền
 
đồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.netđồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.netnataliej4
 
Báo cáo hoan chỉnh
Báo cáo hoan chỉnhBáo cáo hoan chỉnh
Báo cáo hoan chỉnhCuong Nguyen
 
Báo cáo hoan chỉnh
Báo cáo hoan chỉnhBáo cáo hoan chỉnh
Báo cáo hoan chỉnhCuong Nguyen
 
Việc làm quận 1
Việc làm quận 1Việc làm quận 1
Việc làm quận 1workshs
 
Báo cáo hoan chỉnh
Báo cáo hoan chỉnhBáo cáo hoan chỉnh
Báo cáo hoan chỉnhCuong Nguyen
 
Noichuyenvoisinhvienbachkhoa 120328052043-phpapp02
Noichuyenvoisinhvienbachkhoa 120328052043-phpapp02Noichuyenvoisinhvienbachkhoa 120328052043-phpapp02
Noichuyenvoisinhvienbachkhoa 120328052043-phpapp02Thiên Đức
 
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015IT Expert Club
 
Progressive Web App về dự báo thời tiết
Progressive Web App về dự báo thời tiếtProgressive Web App về dự báo thời tiết
Progressive Web App về dự báo thời tiếtTrung Nguyen
 
đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155nataliej4
 
Chuyên đề thực tập học phần Phần mềm mã nguồn mở: Website bán giày Vans
Chuyên đề thực tập học phần Phần mềm mã nguồn mở: Website bán giày VansChuyên đề thực tập học phần Phần mềm mã nguồn mở: Website bán giày Vans
Chuyên đề thực tập học phần Phần mềm mã nguồn mở: Website bán giày VansOnTimeVitThu
 
Tailieu.vncty.com web dt tren asp.net
Tailieu.vncty.com   web dt tren asp.netTailieu.vncty.com   web dt tren asp.net
Tailieu.vncty.com web dt tren asp.netTrần Đức Anh
 
Báo cáo thực tập chuyên đề Wordpress
Báo cáo thực tập chuyên đề WordpressBáo cáo thực tập chuyên đề Wordpress
Báo cáo thực tập chuyên đề Wordpressvngnhuhaiyen236
 
Itlc2015
Itlc2015Itlc2015
Itlc2015Huy Do
 
BÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung Kiên
BÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung KiênBÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung Kiên
BÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung KiênKiên Nguyễn
 

Similar a Tìm nền tảng lập trình cho 5 năm tới (20)

Hướng nghiệp Lập trình Web
Hướng nghiệp Lập trình WebHướng nghiệp Lập trình Web
Hướng nghiệp Lập trình Web
 
Vận dụng kiến thức lập trình web vào môi trường thực tế
Vận dụng kiến thức lập trình web vào môi trường thực tếVận dụng kiến thức lập trình web vào môi trường thực tế
Vận dụng kiến thức lập trình web vào môi trường thực tế
 
Chuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web độngChuong 1 tong quan về lập trình web động
Chuong 1 tong quan về lập trình web động
 
đồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.netđồ áN thiết kế web tuyển dụng sử dụng asp.net
đồ áN thiết kế web tuyển dụng sử dụng asp.net
 
Báo cáo hoan chỉnh
Báo cáo hoan chỉnhBáo cáo hoan chỉnh
Báo cáo hoan chỉnh
 
Báo cáo hoan chỉnh
Báo cáo hoan chỉnhBáo cáo hoan chỉnh
Báo cáo hoan chỉnh
 
Báo cáo athena
Báo cáo athenaBáo cáo athena
Báo cáo athena
 
Việc làm quận 1
Việc làm quận 1Việc làm quận 1
Việc làm quận 1
 
Tại sao nên chọn ngôn ngữ php
Tại sao nên chọn ngôn ngữ phpTại sao nên chọn ngôn ngữ php
Tại sao nên chọn ngôn ngữ php
 
Báo cáo hoan chỉnh
Báo cáo hoan chỉnhBáo cáo hoan chỉnh
Báo cáo hoan chỉnh
 
Noichuyenvoisinhvienbachkhoa 120328052043-phpapp02
Noichuyenvoisinhvienbachkhoa 120328052043-phpapp02Noichuyenvoisinhvienbachkhoa 120328052043-phpapp02
Noichuyenvoisinhvienbachkhoa 120328052043-phpapp02
 
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
 
Progressive Web App về dự báo thời tiết
Progressive Web App về dự báo thời tiếtProgressive Web App về dự báo thời tiết
Progressive Web App về dự báo thời tiết
 
đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155
 
Athena
AthenaAthena
Athena
 
Chuyên đề thực tập học phần Phần mềm mã nguồn mở: Website bán giày Vans
Chuyên đề thực tập học phần Phần mềm mã nguồn mở: Website bán giày VansChuyên đề thực tập học phần Phần mềm mã nguồn mở: Website bán giày Vans
Chuyên đề thực tập học phần Phần mềm mã nguồn mở: Website bán giày Vans
 
Tailieu.vncty.com web dt tren asp.net
Tailieu.vncty.com   web dt tren asp.netTailieu.vncty.com   web dt tren asp.net
Tailieu.vncty.com web dt tren asp.net
 
Báo cáo thực tập chuyên đề Wordpress
Báo cáo thực tập chuyên đề WordpressBáo cáo thực tập chuyên đề Wordpress
Báo cáo thực tập chuyên đề Wordpress
 
Itlc2015
Itlc2015Itlc2015
Itlc2015
 
BÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung Kiên
BÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung KiênBÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung Kiên
BÁO CÁO THỰC TẬP TRUNG TÂM ATHENA - Nguyễn Lê Trung Kiên
 

Más de TechMaster Vietnam

Go micro framework to build microservices
Go micro framework to build microservicesGo micro framework to build microservices
Go micro framework to build microservicesTechMaster Vietnam
 
Manage your project differently
Manage your project differentlyManage your project differently
Manage your project differentlyTechMaster Vietnam
 
Hướng dẫn sử dụng CocoaPods trong dự án iOS hoặc MacOSX
Hướng dẫn sử dụng CocoaPods trong dự án iOS hoặc MacOSXHướng dẫn sử dụng CocoaPods trong dự án iOS hoặc MacOSX
Hướng dẫn sử dụng CocoaPods trong dự án iOS hoặc MacOSXTechMaster Vietnam
 
Chương trình thực tập chuyên sâu dành cho học viên khóa iOS tại TechMaster
Chương trình thực tập chuyên sâu dành cho học viên khóa iOS tại TechMasterChương trình thực tập chuyên sâu dành cho học viên khóa iOS tại TechMaster
Chương trình thực tập chuyên sâu dành cho học viên khóa iOS tại TechMasterTechMaster Vietnam
 
Apple iOS Memory Management - Vietnamese version
Apple iOS Memory Management - Vietnamese versionApple iOS Memory Management - Vietnamese version
Apple iOS Memory Management - Vietnamese versionTechMaster Vietnam
 

Más de TechMaster Vietnam (12)

Neural Network from Scratch
Neural Network from ScratchNeural Network from Scratch
Neural Network from Scratch
 
Go micro framework to build microservices
Go micro framework to build microservicesGo micro framework to build microservices
Go micro framework to build microservices
 
Flutter vs React Native 2018
Flutter vs React Native 2018Flutter vs React Native 2018
Flutter vs React Native 2018
 
C đến C++ phần 1
C đến C++ phần 1C đến C++ phần 1
C đến C++ phần 1
 
Control structure in C
Control structure in CControl structure in C
Control structure in C
 
Basic C programming
Basic C programmingBasic C programming
Basic C programming
 
Knex Postgresql Migration
Knex Postgresql MigrationKnex Postgresql Migration
Knex Postgresql Migration
 
Manage your project differently
Manage your project differentlyManage your project differently
Manage your project differently
 
Hướng dẫn sử dụng CocoaPods trong dự án iOS hoặc MacOSX
Hướng dẫn sử dụng CocoaPods trong dự án iOS hoặc MacOSXHướng dẫn sử dụng CocoaPods trong dự án iOS hoặc MacOSX
Hướng dẫn sử dụng CocoaPods trong dự án iOS hoặc MacOSX
 
Chương trình thực tập chuyên sâu dành cho học viên khóa iOS tại TechMaster
Chương trình thực tập chuyên sâu dành cho học viên khóa iOS tại TechMasterChương trình thực tập chuyên sâu dành cho học viên khóa iOS tại TechMaster
Chương trình thực tập chuyên sâu dành cho học viên khóa iOS tại TechMaster
 
Apple iOS Memory Management - Vietnamese version
Apple iOS Memory Management - Vietnamese versionApple iOS Memory Management - Vietnamese version
Apple iOS Memory Management - Vietnamese version
 
Windows 8 vs android 4
Windows 8 vs android 4Windows 8 vs android 4
Windows 8 vs android 4
 

Tìm nền tảng lập trình cho 5 năm tới

  • 1. Tìm  nền  tảng  lập  trình  cho  5  năm  tới   cuong@techmaster.vn  
  • 2. Tôi  là   •  Trịnh  Minh  Cường,  học  điện  tử  viễn  thông  K37  Bách  Khoa  HN   •  Lắp  mạch  radio,  bóng  bán  dẫn  khi  học  lớp  7   •  Lập  trình  từ  năm  1993  …   •  Thạc  sỹ  khoá  cơ  khí  tại   KAIST  Hàn  Quốc  2006   •  Sáng  lập  TechMaster   hdp://techmaster.vn  
  • 3. Techmaster  Việt  nam   •  Xây  dựng    phần  mềm  di  động  –  cloud  –  web   •  Khách  hàng:  100%  quốc  tế   •  Công  ty  đầu  sên  đào  tạo  lập  trình  viên  iOS  –  Android  –   Windows  Phone,  PHP  Phalcon,  Ruby  On  Rails  tại  Hà  nội  (cũng  có   thể  là  Việt  nam)   •  Số  lượng  lập  trình  viên:  14  ~  16  người  (nhỏ  xinh  nhưng  chuyên)   •  Già  nhất  (1975)  còn  lại  khoảng  1992-­‐1986  
  • 4. Nội  dung  trình  bày   Vấn  đề  thực  sễn  chúng  tôi  đang   nghiên  cứu,  giải  quyết   “Với  nguồn  kinh  phí  có  hạn  (thấp)   làm  sao  xây  dựng  dịch  vụ  web  –  web   service  cho  di  động  tốt  cho  càng   nhiều  người  càng  tốt”  
  • 5. Các  tiêu  chí  để  tìm   •  Miễn  phí  –  mã  nguồn  mở   •  Phải  chạy  được  trên  Linux,  giảm  tối  đa  chi  phí  bản  quyền,  phần   cứng   •  Mới,  mạnh,  hiệu  quả,  được  công  ty  Mỹ  -­‐Nhật-­‐  Âu  dùng,  nhưng   không  quá  đại  trà  như  ASP.net,  PHP,  Rails,  Java  để  còn  kiếm  đất   vượt  lên   •  Tốc  độ  -­‐  Chịu  Tải  tốt  trên  cả  phần  cứng  đại  trà   •  Đã  được  minh  chứng  qua  các  ví  dụ  thành  công  thực  tế  
  • 6. 80%  đề  tài  tốt  nghiệp  của  sinh  viên   •  Ứng  dụng  web  quản  lý  sinh  viên   •  Web  site  bán  hàng  trực  tuyến   •  Web  site  xem  phim  trực  tuyến   •  Ứng  dụng  quản  lý  quan  hệ  khách  hàng   •  Ứng  dụng  quản  lý  kho  bãi   •  Ứng  dụng  đề  thi  thực  tuyến   •  ….  
  • 7. Điểm  chung  là  gì?   •  Mô  hình  client  –  server   •  Desktop  client  nối  vào  database  server  (đã  rất  cổ)   •  Desktop  client  nối  vào  web  service.  Web  service  gọi   vào  database   •  Dynamic  web  nối  vào  database  server   •  Cơ  sở  dữ  liệu  quan  hệ   •  Microso›  SQL  Server,  Oracle,  MySQL,  Postgresql   •  Có  nhiều  bảng  chung  như:  user…  
  • 8. Nhiều  năm  rồi  vẫn  thế   •  Các  đề  tài  tốt  nghiệp  khoa  CNTT  ở  VN  thường   dừng  ở  mức:  phân  œch  –  thiết  kế  (UML)  -­‐  lập   trình  chức  năng  –  CRUD   •  Chèn  thật  nhiều  code  cho  dày  luận  văn  tốt   nghiệp.   •  Tốt  nghiệp  xong  -­‐>  xin  việc  -­‐>  đào  tạo  lại    
  • 9.
  • 10. Vừa  mua  xong  một  luận  văn  ngành  quản  trị  kinh   doanh,  Nguyễn  Văn  N.  sinh  viên  Đại  học  Kinh  tế   Quốc  dân  phấn  khởi  chia  sẻ:  “Luận  văn  tốt  nghiệp   gần  trăm  trang  mà  giá  chỉ  30  nghìn  đồng,  không   bằng  cả  Zền  công  đánh  máy.  Em  phải  chọn  đề  tài   của  anh  chị  sinh  viên  cách  đây  mấy  khóa  để  khi   chấm  các  thầy  cũng  không  thể  nhận  ra”.    
  • 11. 3  năm  gần  đâycó  thêm  lập  trình  di  động   •  iOS,  Android,  Windows  Phone,  hybrid  app:  bản  chất  vẫn  là  client  app  cài  đặt   trên  thiết  bị   •  Ứng  dụng  di  động  không  kết  nối  trực  sếp  vào  database  server  mà  phải  kết   nối  vào  web  service:   •  Phương  thức  REST  trả  về  JSON/XML   •  Phương  thức  SOAP  trả  về  XML   •  Techmaster  chỉ  dạy  trong  khoảng  5  tháng  là  code  được  ứng  dụng  di  động  để   đi  xin  việc.  
  • 12. Thực  tế  phức  tạp  hơn  nhiều   •  Với  kinh  phí  đầu  tư  phần  cứng  có  hạn,  làm  sao  cung  cấp  dịch  vụ   cho  nhiều  người  hơn?   •  Ứng  dụng  hỗ  trợ  đa  nền  tảng  (Web  –  Desktop  –  Di  động)   •  Dịch  vụ  dễ  dàng  bảo  trì,  nâng  cấp,  điều  chỉnh  cho  từng  khách   hàng   •  Rẻ  và  rẻ  hơn  nữa,  thậm  chí  cho  không  để  thu  sền  bằng  cách   khác   •  Trải  nghiệm  tốt  hơn,  mới  hơn.  Khác  biệt  với  đối  thủ-­‐>  khách   hàng  sướng  
  • 13. Web  site  techmaster.vn   •  2011-­‐2012:  share  host  ở  **C:  200,000  VND  /tháng.  Truy  cập   100  ~200  visit/day.  1  tháng  phải  gọi  hỗ  trợ  kỹ  thuật  1  lần  vì  site   lăn  ra  chết   •  2012  –  2013:  VPS  host  ở  Linode,  data  center  tại  Nhật,  20  USD  / tháng.  Truy  cập:  200  ~  300  visit/day.  Quảng  cáo  rất  tốt,  nhưng   I/O  đọc  ghi  ổ  cứng  rất  kém   •  2013  –  2014:  VPS  host  ở  Digital  Ocean,  data  center  tại   Sanfransico,  10  USD  /tháng.  Truy  cập:  500-­‐800  visit  /day.   Host  được  2-­‐3  WordPress  site  đồng  thời.  Hiệu  quả  tốc  độ  lẫn   đầu  tư.  Chạy  ổn  định  
  • 14.
  • 15. Bán  hàng  nhỏ  lẻ,   câu  kéo  khách   hàng  rất  mệt  và   không  hiểu  quả  
  • 16.
  • 17.
  • 18.
  • 19. Lượng  truy  cập  tăng  ~  doanh  số  
  • 20. Tăng  50   page   view  /   ngày   Có  thêm  1   khách   hàng   tái  đầu  tư   công   nghệ,  bài   giảng   Page  view   tăng   Khách   hàng  tăng   Họ  giới   thiệu  cho   bạn  bè  
  • 21. Hãy  tìm  giải  pháp     •  Web  site  bán  vé  tàu  từ  Nam  ra  Bắc  quá  tải  lúc  giáp  Tết.  Có  thể   có  gần  800,000  người  cần  mua  vé  trong  khoảng  2  tuần.   •  Web  site  đăng  ký  œn  chỉ  quá  tải  đầu  học  kỳ.  Số  lượng  sinh  viên   truy  cập  đồng  thời  >  600   •  Ứng  dụng  di  động  nổi  sếng  như  Foursquare,  FlipBoard,  Paper,   Whatsapp,  Viber  có  thể  hàng  triệu  người  dùng  đồng  thời,  trên   nhiều  quốc  gia  khác  nhau?   Web  site  dịch  vụ  trực  tuyến  có  hàng  nghìn  truy  cập  đồng   thời  từ  cả  web  và  di  động.  Chi  phí  hosEng  chỉ  khoảng  50   ~  70  USD/tháng  
  • 22.
  • 23. Số  lượng  truy  cập,  dữ  liệu  tải  =>  thay  đổi  kiến  trúc,  công  nghệ   •  <  50  users:  client  –  server  cổ  điển   •  >  50  users:  80%  read  –  20%  write:  bổ  xung  disk  cache  –  mem   cache   •  >  100  users  đến  x1000  users.   •  Giảm  tối  đa  page  reload  =>  AJAX   •  CDN  host  stasc  files   •  Cache  –  cache-­‐  cache   •  Phân  tải  (load  balance)  –  Phân  tán  (distributed)   •  Kết  hợp  RDBMS  với  NoSQL   •  HDD  -­‐>  SDD  -­‐>  Fast  Memory   •  ….  
  • 24. Chẩn  đoán  bệnh  à  kê  đơn   •  Tối  ưu  ở  Front  End  (CSS,  JavaScript)   •  Combine  CSS,  JavaScript.     •  Tối  ưu  phần  cứng  +  băng  thông    =>  tốn  Zền   •  Tối  ưu  cách  viết  mã  (CSS,  JavaScript,  HTML,  web  programming)   =>  mất  nhiều  công  đọc  lại  code   •  Tối  ưu  kiến  trúc  –  nền  tảng,  thư  viện  của  ứng  dụng  =>  phải  chọn   ngay  từ  đầu,  đầu  tư  dài  hạn   •  Web  Server   •  Web  Framework   •  Web  Programming  Language  
  • 25.
  • 27. Phalcon:  viết  lại  thư  viện  C  extension  cho  PHP   hdp://techmaster.vn/en/2014/02/tai-­‐sao-­‐chung-­‐toi-­‐chon-­‐phalcon/  
  • 28. HHVM:  Just  In  Time  compiler  để  dịch  mã  PHP   thành  byte  code   Phalcon:  lập  trình  bắt  buộc  phải  viết  ứng  dụng    sử  dụng  thư  viện  Phalcon     HHVM  tối  ưu  tốc  độ  cho  những  web  site  sử  dụng  các  thư  viện  khác  nhau.   Không  tương  thích  100%  với  nhiều  web  site.   HHVM  tăng  đáp  ứng  resquests  per  second.     Đồ  thị  ở  trang  hdp://blog.liip.ch/archive/2013/10/29/hhvm-­‐and-­‐symfony2.html    
  • 29. blocking  I/O  sang  non-­‐bloking  I/O   •  Nginx   •  Node.js   •  Puma  server   •  Nedy   •  Akka  –  Spray  
  • 30. Server  Sent  Event  vs  Polling   Polling:  client  đều  đặn  –  liên  tục  gửi  yêu  cầu  lấy  dữ  liệu   mới  nhất  từ  server  à  khiến  máy  chủ  quá  tải     Server  Sent  Event:  client  đăng  ký  nhận  thông  báo  từ   server.  Có  thay  đổi  thì  báo  về  
  • 31. Tham  khảo  Server  Sent  Event   •  hdp://developereventlog.blogspot.com/2013/06/aspnet-­‐ signalr-­‐real-­‐sme-­‐applicason_6.html   •  hdp://www.jayway.com/2012/05/11/html5-­‐server-­‐sent-­‐events   •  Các  server  hỗ  trợ   •  IIS  –  Signal  R   •  Ruby  On  Rails  4  (dễ  dùng,  chạy  không  nhanh)   •  Node.js  –  Server  Sent  package  (dễ  dùng,  chạy  nhanh)   •  Play  Framework  (khó  học,  chạy  nhanh)  
  • 32. Phân  tải  ~  Load  Balancing  
  • 33. Một  khối-­‐  Monolithic   Kho  dữ  liệu   chung   Máy  chủ   khoẻ   Web  site  A   Web  site  B   Web  site  C  
  • 34. Hay   ì  Xây  dựng  nhanh   ì  Dùng  ít  công  nghệ  vẫn  làm   được   ì  Cơ  sở  dữ  liệu  tập  trung,  nên   tạo  báo  cáo,  œch  hợp  dữ  liệu   dễ  dàng   Dở   ì  Khó  mở  rộng  –  bảo  trị   ì  Khó  bổ  xung  thêm  nhiều  server   à  Dễ  bị  quá  tải   ì  Lỗi  một  nơi,  sập  cả  hệ  thống  -­‐ Single  point  of  failure   Kiến  trúc  một  khối  
  • 35. Kiến  trúc  phân  tán   Hay   ì  Giảm  “single  point  of  failure”   ì  Giảm  tải,  chuyên  biệt  hoá   ì  Mở  rộng  tốt  hơn  (scale)   ì  Dễ  nâng  cấp,  bảo  trì  từng  khối   con   Dở   ì  Kết  nối  giữa  các  khối  con  có  thể   phức  tạp   ì  Nếu  tác  vụ  ghi  ở  nhiều  khối   khác  nhau  à  rất  khó  đồng  bộ   dữ  liệu   ì  Không  dùng  blocking  call  để  gọi   giữa  các  khối  con  à  ngáng   chân  nhau  
  • 36. Hệ  thống  phân  tán  thiết  kế  lộn  xộn  
  • 37. Enterprise  Service  Bus  Architecture   Enterprise  Service  Bus   A   D   B   E   C   Producson   Management   Accounsng   System   CRM  +  Single   Sign  On   Inventory  
  • 38. Messaging  between  applications   •  Rabbit  MQ  hỗ  trợ  các  ngôn  ngữ  lập  trình   khác  nhau.  Rabbit  MQ  viết  bằng  Erlang   chạy  rất  nhanh.  Nhưng  khi  giao  sếp  với   khối  xử  lý  chậm,  nó  sẽ  bị  suy  giảm  tốc  độ     •  Akka  –  Actor  viết  bằng  Scala  biên  dịch     chạy  trên  JVM.  Chạy  rất  nhanh,  tốn  ít  bộ  nhớ   Sẽ  nói  ở  phần  sau    
  • 39. Đi  tìm  một  nền  tảng  lập  trình  cho  5   năm  tới  
  • 41. Đồ  thị  trước  cho  thấy   •  Số  lượng  transistor  trên  một  lõi  (core)  vẫn  sếp  tục  tăng     •  Năng  lực  œnh  toán  của  single  thread  đã  tới  hạn   •  Tốc  độ  xung  nhịp  của  CPU  cũng  tới  hạn   •  CPU  không  nên  sêu  thụ  thêm  năng  lượng  mà  thậm  chí  phải   giảm  (thời  kỳ  di  động  rồi  !)   •  Số  lõi  (core)  sếp  tục  tăng  
  • 42. Xử  lý  song  song  ~  Parallel  Computing   Tỷ  lệ  mã  chạy  song   song  càng  tăng  tốc   độ  càng  nhanh  !  
  • 43. Chọn  Scala   •  Ngôn  ngữ  Scala  ra  đời  2003.  Biên  dịch  chạy  trên  Java  Virtual   Machine   •  Phát  triển  nhanh,  nhiều  œnh  năng  hơn  Java.  Java  8  mới  có   funcsonal  programming.   •  Code  viết  ngắn  gọn  hơn  Java   •  Kết  hợp  OOP  +  Funcsonal  Programming   •  Sử  dụng  chung  các  thư  viện  có  sẵn  của  Java   •  Chạy  từng  dòng  lệnh  hoặc  viết  mã  rồi  biên  dịch   •  API  xử  lý  collecson,  chuỗi…  rất  phong  phú   •  Hỗ  trợ  sẵn  đa  nhiệm,  Async:  Future  -­‐  Promise  
  • 44. Scala  nói  ít  làm  nhiều  
  • 45. class Barista extends Actor {! def receive = {! case CappuccinoRequest =>! sender ! Bill(250)! case EspressoRequest =>! sender ! Bill(200)! case ClosingTime => context.system.shutdown()! }! }! Các  đối  tượng  Scala  trong  cùng  1  process   hoặc  từ  xa  có  thể  truyền  sn  cho  nhau  kiểu  di   bộ  (asynchronously)  hết  sức  đơn  giản  
  • 46. Play  Framework   •  Linked  In,  Coursera,  Gilt,  The  Guardian,  Lucid  Chart,  MiaVia,   Walmart  Canada…  dùng     •  Biên  dịch  bytecode  chạy  trên  JVM  nhưng  lại  Hot  Reload  giống   như  PHP   •  Tích  hợp  với  Akka,  Actor  để  chạy  song  song  trên  nhiều  CPU,   máy  chủ  khác  nhau   •  Non-­‐Blocking  I/O:  Nedy.  Bản  3.0  chuyển  sang  Spray.IO   •  Server  Sent  Event  –  WebSocket   •  Mô  hình  MVC   •  Kết  nối  CSDL  qua  Slick:  Funcsonal  Relasonal  Mapper  vs  ORM  
  • 47. Kinh  nghiệm  sau  5  tháng  làm  việc   •  Ngôn  ngữ  Scala  khó  học.  LTV  cần  cởi  mở  tư  duy  khi  lập  trình   Funcsonal.  Mất  khoảng  3  tháng  để  thực  sự  hiểu  trong  khi  PHP   chỉ  mất  khoảng  2  tuần.   •  Nhiều  ký  tự  lạ  cần  phải  nhớ:  =>  :  ::  :::  ~  ~>  !  `  :+  +:    
  • 48. Kết  quả   •  Khi  đã  quen  thì  nền  tảng  Play  Framework,  Akka,  Spray,  Slick   cùng  Scala  sẽ  giúp  xây  dựng  web  site,  dịch  vụ  web  service  đáp   ứng  sêu  chí  khắt  khe:  scalable  –  resilient  –  event-­‐driven.  Tham   khảo  hgp://www.reacZvemanifesto.org   •  Một  site  cho  khách  hàng  Mỹ   •  Một  site  dịch  vụ  trực  tuyến  dự  kiến   •  Tuyển  thêm  nhiều  sinh  viên  thực  tập  để  dạy  lập  trình  Scala,  Play   Framework.  Các  bạn  sinh  viên  học  rất  nhanh  và  hứng  thú  
  • 49. Mong  muốn   •  Trường  Đại  học  Quốc  Gia  Hà  nội  mạnh  dạn  đưa  công  nghệ  mới   vào  đào  tạo   •  Đặc  biệt  kỹ  năng  lập  trình  Scala,  Funcsonal  Programming,  Akka   –  Actor,  Spray,  Slick…   •  Giới  thiệu  học  viên  đam  mê  công  nghệ  đến  thực  tập  tại   Techmaster  -­‐>  làm  tốt,  tuyển  dụng  lại   •  Hướng  dẫn  sinh  viên  xây  dựng  những  ứng  dụng  mobile-­‐web   kiến  trúc  mới,  œnh  đến  tốc  độ,  tải,  khả  năng  phân  tán  
  • 50. Nếu  đam  mê  thực  sự  thì  tham  gia  đội  nhé!  hdp://techmaster.vn