Thứ Hai, 13 tháng 9, 2021

Giao thức HTTP là gì? 3 đặc điểm lớn của HTTP bạn cần biết

Nếu để ý một chút, bạn sẽ thấy tại rất nhiều trang web chúng ta truy cập đều có tiền tố HTTP. Vậy chính xác thì HTTP xuất hiện ở đó có tác dụng gì? Nếu không có HTTP thì web có hoạt động được bình thường không? Hãy theo dõi bài viết tìm hiểu về giao thức HTTP là gì ngay dưới đây.

Tìm hiểu giao thức HTTP là gì?

Khái niệm của HTTP

HTTP là tên viết tắt của cụm từ HyperText Transfer Protocol, dịch theo tiếng Việt là giao thức truyền tải siêu văn bản. HTTP được dùng trong www (world wide web) với mục đích tạo nên nền tảng kết nối giữa client và server. Client ở đây đại diện cho bất kỳ loại thiết bị hoặc chương trình nào, có thể là PC, smartphone… Còn Server được dùng để chỉ những máy tính trên đám mây. HTTP là một giao thức cho phép trao đổi và sử dụng các nguồn tài nguyên khác nhau, chẳng hạn như HTML doc. Một doc hoàn chỉnh sẽ được tạo nên từ nhiều doc con bao gồm văn bản, layout, media, video, script…

HTTP lần đầu được giới thiệu vào những năm 90. Cho đến ngày nay, nó không ngừng được mở rộng và chiếm một vị trí rất quan trọng trong thế giới Internet. HTTP được coi như là một giao thức ứng dụng của bộ các giao thức nền tảng cho Internet TCP/IP. Nó cũng có thể được gửi thông qua kết nối TCP được mã hóa TLS.

HTTP là viết tắt của từ gì?

HTTP là viết tắt của từ gì?

Nhờ vào đặc tính mở rộng không giới hạn của nó, ngoài các tài liệu siêu văn bản, HTTP còn được dùng để tìm nạp hình ảnh và video. Thậm chí là đăng tải cả nội dung lên server. Chính vì thế, HTTP đóng vai trò quan trọng trong quy trình cập nhật website thông qua khả năng nạp dữ liệu cho các doc theo yêu cầu.

Cấu trúc cơ bản của HTTP

Cấu trúc hoạt động của HTTP rất đơn giản và dễ hiểu. HTTP là một nền tảng cho phép sự giao tiếp giữa 2 phía là Client và Server. Client ở đây là người dùng, thường truy cập vào HTTP thông qua một công cụ bất kỳ như trình duyệt web. Còn Server sẽ đại diện cho phía website, đằng sau giao diện web gồm có kịch bản phản ứng từ máy chủ và cơ sở dữ liệu.

Vậy hoạt động của giao thức HTTP là gì? Quá trình giao tiếp của Client và Server sẽ dựa trên các message độc lập. Đầu tiên, phía khách hàng sẽ gửi một message đến cho máy chủ, thường là các yêu cầu lợi ích khiến khách hàng truy cập website này. Sau khi tiếp nhận yêu cầu và xử lý, máy chủ sẽ trả lại một message được gọi là phản hồi.

Mỗi một phản hồi đều là độc lập. Phản hồi sau sẽ không biết và cũng không chịu bất kỳ tác động nào từ phản hồi trước.

HTTPS là gì?

HTTPS là phiên bản an toàn hơn của HTTP. Nó là tên viết tắt của cụm từ Hypertext Transfer Protocol Secure, nghĩa là giao thức truyền tải siêu văn bản bảo mật. HTTPS hoạt động không khác gì HTTP ngoài việc bổ sung thêm giao thức SSL và TSL nhằm mục đích ngăn chặn mọi sự xâm nhập từ bên ngoài. Khi một kết nối giữa máy chủ và máy khách hoạt động, HTTPS sẽ tiến hành xác minh danh tính và nhanh chóng mã hóa các thông tin trao đổi, tránh trường hợp hacker xâm nhập đánh cắp dữ liệu.

Đặc điểm của giao thức HTTP là gì?

Cách giao thức HTTP hoạt động là gì?

Cách giao thức HTTP hoạt động là gì?

Để sử vận dụng được tốt HTTP, bạn nên tìm hiểu kỹ cả về các đặc điểm nổi bật của nó. Những khía cạnh cơ bản của HTTP sẽ giúp bạn hiểu được lý do tại sao nó lại mạnh mẽ đến như vậy.

HTTP có thiết kế đơn giản

Đơn giản chính là đáp án nổi bật nhất cho câu hỏi đặc điểm của giao thức HTTP là gì. Thật vậy, mục đích xuất hiện của HTTP là tạo ra một công cụ thật thân thiện, có thể được sử dụng dễ dàng bởi mọi đối tượng. Các HTTP message đều có cấu tạo rất đơn giản để những người mới sử dụng cũng có thể đọc hiểu được.

HTTP có khả năng mở rộng

HTTP sở hữu tính linh hoạt rất cao. Nó không có bất kỳ một giới hạn nào về sự nâng cấp và mở rộng. Thậm chí, chỉ cần bằng một thỏa thuận thống nhất giữa client và server là một tính năng mới của HTTP đã được hình thành.

HTTP là stateless – Giao thức HTTP là gì

Bởi mọi phản hồi của HTTP là độc lập nên người dùng không thể tạo sự liên kết thông tin giữa các phản hồi được. Điều này có thể sẽ trở thành một nhược điểm đối với những trường hợp người dùng cần có các tương tác mạch lạc và bổ trợ cho nhau, ví dụ như shopping cart trên các trang thương mại điện tử.

Để khắc phục vấn đề này, HTTP cho phép mở rộng tự do các header. Trong đó, người dùng có thể tự tạo cho mình session trên mỗi request nhằm mục đích chia sẻ các ngữ cảnh hoặc trạng thái giữa các request với nhau. Sở dĩ trường hợp này có thể thực hiện được vì bản thân HTTP là stateless.

Các lỗi thường gặp khi duyệt giao thức HTTP là gì?

HTTP 404: Not Found – Giao thức HTTP là gì

Lỗi này xảy ra khá phổ biến. Nó được thể hiện bởi nhiều phản hồi khác nhau, ví dụ như 404 Error”, “Page cannot be displayed”, “Internet Explorer cannot display the webpage”… Nguyên nhân xảy ra lỗi này là vì địa chỉ trang web mà bạn truy cập không được tìm thấy trên máy chủ. Có thể vấn đề nằm ở tên miền bị lỗi hoặc địa chỉ web bạn soạn thảo bị sai chính tả.

Tham khảo một số lỗi phổ biến khi bạn truy cập Internet

Tham khảo một số lỗi phổ biến khi bạn truy cập Internet

Để khắc phục tình trạng này, trước tiên bạn hãy reload lại trang web đó. Nếu vẫn lỗi, hay kiểm tra lại lỗi text URL. Khi đã chắc chắn rằng URL bạn điền hoàn toàn đúng, thử xóa bớt các phân trang đi.

Ví dụ có một địa chỉ là: https://ift.tt/3AabmHt

Nếu bạn hãy xóa phần 1/ đi, đó gọi là đi lùi mức địa chỉ của URL. Tương tự, nếu bạn xóa thêm display/ nữa nghĩa là bạn đã lùi 2 mức địa chỉ URL. Hãy xóa bớt các mức địa chỉ đi cho đến khi một trang web không bị lỗi hiện ra.

Nếu đã xóa hết các mức rồi mà vẫn không có gì hiện ra thì bạn hãy truy cập thử vào máy chủ. Trong trường hợp kia thì sẽ là http://acmedelavie.com. Bằng cách điền địa chỉ trang web bị lỗi 404 vào thanh tìm kiếm, bạn sẽ biết được lý do tại sao nó xảy ra lỗi.

HTTP 500 Internet Server Error

Tương tự như lỗi 404, lỗi 500 cũng làm gián đoạn quá trình truy cập web của bạn. Tuy nhiên, 500 xảy ra là do phía bên máy chủ gặp trục trặc, không phải do kết nối hay đường truyền của bạn. Lỗi này thường xảy ra trong thời gian ngắn, vì thế bạn có thể thử reload lại trang cho đến khi hết lỗi.

Nếu reload rồi mà vẫn không được thì bạn chỉ còn cách liên lạc với người quản trị trang web để hỏi về cách khắc phục.

HTTP 403 Forbidden – Giao thức HTTP là gì

Thông điệp HTTP 403 Forbidden được truyền đến khi thông tin luồng từ máy trạm bị máy chủ từ chối. Lỗi này thường xảy ra khi URL bị sai. Bạn nên kiểm tra lại kỹ chính tả trong URL. Nếu bạn chắc chắn URL là đúng thì nó có thể do nhầm lẫn của máy chủ. Trong trường hợp này bạn buộc phải liên hệ với quản trị viên.

Nhiệm vụ của HTTP là gì?

Nhiệm vụ của HTTP là gì?

Khi máy chủ đặt ra các giới hạn truy cập vào website con mà bạn lại không nằm trong trường hợp được phép truy cập thì tất nhiên cũng sẽ hiện ra lỗi HTTP 403 Forbidden. Riêng trường hợp này không có cách nào có thể khắc phục được cho đến khi truy cập của bạn được cấp phép.

Tham khảo thêm: Unit Test là gì? 5 khái niệm cần biết khi sử dụng Unit Test

Kết luận giao thức HTTP là gì

Trên đây là các thông tin cơ bản xung quanh HTTP. Hiểu được giao thức HTTP là gì sẽ giúp bạn đọc biết cách sử dụng nó hiệu quả hơn. HTTP hiện vẫn đang không ngừng được cập nhật và mở rộng. Vì thế bạn nhớ đừng bỏ qua những thông tin mới xung quanh giao thức này nhé. Hãy cập nhật những xu hướng công nghệ thông tin hot nhất cùng với Teky lại chuyên mục IT – Lập trình này!

The post Giao thức HTTP là gì? 3 đặc điểm lớn của HTTP bạn cần biết appeared first on TEKY - Học viện sáng tạo công nghệ.



source https://teky.edu.vn/blog/giao-thuc-http-la-gi/

Unit Test là gì? 5 khái niệm cần biết khi sử dụng Unit Test

Nếu công việc của bạn thường xuyên gắn liền với các dự án phát triển phần mềm thì hẳn cái tên Unit Test sẽ rất quen thuộc. Unit Test mang đến rất nhiều lợi ích cho quá trình hoàn thiện một ứng dụng. Nó là bước không thể thiếu trước khi đưa phần mềm của bạn vào hoạt động thực tế. Nếu bạn vẫn còn là một newbie và vẫn chưa nắm được Unit Test là gì thì hay nhanh chóng tham khảo ngay những thông tin dưới đây.

Tìm hiểu Unit Test là gì?

Unit là gì?

Unit được hiểu như một thành phần PM nhỏ nhất mà ta có thể tiến hành kiểm tra được như Function, Procedure, Class hoặc Method. Người ra tiến hành phân chia ra các Unit nhỏ như vậy nhằm mục đích kiểm soát chất lượng một cách kỹ càng và chi tiết hơn. Thay vì kiểm tra tổng thể, kiểm tra từng Unit sẽ cho ra những kết quả chính xác ở mức cao nhất nhờ những dữ liệu ghi nhận được khoanh vùng nhỏ.

Định nghĩa Unit Test là gì?

Unit Test có nghĩa là kiểm tra Unit. Nó đóng vai trò là một công cụ kiểm thử các thành phần riêng lẻ trong một phần mềm. Thường thì Unit Testing sẽ được thực hiện trong khi chương trình đang được phát triển. Mục đích mà Unit Test hướng đến là khoang vùng và tiến hành kiểm tra tính chính xác của vùng code đó.

What is Unit Test?

What is Unit Test?

Unit Test tập trung vào những đơn vị nhỏ nhất của chương trình. Mục tiêu của Unit Test là kiểm tra, ghi nhận và phân tích kết quả của những vùng được cô lập. Từ đó thu được những báo cáo về mức độ hiệu quả của từng bộ phận. Nhờ Unit Test, người dùng nhanh chóng rà soát được nguyên nhân của những lỗi vận hành rồi đưa ra phương án sửa chữa thích hợp nhất.

Những đoạn code Unit Test hoạt động bằng cách gửi đi những câu hỏi cho từng bộ phận. Câu trả lời trả về sẽ bao gồm: các kết quả mong muốn và các lỗi ngoại lệ mong muốn. Unit Test hoạt động xuyên suốt bằng những thông điệp được gửi tới định kỳ từng bộ phận. Chính vì thế mà nó còn được gọi là kỹ thuật kiểm nghiệm tự động.

Unit Test là bước đầu tiên trong quy trình kiểm thử phần mềm. Nó cũng đóng vai trò như thông tin dẫn dắt cho các bước kiểm thử với quy mô lớn hơn.

Khái niệm xung quanh Unit Test

Khi làm việc cùng Unit Test, ta sẽ dễ dàng bắt gặp những khái niệm như sau:

  • Assertion: Dù Unit Test hoạt động trong một đơn vị rất nhỏ nhưng nó cũng bao gồm nhiều bước được tiến hành lần lượt. Những bước đó được gọi là Assertion. Mỗi một Unit Test sẽ có nhiều Assertion, có thể khác nhau hoặc trùng nhau tùy thuộc vào mục đích của Unit Test đó, ví dụ như: kiểm tra dữ liệu đầu vào, truy vấn tính chính xác, xác định thứ tự của các luồng dữ liệu…
  • Test Point: Test Point được dùng để gọi một Unit Test nhỏ nhất, thường là chỉ chứa duy nhất một Assertion. Thông điệp mà Test Point gửi đi sẽ có phản hồi bao gồm đúng và sai. Nó được dùng để kiểm tra tính đúng sai của một chi tiết code nào đó. Từ đó, ta có Test Case là tập hợp nhiều Test Point, dùng để kiểm tra một quy trình nhất định. Nếu nhiều Test Case được làm một lúc thì sẽ là Test Suite, thường dùng để bao phủ một module hoặc một hệ thống con.
  • Regression Testing: Khi thực hiện Unit Test một cách thường xuyên và lặp lại sự sửa chữa với những lỗi giống nhau thì sẽ được gọi là Regression Testing hay Automated Testing.
  • Production Code: Dùng để chỉ phần mã chính của phần mềm được bàn giao cho khách hàng.
  • Unit Testing Code: Đây là phần mã phụ được dùng để kiểm tra các mã chinh. Phần này sẽ không giao cho khách hàng.

Nắm chắc những khái niệm này khiến bạn hiểu rõ hơn Unit Test là gì cũng như cách làm việc hiệu quả cùng nó.

Unit Testing là gì?

Unit Testing là gì?

Đặc điểm của Unit Test là gì?

Vòng đời của Unit Test

Vòng đời của bất kỳ Unit Test nào đều sẽ phải trải qua 3 giai đoạn: Fail (trạng thái lỗi), Ignore (tạm ngừng thực hiện) và Pass (trạng thái làm việc). 3 giai đoạn này sẽ được thay phiên hoạt động khi một Unit Test được chạy tự động. Để một Unit Test có hiệu quả, nó phải có khả năng tự vận hành và thực hiện lặp lại nhiều lần. Ngoài ra, các Unit Test cũng được yêu cầu phải độc lập vùng kiểm thử với nhau để không lãng phí tài nguyên và thời gian.

Đặc điểm nổi bật của Unit Test là gì?

Đặc điểm nổi bật của Unit Test là gì?

Hiện tại, rất nhiều PM giúp hỗ trợ hiển thị giai đoạn mà Unit Test đang hoạt động bằng những cách vô cùng trực quan. Loại giao diện thường thấy nhất là đánh dấu bằng màu sắc, ta sẽ có pass là màu xanh, ignore là màu vàng và fail là màu đỏ. Điều này giúp lập trình viên có thể dễ dàng theo dõi tình hình hoạt động của Unit Test.

Quy trình hoạt động của Unit Test là gì?

Thiết kế của Unit Test C# là gì? Tuy rằng mỗi phần mềm sẽ được dùng với nhiều loại UnitTest khác nhau nhưng quy trình chính thì vẫn luôn nằm trong 4 bước sau:

  • Bước 1: Đầu tiên, người dùng cần tập hợp những dữ liệu cần thiết, có thể bao gồm: khởi tạo đối tượng, xây dựng câu hỏi truy vấn, xác định vùng kiểm tra…
  • Bước 2: Tiếp theo là khởi động những phương thức cần kiểm tra.
  • Bước 3: Trong khi các phương thức đang làm việc của chúng, người dùng cần rà soát lại hiệu quả của các phương thức.
  • Bước 4: Cuối cùng là dọn dẹp lại các tài nguyên sau khi đã kết thúc kiểm tra.

Ưu điểm của Unit Test là gì?

  • Unit Test sẵn sàng tạo ra những môi trường lý tưởng cho các hoạt động kiểm tra. Unit Test có khả năng khoanh vùng đơn vị nhỏ, nhanh chóng tìm ra lỗi code đang hiện hữu, thăm dò tính khả quan của phương án thực thi, duy trì ổn định cho toàn hệ thống nhờ cơ chế hoạt động độc lập và đương nhiên là tiết kiệm rất nhiều thời gian so với phương pháp rà lỗi truyền thống.
  • Ngoài ra, Unit Test còn rất nhạy trong việc cảm ứng những sự thay đổi đột ngột. Khi nhận được tín hiệu không khả quan từ một khu vực, nó sẽ nhanh chóng tạo một lớp bảo vệ cho những khu vực khác.
  • Unit Test có khả năng nhanh chóng tìm ra những lỗi nhỏ nhất trong các môi trường hẹp.
  • Unit Test thậm chí còn cung cấp các đánh giá về những bộ phận đang hoạt động không hiệu quả như dự kiến hoặc các thủ tục chạy quá thời gian cho phép.
  • Unit Test giúp phát hiện ra các lỗi trong cấu trúc thiết kế.
  • Unit Test còn được dùng như một công cụ đánh giá chất lượng của chương trình và năng lực của người làm chương trình.
Nó có khả năng kiểm tra từng đơn vị nhỏ nhất

Nó có khả năng kiểm tra từng đơn vị nhỏ nhất

Nhược điểm của Unit Test là gì?

Dù đang được sử dụng rất rộng rãi nhưng trong Unit Test vẫn tồn tại một số nhược điểm nhất định. Unit Test cũng là một chương trình, vì thế nó cần được tạo nên bởi các mã code. Không phải lập trình viên nào cũng xây dựng được hệ thống unit case chuẩn và hiệu quả. Đôi khi việc lập trình Unit Test thậm chí còn khó hơn cả xây dựng phần mềm. Chính vì thế, bạn phải là một lập trình viên dày dặn kinh nghiệm thì mới có thể tạo nên những Unit Test hiệu quả được.

Việc tạo ra Unit Test cũng mất khá nhiều thời gian. Nhiều hệ thống Unit Case vô cùng đồ sộ và phức tạp đòi hỏi phải có nguyên một team vận hành. Nhiệm vụ của Unit Test là phát hiện lỗi nhưng đôi khi chính nó cũng mắc lỗi do người lập trình ra nó phạm sai lầm.

Tham khảo thêm: Local Storage là gì? 5 lệnh thường dùng trong Local Storage

Kết luận

Nhìn chung, Unit Test là một chương trình rất đáng trải nghiệm. Nếu bạn không tự tin để tạo ra những Unit Test cho riêng mình thì có thể tham khảo những chương trình miễn phí trên Internet trước. Mong rằng với những thông tin vừa rồi bạn đã phần nào hiểu rõ hơn Unit Test là gì để bắt đầu học cách sử dụng nó.

The post Unit Test là gì? 5 khái niệm cần biết khi sử dụng Unit Test appeared first on TEKY - Học viện sáng tạo công nghệ.



source https://teky.edu.vn/blog/unit-test-la-gi/

Local Storage là gì? 5 lệnh thường dùng trong Local Storage 

Cơ sở dữ liệu đóng vai trò rất lớn trong mọi dự án xây dựng phần mềm, chương trình và cả trang web. Vì thế, nếu bạn đang làm việc trong một team phát triển, hẳn là bạn sẽ rất cần những công cụ tốt để quản lý kho dữ liệu khổng lồ thay đổi hằng ngày. Local Storage là đáp án tối ưu nhất trong trường hợp bạn thường xuyên phải làm việc với các trình duyệt web. Hãy cùng Teky tìm hiểu ngay Local Storage là gì và những thao tác cần thiết khi sử dụng phần mềm này nhé!

Tìm hiểu Local Storage là gì?

Khái niệm LocalStorage là gì?

Local Storage là gì? Local Storage được hiểu như một phần mềm tích hợp sẵn trên các trình duyệt. Nó giúp lưu trữ dữ liệu trực tiếp tại Browser và cho phép các ứng dụng Javascript cũng như các trang web khác truy cập lại vào mà không có ngày giới hạn. Nhìn chung, cách mà Local Storage hoạt động khác giống với cookies. Tuy nhiên Local Storage có dung lượng lớn hơn nhiều, cụ thể là đạt ngưỡng 5MB, trong khi đó cookie chỉ có 4KB mà thôi. Ngoài ra, Local Storage cũng sẽ không tiến hành gửi thông tin lên server giống như cookies.

Dữ liệu trên Local Storage sẽ tồn tại vô thời hạn cho đến khi bộ nhớ đầy. Người dùng có thể truy xuất và sử dụng lại bất kỳ lúc nào. Nó vẫn sẽ tự động lưu trữ ngay cả khi bạn đã đóng trình duyệt. Tuy nhiên, dữ liệu sẽ mất nếu bạn xóa lịch sử truy cập của trình duyệt hoặc dùng localStorage API để xóa.

Local Storage hỗ trợ cho rất nhiều trình duyệt

Local Storage hỗ trợ cho rất nhiều trình duyệt

Local Storage được hỗ trợ trên trình duyệt nào?

Không phải trình duyệt nào cũng hỗ trợ Local Storage. Tuy nhiên phần lớn những trình duyệt phổ biến nhất đều được hỗ trợ, nhưng sẽ khác nhau tùy phiên bản. Bạn có thể tham khảo những thông tin sau để biết trình duyệt trên PC của mình được phép dùng Local Storage phiên bản nào.

  • Chrome hỗ trợ cho phiên bản 4.0 trở lên.
  • Firefox hỗ trợ cho phiên bản 3.5 trở lên.
  • Internet Explorer hỗ trợ cho phiên bản 8.0 trở lên.
  • Safari hỗ trợ cho phiên bản 4.0 trở lên.
  • Opera hỗ trợ cho phiên bản 10.5 trở lên.
  • Edge hỗ trợ cho phiên bản 12.0 trở lên.
  • WebView Android hỗ trợ cho phiên bản 37.0 trở lên.
  • Opera Android hỗ trợ cho phiên bản 11.0 trở lên.
  • Samsung Internet hỗ trợ cho phiên bản 1.0 trở lên.
  • Chrome Android hỗ trợ cho phiên bản 18.0 trở lên.
  • Firefox for Android hỗ trợ cho phiên bản 4.0 trở lên.
  • Safari trên iOS hỗ trợ cho phiên bản 3.2 trở lên.

SessionStorage là gì?

SessionStorage được hiểu như một phiên bản khác của Local Storage. Nó cũng chứa đầy đủ những tính năng như Local Storage, chỉ khác là về thời gian lưu trữ. Nếu Local Storage lưu trữ dữ liệu vĩnh viễn cho đến khi được xóa đi thì SessionStorage chỉ lưu tạm thời cho đến khi trình duyệt được đóng thôi. Ngoài ra, dữ liệu mà SessionStorage lưu trữ của mỗi tab sẽ là riêng biệt. Nếu bạn bắt đầu hoạt động tại một tab mới, một kho dữ liệu nhỏ mới cũng sẽ được hình thành. Kho dữ liệu này sẽ hoạt động cho đến khi bạn đóng tab đó đi. Trong trường hợp bạn phải làm việc với nhiều nguồn dữ liệu riêng biệt khác nhau thì nên sử dụng SessionStorage.

Đặc điểm của Local Storage là gì?

Ưu điểm của Local Storage là gì?

Có nhiều ưu điểm khiến Local Storage trở thành một trong những công cụ hot nhất giới lập trình. Hiểu rõ lợi ích của Local Storage là gì sẽ giúp bạn vận dụng nó tốt hơn.

Đặc điểm của Local Storage là gì?

Đặc điểm của Local Storage là gì?

Đầu tiên, Local Storage là một JavaScript thuần. Đặc điểm này giúp khắc phục nhược điểm lớn nhất của cookies, đó chính là cần được tạo nên bởi web server. Local Storage giúp các hoạt động xây dựng static site của bạn có thể chạy độc lập mà không cần phụ thuộc vào web server nào. Chúng cũng không cần ngôn ngữ backend hay logic để có thể tiến hành lưu trữ dữ liệu vào trong trình duyệt web.

Một ưu điểm nữa của Local Storage là nó không giới hạn kho dữ liệu. Size lưu trữ lên đến 5MB cho phép người dùng sử dụng gần như là không bị hạn chế, quá tốt so với cookies chỉ có 4KB. Khi bộ nhớ đầy, bạn có thể xóa bớt những dữ liệu từ lâu không được sử dụng đến. Điều này giúp cho người dùng dễ dàng lưu trữ lại những dữ liệu App trong bộ nhớ để dùng sau. Local Storage là sự lựa chọn hợp lý nhất trong trường hợp này.

Nhược điểm của Local Storage là gì?

Local Storage là ví dụ điển hình cho trường hợp “lắm tài nhiều tật”. Các ưu điểm của nó rất hấp dẫn nhưng nhược điểm lại khiến người dùng phải suy xét thêm. Đầu tiên, Local Storage chỉ có khả năng lưu trữ dữ liệu ở dạng string. Nó quá đơn giản nên hoàn toàn bất lực với các loại data phức tạp khác.

Thêm vào đó, Local Storage luôn thực hiện đồng bộ hóa tại mọi thời điểm. Khi Local Storage hoạt động, người dùng không thể phân tách các dữ liệu từ những nguồn khác nhau, tất cả đều được lưu trữ trong cùng 1 hệ thống.

Local Storage không hoạt động được với web server, nó chỉ phù hợp với các trình duyệt riêng biệt. Vì thế bạn không thể dựng lại nó để tăng hiệu suất nền được.

Và ưu điểm cuối cùng và cũng là điểm trừ lớn nhất khiến bạn thực sự nên suy nghĩ lại khi sử dụng Local Storage chính là bảo mật. Local Storage bảo mật vô cùng kém. Bất kỳ JavaScript nào cũng có thể tự do ra vào Local Storage. Nó không có một công cụ nào để bảo vệ dữ liệu cả. Chính vì thế, nếu dữ liệu của bạn quan trọng và có tính riêng tư cao thì lời khuyên là không nên sử dụng Local Storage.

Các thao tác thường dùng với Local Storage

Kiểm tra trình duyệt có hỗ trợ Local Storage không

Công cụ này rất đơn giản để sử dụng

Công cụ này rất đơn giản để sử dụng

Thường thì Local Storage sẽ được cài đặt sẵn trong mỗi trình duyệt hỗ trợ nó. Nếu bạn không chắc trình duyệt của mình có được hỗ trợ Local Storage Javascript không vì không thấy nó có mặt trong danh sách gợi ý thì có thể làm theo 2 cách sau:

  • Cách 1: Thử khởi động Local Storage bằng cách sau: Nhấn tổ hợp Ctrl + Shift + I hoặc F12 ( với  một số laptop sẽ là Fn + F12) rồi bật Tab Application. Nếu có thì Local Storage sẽ xuất hiện trong mục này.
  • Cách 2: Sử dụng một đoạn code để xem Local Storage có được cài đặt hay không:

if (typeof(Storage) !== “undefined”) {

 // Có hỗ trợ LocalStorage

} else {

 // Không hỗ trợ LocalStorage

}

Cách thêm dữ liệu vào trong Local Storage là gì?

Cú pháp để thêm dữ liệu vào trong Local Storage là: LocalStorage.setItem($key, $value);

Trong đó, $key là tên dữ liệu bạn định thêm vào, còn $value là giá trị của dữ liệu đó. Nếu bạn tạo một key mới trùng lặp với key đã có sẵn thì giá trị của key đó sẽ được ghi đè.

Cách truy xuất dữ liệu trong Local Storage là gì?

Cú pháp để trích xuất dữ liệu trong Local Storage là: LocalStorage.getItem($key);

Trong đó, $key là tên của dữ liệu bạn muốn lấy ra.

Cách xóa dữ liệu trong Local Storage là gì?

Cú pháp để xóa dữ liệu trong Local Storage là: LocalStorage.removeItem($key);

Trong đó, $key là tên của dữ liệu cần xóa.

Trong trường hợp bạn muốn xóa toàn bộ dữ liệu trong Local Storage thì chỉ cần dùng lệnh: LocalStorage.clear()

Một số lệnh cơ bản trong Local Storage

Một số lệnh cơ bản trong Local Storage

Cách kiểm tra số lượng dữ liệu được lưu trữ trong Local Storage là gì?

Cú pháp để đếm số lượng dữ liệu trong Local Storage là: LocalStorage.length;

Tham khảo thêm: SQL Injection là gì? 3 cách phòng chống SQL Injection hiệu quả nhất

Kết luận Local Storage là gì

Với bài viết trên từ Teky, hẳn là bạn đọc đã hiểu được Local Storage là gì cũng như cách để sử dụng nó một cách hiệu quả. Lời khuyên của chúng tôi là chỉ sử dụng Local Storage trong trường hợp bạn cần sử dụng lại các dữ liệu không mang tính nhạy cảm hay cần bảo mật cao và chỉ chứa string data. Như đã đề cập trong bài viết, Local Storage gần như không có bất kỳ một phương pháp nào để bảo vệ dữ liệu. Nếu chương trình bạn đang xây dựng có độ quan trọng cao thì không nên sử dụng Local Storage, hãy cân nhắc một số loại phần mềm lưu trữ khác bảo mật an toàn hơn.

The post Local Storage là gì? 5 lệnh thường dùng trong Local Storage  appeared first on TEKY - Học viện sáng tạo công nghệ.



source https://teky.edu.vn/blog/local-storage-la-gi/

SQL Injection là gì? 3 cách phòng chống SQL Injection hiệu quả nhất

SQL Injection được biết đến như một cách tấn công kho dữ liệu SQL vô cùng nguy hiểm. Những hậu quả nó để lại là vô cùng to lớn. Trong thời gian gần đây, rất nhiều công ty và doanh nghiệp phải chịu những tổn thất đáng kể bởi SQL Injection. Để ngăn chặn được lỗ hổng này, trước tiên bạn phải nắm rõ SQL Injection là gì cũng như các đặc điểm tấn công của nó. Hãy cùng Teky tham khảo ngay trong bài viết sau đây.

SQL Injection là gì?

Lỗi SQL Injection là một dạng tấn công thông qua những lỗ hổng trong bảo mật dữ liệu của một hệ thống. Bằng cách chèn các đoạn mã vào trong entry field, hacker sẽ tiến hành xâm nhập ứng dụng chứa dữ liệu của toàn bộ hệ thống. Các lệnh SQL độc hại ở đây có thể là đề xuất kết nối từ cơ sở dữ liệu cho hacker hoặc cấp phép truy cập cho những đối tượng không được phép.

Lỗi SQL Injection là gì?

Lỗi SQL Injection là gì?

SQL Injection thường xuất hiện nhiều nhất trong những trang web. Tuy nhiên, nó cũng có khả năng tấn công bất kỳ cơ sở dữ liệu SQL nào. Những vector SQL độc hại hoạt động cho phép hacker gây ra những thiệt hại to lớn như: giả mạo danh tính, xáo trộn và đánh cắp dữ liệu, thay đổi số dư, phá hủy hệ thống hoặc thậm chí là trở thành admin và ăn cắp một server cơ sở dữ liệu.

Cách thức tấn công của SQL Injection là gì?

Để tìm hiểu về SQL Injection là gì kỹ hơn, ta sẽ cùng đến với phần phân loại các tấn công SQL Injection.

In-band SQLi

Đây là phương thức tấn công SQL phổ biến nhất hiện nay. Điểm nổi bật nhất của In-band SQLi là kẻ xấu sẽ sử dụng cùng một kênh để tiến hành tấn công và thu thập dữ liệu đánh cắp được. In-band SQLi hiện có 2 biến thể thông dụng bao gồm:

  • Error-based SQLi: Đầu tiên, kẻ tấn công sẽ cài một đoạn mã độc để hệ thống cơ sở dữ liệu báo lỗi. Sau đó hacker sẽ dùng dữ liệu thu thập được từ những thông báo này để truy xuất ra thông tin của cấu trúc cơ sở dữ liệu.
  • Union-based SQLi: Bằng cách lợi dụng toán tử UNION SQL, hacker sẽ tiến hành hợp nhất các câu lệnh được tạo ra từ cơ sở dữ liệu để thu được một HTTP response. Trong response sẽ chứa thông tin riêng tư mà kẻ tấn công nhắm đến.

Inferential (Blind) SQLi – SQL Injection là gì

Inferential SQLi có đặc tính blind vì hacker sẽ không thể thấy trực tiếp cách mà cuộc tấn công hoạt động. Kẻ tấn công không trực tiếp gây tổn hại đến cơ sở dữ liệu mà sẽ gửi các data payload đến server. Những data payload này sẽ gây ảnh hưởng đến cơ sở dữ liệu của bạn và bạn buộc phải đưa ra những phản ứng công khai. Đây chính là điều hacker cần, họ nắm bắt những phản ứng này và đưa ra những phán đoán về cấu trúc cơ sở dữ liệu của bạn.

Inferential SQLi thường được thực thi chậm hơn vì nó cần đợi những phản ứng của server. Tuy nhiên, thiệt hại nó gây ra lại không vì thế mà bị hạn chế bớt đi. Có 2 biến thể của Inferential SQLi thường xuyên được sử dụng:

  • Boolean: Đầu tiên, kẻ xấu sẽ gửi một câu truy vấn SQL đến cho server. Khi đó, cơ sở dữ liệu buộc phải gửi trả lại kết quả để trả lời cho câu lệnh này. Đáp án có thể là đúng hoặc sai. Dựa theo đáp án mà thông tin của HTTP response sẽ được chỉnh sửa đến khi đúng với thực tế. Vậy là hacker đã nắm được những thông tin xung quanh cấu trúc server.
  • Time-based: Cách thức tấn công này cũng tương tự như Boolean. Tuy nhiên, thay vì đợi cơ sở dữ liệu đưa ra đáp án, hacker sẽ dùng những câu lệnh SQL làm server ngừng hoạt động trong vài giây. Sau đó từ mốc thời gian phản hồi tra ra được kết quả của các truy vấn. Như vậy, một HTTP response đã được tạo ra.
Cách hoạt động của SQL Injection là gì?

Cách hoạt động của SQL Injection là gì?

Out-of-band SQLi

Nếu không thể thực hiện 2 phương pháp trên do server hoạt động quá chậm, không ổn định để tấn công hoặc hacker không có một kênh để đồng thời tấn công và thu thập kết quả thì sẽ kẻ xấu sẽ suy nghĩ đến phương án thứ ba là Out-of-band SQLi.

Tuy nhiên cách này cần có điều kiện: một số tính năng của server phải được kích hoạt. Hacker sẽ nắm lấy cơ hội server tạo ra DNS hay HTTP request để thu lại được dữ liệu cho mình.

Cách phòng chống SQL Injection là gì?

Các hoạt động tấn công chính từ SQL Injection thường xảy ra ở kênh input của người dùng. Vì thế để phòng chống SQL Injection hiệu quả thì ta nên bắt đầu từ việc bảo vệ kênh input.

Không tin tưởng kênh Input của người dùng

Trong thực tế, mọi thông tin trên kênh Input mà người dùng nhập đều được đánh dấu “don’t trust and verify”. Điều này có nghĩa là một thông tin ngoại địa đều sẽ được coi là độc hại, trừ khi có bằng chứng ngược lại. Là một người quản lý server, bạn phải tỉnh táo và không được tin những dữ liệu này. Mọi thứ xâm nhập từ bên ngoài đều phải được quản lý sát sao, bao gồm cả văn bản, input ẩn, các chuỗi tham số truy vấn, cookie và tệp tải lên.

Nếu bạn nghĩ rằng, Browsers trình duyệt của bạn không cho phép người dùng thao tác với một input nên sẽ không thể xảy ra hoạt động xâm nhập, bạn đã nhầm! Có vô số các công cụ đơn giản có thể trợ giúp người dùng giả mạo danh tính trên server của bạn, ví dụ có thể kể đến Burp Suite. Vậy nếu dùng Base 64 để mã hóa dữ liệu thì sao, cách này có thể tạo thêm khó khăn cho hacker, nhưng nó vẫn có thể được giải một cách dễ dàng. Khi không còn bất kỳ lớp phòng ngự nào, kẻ xấu sẽ chiếm được HTTP requests và tiến hành xáo trộn thông tin trước khi chúng được gửi về máy chủ.

Hãy cảnh giác với mọi Input người dùng

Hãy cảnh giác với mọi Input người dùng

Xác nhận chuỗi các input ở phía máy chủ – SQL Injection là gì

Nếu không thể tạo ra một bức tường đủ dày, vậy thì bạn hãy tăng cường độ kiểm soát các vị khách ra vào. Việc xác minh kỹ càng chuỗi các input không bao giờ là điều thừa thãi. Nó giúp tìm ra những lệnh ẩn độc hại được nhấn chìm trong dữ liệu thông thường và chặn các kết nối xấu này ngay lập tức. Ví dụ, trên PHP, bạn có thể sử dụng lệnh: mysql \ _real \ _escape \ _string () để loại ra các ký tự có thể làm thay đổi bản chất của SQL. Đây là phương án rất an toàn và hiệu quả nếu bạn có thắc mắc cách chống SQL Injection là gì.

Nhiều người thắc mắc rằng, liệu trang web của họ có bị tấn công không khi đã có những bước xác thực phía khách rồi. Điều này là cần thiết nhưng vẫn không đủ. Thực tế cho thấy rằng một số công cụ như browser tweak vẫn có thể vượt qua bước xác minh này một cách dễ dàng. Và đó là cách mà một cuộc tấn công SQL Injection bắt đầu. Vậy nên để chắc chắn, hãy xác nhận chuỗi các input ở cả phía máy chủ nữa.

Sử dụng các câu lệnh tham số

Một cách hiệu quả khác nữa để ngăn chặn các SQL Injection là sử dụng câu lệnh tham số. Việc tham số hóa các câu lệnh giúp cơ sở dữ liệu có thể phân biệt giữa mã và dữ liệu đầu vào. Chính vì thế, nó sẽ dễ dàng chặn lại các dữ liệu không được cung cấp tham số khi chúng muốn xâm nhập.

Cách phòng chống SQL Injection là gì?

Cách phòng chống SQL Injection là gì?

Tham khảo thêm: Heroku là gì? Phân tích các tính năng và ưu nhược điểm

Kết luận SQL Injection là gì?

SQL Injection đã và đang là một hiểm họa tiềm tàng đối với mọi doanh nghiệp. Những tổn thất nó gây ra là không hạn chế, vì thế người dùng phải thật cẩn thận với lỗi tấn công này. Tuy nhiên, bạn không cần quá lo lắng. Chỉ cần nắm rõ những thông tin về SQL Injection là gì cũng như chống lại nó là đã có thể giảm thiểu tỷ lệ bị tấn công rất nhiều rồi. Mong rằng những thông tin vừa được Teky mang đến sẽ giúp bạn hình dung rõ về loại tấn công này và có những phương án phòng bị thích hợp.

The post SQL Injection là gì? 3 cách phòng chống SQL Injection hiệu quả nhất appeared first on TEKY - Học viện sáng tạo công nghệ.



source https://teky.edu.vn/blog/sql-injection-la-gi/

Heroku là gì? Phân tích các tính năng và ưu nhược điểm

Khi muốn triển khai một dự án mã nguồn, việc đưa nó lên website hẳn sẽ rất phiền phức vì người dùng phải chịu trách nhiệm tạo mới hoàn toàn code, máy chủ, webserver… Tuy nhiên, tất cả những rắc rối này sẽ được một nền tảng điện toán đám mây như Heroku giải quyết ổn thỏa. Vậy bạn đã biết Heroku là gì hay chưa? Hãy cùng Teky tìm hiểu ngay lý do tại sao Heroku lại thu hút nhiều người dùng đến như vậy.

Tìm hiểu Heroku là gì?

Heroku là một nền tảng điện toán đám mây được phát triển từ công ty cùng tên. Nó cho phép các doanh nghiệp, cá nhân xây dựng, quản lý và triển khai ứng dụng hiện đại. Mục đích hoạt động của Heroku là rút ngắn và đơn giản hóa các quy trình khi khách hàng muốn đưa ứng dụng của họ ra thị trường. Không cần code thêm, không cần cài đặt máy chủ và cũng không cần để ý đến webserver, khách hàng chỉ cần upload ứng dụng và tiến hành triển khai nó. Heroku tự động thực hiện hầu hết những quy trình cần thiết để đưa vào hoạt động một phần mềm. Việc của khách hàng chỉ là triển khai phần mềm đó và mở rộng, cải tiến thêm.

Heroku hỗ trợ nhiều ngôn ngữ khác nhau

Heroku hỗ trợ nhiều ngôn ngữ khác nhau

Heroku hỗ trợ hầu hết các ngôn ngữ lập trình được sử dụng hiện nay, từ những loại phổ biến như NodeJS, Ruby, Python, PHP, Java, Scala, Clojure, Go, Kotlin… cho đến cả Postgresql database hiếm thấy.

Cả Heroku và các ứng dụng của khách hàng đều được lưu trữ trên Amazon Web Services. Nếu muốn sử dụng đầy đủ các dịch vụ của Heroku, khách hàng cần phải chi trả các khoản phí thường niên. Và tất nhiên giá cả rẻ hơn rất nhiều so với việc bạn xây dựng một website hoàn toàn mới cho phần mềm của mình.

Các tính năng Heroku cung cấp

Heroku mang đến rất nhiều tính năng hữu ích. Cách hoạt động của Heroku dựa trên hai yếu tố: đơn giản và tiện lợi. Chính vì thế, chắc chắn những tính năng này sẽ giúp ích rất nhiều cho hoạt động xây dựng phần mềm của bạn.

Heroku Runtime

Heroku hỗ trợ các smart container để ứng dụng của bạn có thể chạy trong đó. Heroku sẽ thay mặt người dùng quản lý ứng dụng, bao gồm tất cả các hoạt động quan trọng như theo dõi cấu hình, điều phối nhiệm vụ, chuyển đổi dự phòng, ghi nhật ký log, bảo mật dữ liệu…

Heroku Postgres

Tính năng PostgreSQL của Heroku được tin dùng bởi khả năng xử lý mạnh mẽ và nhanh chóng. Các thiết lập được triển khai rất đơn giản, tạo điều kiện nhất mức có thể cho người dùng. Ngoài ra, SQL của Heroku còn được đảm bảo về độ an toàn và tin cậy. Người dùng có thể thoải mái mở rộng quy mô mà không cần lo đến vấn đề bảo mật.

Tính năng nổi bật của Heroku là gì?

Tính năng nổi bật của Heroku là gì?

Scale

Với tính năng Scale, bạn có thể thoải mái mở rộng quy mô chương trình của mình. Scale hoạt động đơn giản và dễ hiểu, cho phép người dùng mở rộng cả chiều ngang lẫn chiều dọc. Bên cạnh đó, Scale còn phù hợp với mọi sản phẩm khác nhau, từ những dự án nhỏ lẻ cho đến các phần mềm phức tạp quy mô doanh nghiệp.

Heroku Redis

Redis của Heroku được yêu thích bởi tốc độ lưu trữ bộ nhớ nhanh đột biến. Tính năng này phù hợp với những dự án lớn cần phải quản lý một lượng dữ liệu khổng lồ.

Add-ons

Add-ons giúp quản lý và nâng cao trải nghiệm sự dụng với các ứng dụng lập trình được tích hợp sẵn như Newrelic, Mongodb, SendGrid, Searchify, Fasty, ClearDB…

Đối tượng nên sử dụng Heroku là gì?

Heroku không giới hạn đối tượng sử dụng. Nhưng có những nhóm đối tượng chính được khuyên dùng Heroku nhiều nhất sẽ bao gồm:

  • Lập trình viên: Đương nhiên một nền tảng điện toán đám mây như Heroku sẽ được sử dụng nhiều nhất bởi các lập trình viên. Heroku có những tác vụ vượt trội giúp đơn giản hóa và rút ngắn các quy trình hoạt động với phần mềm. Vì cũng được tạo ra từ bàn tay của các lập trình viên nên Heroku hoàn toàn thấu hiểu và khắc phục tốt các khó khăn trong khi lập trình một ứng dụng.
  • Giám đốc công nghệ: Một giám đốc công nghệ cần nắm rõ hoạt động của phần mềm ở cả 2 lĩnh vực là xây dựng và kinh doanh. Chính vì thế Heroku sẽ là một công cụ hữu ích giúp quản lý phần mềm một cách dễ dàng. Nó sẽ góp phần rút ngắn con đường từ sản xuất cho đến ứng dụng.
  • Các đội nhóm: Để hoàn thành một dự án về phần mềm cần sự góp mặt của rất nhiều cá nhân với những chức vụ khác nhau. Lúc này, đội nhóm của bạn sẽ cần một nền tảng để có thể hoạt động chung với nhau. Heroku Team chính là phương án phù hợp nhất. Nó cung cấp một môi trường hoạt động nhóm rất thông minh bao gồm các tính năng quản lý, tổ chức, thêm bớt quyền truy cập…
Heroku hỗ trợ cho các hoạt động nhóm

Heroku hỗ trợ cho các hoạt động nhóm

Đặc điểm của Heroku là gì?

Ưu điểm của Heroku là gì?

Cung cấp trải nghiệm ưu việt

Như đã nói ở trên, Heroku được thiết kế từ bàn tay của những lập trình viên. Vì thế chắc chắn rằng nó sẽ hiểu và giải quyết được hết tất cả những vướng mắc thường thấy trong quá trình phát triển một phần mềm. Các thao tác trên Heroku đều diễn ra nhanh chóng và có độ bảo mật an toàn rất cao. Người dùng có thể yên tâm phát triển ứng dụng mà không cần bị phân tán sự chú ý đến những lĩnh vực khác.

Hệ sinh thái dịch vụ đa dạng

Heroku tồn tại như một hệ sinh thái với đủ loại tài nguyên và chức năng khác nhau. Tính đa dạng đầu tiên của nó thể hiện ở kho ngôn ngữ lập trình đồ sộ. Heroku có thể hoạt động trơn tru với tất cả những ngôn ngữ lập trình phổ biến nhất như Nodejs, Ruby, PHP, Python hay Java.

Bên cạnh đó, Heroku còn sở hữu một list Add on vô cùng rộng lớn, bao gồm cả miễn phí và trả phí. Dù vậy, những tính năng này chắc chắn sẽ đem lại lợi ích rất lớn cho người dùng. Bằng hiệu năng mạnh mẽ và tốc độ nhanh chóng, Add on của Heroku sẽ thay bạn xử lý rất nhiều thao tác phức tạp.

Ngoài ra, Heroku còn hỗ trợ làm việc team, cung cấp SQL và Database miễn phí, thông suốt liên kết với Github.

Đặc điểm của Heroku là gì?

Đặc điểm của Heroku là gì?

Hỗ trợ kết nối với salesforce

Phiên bản Heroku Connect cho phép người dùng đồng bộ 2 chiều salesforce. Từ đó bạn có thể dễ dàng đưa ra những phân tích đánh giá khách quan về khách hàng của mình.

Nhược điểm của Heroku là gì?

Không có gì là hoàn hảo và Heroku cũng như vậy. Heroku cho phép sử dụng 550 giờ miễn phí trong một tháng, nếu hơn bắt buộc phải trả phí. Số giờ tối đa bạn có thể sử dụng trong một tháng khi trả phí là 1000 giờ. Nhìn chung, 550 giờ miễn phí vẫn phù hợp với nhiều chương trình vừa và nhỏ. Còn 1000 giờ là vừa vặn cho một blog tiêu chuẩn hoạt động xuyên suốt.

Server của Heroku sẽ tự động chuyển sang trạng thái ngủ nếu sau 2-3 giờ không có người truy cập. Để khắc phục tình trạng này, người dùng phải tự tạo ra traffic cho server của mình. Ngoài ra, bạn cũng có thể thử dùng Pingdom để tiến hành ping trang của mình mọi lúc.

Tham khảo thêm: Nguyên lý SOLID là gì? Cách giải trình SOLID đơn giản và dễ hiểu nhất

Kết luận

Thông quan bài viết trên, chắc hẳn bạn đọc đã nắm rõ khái niệm Heroku là gì rồi. Như ta thấy, Heroku là một nền tảng đám mây với tính đa nhiệm cao. Sử dụng Heroku giúp rút ngắn thời gian phát triển và ứng dụng một chương trình vào thực tế. Nền tảng này vô cùng hữu ích với các nhà lập trình viên, giám đốc công nghệ hay một đội nhóm xây dựng dự án. Heroku giúp tạo dựng tính liên kết giữa nhiều bên liên quan đến nhau, góp phần đơn giản hóa quy trình phát triển một sản phẩm.

Với nhiều lợi ích như vậy, không khó hiểu khi Heroku App lại trở nên vô cùng phổ biến đối với cộng đồng lập trình. Vậy bạn đọc còn chần chừ gì nữa, hay nhanh chóng cài đặt và sử dụng Heroku để trải nghiệm những tính năng ưu việt của nó nhé!

The post Heroku là gì? Phân tích các tính năng và ưu nhược điểm appeared first on TEKY - Học viện sáng tạo công nghệ.



source https://teky.edu.vn/blog/heroku-la-gi/

Nguyên lý SOLID là gì? Cách giải trình SOLID đơn giản và dễ hiểu nhất

Nếu bạn là một nhà lập trình viên hoặc bạn đang công tác trong ngành lập trình thì hẳn sẽ có ít nhất một lần nghe đến cụm từ nguyên lý SOLID. Lập trình cũng như bất kỳ công việc nào khác, cũng sẽ có các nguyên tắc thực hiện để tối ưu hóa hiệu hiệu suất và giảm thiểu rủi ro ở mức cao nhất. Và SOLID chính là nguyên lý được nhiều nhà lập trình viên áp dụng vào trong công việc của mình. Vậy SOLID đại diện cho điều gì? Hãy cùng Teky khám phá trong bài viết sau đây.

Nguồn gốc của nguyên lý SOLID là gì?

Lập trình hướng đối tượng còn được gọi là Object Oriented Programming (OOP). OOP là phương thức lập trình cho phép lập trình viên sử dụng các code để trừu tượng hóa một đối tượng bất kỳ. Quá trình này sẽ giúp tạo ra các đối tượng nhất định. Đây là một trong những phương thức lập trình được sử dụng phổ biến nhất hiện nay. Nó phù hợp với hầu hết các loại ngôn ngữ lập trình khác nhau.

Nguyên lý SOLID có nguồn gốc như thế nào?

Nguyên lý SOLID có nguồn gốc như thế nào?

Hiệu năng của OOP được quyết định dựa trên 4 yếu tố khác nhau:

  • Tính trừu tượng (abstraction): Bằng việc sử dụng các lớp trừu tượng, người dùng sẽ tạo nên mô hình của các đối tượng trong thế giới thực.
  • Tính đóng gói (Encapsulation): Yếu tố này là để chỉ trường hợp các thực thể của lớp trừu tượng sở hữu những giá trị thuộc tính độc lập.
  • Tính kế thừa (Inheritance): Yếu tố này cho phép các đối tượng được phép kế thừa và mở rộng lẫn nhau.
  • Tính đa hình (Polymorphism): Tùy theo từng loại đối tượng khác nhau, ta có thể thực hiện một quy trình bằng nhiều cách riêng biệt.

Vậy là ta đã nắm được 4 yếu tố cần thiết để một lập trình OOP có thể phát huy hết tác dụng vốn có của nó. Vậy SOLID thì liên quan gì đến OOP? Nguyên tắc SOLID được hiểu như một cẩm nang hướng dẫn bạn sử dụng OOP thật hiệu quả. Tuân thủ theo các nguyên tắc SOLID giúp người dùng phối hợp được 4 tính năng của OOP với nhau thật nhuần nguyễn.

Khái niệm của nguyên lý SOLID

Nguyên lý SOLID nghĩa là gì? SOLID trong lập trình vốn là bộ 5 nguyên tắc được phát triển bởi 2 tác giả Bob Martin và Michael Feathers. Những hướng dẫn này sẽ giúp lập trình viên tạo ra được những đoạn code dễ đọc, dễ hiểu, dễ maintain. SOLID là viết tắt của 5 cụm từ sau:

  • Single Responsibility Principle (SRP)
  • Open/Closed Principle (OCP)
  • Liskov Substitution Principle (LSP)
  • Interface Segregation Principle (ISP)
  • Dependency Inversion Principle (DIP)

Nguyên tắc trách nhiệm đơn lẻ (Single Responsibility Principle)

Nguyên lý SOLID này cho rằng, mỗi class chỉ nên thực hiện một trách nhiệm duy nhất. Người dùng không nên cho một class kiêm nhiệm nhiều hoạt động cùng lúc. Thứ nhất, việc phải chia thời gian và công sức cho nhiều công việc sẽ làm giảm hiệu suất hoạt động. Hơn nữa nó còn mất thời gian khi phải chuyển dịch từ công việc này sang công việc khác. Ngoài ra, việc chạy đồng thời nhiều quy trình một lúc cũng rất dễ xảy ra lỗi.

Nguyên tắc trách nhiệm đơn lẻ

Nguyên tắc trách nhiệm đơn lẻ

Ví dụ, bạn có một lớp A. Bạn cho lớp A chạy cả công việc X và công việc Y. Có thể thời gian đầu bạn sẽ thấy cách làm này tiết kiệm thời gian tạo các lớp và gán đối tượng hơn. Tuy nhiên, khi số lượng công việc tăng lên, liệu rằng bạn có tiếp tục cho lớp A chạy thêm công việc Z, W, J… xuất hiện phía sau hay không? Mỗi lần có thêm một công việc, lập trình viên sẽ phải vào lại lớp A và chỉnh sửa toàn bộ hệ thống. Như vậy rất mất thời gian và còn dễ xảy ra sai sót trong quá trình sửa chữa. Chưa kể đến việc khi một trong các công việc cần tạm dừng, người dùng cũng phải lật lại toàn bộ hệ thống của A để làm lại.

Vậy nên, các tốt nhất để hạn chế toàn bộ những rủi ro như vậy là cho mỗi lớp một chức năng riêng biệt. Không nên gộp nhiều hoạt động vào cùng một lớp.

Nguyên tắc đóng mở (The Open-Closed Principle)

Nguyên tắc đóng mở được dùng để mô tả hoạt động kế thừa của các lớp. Ví dụ, với một nhân viên công tác tại công ty, anh ta đang làm việc rất tốt, vì thế ngoài lương cứng anh ta sẽ có thêm một khoản tiền thưởng. Với trường hợp như vậy, lựa chọn của bạn là lập thêm một lớp mới cho khoản thưởng (dựa trên nguyên tắc đơn lẻ phía trên) đúng hay không? Điều này khả thi nhưng không hiệu quả. Nếu như anh ta có thêm một khoản thưởng nữa thì sao, khi ấy chúng ta lại phải quay lại và sửa lớp đại diện cho tiền thưởng ư? Chắc chắn là không nên làm như vậy. Lập trình hạn chế nhất là chỉnh sửa bởi nó đem lại rủi ro về sai phạm là rất cao.

Vậy nên trong trường hợp này, bạn nên sử dụng một lớp kế thừa. Nguyên lý SOLID này cho phép đóng lớp tiền lương và mở lớp tiền thường. Tức là lớp chính tiền lương cố định sẽ không bị chịu bất kỳ ảnh hưởng nào cả. Còn lớp thưởng sẽ nhận được sự kế thừa của lớp lương để bổ sung các thông tin cần thiết. Quy trình này kéo dài đến vô hạn các lớp sau. Đây là phương án rất an toàn và thiện thiện, vừa giúp phát triển code mới mà lại không lo làm hỏng code cũ.

SOLID Principles là gì?

SOLID Principles là gì?

Nguyên tắc phân vùng Liskov (The Liskov Substitution Principle)

Phân vùng Liskov là một trong những phần quan trọng của nguyên lý SOLID. Nguyên tắc này giúp giải quyết các lỗi thường xảy ra trong lập trình.

Ví dụ: Có một đoạn mã mô tả những loài chim biết bay. Khi gặp một loài chim không biết bay như chim cánh cụt, nó sẽ được gắn với NoFlyException. Tuy nhiên, nếu chim cánh cụt lại tiếp tục xuất hiện ở vòng lặp main, chương trình sẽ tự động quăng Exception. Đó chính là bản chất của nguyên tắc phân vùng.

Để giải quyết điều này, ta cần phải tách lớp chim cánh cụt ra một interface riêng. Nguyên tắc này xuất hiện là để nhắc nhở lập trình viên chú ý đến tính sai phạm của nội dung các đoạn mã lập trình. Nếu không khi để đến lúc hoàn thành mới phát hiện ra lỗi thì sửa lại rất khó khăn và mất thời gian.

Nguyên tắc phân tách giao diện (Interface Segregation Principle)

Trường hợp thực tế của nguyên tắc này như sau: Bạn sở hữu một trung tâm cung cấp các gói du lịch bao gồm những sản phẩm như: gói 1, gói 2, gói 3… Các khách hàng cùng sử dụng một gói sẽ được cho vào một interface chung. Thời gian ban đầu, bạn thấy cách quản lý này rất hợp lý rồi. Tuy nhiên, bỗng có những khách hàng muốn sử dụng một gói bao gồm một vài dịch vụ trong gói 1 cùng một số dịch vụ khác trong gói 2. Thế là bỗng dưng có những gói mới được phát sinh. Càng ngày có càng nhiều khách hàng yêu cầu gói riêng như vậy. Nếu ta cứ viết chung vào trong interface gói du lịch như vậy thì sẽ phải implement nhiều hàm không cần thiết.

Ta sẽ giải quyết trường hợp này bằng nguyên tắc phân tách giao diện. Hãy tách các dịch vụ thành các interface cụ thể khác nhau. Khi đó, khách hàng yêu cầu dịch vụ nào, ta gộp dịch vụ đó thành một gói mới cho khách. Nguyên lý SOLID này giúp bạn dễ dàng mở rộng quy mô một cách đơn giản.

Áp dụng SOLID để lập trình hiệu quả

Áp dụng SOLID để lập trình hiệu quả

Nguyên tắc đảo ngược phụ thuộc (Dependency Inversion Principle)

Nội dung của nguyên lý SOLID này nói về việc các thành phần cụ thể nên phụ thuộc vào các thành phần trừu tượng. Lý do là vì những thành phần trừu tượng thường ít bị thay đổi. Ngược lại, các thành phần cụ thể tuy khác nhau nhưng luôn mang một đặc tính chung để cấu thành thành phần trừu tượng. Việc giữ tính phụ thuộc này giúp chương trình thích ứng tốt với các biến đổi liên tục.

Kết luận về nguyên lý SOLID

Với bài giải thích vừa rồi của Teky, hẳn bạn đọc đã hiểu rõ 5 nguyên lý SOLID dành cho OOP. Tuy nhiên hiểu là một chuyện mà vận dụng nhuần nhuyễn được lại là chuyện khác. Lời khuyên của chúng tôi là hãy ghi nhớ thật rõ ràng và thường xuyên áp dụng các nguyên tắc này vào trong công việc của bạn. Chúc bạn sớm ngày chinh phục được những nguyên lý SOLID!

Tham khảo thêm: Windows Terminal là gì? Hướng dẫn cách cài đặt nhanh chóng nhất

The post Nguyên lý SOLID là gì? Cách giải trình SOLID đơn giản và dễ hiểu nhất appeared first on TEKY - Học viện sáng tạo công nghệ.



source https://teky.edu.vn/blog/nguyen-ly-solid/

Windows Terminal là gì? Hướng dẫn cách cài đặt nhanh chóng nhất

Nếu bạn là một người phải thường xuyên làm việc với các phần mềm máy tính và cần dùng nhiều lệnh điều khiển thông minh thì hẳn sẽ rất quen thuộc với cụm từ “Terminal”. Một trong những phiên bản Terminal được phát triển hoàn thiện nhất hiện nay phải kể đến Windows Terminal. Đây là một Terminal App gây ấn tượng mạnh mẽ với hiệu năng vô cùng cao, thiết kế hiện đại, cách sử dụng đơn giản. Nếu bạn vẫn chưa biết Windows Terminal là gì và cách cài đặt như thế nào, mời theo dõi bài viết dưới đây từ Teky.

Terminals là gì?

Terminals được hiểu như một ứng dụng điều khiển máy tính của bạn thông qua các mã nhắc lệnh. Người ta sử dụng phần mềm Terminals vì khả năng đa nhiệm của nó. Terminals có thể thay chủ nhân máy tính xử lý rất nhiều tác vụ thông dụng, rút ngắn thời gian làm việc trên máy tính.

Ban đầu, Terminals ra đời dưới dạng những câu lệnh cơ bản. Tuy việc dùng câu lệnh có thể rút ngắn thời gian trong nhiều trường hợp nhưng càng ngày hệ thống này lại càng lộ ra nhiều điều bất cập. Khi người dùng muốn xử lý những hoạt động nâng cao hơn thì đồng nghĩa với việc phải kết hợp nhiều câu lệnh với nhau. Ngoài ra, bạn cũng sẽ phải nhớ hết tất cả các câu lệnh nếu muốn nhanh chóng dùng nó để thực hiện các tác vụ.

Terminals dùng để làm gì?

Terminals dùng để làm gì?

Để khắc phục điều này, giờ đến Terminals đã được các nhà phát triển cải tiến thành dạng kéo và thả. Các câu lệnh cơ bản đã được lập trình sẵn hoặc bạn cũng có thể tạo các câu lệnh mới tùy thuộc theo nhu cầu sử dụng của bản thân. Thông qua các cú click chuột tại các vùng có sẵn trên giao diện, người dùng sẽ nhanh chóng khởi động được tác vụ mà mình mong muốn.

Hiện nay, Terminals được phát triển bởi cả 3 hệ điều hành lớn nhất bao gồm: MAC, Linux và cả Windows. Mỗi phiên bản Terminals lại có những ưu và nhược điểm khác nhau. Tuy vậy không thể phủ nhận sức hút lớn nhất luôn thuộc về Windows Terminal.

Windows Terminal là gì?

Windows Terminal là một ứng dụng mã nguồn mở. Nó cho phép người dùng sử dụng các tài nguyên được nhà phát triển cài đặt sẵn và nâng cấp thêm theo nhu cầu sử dụng của bản thân. Terminal Windows sẽ cung cấp một bảng điều khiển với nhiều shell khác nhau ví dụ như Windows command prompt, PowerShell, các shell Linux được cài đặt trong WSL hay thậm chí là những shell do người dùng tự phát triển.

Terminal Windows bao gồm chứ không thay thế được Windows command prompt và PowerShell. Mục đích của nó là đem đến cho người dùng một trải nghiệm hoàn toàn mới. Việc sử dụng các shell đa dạng hơn cho phép bạn tiếp cận được với nhiều tính năng hơn.

Terminal Windows mang đến nhiều chức năng hơn chỉ là một bảng hệ thống kết nối. Nó cung cấp cả những tài nguyên thông dụng như: font chữ, các ký tự hiếm, icon, phần mềm xử lý tác vụ…

Lợi ích mà Windows Terminal mang đến

Trải nghiệm đa nhiệm

Phần mềm này mang đến những trải nghiệm đa nhiệm

Phần mềm này mang đến những trải nghiệm đa nhiệm

Có thể nói đây là khả năng mà mọi người dùng mong chờ nhất khi tìm đến một Terminal App. Và đương nhiên Terminal Windows 10 đã hoàn thành xuất sắc điều này. Khi sử dụng Terminal Windows, bạn có thể mở một số lượng tab bất kỳ. Mỗi tab đều được trang bị đầy đủ kết nối đến hệ thống shell tương ứng mà bạn chọn.

Quá trình này cho phép người dùng thực hiện những dự án cần sự phối hợp từ nhiều phần mềm khác nhau. Hoạt động chuyển giao được Terminal Windows đảm bảo luôn mượt mà và trơn tru. Các tác vụ được thông suốt với nhau một cách thông minh. Giờ đây người dùng không phải bật, tắt liên tục để chuyển giao giữa các ứng dụng với nhau nữa. Tính đa nhiệm của Terminal Windows sẽ cho phép bạn làm tất cả mọi thứ trong cùng một lúc.

Cải thiện thẩm mỹ

Văn bản luôn là đối tượng được nhiều người sử dụng máy tính tiếp xúc nhất. Một hệ điều hành mang đến giao diện văn bản đẹp mắt và có tính thẩm mỹ cao chắc chắn sẽ giúp tăng hiệu suất làm việc. Nắm được nhu cầu này của khách hàng, Terminal Windows đã cho ra mắt công cụ kết xuất văn bản tăng tốc dựa trên DirectWrite/ DirectX.

Với công cụ này, người dùng có thể thoải mái sử dụng các ký tự, glyphs và các biểu tượng dựa trên phông chữ có sẵn tại PC của bạn. Điểm đặc biệt khiến công cụ này trở nên hữu ích hơn là nó có thể xử lý tốt những đối tượng dễ gây lỗi font như CJK chữ tượng hình, biểu tượng cảm xúc, các biểu tượng powerline, icon, programming ligatures… Bên cạnh đó, tốc độ kết xuất văn bản cũng được cải thiện đáng kể so với phiên bản cũ Console/s GID.

Ngoài việc sử dụng kho phông chữ có sẵn trên PC của bạn, người dùng cũng có thể dùng cả những phông chữ được Terminal Windows mang đến. Terminal Windows hoạt động dựa trên mã nguồn mở, vì thế tài nguyên nó mang đến cũng rất đa dạng và phong phú. Chắc chắn điều này sẽ giúp ích cho bạn rất nhiều.

Những cách cài đặt Windows Terminal đơn giản nhất

Cài đặt Windows Terminal bằng Microsoft Store

Cài đặt Windows Terminal đơn giản bằng Microsoft Store

Cài đặt Windows Terminal đơn giản bằng Microsoft Store

Cách đơn giản và nhanh chóng nhất để download về Windows Terminal là truy cập Microsoft Store – nhà phát hành phần mềm này.

  • Đầu tiên, bạn hãy truy cập vào đường link của Microsoft Store TẠI ĐÂY và tiến hành tải Terminal for Windows xuống.
  • Sau đó, hãy khởi chạy tệp nén bằng cách nhấn vào “Launch”. Phần mềm sẽ được cài đặt thành công sau một vài phút.
  • Để có được trải nghiệm đầy đủ nhất, bạn nên chạy Terminal Windows ở chế độ Administrator.

Cài đặt Terminal for Windows bằng GitHub

Nếu muốn sử dụng các bản build của Terminal Windows thì bạn có thể thử tải nó từ các nền tảng khác. Ưu điểm là Terminal Windows của bạn sẽ có thêm 1 vài chức năng được nâng cấp so với bản truyền thống. Còn nhược điểm là sẽ dễ giật lag, thậm chí còn kèm theo virus nếu bạn ấn vào các đường link xấu.

  • Để bắt đầu tải Terminal Windows qua GitHub, bạn hãy truy cập vào đường link TẠI ĐÂY.
  • Nếu đã quen sử dụng GitHub, bạn cũng có thể truy cập vào trang chủ và tìm kiếm từ khóa Windows Terminal. Hãy chọn phiên bản mới nhất và tiến hành tải xuống.
  • Lúc này, gói msixbundle đã được tải xuống PC của bạn.
  • Khởi chạy tệp nén như thông thường bằng nút Install. Bên cạnh Install có mục Launch when ready, hãy tích vào nếu bạn muốn phần mềm khởi chạy luôn sau khi cài đặt xong.

Cài đặt Windows Terminal bằng Chocolatey

Nếu bạn muốn sử dụng bản build mà lại e ngại các đường link xấu thì có thể thử sử dụng Chocolatey. Chocolatey là một công cụ cho phép cài đặt bên thứ ba vào trong hệ điều hành Windows 10.

  • Đầu tiên, hãy chắc chắn là PC của bạn đã có Chocolatey. Sau đó, tiến hành mở Windows PowerShell lên.
  • Sao chép lệnh sau vào cửa sổ PowerShell rồi nhấn Enter: Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString(‘https://ift.tt/2YwISoN)
  • Tiếp theo, để dùng Chocolatey, ta sử dụng lệnh: choco install microsoft-windows-terminal
  • Nhấn vào “Y” cho bất kỳ yêu cầu “Yes to all” nào.
  • Sau vài phút cài đặt, màn hình sẽ hiện thông báo đã thành công.
Đây là một trong những App đáng trải nghiệm nhất

Đây là một trong những App đáng trải nghiệm nhất

Kết luận

Với hướng dẫn cài đặt cũng như các thông tin cơ bản về Windows Terminal mà Teky đã cung cấp bên trên, hẳn là bạn đọc đã có thể nắm chắc được cách sử dụng ứng dụng này rồi. Không khó hiểu khi Windows Terminal lại phổ biến và được sử dụng rộng rãi đến như vậy. Những lợi ích mà phần mềm này mang lại là rất nhiều, thậm chí còn không hạn chế nếu bạn biết cách ứng dụng tốt. Bên cạnh đó, bạn nên lưu ý rằng Microsoft sẽ update các bản Terminal Windows liên tục. Vì thế hãy kiểm tra thường xuyên để chắc chắn rằng bản của mình là mới nhất nhé. Chúc bạn có thể ứng dụng được phần mềm này thật hiệu quả vào trong công việc của bản thân!

Tham khảo thêm: Static trong Java là gì? Những thông tin cơ bản nhất về Static 2021

The post Windows Terminal là gì? Hướng dẫn cách cài đặt nhanh chóng nhất appeared first on TEKY - Học viện sáng tạo công nghệ.



source https://teky.edu.vn/blog/windows-terminal/

Static trong Java là gì? Những thông tin cơ bản nhất về Static 2021

Static là một trong những từ khóa quan trọng của Java. Để lập trình tốt, bạn cần nắm chắc khái niệm của từ khóa Static cũng như các dạng thể hiện và cách sử dụng của nó. Static không gây khó khăn cho người dùng nhưng lại đòi hỏi bạn phải thấu hiểu hoàn toàn khái niệm của nó để có thể vận dụng tốt. Với bài viết sau đây, Teky giúp bạn tìm hiểu về các thông tin và nội dung xung quanh từ khóa Static trong Java.

Khái niệm của Static trong Java là gì?

Đầu tiên, ta sẽ tìm hiểu đáp án cho câu hỏi, Static là gì? Về cơ bản, từ khóa Static được dùng để quản lý bộ nhớ một cách có hệ thống hơn. Tuy nhiên, Static không thể quản lý bộ nhớ của đối tượng (hay còn gọi là thể hiện lớp) mà chỉ quản lý bộ nhớ của lớp thôi.

Static có thể được áp dụng với các biến, các phương thức, các khối hoặc các lớp lồng nhau. Chi tiết về cách sử dụng Static như sau:

Tìm hiểu về Static trong Java

Tìm hiểu về Static trong Java

  • Biến Static (Static Variables): Ta có thể thấy rằng, Static dịch ra là Tĩnh. Chính vì vậy, biến Static hay được gọi là biến tĩnh khi ta khai báo chúng.
  • Phước thức Static (Static Methods): Khi người dùng tiến hành khai báo một phương thức dưới dạng Static thì nó được gọi là phương thức Static.
  • Khối Static (Static Blocks): Khi muốn khởi tạo các thành viên thuộc nhóm dữ liệu Static, ta sẽ tiến hành sử dụng khối Static.
  • Lớp Static (Static Class): Người dùng có thể đặt các lớp lồng nhau thành dạng Static. Các lớp lồng nhau này có thể được truy cập mà không cần đến object của các lớp bên ngoài.
  • Import Static: Ta được phép tiến hành Import các Static Member của một lớp hoặc một package vào một lớp khác bằng phương thức sử dụng từ khóa Import với các phiên bản Java từ 5 trở lên. Sau đó, người dùng có thể vận dụng Import Static đó như một thành viên của lớp.

Cấu trúc hoạt động của biến Static trong Java

Biến Static có thể dùng để chỉ thuộc tính chung của một nhóm đối tượng chứ không chỉ một đối tượng riêng lẻ. Ví dụ, ta dùng biến Static để khai báo tên công ty của một nhóm nhân viên hoặc tên trường đại học của một nhóm sinh viên. Trong khu vực class, biến Static chỉ nhận bộ nhớ được một lần duy nhất tại thời điểm class loading.

Biến Static trong Java còn có thể được khai báo đồng thời cùng các từ khóa Static khác. Khi đó, nó được gọi là class variable. Để tiết kiệm bộ nhớ hơn, biến Static được sử dụng như một thuộc tính chung của tất cả các objects (hoặc instances) trong lớp đó. Nó có thể được gọi khi chưa cần tạo đối tượng nào.

Các bước hoạt động của Static trong lớp

Các bước hoạt động của Static trong lớp

Nếu một biến vừa được khai báo Static lại vừa được khai báo Final trong Java thì nó được xem như một hằng số. Khi giải trình một hằng số, người dùng cần viết hoa chữ cái đầu và phân cách bằng dấu (_) khi có nhiều từ.

Giá trị mặc định dùng để khai báo biến Static và non-Static là tương đồng. Cụ thể:

  • Giá trị mặc định của primitive integers (long, int, short, byte) là 0
  • Giá trị mặc định của primitive floating points (double, float) là 0.0
  • Giá trị mặc định của boolean là false
  • Giá trị mặc định của object references là null

Ví dụ về biến Static Class trong Java

Ta có 300 sinh viên trường đại học TMU, college được dùng để chỉ thuộc tính chung của các đối tượng. Khi sử dụng Static, ta sẽ chỉ cần cấp phát bộ nhớ cho tất cả các đối tượng trong 1 lần duy nhất.

// Chương trình Java ví dụ về biến static

class Student{

  int id; //instance variable

  String name;

  static String college =”TMU”; //static variable

  //constructor

  Student(int i, String n){

    id = i;

    name = n;

  }

  // Phương thức để hiển thị thông tin sinh viên

  void display(){

    System.out.println(id+” “+name+” “+college);

  }

}

// Tạo class khác để thực hiện hiển thị dữ liệu

public class TestStaticVariable1{

  public static void main(String args[]){

    Student s1 = new Student(17,”Hải”);

    Student s2 = new Student(18,”Doanh”);

    // Chúng ta có thể thay đổi trường đại học của tất cả sv bằng 1 dòng code

    //Student.college=”TMU – ICT Hà Nội”;

    s1.display();

    s2.display();

  }

}

Với nội dung như trê, ta thu được kết quả là:

17 Hải TMU

18 Doanh TMU

Ví dụ về Static trong Java

Ví dụ về Static trong Java

Lưu ý về phương thức Static Java

Đặc điểm của phương thức Static trong Java

Như đã nói ở trên, một phương thức được gọi là Static khi ta khai báo nó với biến Static. Phương thức Static bao gồm một số đặc điểm rất riêng biệt:

  • Phương thức Static thuộc một lớp nhưng không phải đối tượng của lớp.
  • Người dùng có thể gọi phương thức Static mà không cần phải khởi tạo trước một lớp.
  • Biến Static có thể được truy cập bởi phương thức Static để thay đổi giá trị của nó.
  • Phương thức Static không thể gọi được phương thức non-Static, nó chỉ có thể gọi được phương thức dạng khác. Ngoài ra, phương thức Static cũng không thể truy cập được data của phương thức non-Static.
  • Ta không thể dùng phương thức Static với 2 từ khóa this và super.
  • Bản chất của quá trình đè dựa trên hoạt động gán động khi chương trình đang chạy hoặc gán tĩnh tại thời gian biên dịch. Chính vì thế, người dùng không thể ghi đè phương thức trong Java. Phương thức tĩnh không có ràng buộc với thực thể của class nên cũng không thể ghi đè nó.
Đặc điểm của Static trong Java

Đặc điểm của Static trong Java

Trường hợp nên sử dụng phương thức Static

Có những trường hợp riêng để sử dụng phương thức Static. Người dùng nên cân nhắc các yếu tố sao cho phương thức Static phát huy hiệu quả ở mức cao nhất và tránh được rủi ro.

Một trong những trường hợp phổ biến nhất để sử dụng từ khóa Static trong Java cho một phương thức là khi phương thức ấy không bị phụ thuộc vào trạng thái của một đối tượng bất kỳ. Nói dễ hiểu hơn tức là phương thức không cần dùng đến dữ liệu thành viên. Mọi thứ sẽ được truyền đi dưới dạng tham số.

Bạn có thể ứng dụng Static Method như một phương thức tiện ích bởi nó cho phép người dùng truy cập trực tiếp bằng tên lớp mà không cần bất cứ thể hiện nào. Ví dụ phổ biến nhất của trường hợp này chính là lớp java.lang.Math.

Và cuối cùng, người ta cũng sẽ sử dụng phương thức Static trong trường hợp các Design Pattern cần truy cập global như Singleton pattern, Factory pattern…

Ví dụ về phương thức Static trong Java

Ví dụ: Website gpcoder.com hiện sở hữu rất nhiều bài viết. Mỗi bài viết cần phải có địa chỉ của website ở cuối. Tất nhiên là các địa chỉ này đều giống nhau và có nhiều lớp cần sử dụng. Để giảm thiểu lưu trữ bộ nhớ và dễ dàng chia sẻ khi sử dụng ở các lớp khác, người dùng nên áp dụng từ khóa Static như sau:

public class UsingStaticExample {

    private String subject;

    UsingStaticExample (String subject) {

        this.subject = subject;

    }

    public void print() {

        System.out.println(“Subject = ” + subject);

        System.out.println(“Website = ” + MyWebsite.WEBSITE);

    }

    public static void changeWebsite(String website) {

        MyWebsite.WEBSITE = website;

    }

    public static void main(String[] args) {

        UsingStaticExample ex1 = new UsingStaticExample(“Core Java”);

        ex1.changeWebsite(“abc.com”);

        ex1.print();

        System.out.println(“—-“);

        UsingStaticExample.changeWebsite(“https://ift.tt/3nsB3zF);

        ex1.print();

    }

}

Từ đó, ta có kết quả thu được là:

Subject = Core Java

Website = abc.com

—-

Subject = Core Java

Website = https://gpcoder.com

Kết luận

Với bài viết trên, Teky đã giúp bạn đọc hiểu thêm một số thông tin cơ bản xung quanh biến và phương thức Static trong Java. Thực ra dùng Static không hề khó nếu bạn nắm rõ khái niệm và cách thức hoạt động của nó. Static hoạt động rất tốt trong trường hợp người dùng muốn tiết kiệm bộ nhớ và giảm tải các quy trình trùng lặp với nhau. Tuy nhiên, hãy cân nhắc các trường hợp nên sử dụng Static như chúng tôi đã gợi ý. Việc quá lạm dụng Static ngược lại sẽ gây tốn thời gian và rắc rối hơn.

Cảm ơn bạn đọc đã theo dõi bài viết về Static trong Java trong Java của chúng tôi. Đừng quên rằng Teky còn rất nhiều bài viết giải mã về lập trình – IT rất hấp dẫn.

Tham khảo ngay thêm: Z-index trong CSS là gì? Ưu điểm của chúng là gì?

The post Static trong Java là gì? Những thông tin cơ bản nhất về Static 2021 appeared first on TEKY - Học viện sáng tạo công nghệ.



source https://teky.edu.vn/blog/static-trong-java/