Đánh giá – Fullstack Station https://fullstackstation.com Hướng dẫn lập trình, thiết kế, lập trình web, thiết kế web, lập trình javascript, lập trình fullstack từ cơ bản đến nâng cao Tue, 17 Dec 2019 05:49:22 +0000 vi hourly 1 https://wordpress.org/?v=6.8.3 https://fullstackstation.com/wp-content/uploads/2019/08/favicon.ico Đánh giá – Fullstack Station https://fullstackstation.com 32 32 Flutter là gì? Kỷ nguyên mới cho lập trình di động https://fullstackstation.com/flutter-la-gi/ https://fullstackstation.com/flutter-la-gi/#respond Thu, 25 Jul 2019 09:28:58 +0000 http://fullstackstation.com/?p=1758 Hơn 3 năm trước mình giới thiệu React native (Xem bài: React Native là tương lai của lập trình di động), với sự tin tưởng vào tương lai của React Native. Nhưng đến thời điểm này, Flutter, một cái tên mới sẽ hứa hẹn kỷ nguyên mới bắt đầu. Bài viết này sẽ có cái […]

The post Flutter là gì? Kỷ nguyên mới cho lập trình di động appeared first on Fullstack Station.

]]>
Hơn 3 năm trước mình giới thiệu React native (Xem bài: React Native là tương lai của lập trình di động), với sự tin tưởng vào tương lai của React Native. Nhưng đến thời điểm này, Flutter, một cái tên mới sẽ hứa hẹn kỷ nguyên mới bắt đầu. Bài viết này sẽ có cái nhìn tổng quan và nhận định về tương lai của Flutter, toàn bộ về ưu và khuyết điểm của nền tảng này.

Như mọi khi, để xác định được xu hướng, mình dùng Google Trends, và so sánh 2 từ khoá “React Native” và “Flutter”:

Flutter là gì

Flutter là nền tảng phát triển ứng dụng đa nền tảng cho iOS và Android do Google phát triển. Flutter sử dụng ngôn ngữ DART cũng do Google phát triển và flutter cũng đã được sử dụng để tạo ra các ứng dụng native cho Google.

Ngôn ngữ DART

Ngôn ngữ DART là ngôn ngữ thuần hướng đối tượng được Google giới thiệu từ năm 2011, với mục đích cung cấp sự lựa chọn hiện đại hơn nhưng không thay thế Javascript. Tối ưu cho client, nhất là ứng dụng đa nền tảng.

Từng giữ vị trí Top 1 cho bình chọn ngôn ngữ không nên học năm 2018 theo Codementor:

https://www.codementor.io/blog/worst-languages-to-learn-3phycr98zk

Đưa ra ví dụ để có thể nói mọi thứ đều có thể trở thành hiện tượng “vật đổi sao dời”, từ một ngôn ngữ không nên học vào 2018 có thể trở thành ngôn ngữ được sử dụng nhiều trong năm 2019 này, và nhờ Flutter mà có khả năng tiếp tục phát triển vào 2020.

Ngôn ngữ DART được hỗ trợ khá tốt ở Visual Studio Code, và trong Android Studio.

Flutter có thể làm được gì

Flutter: Ưu điểm

  • Mạnh về hiệu ứng, hiệu suất ứng dụng rất cao.
  • Giao tiếp gần như trực tiếp với hệ thống
  • Ngôn ngữ kiểu tĩnh nhưng với cú pháp hiện đại (tương tự JS, Python, Java), compiler linh động khi dùng AOT (cho sản phẩm cuối) và JIT (cho quá trình phát triển với hot reload)
  • Có thể chạy được giả lập mobile ngay trên web, tiện cho việc phát triển. Các bộ đo lường chỉ số hiệu suất được hỗ trợ sẵn giúp lập trình viên kiểm soát tốt hiệu suất của ứng dụng.
    – Có thể dùng để xây dựng các nền tảng gắn vào ứng dụng native để tăng hiệu suất.

Flutter: Nhược điểm

  • Bộ render UI được nhóm phát triển gần như viết lại, không liên quan tới UI có sẵn của Framework native, dẫn đến memory sử dụng khá nhiều. Hơn nữa, các UI không đi chung với OS, mà được phát triển riêng, nghĩa là cùng 1 phiên bản Flutter khi tạo ra ứng dụng cho iOS thì iOS 8.x -> 12.x đều y chang nhau, tương tự như với Android. Nhưng UI của Android thì tất nhiên khác với iOS.
  • Phải học thêm ngôn ngữ DART: lập trình viên biết về DART không nhiều, cũng có rủi ro là học xong DART sẽ dính liền luôn với DART ở mảng phát triển ứng dụng mobile. Chứ không uyển chuyển như JS hay Python có thể nhảy qua lại giữa front, back hay AI…
  • Mô hình dữ liệu mới: bloc pattern, DART Streaming; nếu đã quen với Redux khi làm phát triển React Native, bạn sẽ mất thời gian để học thêm mô hình dữ liệu trong Flutter, mặc dù nó không khó.
  • Là con cưng của Google, tuy nhiên hãng dính nhìu phốt với thói quen “quăng con giữa chợ” nên cũng cần cân nhắc. Tuy nhiên, mình nhận thấy Flutter rất tốt, tốt hơn nhiều so với những cái mà Google từng làm ra như Angular.

Native đúng nghĩa

Bộ engine để render UI hoàn toàn thuộc Flutter, vì vậy bạn có thể tạo ra bất kỳ hiệu ứng và đồ hoạ nào cho cả 2 nền tảng iOS và Android. Bạn có thể tưởng tượng Flutter như 1 engine game, có thể điểu chỉnh đến từng pixel và phủ trên đó là hệ thống Widget đa dạng, phong phú.

Hot Reload

Khi làm việc với những thứ liên quan đến UI thì Hot Reload thật khiến cho lập trình viên dễ chịu, càng tuyệt hơn khi Flutter cung cấp khả năng ghi nhớ state của ứng dụng. Hot Reload cung cấp cho bạn trải nghiệm tuyệt vời khi lập trình Flutter, so với React Native thì điểm này Flutter hơn.

Dart DevTools

DevTools tuy mới ở giai đoạn beta nhưng độ hoàn thiện cũng rất cao, so với DevTools của React/React Native thì DevTools của Flutter tốt hơn.

Nâng cấp dễ dàng

Mặc dù cách cài đặt ban đầu của Flutter là tải về tập tin nén, nhưng khi cập nhật lên phiên bản mới thì chỉ cần dòng lệnh là đủ, và khá dễ dàng. Ứng dụng sau khi nâng cấp phiên bản Flutter chạy không gặp trở ngại gì cả. Đây là một điểm cộng khá lớn khi xét về độ trưởng thành. Khi sử dụng React Native, các phiên bản từ 0.25, 0.48 có những thay đổi phải sửa bằng tay mới chạy, rất khó chịu.

Những điều chưa làm được của Flutter

Cập nhật lên kho ứng dụng không dễ dàng

Phải cập nhật ứng dụng thông qua trung tâm ứng dụng như Play Store hay App Store. Với React Native, nếu bạn chỉ chỉnh sửa phần sử dụng javascript thì bạn không cần phải build phiên bản mới để cập nhật ứng dụng. Điều này là không thể với Flutter vì Flutter build ra ứng dụng native, và code được biên dịch AOT.

Thiếu JSX

Gọi là thiếu thì cũng không chính xác, nhưng do quen với JSX khá thuận tiện của React Native. Mình thấy có khi JSX trực quan và dễ hiểu layout hơn của Flutter. Yêu cầu về JSX đã được gởi tới nhóm phát triển, họ không từ chối, tuy nhiên cũng không nên mong đợi điều này vì có lẽ nó không phù hợp lắm với DART.

Import chưa rõ ràng

Có chút khó khăn khi code, không biết 1 class, function được import từ package nào. Nếu sử dụng IDE hoặc VSCode thì có thể hover lên class để xác định, tuy nhiên đối với các Text Editor khác hoặc đọc bài viết thì khó xác định được class thuộc package nào.

Fullstack Station Tips

Vừa native vừa hot reload, cho trải nghiệm tốt cả giai đoạn phát triển và hiệu suất ứng dụng tốt. Đây quả là 1 điều tuyệt vời! Mình thật sự ấn tượng với Flutter, và gần như muốn chắc chắn sẽ sử dụng Flutter cho dự án mới. Tuy nhiên, ngôn ngữ Dart là một rào cản khá lớn, mình nghĩ phải cân nhắc rất kỹ cho định hướng nghề nghiệp. Nếu bạn muốn trở thành lập trình viên ứng dụng di động, hãy sử dụng Flutter từ hôm nay.

iOS và Android đã phát triển đến mức bão hoà, việc có chức năng, tính năng đột phá thật sự rất khó. Vì vậy, tương lai của ứng dụng đa nền tảng là hiển nhiên. Trong bài viết này mình chưa đề cập nhiều đến việc so sánh giữa Flutter và React Native, nhưng kinh nghiệm mình cho biết Flutter sẽ thắng trong thời gian tới, hãy chờ xem nhé.

Tham khảo

https://developers.googleblog.com/2019/05/Flutter-io19.html

https://medium.com/flutter-community/flutter-from-mobile-to-desktop-93635e8de64e

https://medium.com/asos-techblog/flutter-vs-react-native-for-ios-android-app-development-c41b4e038db9

https://medium.com/airbnb-engineering/sunsetting-react-native-1868ba28e30a

https://hackernoon.com/react-native-vs-flutter-which-is-preferred-for-you-bba108f808

The post Flutter là gì? Kỷ nguyên mới cho lập trình di động appeared first on Fullstack Station.

]]>
https://fullstackstation.com/flutter-la-gi/feed/ 0
Docker thực chiến: môi trường phát triển https://fullstackstation.com/docker-thuc-chien-moi-truong-phat-trien/ https://fullstackstation.com/docker-thuc-chien-moi-truong-phat-trien/#comments Fri, 10 May 2019 08:58:11 +0000 http://fullstackstation.com/?p=1540 Có lẽ với bạn bây giờ Docker không còn quá xa lạ (đọc Docker là gì nếu bạn chưa biết) , nhiều người đã sử dụng trong môi trường sản phẩm và trong môi trường phát triển. Mặc dù vậy, docker cũng không phải dễ dàng tiếp cận và sử dụng, nếu bạn vẫn chưa […]

The post Docker thực chiến: môi trường phát triển appeared first on Fullstack Station.

]]>
Có lẽ với bạn bây giờ Docker không còn quá xa lạ (đọc Docker là gì nếu bạn chưa biết) , nhiều người đã sử dụng trong môi trường sản phẩm và trong môi trường phát triển. Mặc dù vậy, docker cũng không phải dễ dàng tiếp cận và sử dụng, nếu bạn vẫn chưa sử dụng docker vì 1 lý do nào đó, bài viết này sẽ dành cho bạn: docker thực chiến thiết lập môi trường phát triển một cách dễ dàng.

Tại sao nên xài docker

Thú thật, mình cũng từng như bạn, không chịu rời bỏ cái môi trường lập trình đang chạy ngon lành trên máy của mình, cho đến một ngày…Đơn giản là đời làm lập trình có nhiều dự án, mỗi dự án yêu cầu môi trường, cấu hình khác nhau, rồi môi trường lập trình trên máy cũng khác. Ví dụ, trên máy dùng VSCode dùng phần rộng PHP đòi phải PHP 7, nhưng dự án A chỉ chạy trên 5.6, dự án B chỉ chạy trên PHP 7.2. Ngoài ra còn có nhiều tổ hợp công nghệ như kết hợp với Mysql hay Postgres, Elasticsearch…không phải mọi thứ đều cài lên máy chạy cùng lúc rất cực để quản lý và không hiệu quả.

Ngoài ra, một số thư viện cài đặt thỉnh thoảng có trục trặc với máy vì phải build lại, việc các thư viện chỉ chạy trên một vài version tương thích thường xuyên xảy ra. Điều này khiến cho bạn mất khá nhiều thời gian cho việc quản lý môi trường lập trình của mình, đây là điều nên tránh, hãy tập trung năng lượng cho công việc chính, còn môi trường phát triển hãy để docker lo.

Giới thiệu Lando

Dev With Lando

Lando là một nền tảng miễn phí, mã nguồn mở, đa nền tảng dựa trên docker dành cho lập trình viên, cải thiện môi trường làm việc bằng cách gom tổ hợp công nghệ bạn sử dụng thành 1 file cấu hình, thiết lập môi trường lập trình dễ dàng hơn bao giờ hết.

Homepage: https://devwithlando.io

Nói một cách ngắn gọn, nếu bạn biết WAMP hoặc MAMP, thì Lando là ông nội của 2 thằng này. Ví dụ lập trình

Các tổ hợp, ngôn ngữ đã được hỗ trợ

Ngôn ngữ

Các ngôn ngữ sau đã được hỗ trợ:

Tổ hợp

Các tổ hợp đã được cấu hình sẵn:

Các dịch vụ

Các dịch vụ sau cũng được hỗ trợ:

Tại sao nên dùng Lando

Nếu bạn tìm thấy một trong các công nghệ, dịch vụ, ngôn ngữ lập trình được hỗ trợ và liệt kê ở trên “quen thuộc” với công việc hàng ngày của mình, thì bạn đã có lý do sử dụng Lando.

Như ví dụ mình có nói ở trên, việc có nhiều dự án quả thật là rất phức tạp để quản lý môi trường lập trình. Mình đảm nhiệm các dự án trong công ty từ nhỏ đến lớn với các ngôn ngữ như Go, Python, Nodejs, PHP thì Go và Python là ít gặp trục trặc nhưng PHP thì nhiều, và nhiều nhất là Nodejs vì Nodejs ra phiên bản mới liên tục. Dự án cũ 2,3 năm trước thì xài công nghệ, phiên bản cũ tới lúc mình cập nhật máy và thư viện liên quan thì khi quay lại dự án cũ nó không chạy :((. Và mất thời gian chỉnh sửa môi trường làm việc như vậy vài lần, đến mức độ mình thấy sợ. Từ khi có Lando, khi muốn chạy dự án nào, chỉ cần: `lando start` là xong.

Các tính năng nổi bật của Lando:

  • Sao chép tương tự môi trường production cho máy bạn
  • Quy chuẩn hoá mọi trường lập trình của đội ngũ đa nền tảng OSX, Window, Linux
  • Tuỳ chỉnh hoặc mở rộng công cụ, cấu hình triển khai
  • Chạy CI test trên máy của bạn.
  • Sử dụng môi trường duy nhất cho tất cả các dự án
  • Tích hợp với nhà cung cấp dịch vụ hosting như Pantheon

Mặc dù bạn có thể nhận ra là Docker Compose cũng có tính năng tương tự, tuy nhiên có một vài sự khác biệt:

  • Lando là một lớp trừu tượng đã làm giảm bớt tính phức tạp khi cấu hình các container bằng cách sử dụng “công thức” (recipes) cho một số stack phổ biến.
  • Lando cung cấp nhiều phương thức giúp lập trình viên chạy những dòng lệnh phức tạp, các bước build, … và tự động hoá các dịch vụ mà không cần tinh chỉnh Dockerfiles
  • Lando quản lý một số tác vụ cài đặt phức tạp được yêu cầu để có một Docker Composer tốt như proxy, nice urls, cross-application netwroking.
  • Ngoài ra, bạn vẫn có thể tuỳ biến dễ dàng Docker Compose.

Nói 1 cách khác, Lando đã giúp đơn giản hoá Docker Compose cho một số tác vụ, stack phổ biến. Chỉ cần 1 câu lệnh, các dịch vụ đi kèm đều được khởi tạo, mất chưa đầy 2 phút là bạn có thể chạy được stack.

Bắt tay vào thực hành Lando

Mình không muốn nói phần này nhiều, chỉ cần sau khi bạn cài đặt Docker, Lando thì bạn chỉ mất 5 phút để tạo 1 dự án WordPress, Laravel, Drupal, Joomla hay LAMP, LEMP bất kỳ chỉ việc sử dụng công thức đã liệt kê ở trên.

5 phút đơn giản chỉ là tạo cái file .lando.yml, đây là file mẫu dùng cho WordPress (dùng với Bedrock/Sage sẽ được giới thiệu ở bài khác)

name: seikeidenron
recipe: wordpress
proxy:                
  nginx:              # Tuỳ chọn: nếu bạn bỏ qua cấu hình này thì Lando sẽ chạy ở seikeidenron.lndo.site
    - seikeidenron.localhost
  theme:              # Tuỳ chọn: ở đây mình phát triển thêm theme của wordpress thì sẽ cần tới node
    - localhost:3000
config:
  php: '7.2'
  via: nginx
  webroot: web
  database: mariadb
  xdebug: true

# Đoạn này cần để thiết lập node
services:
  theme:
    type: node
    services:
      ports:
        - 3000:3000
tooling:
  yarn:
    service: theme

Xong file trên thì chỉ cần lando start là mọi thứ chạy, quá nhanh quá nguy hiểm.

Fullstack Station Tips

Các công thức có sẵn đa phần đều có phần database riêng lẻ, tuy nhiên nếu các dự án của bạn đều sử dụng mysql chẳng hạn, thì hãy sử dụng database server của máy bạn, chứ không phải database server của docker. Như vậy thì việc sử dụng Lando sẽ trở nên nhanh chóng hơn, nhất là đối với các dự án đang giai đoạn lập trình. Ở phần kết nối db thì thay vì bạn dùng localhost thì hãy đổi thành host.docker.internal, đây chính là máy host, máy chính của bạn.

The post Docker thực chiến: môi trường phát triển appeared first on Fullstack Station.

]]>
https://fullstackstation.com/docker-thuc-chien-moi-truong-phat-trien/feed/ 1
Xu hướng lập trình: Chờ đợi gì trong năm 2017? https://fullstackstation.com/xu-huong-lap-trinh-cho-doi-gi-trong-nam-2017/ https://fullstackstation.com/xu-huong-lap-trinh-cho-doi-gi-trong-nam-2017/#respond Fri, 03 Mar 2017 08:14:24 +0000 https://www.businesscard.vn/blog/?p=827 Ngôn ngữ Những ngôn ngữ dưới đây được xem là dễ kiếm việc nhất, nhưng có thể không phải là ngôn ngữ lập trình được trả lương cao nhất. Và quan trọng hơn hết là mấy ngôn ngữ này thông dụng, gần gũi với chúng ta hơn với cộng đồng đông đảo. PHP 7 Một […]

The post Xu hướng lập trình: Chờ đợi gì trong năm 2017? appeared first on Fullstack Station.

]]>
Ngôn ngữ

Những ngôn ngữ dưới đây được xem là dễ kiếm việc nhất, nhưng có thể không phải là ngôn ngữ lập trình được trả lương cao nhất. Và quan trọng hơn hết là mấy ngôn ngữ này thông dụng, gần gũi với chúng ta hơn với cộng đồng đông đảo.

PHP 7

Một năm 2016 bận rộn của cộng đồng PHP sau khi PHP 7 chính thức phát hành. Các framework khẩn trương chỉnh sửa để có thể chạy được trên môi trường PHP 7 một cách hoàn thiện, hầu hết các php framework hiện nay đã chạy ổn định trên PHP 7, ngay cả những extension đặc biệt cho Mongodb. Vì vậy, đừng ngần ngại cài đặt PHP 7 lên máy chủ của bạn để cảm nhận sự khác biệt, cũng như viết những dòng mã của bạn với tính năng của PHP 7 mang lại.

Năm 2017 sẽ không có gì đặc biệt cho cộng đồng lập trình viên PHP, khi hầu hết các framework đã hỗ trợ PHP 7 rồi (Laravel 5, Yii 2, Symfony 3, CakePHP 3, WordPress 4). Điều quan trọng còn lại là bạn có tham gia vào xu hướng này hay không?

Swift 4

Sau khi Swift 3 phát hành (09/2016) chưa nguội thì Apple đã rục rịch chuẩn bị kết hoạch cho phiên bản Swift 4, dự kiến là cuối năm nay 2017. Khi mà giờ đây Swift có thể viết được mã chạy ở phía server (Tham khảo Perfect), thì cộng đồng lập trình viên sử dụng Swift có thể tự do sáng tạo và khởi nghiệp chỉ bằng ngôn ngữ Swift.

Javascript/Typescript

Javascript ES2015  rõ ràng là sự thách thức với Typescript, mặc dù điểm cuối đều là javascript, nhưng đã được tách biệt thành hai hướng đi cho dù có sự tương đồng nhất định về cú pháp, cách viết. Typescript là sự cải thiện cho javascript tương tự như cách PHP 7 cải thiện PHP ở việc kiểm tra cú pháp, loại dữ liệu. Với Javascript thuần ta có thể sử dụng Flowtype

Go/Golang

Kể từ lúc mình dùng Go để viết bot lấy dữ liệu (crawler, scrapper) thì thực sự rất kết ngôn ngữ lập trình có tốc độ cao này. Hơn nữa, còn có thể kết hợp với ReactReact để tạo ra Universal Web App nữa (Go starter kit).

Go là ngôn ngữ mới có tuổi đời 7 năm, nên vẫn còn trong giai đoạn hoàn thiện (hiện tại đang 1.7), chính vì vậy mục tiêu trong năm 2017 này là hoàn thiện một số tính năng đưa lên phiên bản 1.8, 1.9. Có lẽ phiên bản 2.0 sẽ cần 1 sự đột phá hơn do vậy phải chờ qua 2018.

Một số ngôn ngữ lập trình khác

Java, Rust, Ruby, Hack, Rust, Julia, Scala, Dart… quá chừng luôn, mỗi ngôn ngữ đều có độ trùm nhất định trong một số lĩnh vực, tuy nhiên vì không có kiến thức liên quan cũng như nhận thấy xu hướng không thực sự cao nên mình không quan tâm.

Frontend Framework

Đây có lẽ là cuộc chiến khốc liệt nhất trong những năm vừa qua, vì vậy mình tách riêng rành phần riêng. Mặc dù có thể gọi là nấm mọc sau mưa nhưng hiện tại có thể gọi tên 3 framework thực sự cạnh tranh với nhau là AngularJS[2], ReactJS và VueJS.

Điểm cơ bản là đều có sao cao ở Github, mặc dù repo Angular chỉ đạt 21k so với 45k của Vue, 61k của React tại thời điểm viết bài, tuy nhiên không thể nói Angular thua về mức độ được sử dụng và phổ biến (dự án thực tế, bài viết).

Chỉ có thể khẳng định một điều, cho dù bạn chọn hướng đi nào thì bạn vẫn không hề tụt hậu trong vòng 2-3 năm tới.

Mobile Javascript Framework

Ionic đã ra mắt bản 2 từ 01/2017, sử dụng Angular 2.

React Native vẫn sẽ tiếp tục thống trị ở phân khúc Mobile Javascript Framework.

Xu hướng mới với Javascript

Virtual Reality (VR)

Thực tế ảo https://github.com/facebookincubator/react-vr

Augmented Reality (AR)

Tương tác thực tế với tốc độ 60fps

https://github.com/jeromeetienne/AR.js

Progressive Web Apps (PWA)

PWA  đã chứng minh được vị thế của mình trong năm 2016 và sẽ là công nghệ nổi trội dành cho ứng dụng web trong năm 2017 này và tương lai sẽ chiếm thị phần đáng kể trong phân khúc cho mobile của ứng dụng Native và Hybrid.

Kết

Mình đặt niềm tin vào xu hướng mới (VR, AR, PWA) với Javascript, phụ thuộc vào khả năng sáng tạo và ý tưởng của bạn trên các công nghệ này, mình nghĩ sẽ làm ra được nhiều sản phẩm hay.

 

The post Xu hướng lập trình: Chờ đợi gì trong năm 2017? appeared first on Fullstack Station.

]]>
https://fullstackstation.com/xu-huong-lap-trinh-cho-doi-gi-trong-nam-2017/feed/ 0
Xu hướng công nghệ lập trình web và mobile nửa cuối năm 2016 https://fullstackstation.com/xu-huong-cong-nghe-lap-trinh-web-va-mobile-2016-phan-2/ https://fullstackstation.com/xu-huong-cong-nghe-lap-trinh-web-va-mobile-2016-phan-2/#comments Mon, 04 Jul 2016 00:45:57 +0000 https://www.businesscard.vn/blog/?p=469 Trong bài viết xu hướng công nghệ lập trình web và mobile từ đầu năm, mình đã giới thiệu về Angular 2, React Js, Vagrant, Docker, …nếu bạn chưa đọc thì có thể đọc tại đây. 6 tháng đã trôi qua, và xu hướng cũng được định hình rõ hơn, cũng như có những sự […]

The post Xu hướng công nghệ lập trình web và mobile nửa cuối năm 2016 appeared first on Fullstack Station.

]]>
Trong bài viết xu hướng công nghệ lập trình web và mobile từ đầu năm, mình đã giới thiệu về Angular 2, React Js, Vagrant, Docker, …nếu bạn chưa đọc thì có thể đọc tại đây. 6 tháng đã trôi qua, và xu hướng cũng được định hình rõ hơn, cũng như có những sự thay đổi trong giới công nghệ về lập trình. Cùng Fullstack station nhận định xu hướng cho nửa cuối năm 2016 này nhé.

Môi trường phát triển

Tại sao Docker phổ biến: Sự lên ngôi của Microservices

Rõ ràng trên thị trường về môi trường phát triển, hai cái tên Vagrant và Docker là quá quen thuộc. Tuy nhiên, với sự tiện lợi của microservice mà Docker mang lại, lợi thế cũng như thị phần của Docker ngày càng phát triển, với bằng chứng là các hội thảo về Docker diễn ra trên toàn thế giới khá thường xuyên. Trong khi đó Vagrant lại khá im hơi lặng tiếng, điều đó chứng tỏ việc cộng đồng nhanh nhạy với công nghệ đã có quyết định cho riêng mình: Docker!

Chúng ta cùng nhìn lại xu thế phát triển của công nghệ, khi mà cloud đã trở nên quá phổ biến và tất cả mọi cá nhân tổ chức hầu hết đều có sử dụng cloud, mà có cloud thì có microserices. Microservice ở đây có 2 thành phần: Một là microservice là 1 sản phẩm có tính năng rất nhỏ, ví dụ như  API có chức năng phát hiện ngôn ngữ (đưa vào 1 đoạn văn bản, sẽ trả về ngôn ngữ gì), trong một sản phẩm hoàn chỉnh sẽ rất cần những API riêng lẻ này, và chúng là microservices. Hai là microservices mà liên quan đến Docker, chính là những container nhỏ có nhiệm vụ khác nhau, chạy những dịch vụ có tính tương tác lẫn nhau: web server, database, file,… trong cùng 1 server, hoặc khác server với các dịch vụ riêng lẻ.

Do tính chất mở rộng (scale), phân tán (distributed) của sản phẩm là bất định, bạn có thể bắt đầu với chỉ một vài dịch vụ đơn giản, với con server Vultr, DigitalOcean giá 5$, sau đó tuỳ theo mức độ phát triển mà nâng cấp lên, với mình sẽ chọn nhiều server giá rẻ cho nhiều dịch vụ khác nhau, hơn là chọn 1 con cấu hình khủng và cài đặt tùm lum thứ lên đó.

Module bundler: Webpack

Quả là một sự thiếu sót khi không đề cập đến webpack trong bài viết đầu năm, với sự phát triển ngày càng mạnh mẽ của frontend framework, thì việc webpack trở nên phổ biến trong bất kỳ dự án frontend cũng là điều dễ hiểu. Với webpack bạn có thể có sự hỗ trợ lập trình nhanh chóng với HMR (Hot Module Replacement) cũng như áp dụng kỹ thuật Time Traveling giúp cho việc lập trình frontend trở nên nhanh hơn bao giờ hết

Frontend Framework

Trong nửa cuối năm 2016, cũng như dự đoán cho 2017, đây vẫn là những cái tên được nhắc đến nhiều nhất.

Angular 2

Angular 2 đã thoát khỏi kiếp Beta, và hiện tại đã có bản RC5, tuy nhiên theo mình thì đây là tốc độ khá chậm của Angular 2. Mặc dù hứa hẹn ra mắt vào giữa năm 2016, tuy nhiên hiện tại thì vẫn không có một thông tin chính thức nào có thể biết ngày ra mắt chính thức cả. Tuy nhiên, bạn vẫn đã có thể sử dụng ngay bản RC vì các API sẽ không thay đổi, điều lưu ý là có thể gặp lỗi trong quá trình phát triển.

ReactJs

ReactJs đã có một đột phá ngoạn mục thì nhảy phiên bản từ 0.14.x lên 15.x (lý do thì bạn có thể đọc ở đây). Điều quan trọng là Reactjs đã hoạt động ổn định ở mức thành phẩm khá lâu, nên việc sử dụng 0.14 hay 15 đều không ảnh hưởng đến dự án, tuy nhiên cần quan tâm đến mức tương thích của các package mà bạn sử dụng thêm vào.

Mặc dù vẫn công nhận React là phần View của một dự án frontend, tuy nhiên với những gói do cộng đồng phát triển như React Router, Redux (đây là lý do vì sao Facebook đưa React/React Native thành mã nguồn mở), thì bộ ba React/React Router/Redux đã hợp thành MVC hoàn chỉnh. Dù Redux không phải dành riêng cho React, nhưng việc Angular đã có Model, thì việc gắn thêm Redux ít nhiều cũng có ảnh hưởng.

Web Component

Web component vẫn chưa phát huy thế mạnh của mình để gây chú ý lớn đến giới lập trình frontend, phần View hiện tại đã có React ở vị thế độc tôn nên việc dự án Polymer làm mưa làm gió sẽ còn nhiều khó khăn.

Ngôn ngữ lập trình

Swift 3: bị trễ hẹn, và lần hẹn kế tiếp là cuối năm 2016

PHP7: mặc dù đã ra mắt gần được 1 năm, nhưng thật sự những hiệu ứng mà PHP7 mang lại thực sự chưa cao. Một phần là do số lượng code được viết bằng PHP5 khá nhiều, cũng như sự tương thích của PHP7 đối với các công nghệ khác, đặc biệt là MongoDB dẫn tới nhiều khó khăn trong việc sử dụng PHP7 trong môi trường sản phẩm thực tế.

Javascript: vẫn sẽ phát triển mạnh mẽ với ngữ pháp trong sáng, mạnh mẽ của ES6, cùng với sự hỗ trợ của FlowType thì bạn sẽ vẫn làm được nhiều thứ từ mobile, desktop, server, web.

Go/Golang: mình dành sự chú ý đến Golang gần đây vì điểm mạnh về concurrency (sử dụng để build Docker và Google App Engine), mặc dù cú pháp có vẻ dễ học hơn Java và chạy nhanh hơn Java một chút, nhưng chỉ có giá trị đối với người từ thế giới ngôn ngữ lập trình động (PHP, Javascript, Python, Perl, Ruby…), chứ còn các bạn nắm vững anh cả như Java, C, C++ thì cũng chẳng ý nghĩa gì. Nếu bạn đang sử dụng ngôn ngữ lập trình động, hãy thử nghiên cứu Golang, dù sao thì tuổi đời Golang còn khá trẻ và với sự phát triển của cloud thì Golang có tương lai khá sáng sủa (Concurrency thường chi được cấp phát bởi OS, Golang là ngôn ngữ duy nhất hiện nay có khả năng này)

Lập trình ứng dụng di động

Nếu bạn đọc bài Lập trình ứng dụng di động với công nghệ của Facebook sẽ thấy React Native sẽ là một xu thế mạnh mẽ. Tuy nhiên không vì vậy mà các framework khác như Ionic, Kendo, Onsen, Sencha không có chỗ đứng của riêng mình.

React Native có điểm yếu là hiện tại chỉ hỗ trợ cho iOS và Android, và vì tính chất Native nên tính tái sử dụng cũng không thể đạt cao được. Ví dụ, với ứng dụng mang tính chất Native, nếu bạn ghiền/sử dụng Material Design thì phù hợp cho Android, nhưng nếu build luôn cho iOS thì một số thứ sẽ bị choải, hoặc bị pha hỗn hợp, ở đây mình xét đến yếu tố Native UI, tất nhiên nếu app là Hybrid thì cũng phải chịu cảnh tương tự, nhưng ở mức độ ít hơn nhiều, và giao diện thường cũng đồng nhất hơn.

Tổng kết

Với những kỹ thuật nêu trên, năm 2016 sẽ không còn gì bất ngờ. Bạn có thể chọn cho mình một con đường để theo đuổi, và sẽ có giá trị cho đến hết năm 2017. Thời gian đủ để học, xây dựng sản phẩm và kiếm tiền, nếu không thành công, thì nên từ bỏ nền tảng, kiến thức cũ để khai phá thứ mới hơn.

The post Xu hướng công nghệ lập trình web và mobile nửa cuối năm 2016 appeared first on Fullstack Station.

]]>
https://fullstackstation.com/xu-huong-cong-nghe-lap-trinh-web-va-mobile-2016-phan-2/feed/ 1
Tổng hợp một số dự án liên quan đến tiếng Việt/Việt nam https://fullstackstation.com/tong-hop-du-an-viet-nam/ https://fullstackstation.com/tong-hop-du-an-viet-nam/#respond Tue, 28 Jun 2016 07:34:10 +0000 https://www.businesscard.vn/blog/?p=540 I. Giới thiệu Dự án này tổng hợp thông tin, các bộ thư viện, phần mềm, ứng ụng mã nguồn mở để phát triển các dự án liên quan đến xử lý ngôn ngữ tiếng Việt và các vấn đề liên quan đến đất nước con người Việt Nam (bản đồ, địa giới hành chính, […]

The post Tổng hợp một số dự án liên quan đến tiếng Việt/Việt nam appeared first on Fullstack Station.

]]>
I. Giới thiệu

Dự án này tổng hợp thông tin, các bộ thư viện, phần mềm, ứng ụng mã nguồn mở để phát triển các dự án liên quan đến xử lý ngôn ngữ tiếng Việt và các vấn đề liên quan đến đất nước con người Việt Nam (bản đồ, địa giới hành chính, vùng miền, …)

Giới thiệu đến mọi lập trình viên để cùng nhau phát triển các ứng dụng liên quan tiếng Việt/Việt Nam nhằm giảm thiểu thời gian nghiên cứu, phát triển cũng như nâng cao chất lượng cộng đồng mã nguồn mở VN.

Chú ý: Những thông tin dự án in đậm là còn thiếu hướng dẫn, hoặc có nhưng chưa đầy đủ, cần sự hỗ trợ thêm để hoàn thiện. Nếu bạn nào là chủ dự án này, vui lòng cập nhật thêm.

II. Danh mục

Bộ gõ tiếng Việt

PC (Mac/Win/Linux/Unix)

##### Mobile

Xử lý ngôn ngữ tự nhiên

Tập dữ liệu
Gói thư viện độc lập
Gói thư viện hỗ trợ nền tảng chỉ định
Tài nguyên tổng hợp

Bản đồ

Gói ngôn ngữ

Thương mại điện tử
Diễn đàn
Hệ thống cộng tác, quản lý

Ứng dụng văn phòng

Framework/CMS
Mobile
  • MIUIAndroid MIUI Vietnamese Translations v5,v6, v7

Dự án

Khác

The post Tổng hợp một số dự án liên quan đến tiếng Việt/Việt nam appeared first on Fullstack Station.

]]>
https://fullstackstation.com/tong-hop-du-an-viet-nam/feed/ 0
Lập trình ứng dụng di dộng từ công nghệ của Facebook https://fullstackstation.com/ung-dung-di-dong-tu-cong-nghe-cua-facebook/ https://fullstackstation.com/ung-dung-di-dong-tu-cong-nghe-cua-facebook/#comments Sun, 19 Jun 2016 16:07:53 +0000 https://www.businesscard.vn/blog/?p=524 Nếu bạn đang theo dõi blog Fullstack Station này, có lẽ cũng đã thấy mình viết nhiều bài liên quan đến các công nghệ của Facebook, đó cũng là điều dễ hiểu khi mà Facebook đã tạo ra một hệ sinh thái, chứ không còn là những thư viện, nền tảng riêng lẻ. Tất cả […]

The post Lập trình ứng dụng di dộng từ công nghệ của Facebook appeared first on Fullstack Station.

]]>
Nếu bạn đang theo dõi blog Fullstack Station này, có lẽ cũng đã thấy mình viết nhiều bài liên quan đến các công nghệ của Facebook, đó cũng là điều dễ hiểu khi mà Facebook đã tạo ra một hệ sinh thái, chứ không còn là những thư viện, nền tảng riêng lẻ. Tất cả những thứ đó kết hợp lại với nhau tạo thành một khối thống nhất, bài viết này giới thiệu một trong những thể thống nhất đó để lập trình ứng dụng di động: GraphQL3R. Những công nghệ lập trình này đều là Javascript, nên bạn có thể xem thêm bài Javascript có thể làm được gì.

GraphQL3R là gì?

GraphQL3R là cách mình đặt tên cho thể thống nhất các công nghệ của Facebook: GraphQL, React Native, Redux và Relay để lập trình ứng dụng di động đa nền tảng bao gồm iOS và Android, từ client đến server.

Tất cả những công nghệ này mình đã có các bài viết giới thiệu nên sẽ không nói lại nữa:

FlowType tuy không được coi là nền tảng chính, nhưng đây là nền tảng hỗ trợ xuyên suốt quá trình lập trình rất quan trọng, và chắc chắn là rất hiệu quả khi phát triển với React Native.

Ngoài ra còn có Parse Server (BaaS) mình chưa có cơ hội để viết bài giới thiệu, đây là nền tảng đã được mã nguồn mở tuơng tự Firebase (không hướng đến tính Realtime bằng Firebase) nhưng bao gồm rất nhiều tính năng mạnh mẽ Push Notification, REST API, Social servive…

Do Relay đi chung với GraphQL, React, không được hoặc ít sử dụng độc lập với các nền tảng khác, nên có thể xem như là 1 phần phụ của bộ GraphQL3R này.

Những công nghệ này được dùng để viết ứng dụng F8 (Facebook Conference 2016) vừa qua, Facebook cũng cố gắng đưa bộ công nghệ này đến với mọi người với trang web MakeItOpen. Bao gồm các bước, tài liệu:

  • Kế hoạch viết ứng dụng
  • Phân tích thiết kế ứng dụng đa nền tảng
  • Luồng dữ liệu
  • Kiểm thử

F8App

Tại sao nên sử dụng GraphQL3R

Thứ nhất, đây là bộ nền tảng mã nguồn mở từ A->Z duy nhất tính đến thời điểm hiện nay dành cho ứng dụng di động Native (sức mạnh của React Native thì bạn xem thêm ở bài React Native là tương lai của lập trình ứng dụng di động). Tổng lượng stars của tổ hợp công nghệ này khoảng hơn 100k, đây là con số cực kỳ ấn tượng mà không có một tổ hợp nào có thể đạt được!

Thứ hai, những công nghệ này đều được sử dụng trong môi trường sản phẩm (Production) bởi các công ty, sản phẩm công nghệ hàng đầu như: Facebook, Instagram, Airbnb, Uber

Thứ ba, mang những tinh tuý của lập trình hiện đại như Time travel (từ redux), Hot Module Replacement (Webpack) giúp cho thời gian lập trình ứng dụng di động giảm đi rất nhiều, bạn không còn phải build khi lập trình ứng dụng di động native cho iOS và Android nữa. Cũng như việc debug, test ứng dụng sẽ đơn giản hơn, tiết kiệm thời gian. Ứng dụng cũng trở nên đáng tin cậy hơn với Redux: Single source of true!

Thứ tư, tổ hợp này khá linh hoạt, bạn có thể tách phần client từ React Native ra, dùng phần còn lại với Angular 2 (hoặc Ionic Framework), hoặc tất nhiên với ReactJs. Phần GraphQL có thể dùng với nhiều nguồn dữ liệu khác nhau, nên có thể thay thế Parse.

Thứ năm, ….n, thật sự 4 điểm trên có thể bao quát gần hết các đặc điểm để chọn nền tảng rồi, nên nói thêm nữa cũng thừa 🙂

GraphQL3R không dành cho tất cả

Đúng là tổ hợp GraphQL3R rất rất mạnh, nhưng chính vì vậy chính là điểm yếu của nó khi bạn phải có quá nhiều thứ để học. Để hoàn thành lập trình ứng dụng di động mà học hết mấy thứ này bao gồm lập trình cho tới quản lý server, phân tích thiết kế … thì quả là không thể!

Vì vậy, để áp dụng tổ hợp này, bạn cần có một nhóm khoảng 3 người trở lên, rất thích hợp cho start-up, mình chưa thấy điểm yếu của tổ hợp này dành cho viết bất cứ loại ứng dụng nào – ngoại trừ game do phải dùng đồ hoạ nhiều, nên nếu thay phần client thì các phần sau cũng không còn giá trị mấy.

Nếu bạn là cá nhân lập trình ứng dụng di động, theo mình thì nên sử dụng React Native thôi, còn phần backend thì nên sử dụng Firebase, hoặc Meteor (Xem thêm bài Điều gì khiến Meteor 1.3 trở nên đặc biệt), hoặc nếu bạn thích Meteor và GraphQL thì có thể nghiên cứu Apollo Stack.

Bí kíp lập trình ứng dụng di động trong tay bạn!

Nhiều lúc nghiên cứu cái hệ sinh thái của Facebook làm cho mình hứng thú một cách điên cuồng, mình yêu cái cách mà React/React Native hoạt động, cách mà Redux hoạt động, kết hợp với cái cách mà Webpack (không liên quan FB) giúp cho công việc lập trình nhanh chóng, module hoá mọi thứ. Tuy nhiên, cái gì cũng có giá của nó, những công nghệ đó được áp dụng bởi những ông lớn vì họ có nguồn lực để thực hiện, trong khi start-up thì không 1 xu dính túi, nhưng cũng đừng vì vậy mà nản chí, ngày xưa chưa ai cũng tranh giành bí kíp “Tịch tà kiếm phổ”, còn ngày nay tổ hợp GraphQL3R chính là bí kíp ngay trong tay bạn, mã nguồn mở, luyện tổ hợp này không có lo mất bản năng đàn ông đâu!

 

The post Lập trình ứng dụng di dộng từ công nghệ của Facebook appeared first on Fullstack Station.

]]>
https://fullstackstation.com/ung-dung-di-dong-tu-cong-nghe-cua-facebook/feed/ 2
Javascript làm được gì? https://fullstackstation.com/javascript-lam-duoc-gi/ https://fullstackstation.com/javascript-lam-duoc-gi/#comments Thu, 19 May 2016 14:27:58 +0000 https://www.businesscard.vn/blog/?p=488 Lời nói đầu Trước khi đọc bài viết, mình xin khẳng định một điều: Javascript là ngôn ngữ lập trình full stack duy nhất cho đến thời điểm hiện nay, Javascript làm được nhiều thứ hơn bạn tưởng từ web client đến server, từ desktop đến mobile ….và vì có lẽ cũng không ai rãnh […]

The post Javascript làm được gì? appeared first on Fullstack Station.

]]>
Lời nói đầu

Trước khi đọc bài viết, mình xin khẳng định một điều: Javascript là ngôn ngữ lập trình full stack duy nhất cho đến thời điểm hiện nay, Javascript làm được nhiều thứ hơn bạn tưởng từ web client đến server, từ desktop đến mobile ….và vì có lẽ cũng không ai rãnh rỗi để tạo ra ngôn ngữ lập trình đã thống trị thế giới web (phần máy khách), do vậy hiển nhiên Javascript là vua của ngôn ngữ lập trình full stack, vì không có đối thủ :). Ngôn ngữ lập trình full-stack hoàn toàn khác với lập trình viên full-stack, tuy có phần giao nhau nhưng phía cạnh đề cập khác nhau, ngôn ngữ lập trình full-stack là…ngôn ngữ mà như tiếng Anh thôi, rất phổ dụng trên thế giới, rất nhiều người có thể giao tiếp với bạn, nhưng không phải tất cả họ đều chào đón bạn, vì mỗi quốc gia, dân tộc, bộ tộc, khu vực… đều tự hào về hệ thống ngôn ngữ của họ. Javascript là độc tôn của thế giới web phần máy khách thì đã rõ, còn ở các mảng khác như máy chủ, ứng dụng máy tính, điện thoại di động thì hãy nhường những ngôi vị cao nhất cho những anh chàng tương ứng, còn Javascript chỉ có mặt và có mặt khắp nơi!

Chốt lại, muốn đi du lịch nhiều nơi một cách dễ dàng thì học tiếng Anh, muốn viết được nhiều thể loại ứng dụng, web thì học Javascript, chúng ta cùng bắt đầu xem Javascript có thể làm được gì nhé! Ít nhất là trong năm 2016 này: Xu hướng lập trình 2016!

Tôi muốn lập trình web phía máy khách

Javascript có thể làm được frontend

Không những riêng bạn mà tất cả lập trình viên web đều có sử dụng Javascript ở một mức độ nào đó, không hoàn toàn 100% các website trên thế giới có sử dụng Javascript, tuy nhiên mình cá là bạn đọc bài viết này không phải để viết ra các trang web đó, mà nếu có thì cũng không nên đọc bài này :). Cũng có thể là bạn đã biết, hoặc nghe các nền tảng như: JQuery, AngularJS, ReactJS, BackboneJS, EmberJS, …hoặc các front-end framework như Bootstrap, Foundation, UIKit…đều có sử dụng Javascript. Tất cả những phần liên quan đến người dùng như tạo hiệu ứng, phần hiển thị đến tương tác với người dùng đều cần đến Javascript, tất cả những gì liên quan đến web nói chung, và frontend nói riêng đều dùng Javascript.

Tôi muốn lập trình trò chơi 3D

3D trên nền tảng web

Bạn nhìn 3D sau: Threejs demo

Hình 3D trên được dựng bởi ThreeJS, và việc tạo ra ứng dụng webgame không còn quá phức tạp. Kết hợp giữa HTML5, CSS3 và Javascript để tạo ra ứng dụng 3D chỉ giới hạn bằng trí tưởng tượng và khả năng của bạn.

Ngôn ngữ kịch bản cho Unity3D

JavaScript cho unity3d

Unity3D dùng Javascript để viết kịch bản còn được gọi là UnityScript. Với Unity3D, bản chất làm game sẽ thiên về kịch bản là chính, còn phần hiển thị, và các model đã có sẵn (miễn phí hoặc trả tiền), vậy nên nếu bạn biết Javascript thì có thể làm game 3D là vậy. Như vậy là bạn có thể làm game có tính độ hoạ phức tạp cao, điều mà webgame khó đạt được, cũng như khó có độ mượt mà trên điện thoại di động cũng như máy tính.

Tôi muốn lập trình web phía máy chủ

Javascript cho máy chủ khá mới so với các ngôn ngữ lập trình web cũng như lập trình ở máy chủ khác. Với Nodejs rất mạnh trong sản phẩm có tính chất trực tuyến như ứng dụng trò chuyện trực tiếp, trò chơi trực tuyến hay làm việc nhóm. So với các ngôn ngữ khác để làm được ứng dụng trực tuyến thì khá là khó khăn. Đồng thời Nodejs cung cấp khả năng kết nối cho hàng chục ngàn user cùng lúc, nếu cùng cấu hình máy chủ tương tự thì điều đó là không thể đối với PHP, Java, Python, .Net.

Những framework chạy trên Nodejs nổi tiếng trong lĩnh vực này là: Meteor, SailsJS, Hapi.JS, Socket.IO, Express.JS, Mojito, Derby, Mean.JS, Koa.JS, Total.JS. Trong đó mình có cái nhìn thiện cảm với Meteor vì cung cấp sẵn nhiều tiện ích, học dễ và cộng đồng lớn, việc viết ứng dụng tính bằng ngày. Đơn cử tính dễ học là bạn có thể làm theo ứng dụng To Do hoàn thành trong vòng 2~3h đồng hồ với khả năng tính hợp dễ dàng với Cordova/Phonegap để tạo ra ứng dụng trên điện thoại di động, Meteor hướng tới tính hoàn thiện đơn nhất chỉ với Javascript. Tiếp đó là SailsJS có điểm mạnh là khả năng tạo code giúp cho thời gian phát triển ứng dụng cũng rất nhanh, Hapi thì có thế mạnh về API, Socket.IO thì cái tên cũng đủ nói lên về điểm mạnh về kết nối bằng socket. ExpressJS và KoaJS thì khá là gọn nhẹ nhưng cung cấp đủ mạnh các thành phần để tạo ra ứng dụng web, nếu đã nắm rõ thì có thể ra các framework khác dễ dàng, vì đa phần các framework khác cũng đều có sử dụng 2 anh chàng này.

Tôi muốn lập trình ứng dụng điện thoại di động – Hybrid

Ứng dụng hybrid giúp cho lập trình viên web dễ dàng tạo ra ứng dụng cho điện thoại di động hoàn toàn trên nền tảng web: Javascript, HTML và CSS, được đóng gói bởi Cordova/Phonegap tạo ra ứng dụng chạy trên trên các nền tảng iOS, Android và Window, Blackberry…cho cả diện thoại di động, máy tính bảng, website, ứng dụng máy tính (xem phần tiếp) chỉ với một mã nguồn duy nhất.

sencha-touch-hero

Những nền tảng nổi tiếng cho thể loại này là IonicFramework dựa trên Angular, Mobile Angular UI cũng dựa trên Angular, Intel XDK dựa trên JQuery Mobile, Appcelerator Titanium, Sencha Touch, KendoUI .

Trong phân khúc này, Ionic Framework có vẻ trội nhất vì dựa trên AngularJS một cách chặt chẽ, đồng thời cũng cung cấp nhiều khả năng, công cụ để phát triển ứng dụng di động một cách dễ dàng, bên cạnh đó là Sencha Touch cũng rất mạnh, nếu bạn theo hướng AngularJS thì nên chọn Ionic Framework.

Javacript làm được gì – Phần 1 đến đây tạm ngưng, phần 2 sẽ nói về ứng dụng cho điện thoại di động Native (React Native là tương lai của ứng dụng di động?), về ứng dụng trên máy tính đa nền tảng, phần mở rộng cho trình duyệt web, soạn thảo văn bản (Text editor) và vạn vật kết nối (Internet of things), các bạn đăng ký nhận tin để đọc bài mới nhất nhé.

The post Javascript làm được gì? appeared first on Fullstack Station.

]]>
https://fullstackstation.com/javascript-lam-duoc-gi/feed/ 2
Điều gì khiến Meteor Js 1.3 trở nên đặc biệt? https://fullstackstation.com/meteor-js-1-3-dieu-gi-khien-tro-nen-dac-biet/ https://fullstackstation.com/meteor-js-1-3-dieu-gi-khien-tro-nen-dac-biet/#comments Tue, 05 Apr 2016 02:14:45 +0000 https://www.businesscard.vn/blog/?p=409 Meteor Js là gì? Meteor Js là nền tảng phát triển ứng dụng web thời gian thực fullstack, được viết cho cả client và server chỉ bằng ngôn ngữ Javascript. Được ra mắt từ năm 2012 và hiện tại đã đạt 33k stars trên Github, quá đỉnh đó chứ! Giá mà… Mình viết bài viết […]

The post Điều gì khiến Meteor Js 1.3 trở nên đặc biệt? appeared first on Fullstack Station.

]]>
Meteor Js là gì?

Meteor Js là nền tảng phát triển ứng dụng web thời gian thực fullstack, được viết cho cả client và server chỉ bằng ngôn ngữ Javascript. Được ra mắt từ năm 2012 và hiện tại đã đạt 33k stars trên Github, quá đỉnh đó chứ!

Giá mà…

Mình viết bài viết này chỉ dựa sau khi có kinh nghiệm nghiên cứu Meteor 1 thời gian, và đã quyết định chọn Meteor bắt đầu dự án lớn chỉ sau 1/2 ngày làm Todo app theo hướng dẫn! Giá mà mình có thể biết Meteor sớm hơn, đây là câu nói mình thốt ra sau khi biết Meteor :). Vậy Meteor 1.3 có gì thú vị?

Meteor Js 1.3 và những điều thú vị

Được viết hoàn toàn bằng ES2015(ES6)

ES2015 giúp cho việc viết code Javascript trở nên rõ ràng, có cấu trúc (class, let, const, arrow function, object destructing…), mặc dù chỉ mới ra mắt từ giữa 2015, nhưng với những tính năng mạnh mẽ khiến Meteor viết toàn bộ code lại qua ES2015, mang đến một hệ thống rõ ràng, uyển chuyển hơn. (Xem thêm ES2015 là gì)

Sử dụng NPM để cài đặt các thư viện

Meteor sử dụng hệ thống quản lý thư viện, thành phần mở rộng riêng của Meteor. Thật ra bản chất bên trong cũng đã có sử dụng NPM rồi, nhưng cần bọc thêm một lớp của Meteor bên ngoài để cài đặt phù hợp với cấu trúc của Meteor. Việc Meteor hỗ trợ cài NPM một cách riêng lẻ không phải mục đích để thay thế hệ thống quản lý gói này. Tuy nhiên, việc hỗ trợ NPM một cách riêng lẻ khiến cho việc viết code trở nên linh hoạt hơn vì NPM có số lượng package vô cùng phong phú. Nhưng bạn cũng cần chú ý là việc sử dụng NPM khiến việc bảo trì tính tương thích với các gói của Meteor cũng trở nên vất vả hơn nhé.

React

Thật ra điều này không mới, Meteor hỗ trợ AngularJs và ReactJs thì có từ 1.2 rồi nhưng từ 1.3 sẽ khác, một cách không chính thức bộ template engine Blaze sẽ bị thay thế bằng ReactJs. Rõ ràng ReactJs sẽ có ngôi vương cho việc thay thế phần View trong mọi framework, nên việc sử dụng chính React sẽ giúp cho ứng dụng của bạn linh hoạt hơn vì có tính tái sử dụng rất cao, sau này bạn có thể dùng component React cho một dự án khác một cách độc lập không phụ thuộc vào Meteor, đó là một ý tưởng rất tốt đúng không nào? (Blaze nay đã trở thành 1 gói riêng chứ không còn gắn kèm chung với Meteor nữa)

Application testing

Không phải tới 1.3 mới có test đâu, nhưng bản 1.3 hỗ trợ cả unit test và integration. Unit test (meteor test) thì test cho từng thành phần riêng lẻ, còn integration test (meteor test –full-app) sẽ nạp toàn bộ code của ứng dụng và giúp cho bạn test từng tiến trình để chắc chắn các thành phần (đã test unit) tích hợp ngon lành với nhau.

Cải thiện Cordova

Cập nhật các gói Cordova lên phiên bản mới nhất (Cordova 6.0.0, Cordova iOS 4.1.0, Android 5.1.1). Meteor đã viết lại lớp Cordova giúp dễ dàng kiểm soát lỗi trong ứng dụng iOS và Android hơn, hơn nữa còn có chế độ Hot Code Push có thể quay lại phiên bản trước nếu phiên bản hiện tại bị lỗi (Việc này không cần thông qua App Store hoặc PlayStore, bạn có thể xem thêm Microsoft CodePush)

Cải thiện minimongo

Do tính năng cần đồng bộ dữ liệu giữa server và client nên việc cải thiện minimongo sẽ giúp cho tốc độ của ứng dụng tăng lên đáng kể.

Kết luận

Để viết ứng dụng có tính chất Realtime thì React + Meteor Js 1.3 quả là một sự kết hợp hoàn hảo hơn bất kỳ bộ nào khác khi React quản lý phần view và phần còn lại là Meteor đảm bảo fullstack! Ngoài ra, vì AngularJs là một framework hoàn chỉnh nên việc sử dụng chung với Meteor cũng là một framework sẽ khiến một lượng code không cần thiết cùng tồn tại. Nếu bạn vẫn chưa biết tí gì về Meteor, hãy bỏ ra 2 giờ để ngâm cứu cái Todo Example (React) bạn sẽ thấy thích thú với tốc độ viết ra ứng dụng web realtime.

Cập nhật 2017: sau một số dự án sử dụng Meteor + React, mình nhận thấy Meteor không còn phù hợp vì quá trình phát triển gặp vấn đề về tốc độ build, thiếu hỗ trợ HMR (Hot module replacement). Mặc dù một số tính năng tuyệt vời của Meteor là không thể bàn cãi, nhưng đối với những dự án lớn, tốc độ build làm cho lập trình viên cảm thấy mệt mỏi, mình khuyến nghị sử dụng hệ sinh thái mới dựa trên GraphqlNext.js để đạt nhiều mục đích, hiệu quả hơn.

The post Điều gì khiến Meteor Js 1.3 trở nên đặc biệt? appeared first on Fullstack Station.

]]>
https://fullstackstation.com/meteor-js-1-3-dieu-gi-khien-tro-nen-dac-biet/feed/ 6
Giới thiệu hệ thống hỏi đáp, thảo luận Phanbook https://fullstackstation.com/gioi-thieu-thong-hoi-dap-thao-luan-phanbook/ https://fullstackstation.com/gioi-thieu-thong-hoi-dap-thao-luan-phanbook/#comments Sun, 10 Jan 2016 18:07:49 +0000 https://www.businesscard.vn/blog/?p=228 Hệ thống hỏi đáp, thảo luận là gì? Hệ thống hỏi đáp, thảo luận không phải là 1 diễn đàn! Nếu bạn đã là 1 dân IT chính hiệu thì chắc bạn không lạ gì anh chàng StackOverflow, hay là anh chàng tất tần tật Quora. Phanbook chính là một hệ thống đặt câu hỏi, trả lời hay […]

The post Giới thiệu hệ thống hỏi đáp, thảo luận Phanbook appeared first on Fullstack Station.

]]>
Hệ thống hỏi đáp, thảo luận là gì?

Hệ thống hỏi đáp, thảo luận không phải là 1 diễn đàn! Nếu bạn đã là 1 dân IT chính hiệu thì chắc bạn không lạ gì anh chàng StackOverflow, hay là anh chàng tất tần tật Quora. Phanbook chính là một hệ thống đặt câu hỏi, trả lời hay thảo luận một vấn đề gì đó tương tự như StackOverflow.

Nói 1 cách tóm gọn là Câu hỏi & Trả lời (Hỏi & đáp), thảo luận, bình chọn để tìm ra câu trả lời tốt nhất.

Hệ thống hỏi đáp, thảo luận khác gì với diễn đàn?

Điều quan trọng của người sử dụng khi đặt vấn đề là cần câu trả lời 1 cách chính xác và hiệu quả nhất. Đối với diễn đàn, điều này hoàn toàn làm được, nhưng rất là rối, bởi các diễn đàn không có công cụ bình chọn câu trả lời chính xác nhất. Một số diễn đàn chỉnh sửa lại với việc thêm các chức năng: cám ơn, đồng ý, bình chọn…Tuy nhiên, các tính năng này thường không mang lại hiệu quả bởi mục đích của diễn đàn tạo ra không với mục đích đó.

Dạo một vòng quanh các trang website lớn được người dùng đặt câu hỏi nhiều như: VNExpress, Webtretho, Songkhoe, hay các diễn đàn về nghe nhìn như: VNPhoto, Tinh Tế

Các website này được thiết kế ban đầu không dùng cho mục đích đặt câu hỏi và trả lời! Nhưng vì những nội dung hay, phong phú và tập hợp nhiều chuyên gia trong các lĩnh vực liên quan, dẫn đến người sử dụng đặt câu hỏi rất là nhiều, nhưng với độ lớn của dữ liệu ngày càng phình to lên, việc tổng hợp câu hỏi và trả lời với mục đích phục vụ người dùng mới gặp rất nhiều khó khăn. Thật sự là rắc rối nếu muốn tìm ra một câu hỏi đúng ý của mình, cũng như tìm ra câu trả lời chính xác! 🙁

Các hệ thống hỏi đáp, thảo luận mã nguồn mở

Nhìn nhận ra vấn đề này, nhiều bạn đã phát triển ra các hệ thống để giải quyết như: Hỏi đáp 24, Hỏi đáp tiếng AnhTư vấn sức khỏe 24h, Hỏi đáp nhanh 1, Hỏi đáp nhanh 2…

Các trang Hỏi đáp tiếng Anh và Hỏi đáp nhanh có hệ thống bình chọn để biết câu trả lời tốt nhất, có thiết kế tốt vì sử dụng mã nguồn mở Question2Answer, hoặc một số hệ thống hỏi đáp, thảo luận khác như sau:

  • Askbot dựa trên nền tảng Django viết bằng Python và đi theo mô hình giống StackExchange.
  • Discourse – Một mã nguồn hoàn hảo để sử dụng như là website dạng Câu hỏi và trả lời. Mọi chức năng cần thiết dường như đã có sẵn để bạn có thể xây dựng một trang như Stack Overflow hay Quora.
  • LampCMS: Được viết bằng PHP và sử dụng cơ sở dữ liệu MongoDB để để đạt được tốc độ và có khả năng mở rộng tốt. Nó được cấp phép dưới bản quyền LGPL-3.
  • Shapado là mã nguồn viết bằng Ruby.
  • OSQA là một mã nguồn viết bằng Python dựa trên Django tương tự StackExchange.
  • Question2Answer là một mã nguồn viết bằng PHP. Nó rất dễ dàng cài đặt và tùy chỉnh. Họ có cung cấp một số Themes và Plugins mà các nền tảng tương tự không cung cấp.
  • Reddit là mã nguồn của trang web nổi tiếng Reddit. Nơi lý tưởng cho dạng Q&A giống như http://www.reddit.com/r/AskReddit và nó là mã nguồn mở được viêt bằng Python.
  • ThinkUp là mã nguồn viêt bằng PHP. Nó là dạng lưu trữ Q&A kiểu giống luồng như là Twitter và Facebook.
  • Wecenter là mã nguồn của Trung Quốc được viết bằng PHP.
  • Azquestion là mã nguồn của Việt Nam được xây dựng từ MEAN Stack (MongoDB, ExpressJS, AngularJS, NodeJS). Ứng dụng sẽ có các chức năng cơ bản của 1 website hỏi đáp như đăng ký/đăng nhập (hỗ trợ đăng nhập qua facebook, google), đăng câu hỏi, trả lời, vote, follow câu hỏi. Ngoài ra còn hỗ trợ gửi thông báo thời gian thực (realtime) và chat giữa các thành viên thông qua việc sử dụng SocketIO.

Phanbook là gì?

Phanbook là mã nguồn của Việt Nam được viết bằng PHP (PhalconPHP Framework).  Xem demo tại http://meta.phanbook.com/ hoặc http://discourse.phanbook.com/ hoặc video https://www.youtube.com/watch?v=sC8jpfCDGT81

Trong bài viết này, mình không đi sâu vào so sánh Phanbook và các hệ thống khác. Các bạn có thể chọn cho mình một hệ thống phù hợp với khả năng lập trình của bạn (PHP hay Javascript, Python, Ruby), tuy nhiên Phanbook có một số ưu điểm đáng khen như sau:

  • Được xây dựng dựa trên PhalconPHP, là một nền tảng có tốc độ rất nhanh vì được viết bằng C và load như module trong Apache, hoặc PHP-FPM. Nằm trong danh sách Best Php Framework 2015 do Sitepoint bình chọn.
  • Được xây dựng bởi người Việt: bản thân mình không phải cuồng tín “Người VN ưu tiên dùng hàng VN”, nhưng quả thực có rất ít mã nguồn mở đáng giá do chúng ta phát triển. Bản thân PhalconPHP nằm vị trí thấp trong top là bởi vì cấu trúc rất uyển chuyển nên PhalconPHP đòi hỏi lập trình viên có kiến thức về kiến trúc tốt do vậy ít người sử dụng. Nên mình đánh giá cao những bạn tham gia phát triển Phanbook này.
  • Hệ thống hỏi đáp, thảo luận Phanbook có đầy đủ tính năng:
    • Hệ thống tín nhiệm, huy chương cho người tham gia hỏi đáp.
    • Dễ dàng tối ưu Search Engine Optimization
    • Đăng nhập dễ dàng với Single Sign On, Social Login
    • Chống spam
    • Hỗ trợ đa giao diện
    • Hệ thống viết bài hỗ trợ: HTML,  BBCode, Markdown
    • Hỗ trợ  đa ngôn ngữ
    • Cho phép nhận biết sự thay đổi qua từng phiên bản của nội dung
  • Ngoài ra, Phanbook có thêm các tính năng của một hệ thống quản trị nội dung (CMS) và phải nhắc lại là chạy rất nhanh 😀

Ghi chú: mình không phải là thành viên của dự án Phanbook này, cũng như không có mối quan hệ với bất kỳ thành viên nào phát triển dự án này. Đánh giá của mình hoàn toàn khách quan.

Cơ hội nào cho bạn?

Có rất nhiều chủ đề cần hỏi đáp: sức khỏe, pháp luật, hôn nhân & gia đình, công nghệ thông tin, nghe nhìn đa phương tiện. Những lĩnh vực này không thuộc một phạm trù nào cả vì nó có rất nhiều yếu tố chi phối: thời gian, địa điểm, hoàn cảnh, …Nó khác hoàn toàn với diễn đàn, website hỏi đáp thuần túy, hoặc Wiki. Do vậy, nhu cầu là có thật và rất cần thiết để xây dựng 1 sản phẩm hỏi đáp, nhưng đừng ôm đồm nhiều lĩnh vực quá.

Thị trường sản phẩm dành riêng cho người Việt vẫn còn rất nhiều cơ hội để thử sức. Hi vọng qua bài viết này, nếu bạn có ý tưởng về hệ thống hỏi đáp, thảo luận Phanbook sẽ giúp ích được cho bạn.

The post Giới thiệu hệ thống hỏi đáp, thảo luận Phanbook appeared first on Fullstack Station.

]]>
https://fullstackstation.com/gioi-thieu-thong-hoi-dap-thao-luan-phanbook/feed/ 3
Vũ khí bí mật dành cho khởi nghiệp https://fullstackstation.com/vu-khi-bi-mat-danh-cho-khoi-nghiep/ https://fullstackstation.com/vu-khi-bi-mat-danh-cho-khoi-nghiep/#comments Tue, 05 Jan 2016 16:44:18 +0000 https://www.businesscard.vn/blog/?p=158 Khởi nghiệp Có vũ khí bí mật chưa chắc dẫn bạn đến việc khởi nghiệp thành công, nhưng ít nhất nó cũng gợi mở cho bạn những hướng đi, những đường tắt để đến thành công. Hôm nay mình sẽ bật mí đến các bạn một số vũ khí công nghệ mà mình thấy rất lợi […]

The post Vũ khí bí mật dành cho khởi nghiệp appeared first on Fullstack Station.

]]>
Khởi nghiệp

vũ khí bí mật chưa chắc dẫn bạn đến việc khởi nghiệp thành công, nhưng ít nhất nó cũng gợi mở cho bạn những hướng đi, những đường tắt để đến thành công. Hôm nay mình sẽ bật mí đến các bạn một số vũ khí công nghệ mà mình thấy rất lợi hại cho việc khởi nghiệp, nhất là ở lĩnh vực web và mobile. Ý tưởng giống nhau nhưng được thực hiện bởi những người khác nhau sẽ có cách làm khác nhau và sẽ có những thành công lớn nhỏ khác nhau.

Các vũ khí này, bạn không cần phải học quá nhiều, mà chỉ cần nhấc lên mà dùng thôi!

1. Prediction IO: hệ thống máy học

Website: Prediction.io

Có lẽ nếu bạn tìm những cụm từ như “Machine learning open source” thì Prediction.io luôn nằm top đầu. Vậy nhưng kết quả có thứ hạng tương đương “11 open source tools machine learning” thì lại không có Prediction.io trong này. Vậy là sao nhỉ?

Theo mình thì bài viết đó có thiếu sót rất lớn khi bỏ qua Prediction.io! Bài viết đó có cách đây 1 năm nhưng Prediction.io đã có cách đây 3 năm và đã có những tính năng rất hay từ trước. Hiện nay công nghệ của Prediction.io cũng đã đạt 8000 stars trên Github rồi, số lượng cài đặt không được tính.

Với những sản phẩm “khởi nghiệp“, điều tạo ra sự khác biệt đó là tính “thông minh” của sản phẩm. Bằng cách này hay cách khác, nhưng với Prediction.io thì đó là 1 cách đơn giản và hiệu quả! Bạn có thể tạo ra các sản phẩm có các tính năng như:

  • Khuyến nghị sản phẩm (món hàng, bài viết, …) cùng loại, sản phẩm mà hệ thống “nghĩ” người dùng sẽ thích: được dùng như AppStore hay PlayStore, hoặc các trang thương mại điện tử Amazon, eBay…
  • Gây quỹ cộng đồng (Crowdfunding): bản chất hình thức thì giống trường hợp trên. Dùng để kết hợp giữa Dự án và người đầu tư một cách có hiệu quả và chính xác nhất.

2. Hệ thống tìm kiếm: Apache Lucence Solr hoặc ElasticSearch

Website: Apache Lucense Solr hoặc Elastic Search

Mình không đi sâu vào việc so sánh của 2 công cụ ở bài này, vì đã có ở đây so sánh rất trực quan rồi. Điều mình muốn nói là các sản phẩm khởi nghiệp, muốn thành công đều nên áp dụng 1 trong 2 sản phẩm này, hoặc 1 sản phẩm nào khác là một hệ thống tìm kiếm nội bộ. Tất nhiên là không vơ đũa cả nắm khi nói tất cả dự án đều sử dụng hệ thống tìm kiếm, nhưng nếu là dự án có cơ sở dữ liệu mà không có hệ thống tìm kiếm cho mục đích phục vụ người dùng hay phục vụ quản trị thì cũng hơi thiếu thiếu!

Hai hệ thống này không dừng lại ở việc tìm kiếm trong cơ sở dữ liệu của bạn mà còn sử dụng để tìm kiếm theo luồng dữ liệu từ hệ thống khác.

Với nhu cầu realtime thì bạn nên cân nhắc dùng Elastic Search, ví dụ:

  • Dùng API của Twitter tìm các tweet trong thành phố Hà Nội theo từ khóa XYZ nào đó, kết hợp các luồng này lại và tìm kiếm lọc nội dung thêm lần mới đưa vào database. Việc tìm kiếm số lượng lớn từ khóa dẫn đến sự phân tích, thống kê trực tuyến dữ liệu này giúp cho bạn có cơ hội nắm bắt xu hướng rất thời sự.
  • Dùng để quản lý log: việc hệ thống website lớn với dữ liệu log liên tục, việc phát hiện các vấn đề sớm hết sức quan trọng như lỗi website hay bị tấn công DDOS. Vì log được ghi theo stream, nên việc tìm kiếm realtime là điều tất yếu.
  • Hệ thống bảng giá chứng khoán: với dữ liệu giá liên tục, việc phát hiện nhanh chóng dấu hiệu “làm giá” dành cho việc quản lý, hay phát hiện xu hướng giá dành cho nhà đầu tư giá có giá trị cực kỳ quan trọng. Rất tiếc là mình không còn làm trong ngành này khi biết đến Elastic Search.

Với Lucence Solr thì có lẽ hơi yếu thế hơn 1 chút ở mảng realtime khi nhìn vào các ví dụ trên, nhưng đó chỉ là sự giới hạn của cá nhân mình. Còn bạn có thể tận dụng sức mạnh của các hệ thống này kết hợp với ý tưởng của riêng mình để làm ra sản phẩm tốt nhé.

3. Glide: hệ thống xử lý ảnh trên mây

Website: Glide

Những bạn đã dùng PHP chắc đã từng sử dụng thư viện Timthumb, không quá mạnh mẽ nhưng cũng đủ xài cho Resize, Crop, Filter. Tuy nhiên, Timthumb đã ngừng phát triển từ lâu và việc so sánh Timbthumb và Glide mặc dù là giống về mục đích nhưng khá khập khiễng. Glide được so sánh với Cloudinary hay Imgix, những hệ thống quản lý hình ảnh trên mây.

Với Glide, bạn hoàn toàn có thể sử dụng như một thư viện tích hợp trong dự án, hoặc dùng nó như một server riêng phục vụ hình ảnh thông qua HTTP. Do Glide dùng thư viện GD hoặc ImageMagick nên bạn không cần phải sử dụng thư viện để xử lý hình ảnh nữa.

Ví dụ, xem hình sau:

https://glide.herokuapp.com/1.0/kayaks.jpg?w=600&gam=.9&sharp=8

Thêm tí blur:

https://glide.herokuapp.com/1.0/kayaks.jpg?w=600&gam=.9&sharp=8&blur=20

Hay là filter trắng đen:

https://glide.herokuapp.com/1.0/kayaks.jpg?w=600&gam=.9&sharp=8&filt=sepia

Hoặc đóng dấu bản quyền:

https://glide.herokuapp.com/1.0/kayaks.jpg?w=500&mark=billabong.png&markw=30w&markpad=3w&markpos=top-right

Đánh giá: Glide phù hợp cho bất cứ dự án nào có sử dụng hình ảnh. Có rất nhiều website không quan tâm đến việc hình ảnh, nên hình ảnh trên website méo mó, hoặc ảnh bị cắt đầu, không đúng trọng tâm dẫn đến việc ảnh hưởng nghiêm trọng đến giao diện website. Cho dù website đầu tư vào design nhiều như thế nào đi nữa nhưng hình ảnh trên website không đẹp thì cũng giảm sức hút khá nhiều. Bạn có thể kết hợp thêm với SmartCrop (Github ~8000 stars) để có ảnh crop thông minh  nên rất đẹp!

4. Nhận dạng khuôn mặt

Có lẽ công nghệ nhận dạng khuôn mặt đã trở nên phổ biến trên nhiều sản phẩm, hoặc cũng đã có nhiều thư viện hỗ trợ. Nhưng với ứng dụng “Đoán tuổi của Microsoft” nổi lên như cồn trong năm 2015 thì rõ ràng độ nóng của tính năng nhận dạng khuôn mặt vẫn rất cao.

Nếu bạn khởi nghiệp trong lĩnh vực liên quan đến hình ảnh, sẽ rất cần sử dụng những tính năng này. Tuy có nhiều thư viện, nhưng đa phần đều có giới hạn vì chỉ nhận dạng được khuôn mặt :(. Mình giới thiệu dịch vụ Face++, được cấp phép sử dụng miễn phí qua API, có những tính năng hay như: xác định nam, nữ, độ tuổi, màu da, thuộc gốc châu lục nào, có mang kính hay không, độ nghiêng của khuôn mặt, có cười hay không…Rất tuyệt phải không nào? Hơn nữa, do việc dùng REST API, nên việc cài đặt sử dụng cho sản phẩm của bạn rất dễ dàng!

Ngoài ra, bạn có thể tìm hiểu thêm tại Facedetect/Software. Với mình thì mình sẽ dùng Face++: nhiều tính năng, miễn phí, sẽ sử dụng, vậy là quá đủ.

5. Tự động hóa ở browser

Tự động hóa ở browser là 1 cách để bạn crawl dữ liệu được lấy bằng 1 loạt các bước phức tạp. Thông thường, sẽ khá là dễ dàng khi lấy dữ liệu của những trang công khai, hoặc có sẵn API. Tuy nhiên nếu bạn đụng phải những trang web có cách lấy nội dung phức tạp, hãy sử dụng Nightmare (6000 stars trên Github).

NightmareJs là một thư viện tự động hóa ở tầng Browser, có nghĩa là thao tác như 1 người bình thường sử dụng trình duyệt web. NightmareJs sử dụng Electron để thực hiện các thao tác ở browser, nó không quá khác so với việc sử dụng PhantomJs hoặc dùng Selenium (là hệ thống test tự động) nhưng đơn giản hơn rất nhiều, đặc biệt là khi sử dụng Daydream, sẽ khi lại thao tác của bạn từ trình duyệt và xuất ra thành code javascript để dùng cho NightmareJs. Usecase cho tự động hóa thì chắc cũng nhiều, cứ cái gì bạn nghĩ đến mà nó bao gồm nhiều thao tác, phải làm đi làm lại, thì khi đó cần đến thôi.

6. Các tài nguyên khác selfhosted

Có nhiều dịch vụ phục vụ cho khởi nghiệp mà bạn có thể cài đặt và điều chỉnh theo nhu cầu sử dụng của mình:

Github: Awesome SelfHosted

Các dịch vụ, công nghệ được liệt kê trong danh sách trên được sử dụng cho mục đích hỗ trợ (Mail, IRC, Analytics…) hoặc nền tảng để tạo sản phẩm (Blogging Platform, Social Network & Forums Platform, CMS, Ecommerce…).

Kết:

Như đã nói ở đầu bài, việc có ý tưởng và bắt tay xây dựng ý tưởng đều phụ thuộc cách bạn làm như thế nào. Mình đã giới thiệu một vài vũ khí mà theo mình là cần có trong các sản phẩm thời nay, việc kết hợp như thế nào đó là một sự tinh túy của riêng bạn.

Hi vọng qua bài viết này sẽ giúp cho bạn tìm ra một vài ý tưởng mới, và hãy bắt tay vào làm việc ngay cho dự án khởi nghiệp thôi. Nếu bạn có công cụ nào hay, mình cũng rất muốn biết để mở rộng kiến thức, hãy chia sẽ cùng mình và mọi người nhé.

Đón đọc các bài viết sắp tới tại Lịch xuất bản.

The post Vũ khí bí mật dành cho khởi nghiệp appeared first on Fullstack Station.

]]>
https://fullstackstation.com/vu-khi-bi-mat-danh-cho-khoi-nghiep/feed/ 1