Thứ Năm, 30 tháng 3, 2017

Thực tế, có rất nhiều bạn khi tốt nghiệp đại học, cao đẳng bị bỡ ngỡ bởi cuộc sống sẽ có nhiều điều bất ngờ và rộng lớn hơn những gì các bạn nghĩ khi còn là sinh viên. Sẽ là những ưu điểm nếu như các bạn biết được những điều cần chuẩn bị, nhu cầu của thực tế cần để các bạn trau dồi trong quãng thời gian sinh viên để khi ra trường có thể hội nhập được ngay với môi trường.
Không chỉ có riêng ngành kỹ thuật công nghệ thông tin, điện,...cần mà quan trọng hơn những bạn cần kỹ năng hoàn thiện bản thân để đáp ứng được khi công việc yêu cầu
Hãy cùng xem những hình ảnh dưới đây để biết được Những điều sinh viên Việt Nam cần biết và chuẩn bị sớm
Thực tế giữa học và khi đi làm - Các bạn SV cần lưu ý

Cái đầu chí lý thuyết khiến tôi không biết làm gì
chi tiết
12-thu-thuat-lap-trinh-javascript

Trong bài viết này tôi sẽ chia sẻ 12 thủ thuật vô cùng hữu ích cho JavaScript. Những thủ thuật này sẽ giúp bạn giảm lượng code cũng như làm code chạy tối ưu hơn.
Read More

Thứ Hai, 27 tháng 3, 2017

dat-xe-uber-truc-tiep-tren-may-tinh

Hiện tại Uber chưa có ứng dụng chính thức cho Desktop/máy tính nên để đặt xe thì người dùng bắt buộc phải sử dụng app trên điện thoại Android hoặc iOS. Trong bài này mình chia sẻ với các bạn cách để đặt xe Uber trực tiếp từ máy tính.
Read More

Thứ Bảy, 25 tháng 3, 2017

hoc-lap-trinh

1. Học bằng cách thực hành


Cách duy nhất để tiến bộ trong lập trình là bạn thực sự bắt đầu viết ra các chương trình.

2. Lập trình không giống như việc học để làm bài kiểm tra


Việc ghi nhớ tất cả mọi thứ không quan trọng lắm.
Read More

Thứ Sáu, 17 tháng 3, 2017



Chào các bạn!

Hôm nay mình xin trở lại với chuỗi bài hướng dẫn về Lập trình hướng đối tượng OOP.  Trong C#, một class con có thể chứa các hàm cùng tên với các hàm trong class mà nó kế thừa. Điều đó là tốt đối với lập trình viên bởi họ có thể tận dụng điều đó để cài đặt mã nguồn của mình theo OOP, tuy nhiên nó đôi khi sẽ gây nhầm lẫn.
Bạn có thể định rõ ra cách mà hàm đó tương tác, hoạt động như thế nào bằng cách sử dụng từ khóa new hoặc override



Sự khác nhau được mô tả trong bài dưới đây:

Trong một chương trình Console, khai báo hai class: BaseClass DerivedClass kế thừa từ BaseClass.


Trong hàm Main, khai báo các biến bc, dc, bcdc tương tướng với:
  • bc là đối tượng kiểu BaseClass, và mang giá trị kiểu BaseClass
  • dc là đối tượng kiểu DerivedClass, và mang giá trị kiểu DerivedClass
  • bcdc là đối tượng kiểu BaseClass và mang giá trị kiểu DerivedClass: Đây là biến cần chú ý tới nhiều nhất!
Bởi vì bcbcdc điều có kiểu dữ liệu là BaseClass, nó chỉ nó thể truy cập trực tiếp đến Method1() (ngoại trừ khi bạn dùng casting ép kiểu nó về DerivedClass - việc này là có thể được).  Biến dc có thể truy cập đến cả Method1()Method2(). Những mối quan hệ trên được thể hiện như hình bên dưới:


Ta thấy kết quả là những gì có thể đoán trước được. Tiếp tục ta thêm một hàm Method2() vào BaseClass. Bây giờ ta đã có hai hàm trùng tên, một nằm ở class cha và một nằm ở class con.


Bởi vì BaseClass bây giờ đã có Method2(), ta sẽ gọi được hàm Method2() ở các biến mạng kiểu là BaseClass là bc và bcdc:


Khi bạn build project, bạn sẽ thấy một thông báo cảnh cáo. Dòng warning nói rằng Method2() ở DerivedClass "che" đi Method2() ở BaseClass. Bạn cũng được khuyên nên sử dụng từ khóa new ở phần cài đặt/định nghĩa của Method2() nếu bạn muốn tạo ra kết quả tượng tự như vậy. Hoặc bạn có thể đổi tên Method2() để resolve warning đó, nhưng nó không phải lúc nào cũng tốt.

Trước khi thêm từ khóa new, chạy chương trình và xem output tạo ra bởi những hàm đã gọi, bạn sẽ nhận được như sau:


Hãy chú ý đến những dòng được mình highlight, dòng thứ 2 được bc mang kiểu BaseClass nên việc nó chỉ gọi hàm Method2() của lớp cha cũng không có gì là lạ. Ở hai dòng cuối, hành vi mặc định của nó được giữ nguyên, nên nó ưu tiên gọi hàm từ lớp cha dù ở lớp con cũng có một hàm Method2() cùng tên.
Từ khóa new "bảo tồn" mối quan hệ mà tạo ra kết quả ban đầu, nhưng nó vô hiệu hóa đi các cảnh bảo từ IDE. Các biến có kiểu là BaseClass vẫn giữ nguyên hành vi của nó và tiếp tục truy cập các hàm/thuộc tính của BaseClass, và các biến có kiểu là DerivedClass tiếp tục tuy cập vào các hàm/thuộc tính của DerivedClass đầu tiên, sau đó mới suy xét đến những thành phần mà nó kế thừa từ BaseClass.

Ví dụ: 
Ta có thể thêm từ khóa new trước hoặc sau public

Chạy lại chương trình để chắc rằng output không thay đổi. Cũng để thấy rằng những warnings từ IDE không còn xuất hiện nữa.
Bằng cách sử dụng từ khóa new, bạn thầm khẳng định rằng bạn biết hàm/thuộc tính đó "che" đi hàm/thuộc tính mà nó kế thừa từ chính lớp cha của nó. Để biết thêm thông tin về ẩn tên (name hiding) trong kế thừa, xem new Modifier

Mặc khác, để tạo ra 1 hành vi tương phản lại ở trên, ta sử dụng từ khóa override. Thêm hàm sau kèm từ khóa override vào DerivedClass và từ khóa virtual vào tên hàm ở BaseClass
Từ khóa override có thể đặt trước hoặc sau public


Chạy lại chương trình, ta chú ý sự khác nhau giữa 2 dòng cuối của output với nhau, và so với output của lần test trước. Qua đó thấy rõ sự khác nhau của override new.


Ta thấy khi gọi hàm Method1() trùng tên giữa 2 lớp, mang từ khóa override từ biến bcdc lần này nó không gọi hàm của lớp cha nữa, mà chuyển sang gọi hàm của lớp con. Tuy nhiên cũng là gọi hàm trùng tên Method2(), không có từ khóa override thì nó sẽ trở lại hành vi mặc định là gọi hàm từ lớp cha.

Việc sử dụng từ khóa override làm cho biến bcdc có thể truy cập đến Method1() của lớp con DerivedClass. Thông thường, đây mới là hành vi được các lập trình viên chúng ta mong muốn khi sử dụng OOP và kế thừa. Bạn luôn muốn những object được khởi tạo như một thể hiện của lớp con sử dụng các hàm từ chính lớp con đó chứ không phải những hàm cùng tên, được cài đặt từ trước ở lớp cha. 

Tuy nhiên hành động mặc định của C# lại ưu tiên lớp cha hơn :D. Vậy nên bạn có thể đạt được mong muốn của mình bằng cách phải dùng từ khóa override để extend và ghi đè những hàm của lớp cha bằng những hàm mới cùng tện trong lớp con.

Full source code:


Đến đây các bạn đã hiểu về sự khác nhau giữa new và override trong C# chưa nào? 
Bạn có thể tham khảo thêm ví dụ sau đây để biết rõ hơn về chúng. Mọi thắc mắc xin để lại bình luận bên dưới nhé.

Chào các bạn, chúc các bạn học tốt!

Thứ Sáu, 10 tháng 3, 2017

Bạn rất buồn, nếu thực sự như thế thì có lẽ bạn sẽ mang tâm trạng u buồn và tự hỏi rằng tại sao đôi khi cuộc đời lại bất công với mình vậy.
Không, cuộc đời vẫn luôn có những niềm vui và may mắn dành tặng cho mỗi người và bạn hãy tin rằng nó cũng sẽ đến với bạn trong một ngày gần nhất.
Dưới đây là những câu nói giúp bạn mạnh mẽ hơn. Mỗi ngày hãy cùng suy ngẫm và cảm nhận bạn nhé !

Giúp bạn ngập tràn động lực cho một ngày mới

chi tiết

Thứ Hai, 6 tháng 3, 2017



http://www.google.com/analytics/
Là công cụ phân tích phổ biến nhất trên thế giới hiện nay, Google Analytics luôn liên tục nâng cấp và thiết lập các tiêu chuẩn mới và hoàn toàn được Google miễn phí dành cho các webmaster.
1.4. Google Webmaster (Tools Suite)

http://www.google.com/webmasters/
Google Webmaster Tools thực sự là một bác sỹ Google dành cho website của bạn, mọi tình hình sức khỏe của website đều được công cụ này thông báo.
1.5. MozBar (Tools Suite, Toolbar, Moz)
http://moz.com/tools/seo-toolbar
Là thanh công cụ SEO chuẩn mực cho các nhà tiếp thị, MozBar cho phép thực hiện hơn 50 tác vụ quan trọng ngay từ trình duyệt của bạn. Đây là công cụ được khuyến khích dùng.
....đang cập nhật

Content Tools
2.1. Raven (Tools Suite, Diagnostic, Content, Social)
http://raventools.com/
Raven cung cấp một bộ công cụ SEO kinh điển, nội dung, và các công cụ khảo sát phổ biến với nhiều nhà tiếp thị.
2.2. Copyscape (Content)
http://www.copyscape.com/
Copyscape vừa phục vụ cho việc kiểm tra đạo văn vừa dùng để kiểm tra việc trùng lặp nội dung. Rất tuyệt để kiểm tra xem nội dung bài viết của bạn có bị phân phát khắp các trang web khác không.
....đang cập nhật
Links tools
3.1. Linkstant (Link Building)
http://www.linkstant.com/
Công cụ tiện lợi này phân tích và cảnh báo bất cứ lúc nào khi một người nào đó xây dựng liên kết đến trang web của bạn. Nó khá tuyệt vời để tiếp cận và thu thập thông tin cạnh tranh.
3.2. Ahrefs (Link Research, Link Building)
https://ahrefs.com/
Là một trong những công cụ khảo sát liên kết phổ biến, Ahrefs cung cấp một số lượng lớn số liệu, văn bản và đồ thị đẹp. Chủ yếu ở dạng thu phí, nhưng họ có cung cấp một số dữ liệu miễn phí.
3.3. Open Site Explorer (Link Research, Moz, Competitive Intelligence, Link Building)
http://www.opensiteexplorer.org/
Khi Google và Yahoo bắt đầu loại bỏ những dữ liệu backlink của công chúng, Moz đã xây dựng Open Site Explorer để phục vụ cho nhu cầu lớn này. Có thể tìm thấy các backlink, anchor text, các số liệu phổ biến, nhiều thứ khác ở đây.
....đang cập nhật
Social Tools
4.1. Moz Analytics (Tools Suite, Diagnostic, Moz, Rank Tracking, Social)
http://moz.com/products
Là sản phẩm chủ lực của bộ phần mềm Moz, Moz Analytics cung cấp một bảng quản lý tất cả các dữ liệu tiếp thị quan trọng với các phân tích hướng dẫn hoạt động để việc tiếp thị đạt hiệu quả tốt hơn
4.2. Scraper for Chrome (Productivity)
https://chrome.google.com/webstore/detail/scraper/
Nếu bạn chưa bao giờ dọn dẹp trang web của mình thì điều này thật thiếu sót. Công cụ này sẽ giúp bạn dọn dẹp sạch sẽ mà không cần mã code.
....đang cập nhật
Tools SEO
5.1. SEO Toolbar (Tools Suite, Toolbar, Technical SEO)
http://tools.seobook.com/seo-toolbar/
Trong các công cụ phổ biến nhất hiện nay, thanh công cụ SEO này cho bạn rất nhiều thông tin bao gồm backlink và các cuộc khảo sát cạnh tranh.
5.2. SeoQuake (Toolbar, Tools Suite, Technical SEO)
http://www.seoquake.com/
Có nhiều dữ liệu cơ bản hơn bất kì công cụ SEO nào khác
5.3. Xenu Link Sleuth (Diagnostic, Technical SEO)
http://home.snafu.de/tilman/xenulink.html
Chiến thắng giải thưởng công cụ SEO xấu nhất hành tinh, Xenu cũng đồng thời là một trong những công cụ hữu ích nhất. Thu thập thông tin toàn bộ trang web, tìm các liên kết bị hỏng, tạo ra sơ đô web, và còn nhiều tính năng hữu dụng khác nữa..
5.4. Yoast WordPress SEO Plugin (Technical SEO )
http://yoast.com/wordpress/seo/
Nếu bạn chỉ có thể chọn một chức năng WordPress cho trang web của bạn, lựa chọn đầu tiên sẽ là Yoast, và lựa chọn thứ 2 cũng vậy. Công cụ đã trở thành các chuẩn mực rồi.
5.5. XML Sitemaps.com (Sitemaps)
http://www.xml-sitemaps.com/
Có lẽ công cụ này là giải pháp đơn giản, gọn nhẹ nhất cho việc tạo lập sơ đồ trang web. Đây là lựa chọn tuyện vời cho các trang web quy mô nhỏ khi cần phải tạo sơ đồ trang web trong vài phút tại bất kì địa điểm nào.

....đang cập nhật

Chủ Nhật, 5 tháng 3, 2017

Bài viết này sẽ tổng hợp lại 11 thủ thuật console trên trình duyệt Chrome cho các nhà phát triển web, giúp các bạn tăng tốc quá trình code cũng như debug.
Read More

Categories

Sample Text

Được tạo bởi Blogger.

Must Read

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Popular Posts

Video

Popular Posts

Our Facebook Page