Thứ Bảy, 23 tháng 11, 2019

PHP hay NodeJS tốt hơn cho Lập trình Back end

PHP hay NodeJS tốt hơn cho Lập trình Back end

PHP hay NodeJS tốt hơn cho Lập trình Back end


Cả PHP NodeJS đều là ngôn ngữ mạnh mẽ sử dụng để lập trình web.



Cả hai đều cùng một loại ngôn ngữ kịch bản, nhưng tính năng của họ là hoàn toàn khác biệt.



Không có nghi ngờ gì khi nói PHP được các lập trình viên sử dụng nhiều nhất trong lập trình web, 79% là tỷ lệ sử dụng PHP trong lập trình phía máy chủ (theo W3tech)



Tuy nhiên, Node.js ra đời là bước tiến của Javascript, nó làm cho có thể sử dụng Javascript ở phía Back end (thay vì chỉ Front end như trước đây).



Trước khi biết được PHP hay NodeJS tốt hơn cho lập trình backend, chúng ta hãy cùng xem lại một lượt về PHP và NodeJS là gì nhé.



PHP là gì?



PHP: Hypertext Preprocessor là một ngôn ngữ lập trình được thiết kế để lập trình web.


Ban đầu, PHP được tạo ra bởi Ramus Lerdorf vào năm 1994 và cũng không biết từ bao giờ đã được dùng như là sự lựa chọn hàng đầu của các hệ thống quản lý nội dung (CMS) như: Wordpress, Joomla, Drupal, Magento, Wix...



Node.js là gì?




NodeJS là một dự án mã nguồn mở, đa nền tảng, là môi trường thực thi Javascript, được xây dựng trên Chrome's V8 Javascript engine.

NodeJS cho phép thực thi Javascript bên ngoài trình duyệt.



Nó đã được tạo ra trong năm 2009 và đến với chính lợi thế về sự phổ biến của Javascript, NodeJS cho phép lập trình không đồng bộ.



Mặc dù tỷ lệ trang web được xây dựng với Node.js là tương đối thấp (0,4%). Nhưng vì Javascript quá phổ biến, và mọi lập trình viên Javascript sẽ mất ít thời gian hơn để có thể Lập trình Backend.



Thế nên NodeJS cũng theo đó có sức ảnh hưởng trong lĩnh vực lập trình Web.



PHP khác NodeJS như thế nào?



Môi trường thực thi:


Trong khi cả PHP và NodeJS đều có thể trực tiếp nhúng vào HTML, cả hai đều cần một trình thông dịch để chạy.


PHP từ lâu đã có thể dễ dàng cài đặt và sử dụng trên phía máy chủ, và là sức mạnh của các Zend engine.

Node.js là một môi trường chạy cho Javascript trên máy chủ bên được hỗ trợ bởi Google’s V8 JavaScript engine.

Tính đơn giản:



PHP dễ sử dụng hơn NodeJS khá là nhiều. Khi thiết lập một máy chủ, tất cả bạn cần là một tập tin '.php' với một số code HTML bọc vào và ném nó lên trình duyệt. Xong!


Một máy chủ web như chính MySQL với PHP đã được cài đặt sẽ thông dịch file và hiển thị kết quả lên trên trình duyệt.



Trong khi đó, thiết lập một máy chủ Node.js, thường không khó khăn, nhưng lại yêu cầu nhiều dòng mã hơn, và cần sự hiểu biết cơ bản của về các làm việc của clousure và callback.


Tính đồng bộ:




PHP đồng bộ, nhưng có một số APIs mà cư xử một cách không đồng bộ. Nó sử dụng mutil-threaded blocking I/O để thực hiện nhiều việc để chạy song song với nhau.


Node.js cho phép lập trình không đồng bộ, có nghĩa là các ngôn ngữ cơ chạy qua toàn bộ mã trong một lần và không đợi một chức năng để return.


Nó sử dụng chế độ thực thi event-driven non blocking I/O. Các dòng mã dưới function sẽ thực hiện và các function cũng được thực hiện và sẽ trả lại đầu ra sau khi thực hiện và vì vậy, nó làm cho Node.js nhanh.


Tính Module:




PHP sử dụng module cài đặt như PEAR ( Framework và hệ thống phân phối cho các thành phần tái sử dụng của PHP.)

Node.js đi kèm với một hệ thống quản lý package gọi là NPM (Node Package Manager).



Khả năng mở rộng:




PHP hỗ trợ trên hầu hết các hệ thống nội dung như (như Wordpess, Joomla, Drupal), mà làm cho nó một thường lựa chọn như một công cụ để xây dựng website nội dung hay một trang web thương mại điện tử.


Ngược lại, Node.js là một công cụ hiệu quả để tạo ra giải pháp với rất nhiều I/O hoạt động. Nó cũng có thể mổ rộng Node trên mutil-core systems, tuy nhiên, bạn sẽ cần nhiều công sức hơn.


Web Server:



PHP chạy trên Apache Web Server. Nó cũng có thể chạy trên IIS Web Server trong trường hợp của một số máy Windows. NPM không cần một Web Server, nó chạy trên môi trường thực thi của riêng nó.

Hiệu suất:



Mặc dù Node.js luôn luôn được đánh giá là có tốc độ cao bởi vì nó cho phép lập trình không đồng bộ.


Nhưng, PHP cũng đã tiến hóa theo hướng này. Như vậy, với thư viện như ReactPHP, nó đã trở thành phiên bản để được sử dụng trong lập trình hướng sự kiện tốt hơn.



Tuy nhiên, bạn sẽ vẫn thấy rằng Nodejs nhanh hơn rất nhiều so với PHP, lý do là:

  • Tốc Độ của V8 Engine
  • Liên tục kết nối máy Chủ
  • Callback functions xử lý nhiều yêu cầu cùng một lúc.


Tại sao bạn phải sử dụng PHP hay NodeJS?




Cả hai đều là công nghệ dành cho lập trình Back end, nhưng Node.js có thể cung cấp một lợi thế nếu bạn thích một JavaScript toàn năng.



Nếu bạn đang cố gắng để chọn giữa PHP và NodeJS để lập trình Backend thì hãy cùng xem một chút, khi nào nên sử dụng 2 công nghệ này.



Khi nào nên sử dụng PHP?




Máy chủ trung tâm: Trong trường hợp chúng ta không có kế hoạch mở rộng ứng dụng của chúng ta qua nhiều máy chủ, chúng ta có thể sử dụng LAMP stack (Linux, Apache, MySQL và PHP). Điều này có thể thay đổi tùy theo yêu cầu của dự án và sức tăng trưởng.

Di động: PHP là một ngôn ngữ rất di động. Web hosting chi phí thấp và sự sẵn sàng của các máy chủ. PHP có thể chạy trên hầu như bất kỳ nền tảng mà có Apache, IIS và cơ sở dữ liệu.




Khi nào nên sử dụng Node.js?




Cùng một ngôn ngữ trong Stack : Node.js sẽ là lựa chọn đúng đắn để sử dụng nếu dự án liên quan tới phần mềm stacks như có MEAN stack (MongoDB, ExpressJs, Ajax, NodeJS), website dạng single page, hay kết hợp với công nghệ front end như Angular, React. Điều này làm bạn dễ dàng nắm bắt hơn, bởi bạn đang sử dụng một ngôn ngữ trên toàn hệ thống.


Dữ Liệu thời gian thực: Node.js là lựa chọn tuyệt vời cho các ứng dụng cần dữ liệu thời gian thực. Tuy nhiên, mình sẽ có hoài nghi về sử dụng Node.js cho các ứng dụng tài chính vì Javascript chính nó là không an toàn khi nói đến những con số như tất cả mọi thứ là int hay float...


Tốc độ: Node.js nhanh hơn nhiều so với PHP khi nói đến tốc độ thực thi, nếu tốc độ là những gì các bạn cần để sử dụng như Game nhiều người chơi, ứng dụng chat thì Node.js là một sự lựa chọn tuyệt vời hơn cho bạn.


Bạn chọn PHP hay NodeJS cho lập trình Back end?



Mặc dù cuộc tranh luận giữa Node.js hay PHP có vẻ như không còn mới. Hãy nhớ rằng, điều quan trọng là bạn lựa chọn như thế nào.


Chọn làm giải pháp tốt nhất thì nên chọn công nghệ phù hợp nhất, còn chọn giải pháp tàm tạm nhưng công nghệ bạn quen thuộc thì cứ thế mà triển thôi (Lúc vỡ dự án thì đừng kêu tại công nghệ :D)



Lưu ý: Chọn làm giải pháp tốt nhất thì bạn mới tiến xa hơn trên con đường lập trình được.
Share:
Thứ Ba, 2 tháng 7, 2019

5 Cách Học Lập trình Python Nhanh nhất, Hiệu quả nhất

Mình bắt đầu học Python từ năm 2012 và đây là kinh nghiệm đúc kết sau nhiều năm làm việc với Python.

Hi vọng cách này sẽ giúp bạn học Lập trình Python hiệu quả hơn.

1. Quan trọng là phải tìm động lực lớn thúc đẩy bạn học lập trình Python.


Tìm kiếm và giữ động lực học tập là chìa khóa của mọi thành công. Học Lập trình Python cũng tương tự vậy thôi. Mình cũng đã ngủ gật ở rất nhiều lớp học lập trình vì khi đó mình nghĩ rằng "Học tập chưa quan trọng" và "Chẳng có động lực gì"

Nhưng khi mình bị bắt phải dùng python để tạo ra một thuật toán chấm điểm tự động, độ khó của nó đã thách thức mình. Mình đã thức nhiều đêm để cày cuốc và lặp đi lặp lại hàng đêm.

5 cách học Lập trình Python hiệu quả

5 cách học Lập trình Python hiệu quả (Học Python để làm Background với gái chẳng hạn :D)

"Quan trọng là động lực và Kết quả đạt được. Còn động lực nào thì tùy bạn :D"

Cũng có thể mình may mắn vì vớ được cái động lực hợp với mình. Nhưng bạn cũng có thể tự tìm cho mình 1 cái gì đó thú vị tương tự và sống chết với nó.

Python giống như Java, là một ngôn ngữ lập trình đa nền tảng.

Nên python là bạn có thể phát triển hầu hết mọi thứ, từ ứng dụng di động đến game cho đến các thuật toán học máy tiên tiến. Bất kể bạn quan tâm đến điều gì, bạn đều có thể xây dựng nó trên python.


Chọn một hoặc hai lĩnh vực bạn quan tâm mà Python có thể làm được như:

  • Websites
  • Mobile apps
  • Games
  • Data science/Machine learning
Sống với nó, mơ thấy nó, ám ảnh bởi nó. Bạn sẽ chẳng cần các Cách học Lập trình Python mà mình tiếp tục liệt kê bên dưới.

2. Tìm hiểu cú pháp cơ bản của Python "vừa đủ"


Trừ khi bạn biết cú pháp cơ bản của Python, nếu không thì thật khó để thực hiện bất cứ điều gì. Nhưng đừng dành quá nhiều thời gian cho việc này.

Mục tiêu là để tìm hiểu những điều cơ bản, vì vậy bạn chỉ cần biết cú pháp cơ bản, đủ để bắt đầu làm việc với các dự án của riêng bạn trong (các) lĩnh vực bạn quan tâm.

Ví dụ, mình đã dành khoảng một tuần cho cú pháp cơ bản và một số vấn đề xung quanh trước khi bắt đầu mày mò làm web bằng Python.


Mình không khuyên bạn dành 1 tuần cho Python cơ bản. Cứ học khi bạn thấy tự tin chút chút là được. Có người học nhanh, có người học chậm khác nhau.

3. Làm một dự án Python thật sự


Như đã nói ở trên, bạn chưa cần phải hiểu quá sâu về Cú pháp Python cơ bản. Học Cú pháp cơ bản lâu bạn sẽ mất động lực đấy.

Hãy sơm bắt tay vào làm dự án Python thực sự như là làm 1 website bằng Python. Mặc kệ nó tệ, mặc kệ nó xấu.

Quan trọng là dự án này giúp bạn hiểu cú pháp Python hơn, hiểu cách tạo ra một dự án hoàn chỉnh bằng cú pháp cơ bản.

Và hơn nữa, vừa làm vừa học sẽ khiến bạn thấy mình nhanh chóng đạt được kết quả. Cảm giác này rất quan trọng khi học Lập trình Python hay bất kỳ ngôn ngữ lập trình nào khác.

4. Kết nối với cộng đồng Lập trình viên Python

Đây là cách "Hack kiến thức".

Sẽ có những thứ bạn sẽ vướng khi Học Lập trình Python. Có những thứ khiến bạn mất vài ngày, thậm chí mặc dù mất nhiều thời gian bạn vẫn chưa hiểu.

Cách tốt nhất trong trường hợp này là tìm sự trợ giúp.

Dĩ nhiên là bạn nên tìm hiểu cách giải quyết trước khi tìm sự trợ giúp. Chỉ tìm sự trợ giúp khi bạn thực sự gặp khó. Đừng lạm dụng.

Bạn có thể theo dõi hashtag #Python trên Stackoverflow để theo dõi những vấn đề thường gặp trong Lập trình Python.

Hoặc tìm đến các Group Python, tham gia nhóm nhỏ, kết nối bạn bè học Python thực sự ở bên ngoài. Học hỏi và trao đổi với họ. Trao đổi càng nhiều bạn càng nhận được nhiều thứ.

5. Thử nghiệm làm các dự án khó


Tiếp tục tăng độ khó và phạm vi của các dự án của bạn, phát triển sâu hơn các dự án bạn đã từng làm. Nếu bạn hoàn toàn thoải mái với những việc tạo ra các website tin tức đơn giản thì bây giờ hãy thử làm những thứ khó hơn.

Đây là một số ý tưởng:

  • Hãy thử dạy một người mới học Python để họ có thể đạt được level như bạn.
  • Thử mở rộng quy mô trang web của bạn. Xây dựng đáp ứng truy cập số lượng lớn.
  • Thử tăng tốc độ, hiệu năng trang web của bạn lên một level mới.

Đừng lo lắng bạn sẽ tốn thời gian khi dạy một người mới. Thực sự đi từ việc đọc hiểu -> Viết ra được những đoạn mã -> Làm được những dự án Python thì bước Truyền đạt cho người khác mới học Python làm được như bạn là một bước tiến lớn.

Nó không chỉ giúp bạn trau dồi kiến thức Python mà còn giúp bạn thực sự hiểu Python.

Bởi vì, bạn có thể giải thích cho người không biết thì có thể hiểu. Chứng tỏ bạn thực sự hiểu. Còn không thì bạn chỉ viết mã Python một cách máy móc.

Note: Sự khác biệt của Lập trình viên cao cấp là khả năng truyền đạt cho người mới có thể hiểu được những gì họ nói.

Trên đây là 5 cách giúp bạn Học Lập trình Python hiệu quả hơn. Hi vọng giúp ích được bạn.

Share:
Thứ Năm, 27 tháng 6, 2019

Top 7 mẹo CSS tất cả người mới học CSS phải biết

CSS thực sự rất thú vị. Khi bạn đã học qua những điều cơ bản về CSS, chắc chắn bạn muốn lập tức chuyển sang level tiếp theo.

Tuy nhiên, ngoài việc thú vị, viết CSS cũng khá khó khăn. Vì vậy, bạn chắc cũng vấp phải những khó khăn thì thực hành viết CSS. Ở đây mình đã biên soạn một danh sách một số thủ thuậtkỹ thuật CSS rất hữu ích.

Mình sẽ liệt kê TOP 7 Mẹo CSS này vì mình thấy nó thực sự sẽ giúp bạn nhiều trong việc viết CSS..

Top 7 mẹo CSS tất cả người mới học CSS phải biết

Top 7 mẹo CSS tất cả người mới học CSS phải biết

#Mẹo CSS 1: Định vị tuyệt đối (Absolute positioning)


Nếu muốn kiểm soát chính xác vị trí của một phần tử trên trang web? Bạn có thể làm điều này bằng cách sử dụng định vị tuyệt đối (position: absolute;).

Ở đây cửa sổ trình duyệt sẽ được xem như một vùng giới hạn. Với mẹo CSS này, bạn có thể kiểm soát chính xác vị trí của các phần tử. Bạn có thể sử dụng top, right, bottom, left để xác định tọa độ cho phần tử đó.

.element1 {
  position:absolute;
  top:15px;
  right:15px

}

#Mẹo CSS 2: Sử dụng *+selector


Dấu * cho phép bạn chọn tất cả các phần tử của bộ chọn. Hãy xem xét *p làm ví dụ. Chỉ cần thêm một số style CSS vào *p và bạn sẽ thấy rằng tất cả các thành phần của bộ chọn trong document đều bị ảnh hưởng.

#Mẹo CSS 3: Ghi đè CSS


Chỉ sử dụng thủ thuật này khi thực sự cần thiết. Nếu bạn đang sử dụng nó liên tục, mã CSS của bạn sau này sẽ khó sửa chữa, bảo trì.

Khi bạn muốn ghi đè một số kiểu CSS, bạn có thể sử dụng !important với style đó.

Ví dụ:

.section h1 {color:blue !important;}

#Mẹo CSS 4: Căn giữa


Thủ thuật CSS này là khó. Nó phụ thuộc rất nhiều vào những gì bạn muốn căn giữa. Hãy cùng xem một số ví dụ:

Đối với Text:


Text-align:center;

Nếu bạn muốn căn giữa div hoặc một số phần tử khác, bạn cần thêm thuộc tính block và sau đó sử dụng margin: auto;


#div {
  display:block;
  margin:auto;
  …….
  …….
}


#Mẹo CSS 5: Căn dọc (Vertival Alignment)


Bạn sẽ cần sử dụng đến thủ thuật CSS này trong việc CSS menu điều hướng. Điều này được sử dụng để làm cho line-hight của văn bản và height của menu giống nhau.

.nav li {
  line-height:40px;
  height:50px;
}


#Mẹo CSS 6: Hiệu ứng Hover


Các di hiệu ứng được sử dụng cho các text link, buttons, icons, back sections của các trang web và nhiều hơn nữa.

Hiệu ứng này thay đổi màu sắc của một yếu tố di chuột qua nó. Bạn có thể thêm :hover để CSS.

Ví dụ:

.entry h1 {
  font-size: 24px;
  color: #000;
  font-weight: 600;
}


Chúng ta thêm hiệu ứng khi hover như sau:


.entry h1:hover {
  color: #f00;
}


Khi di chuột vào h1, màu sắc của nó bị thay đổi từ #000 sang #f00

#Mẹo CSS 7: Trạng thái liên kết (Link state)


Rất nhiều front-end Dev đã bỏ lỡ thủ thuật này. Không sử dụng thủ thuật này sẽ tạo ra các vấn đề về khả năng sử dụng với người dùng trang web.

:link pesudo-class xử lý style của các liên kết mà người dùng trang web chưa nhấp vào.

:visited pesuto-class được truy cập kiểm soát style của các liên kết đã được truy cập bởi người dùng trang web. Với trạng thái liên kết này, bạn có thể cho người dùng biết rằng họ đã truy cập một liên kết này trước đó.

Bạn có thể thực hiện như sau:

a:link {
  color: blue;
}


a:visited {
  color: purple:
}


Trên đây là Top 7 Mẹo CSS mà mình nghĩ tất cả người mới học CSS đề cần phải biết. Kể cả những người có kinh nghiệm nếu quên thì có thể xem lại để củng cố cách làm hiệu quả hơn.

>>> Tham khảo thêm: 12 Mẹo CSS Nâng cao


Share:
Thứ Ba, 25 tháng 6, 2019

Cách kiểm tra một chuỗi có tồn tại bên trong một chuỗi khác? | Lập trình Java

Để xác định một chuỗi có tồn tại bên trong một chuỗi khác hay không, bạn có thể sử dụng:

  • Phương thức contains()
  • Phương thức indexOf()
  • Phương thức lastIndexOf()
Cách kiểm tra một chuỗi có tồn tại bên trong một chuỗi

Cách kiểm tra một chuỗi có tồn tại bên trong một chuỗi 
(Lập trình Java)

Phương thức indexOf() chấp nhận một Chuỗi và trả về vị trí bắt đầu của chuỗi đó nếu nó tồn tại, nếu không nó sẽ trả về -1.

Ví dụ 'Đây là một chuỗi'.indexOf('là') sẽ trả về 4 nhưng 'Đây là một chuỗi'.indexOf('Java') sẽ trả về -1.

Đây là cách dễ nhất để kiểm tra nếu một Chuỗi có một chuỗi con hay không. Phương pháp thứ hai là sử dụng phương thức lastIndexOf().

Phương thức lastIndexOf() tương tự như indexOf() nhưng bắt đầu tìm kiếm từ vị trí cuối, nhưng nó cũng sẽ trả lại -1 nếu chuỗi con không tìm thấy hoặc các vị trí cuối cùng của chuỗi con.

Phương pháp thứ ba, bạn có thể sử dụng để kiểm tra nếu một chuỗi chứa một chuỗi bằng phương thức contains().

Phương thức này trả về true nếu một chuỗi được nó tìm thấy chuỗi con bên trong chuỗi cần kiểm tra, hoặc trả về false nếu không tìm thấy.

Sự khác biệt duy nhất giữa contains() và indexOf() là:

  • phương thức contains() trả về giá trị boolean
  • phương thức indexOf() trả về một số

Chúng ta hãy xem một số ví dụ của contains() và indexOf() để chứng minh làm thế nào bạn có thể sử dụng phương thức này để tìm kiếm một chuỗi trong một Chuỗi trong java.

Sử dụng phương thức indexOf() để kiểm tra chuỗi có tồn tại trong chuỗi khác hay không.

Phương thức indexOf() được sử dụng khá thường xuyên để kiểm tra ký tự trong một chuỗi, nhưng rõ ràng nó có thể được sử dụng để kiểm tra xem một chuỗi có chứa một chuỗi con khác hay không.

Do phương thức này chấp nhận ký tự đơn, ví dụ: 'a' hoặc chuỗi con, ví dụ: 'abc', về mặt kỹ thuật, cả hai đều là chuỗi con.

Điều quan trọng hơn là phương thức indexOf () trả về -1 khi không tìm thấy chuỗi bên trong chuỗi khác.

Ví dụ về cách sử dụng phương thức indexOf():


String input = "Kiểm tra một chuỗi con có tồn tại trong chuỗi";
boolean isFound = input.indexOf("tra") != -1 ? Đúng : Sai;
// Kết quả trả về Đúng


Tương tự, bạn có thể sử dụng để kiểm tra một ký tự có tồn tại trong chuỗi hay không.

boolean isExists = "Java".indexOf("J");


Một điều quan trọng cần lưu ý về phương thức indexOf() và lastIndexOf() là cả hai đều thực hiện tìm kiếm phân biệt chữ hoa chữ thường, nghĩa là nếu bạn tìm kiếm 'Java'.indexOf ('j') thì nó sẽ trả về - 1 (Có nghĩa là sai)

Tương tự, bạn có thể sử dụng phương thức lastIndexOf() như cách sử dụng phương thức indexOf().

>>> Xem cách kiểm tra một chuỗi có tồn tại bên trong chuỗi khác hay không bằng cách sử dụng hàm strpos() trong PHP.

Sử dụng phương thức contains() để kiểm tra chuỗi có tồn tại bên trong chuỗi khác hay không.


Phương thức contains() cung cấp cách tốt nhất để kiểm tra xem Chuỗi có chứa chuỗi con khác hay không.

Nó hợp ngữ cảnh của câu hỏi và trả về boolean, có nghĩa là bạn có thể trực tiếp sử dụng nó bên trong cấu trúc if.

Phương thức chứa trả về true khi và chỉ khi chuỗi này chứa chuỗi giá trị char được chỉ định.

Nó cũng ném NullPulumException nếu chuỗi con được truyền cho nó là null.

Vấn đề duy nhất với phương thức contains() là nó đã được thêm vào Java 1.5, có nghĩa là bạn không thể sử dụng nó trên phiên bản trước. Mặt khác, phương thức indexOf() tồn tại từ JDK 1.0 để bạn có thể sử dụng nó ở mọi nơi.

Ví dụ về cách sử dụng phương thức contains():


String test = "Học lập trình Java tại NIIT";
boolean isFound = text.contains("NIIT"); // true



Tương tự như phương thức indexOf() cũng thực hiện tìm kiếm phân biệt chữ hoa chữ thường, vì vậy khi kiểm tra bạn cần lưu ý thêm vấn đề Hoa hay Thường.

Nếu bạn muốn thực hiện tìm kiếm không phân biệt chữ hoa chữ thường thì hãy sử dụng cùng một kỹ thuật, chuyển đổi cả chuỗi đầu vào và chuỗi tìm kiếm trong về cùng kiểu và sau đó gọi phương thức contains().

Tổng kết.

Có nhiều cách để kiểm tra một chuỗi có tồn tại bên trong một chuỗi khác hay không trong lập trình Java. Bạn có thể sử dụng phương thức indexOf(), contains() hoặc cũng có thể sử dụng Biểu thức chính quy.

> Nếu bạn muốn học Java bài bản hơn thì hãy đăng ký ngay Khóa học Java: https://niithanoi.edu.vn/khoa-hoc-java-fullstack.html


Share:
Thứ Ba, 17 tháng 7, 2018

Facebook đã rò rỉ báo cáo lập trình viên cho người kiểm tra ứng dụng bên ngoài

facebook-ro-ri-bao-cao-lap-trinh-vien-ra-ngoai

Nỗi đau của Facebook đối với việc xử lý dữ liệu khách hàng vẫn tiếp tục vì nó thừa nhận việc tiết lộ thông tin cá nhân cho những người kiểm tra ứng dụng bên ngoài.

đơn vị đã vô tình gửi báo cáo phân tích dành cho nhà phát triển và nhân viên trực tiếp của họ đến người kiểm tra ứng dụng bên ngoài.

Không có email nào chứa thông tin cá nhân, nhưng chúng chứa dữ liệu cần giữ riêng cho Developer như lượt xem, khách hàng trung bình và thông tin khác có thể đặc biệt có ích cho đối thủ cạnh tranh.

May mắn thay, chỉ có một tỷ lệ nhỏ (3%) các app sử dụng nền tảng ứng dụng Facebook Analytics bị ảnh hưởng - theo đơn vị.

Trong một công bố, Facebook đã viết:

“Do lỗi trong hệ thống gửi email của chúng tôi, bản tóm tắt hiệu suất kinh doanh hàng tuần mà chúng tôi gửi cho Developer về tài khoản của họ cũng đã được gửi đến một nhóm nhỏ những người kiểm tra app của lập trình viên đó. Không có thông tin cá nhân nào về những người trên Facebook được chia sẻ.

Chúng tôi xin lỗi vì lỗi này và đã cập nhật hệ thống của chúng tôi để ngăn chặn nó xảy ra lần nữa. ”

Mọi lập trình viên bị ảnh hưởng sẽ được Facebook liên hệ.

Đây là email được gửi đi:

“Chủ đề: Gần đây, chúng tôi đã xử lý lỗi với email tóm tắt hàng tuần của bạn

Chúng tôi muốn tuyên bố cho bạn biết về một lỗi gần đây trong đó một email tóm tắt từ Facebook Analytics về ứng dụng của bạn đã được gửi tới người bản beta ứng dụng của bạn.

Như bạn đã biết, chúng tôi gửi email tóm tắt mỗi tuần để giúp bạn luôn cập nhật với một số chỉ số cấp cao nhất của mình - những email này chuyển đến những người bạn đã xác định là Quản trị viên, Nhà analytic và Developer. Bạn cũng có thể thêm Người bản beta vào tài khoản của mình, những người được bạn chỉ định để giúp kiểm tra ứng dụng của bạn khi họ đang tiến triển.

Chúng tôi đã gửi nhầm bản tóm tắt email mỗi tuần cuối cùng cho Người bản beta của bạn, ngoài nhóm Quản trị viên, Nhà analytic và nhà phát triển thông thường nhận được cập nhật.

Người bản beta chỉ có thể xem thông tin tóm tắt cấp cao trong email và không thể truy cập bất kỳ thông tin tài khoản nào khác; nếu họ nhấp vào “Xem trang tổng quan” thì họ không có quyền truy cập vào bất kỳ thông tin nào về Facebook Analytics của bạn.

Chúng tôi xin lỗi vì lỗi này và đã update để ngăn điều này xảy ra lần nữa. ”

Trong những tháng gần đây, Facebook đã là trung tâm của nhiều tranh cãi liên quan đến quyền riêng tư.

Đã có vụ bê bối Cambridge Analytica khét tiếng, một lỗi đã khiến 14 triệu người dùng bảo mật mặc định trở thành công khai và lo ngại về các chương trình tuyên truyền và sự lây lan của 'tin tức giả' được nhắm mục tiêu trên nền tảng của nó.

Với những tiết lộ ngày nay, có vẻ như Facebook vẫn còn một số vấn đề cần giải quyết.

Bạn có lo lắng về việc giải quyết dữ liệu của Facebook không? Hãy cho chúng tôi biết trong phần bình luận.

Share:
Thứ Bảy, 16 tháng 6, 2018

10 tài liệu giúp bạn học Python hay hơn

Bạn là một nhà phát triển trung bình Python. Bạn đã đã chuyển sang Python sau khi biết một ngôn ngữ lập trình khác hoặc bằng phương pháp thực hiện các hướng dẫn hoặc lớp học Python cho đến khi bạn cảm thấy đủ tự tin trong các khái niệm cơ bản.



Bây giờ, đã đến lúc thật sự mở rộng đôi cánh của bạn và thực sự bắt đầu suy nghĩ theo phương pháp Pythonic.

 >> Xem thêm: Ngôn ngữ lập trình Java

sau đây là mười tài liệu rất thích của mình để làm điều đó, bao gồm những thách thức hấp dẫn, sách phải đọc, công cụ đọc và project.



1. Python Module of the Week


Website, Doug Hellmann



Như tên cho thấy rằng, trang website này nêu bật một mô-đun Python duy nhất hàng tuần, đưa bạn qua các chi tiết thực tế của thư viện chính thức. Như Python chính nó là khá đơn giản nhưng các libraries của nó là nổi tiếng bao la, đây là một phương pháp hữu ích nhất để làm quen tốt hơn với nó mà không bị quá tải. Chỉ cần đánh dấu nó, kiểm tra lại mỗi tuần và bạn sẽ được lên đến tốc độ trong thời gian không.



2. Rluent Python


Book, O'Reilly



Nếu bạn đang kiếm tìm một sự hiểu biết sâu sắc hơn về Python, thì một trong những tài liệu hay nhất có tiêu đề là O'Reilly Fluent Python. cuốn sách này là dành cho các nhà phát triển trung cấp, đã có chút ít có kinh nghiệm Python, vì thế đây có thể không phải là sự chọn lựa tốt nhất nếu bạn tự gọi tôi là một người mới start Python cách thức đây không lâu!



3. The Python Language Reference


Website, or Book, Guido van Rossum



Python rất ít có tài nguyên chính thức thực sự tuyệt vời. Cùng với tutorial Python chuẩn, người viết ra Python Guido van Rossum sẽ đưa bạn đến những phần trọng điểm nhất của ngôn ngữ lập trình Python. Điều này đặc biệt hữu ích cho các nhà phát triển có kinh nghiệm mới với Python. 1 lần nữa, đánh dấu nó và xem nó bất cứ khi nào bạn gặp vấn đề lớn - tôi cược là, bạn sẽ có thể giải quyết vấn đề của bạn hoặc ít nhất là tìm hiểu nơi để đi tiếp theo bằng phương pháp kiểm tra tài liệu này.



4. Effective Python


Book, Brett Slatkin



Subtitle của quyển sách này là '59 cách cụ thể để viết tuyệt vời hơn với Python ', và đó chính xác là những gì bạn lấy được. Mỗi chương cung cấp một bài học thích hợp với mã nguồn được in với tô sáng syntax, chính xác như bạn có trên màn hình. trải qua việc trải nghiệm các ví dụ, bạn sẽ hiểu rõ hơn về phương pháp giải quyết các vấn đề phổ biến và những gì làm cho Python đánh dấu.



5. Python Essential Reference


Book, David Beazley



Tiêu đề này được coi là một trong những sách tốt nhất cho việc học Python nếu bạn đã là một Developer phần mềm có kinh nghiệm. Lưu ý rằng một ấn bản thứ năm của quyển sách dựa trên Python 3.6 sẽ có sẵn vào cuối năm 2019, vì thế nếu bạn đang tham khảo này gần đến ngày đó, bạn có thể muốn cập nhật cho một phiên bản tốt hơn.




6. CodeTriage


Project, Richard Schneeman



tham khảo quyển sách và chơi với những thách thức có thể là một cách hay để học, nhưng điều gì về việc đóng góp cho một dự án open soure thật sự? CodeTriage cung cấp cho bạn cơ hội để làm điều đó, cung cấp một phương pháp dễ dàng tìm và tham gia một project code nguồn mở cần câu trả lời, sửa lỗi và vân vân. Nếu bạn mới làm quen với open soure và bạn không chắc chắn cách tham gia, đây là một nơi tốt để khởi đầu.


7. Intermediate Python Presentations


Website, Aristotelis Kittas



Các bài trình bày này được thuyết trình thưa thớt - chỉ là một trang Github với lựa chọn các trang thuyết trình trong một số chủ đề - nhưng cung cấp một số ví dụ thực tế có giá trị về các vấn đề về Python và phương pháp giải quyết chúng. Đối với phiên bản trực tiếp, bạn có thể tìm thấy được tác giả tại buổi meeting Python nếu bạn sống ở hoặc gần UK.


8. /r/LearnPython


Website, Reddit



Trong hai phần chính của Python trên Reddit, / r / Python và / r / LearnPython, phần sau là lựa chọn thực tế nhất cho người tìm phương pháp cải thiện kỹ năng của họ. Khi quyển sách mới được xuất bản, những thử thách được viết ra và câu hỏi được trả lời, bạn sẽ tìm ra được tất cả chúng ở đây. Đó cũng là một cách hay để đền đáp cho cộng đồng, bằng cách thức trả lời các câu hỏi của người khác khi có thể. Bạn cũng có thể làm điều gì đó tương đương trên Stack Overflow nguồn tài liệu lập trình huyền thoại.


9. PythonTutor


Website, Philip Guo



Công cụ tốt này cho ta thấy những gì đang thực sự diễn ra khi mỗi dòng code được chạy. Việc xuất ra này giúp bạn dễ dàng tìm ra được các lỗi logic và nắm giữ tốt hơn Python, vì bạn có thể bước qua lại để đọc chính xác những gì đang xảy ra trong các biến, các đối tượng của bạn và vân vân. Bạn thậm chí có thể yêu cầu khách hàng trang web khác tham gia và trò chuyện với bạn về bất kỳ vấn đề nào bạn đang gặp phải.


10. Python Practice Projects


Website, Louie Dinh



Python Pratice Projects là một nguồn tài liệu, cung cấp ... các project Python nhỏ cho bạn luyện tập! Bạn được yêu cầu xây dựng trình phân tích cú pháp command, trình thông dịch lisp, một công cụ tạo khuôn mẫu hoặc trình tạo website tĩnh và chỉ cung cấp đủ thông tin để start. Nếu bạn chỉ học và luyện tập Python trong thời gian không có việc gì làm, đây là một cách thức hay để thật sự được thúc đẩy để hoàn thành một chương trình có ích!



Bạn có thấy các tài liệu Python này có ích không? Có thêm gì nữa không? Cho chúng mình biết trong các ý kiến ​​phía sau đây.
Share:
Thứ Năm, 14 tháng 6, 2018

Đột phá lớn phân phối game bằng công nghệ Blockchain

Nguyên giám đốc điều hành của Xbox, Atari, Dell, Unity, Uber và Time Warner đã bắt tay với nhau để phát triển Ultra, một nền tảng blockchain nhằm cách mạng hóa phân phối các game của họ.

Ứng dụng Blockchain trong phân phối Game


Phân phối trò chơi được độc quyền với những người chơi hàng đầu tận dụng lợi thế về vị trí của họ để thực hiện những cắt giảm lớn từ công việc của nhà phát triển.
Nicolas Gilot, Đồng Giám đốc điều hành của Ultra. nói:
“Sự phát triển của các cửa hàng trò chơi của Steam, Apple, Goole trong hàng thập kỷ qua cho thấy rằng khách hàng đã phát triển và mong đợi loại trải nghiệm mua hàng dễ sử dụng và liền mạch mà các cửa hàng này cung cấp.
Điều này có nghĩa là các nhà phát triển đang có một thời gian ngày càng khó khăn khi bán game của họ đến người chơi, dẫn đến phí hoa hồng lớn và mất kiểm soát đối với khách hàng của họ. ”
Các cửa hàng phân phối trò chơi cũng thường quảng bá các danh hiệu lớn hơn từ các studio lớn có thể đảm bảo các giao dịch quảng cáo thay vì các nhà phát triển đang phát triển với ngân sách tiếp thị nhỏ hơn.
“Ngoài ra, khi danh mục trò chơi đã phát triển đáng kể trong những năm gần đây, phần lớn là do nhà cung cấp dịch vụ đứng đầu thị trường Steam cung cấp, sự bão hòa này tiếp tục ngăn cản các nhà phát triển tiếp cận khán giả của họ,” Gilot tiếp tục.
"Tương tự như vậy, đối với các game thủ, việc phát hiện ra trò chơi phù hợp với họ đã trở nên khó khăn hơn do số lượng trò chơi tuyệt vời có sẵn."
Đầu tháng này, nhà phát triển báo cáo Microsoft đã cắt giảm doanh thu của mình từ mức tiêu chuẩn của ngành là 30% xuống còn 5%. Thật không may, đây chỉ là để bán ứng dụng, trong khi các nhà phát triển trò chơi vẫn bị phạt.
Steam, GOG, Cửa hàng Play, Cửa hàng Apple, Xbox Live và PlayStation Store đều giảm 30% doanh thu trò chơi. Humble Bundle là nhà phân phối chính duy nhất làm giảm xu hướng của ngành tại thời điểm viết, chỉ giảm 5%.
Thách thức các ông lớn trong phân ph.
Được thành lập vào năm 2017, Ultra có kế hoạch phá vỡ các hoạt động độc quyền này bằng cách công bằng hơn cho nhà phát triển, cung cấp các công cụ tiếp thị hiệu quả, giới thiệu luồng doanh thu mới và thiết lập nền kinh tế dựa trên mã thông báo phong phú.
Michael Dunn, Giám đốc kỹ thuật của CTO Ultra và cựu của Dell và Time Warner, giải thích:
“Các chức năng dựa trên blockchain tiên tiến của chúng tôi giới thiệu các khả năng tùy chỉnh kinh doanh sáng tạo và cung cấp một tập hợp hoàn toàn mới các cơ hội ràng buộc để trở thành tiêu chuẩn vàng của nhà phát triển. Tokenisation cũng cho phép các nhà phát triển và người dùng hưởng lợi từ các phần thưởng và ưu đãi như giao dịch hàng, quảng cáo chọn không tham gia, và các chương trình giới thiệu và trung thành.
Thông qua cách tiếp cận này, Ultra cung cấp một nền tảng thay thế để xuất bản, chơi và quản lý trò chơi, đưa quyền kiểm soát trở lại vào tay các nhà phát triển và người chơi. ”
Bằng cách cắt giảm 15 phần trăm, Ultra đang loại bỏ một phần lớn các đối thủ của họ. Trong khi đó là mức giảm cao hơn so với 5% của Humble Bundle, Ultra nhắm đến việc cung cấp các tính năng hay ho hơn cho cả nhà phát triển và khách hàng.
Đầu tiên, Ultra dùng công nghệ phát trực tuyến phần mềm của Ultra, được cấp phép bởi trò chơi điện tử EA Games và đã phục vụ cho hơn 100 triệu lượt tải xuống game ở trên khắp thế giới.
Trên trang web của mình, công ty cho biết công nghệ phân phối của họ được sử dụng bởi những người chơi chính bao gồm; Nhà phát triển trực tuyến Elder Scrolls, Nhà phát triển Halo - Zenimax; 343 Industries; và nhà phát triển Dark Souls, Bandai Namco.
Người chơi có thể mua và bắt đầu chơi trò chơi của họ trước khi quá trình tải xuống hoàn tất.
"Việc sử dụng các hợp đồng thông minh của Ultra cũng có nghĩa là các nhà phát triển giờ đây có thể nhận được một khoản thanh toán ngay lập tức để tái chế vào các doanh nghiệp của riêng họ", công ty cho biết. "Đối phó với sự chậm trễ tẻ nhạt thường có kinh nghiệm khi giao dịch với các tổ chức tài chính truyền thống."
Chúng ta thấy rằng, Ultra đang hướng tới việc thúc đẩy một cộng đồng thịnh vượng với nền tảng của họ, nơi mọi người chia sẻ thành công.
Người chơi có thể kiếm được 'Ultra Coins' theo các cách như xem quảng cáo và tham gia đánh giá bản thử nghiệm. Không những thế, khách hàng được khuyến khích để quảng bá việc tham gia Ultra với các giới thiệu cung cấp lợi nhuận tối đa bảy phần trăm trên tất cả doanh thu được tạo ra từ nội dung đã mua.
Upsetting hiện trạng khi nói đến phân phối trò chơi là quá hạn, và những gì Ultra là bày ở đây cũng có thể là nền tảng để đạt được nó.
Nền tảng này sẽ được ra mắt trong phiên thử nghiệm trong Q3 năm 2018 trước phiên bản beta mở trong Q4.

Share:
Fanpage

Tổng số lượt xem trang