Lập Trình

Tổng hợp các thông tin, kinh nghiệm hữu ích và mới nhất về lập trình cần học gì, phỏng vấn, mức lương trong ngành IT như thế nào, tìm hiểu ngay!

398 bài viết

Composer – Công cụ tuyệt vời dành cho PHP

Composer – Công cụ tuyệt vời dành cho PHP

Bài viết được sự cho phép của tác giả Nguyễn Trần Chung Trước khi Composer ra đời, chúng ta thường khó chịu với hàng tá các thư viện của bên thứ ba cần phải quản lý, rất khó khăn để cập nhật và còn lại các khâu cài đặt lằng quằng. Đó là quá khứ thôi, sự ra đời của Composer đã làm thay đổi hoàn toàn mọi thứ rồi. Trong bài viết này chúng ta sẽ tìm hiểu về Composer thực chất nó là gì . Composer là gì ? Composer là một công cụ quản lý sự phụ thuộc trong PHP . Nó cho phép bạn khai báo các thư viện mà dự án của bạn phụ thuộc vào và nó sẽ quản lý (cài đặt / cập nhật) các thư viện cho bạn. Composer là một mã nguồn mở (OpenSource) nên được cộng đồng hỗ trợ rất nhiều, bạn có thể tham gia phát triển, phát triển lại từ trang Github chính thức của Composer. Composer là gì? Quản lý các thư viện bằng composer Tại sao lại cần Composer? Như mình đã nói ở trên Composer ra đời để giải quyết các vấn đề khó khăn như dung lượng project sẽ lơn hơn, việc cập nhật cũng như chèn vào project rất phức tạp và phiền phức. Với composer, bạn sẽ cần khai báo tên và version của các thư viện mà bạn có sử dụng mà không cần phải tự tay chép code của nó vào project, composer sẽ tự động tìm và tải thư viện mà bạn cần trên Server, nếu trong thư viện đó có dùng các thư viện khác thì nó cũng sẽ tải các thư viện khác về, nó đệ quy cho đến khi tải đủ các thư viện, thật tuyệt...

By stationd
Hàm Python do người dùng tự định nghĩa

Hàm Python do người dùng tự định nghĩa

Bài viết được sự cho phép của ucode.vn Bên cạnh các hàm Python tích hợp sẵn, bạn còn có thể tự định nghĩa hàm Python, những hàm này gọi là hàm Python do người dùng định nghĩa (user-defined functions). Việc sử dụng những hàm tự định nghĩa này có lợi ích gì, cách để định nghĩa hàm trong Python ra sao, chúng ta sẽ tìm hiểu trong bài này. Tìm việc làm python các vị trí to 20M Hàm Python do người dùng định nghĩa là gì? Các hàm mà ta tự mình định nghĩa để thực hiện một số công việc cụ thể được gọi là hàm do người dùng định nghĩa. Việc định nghĩa hàm và gọi hàm đã được đề cập đến trong bài hàm Python. Các hàm có sẵn trong Python được gọi là hàm tích hợp. Nếu ta sử dụng những hàm được người dùng khác viết dưới dạng thư viện, thì những hàm này gọi là hàm thư viện (library function). Như vậy, hàm ta tự định nghĩa có thể trở thành một hàm thư viện đối với người dùng nào đó. Ưu điểm khi sử dụng hàm Python do người dùng định nghĩa Hàm do người dùng định nghĩa giúp phân tích một chương trình lớn thành những phần nhỏ, khiến chương trình dễ hiểu, dễ duy trì và gỡ lỗi hơn. Khi một đoạn code bị lặp lại trong chương trình, thì có thể sử dụng hàm để gom đoạn code này lại và chạy khi cần bằng cách gọi hàm. Các lập trình viên cùng làm việc trong một dự án lớn, có thể phân chia công việc cho nhau bằng cách tạo các hàm khác nhau. 11 tip học Python dành cho các “newbie” 20 tài liệu học Python thiết...

By stationd
Sự khác nhau giữa Method và Function trong Python

Sự khác nhau giữa Method và Function trong Python

Bài viết được sự cho phép của tác giả Trần Hữu Cương Sự khác nhau giữa Method và Function trong Python. (Xem lại: Function trong Python là gì? ) Khái niệm method thường dùng trong lập trình hướng đối tượng như java, c#… Còn khái function thường dùng trong lập trình hàm như javascript, c… Method trong Python Method là một phần của Object (method chính là hành động của object). Hay nói cách khác, method nằm bên trong class. Method có thể trả về hoặc không trả về dữ liệu Method có thể xử lý dữ liệu được chứa bên trong class. Cấu trúc method trong Python: class class_name def method_name ( ) : ...... # method body ...... Ví dụ: class Person : def __init__ ( self, name ) : self. name = name def show_name ( self ) : print ( "My name is " + self. name ) def say_hello ( self ) : print ( "hello" ) person = Person ( "kai" ) person. show_name ( ) person. say_hello ( ) Kết quả: My name is kai hello Top 10 thư viện Python tốt nhất cho Data Scientist nửa đầu năm 2024 Function trong python Function là một khối code gồm nhiều câu lệnh liên quan cùng thực hiện một công việc gì đó. Function có thể trả về hoặc không trả về giá trị Function không liên quan tới Class (Không nằm trong class, không truy cập dữ liệu trực tiếp của class) Cấu trúc function: def function_name ( arg1, arg2, ... ) : ...... # function body ...... Ví dụ: def subtract ( a, b ) : return ( a-b ) def say_hello ( ) : print ( "Hello World" ) say_hello ( ) print ( "10 - 5 = %d" % subtract(10,...

By stationd
Interface trong Java – Bạn đã hiểu đúng? Nếu chưa, mời đọc ngay

Interface trong Java – Bạn đã hiểu đúng? Nếu chưa, mời đọc ngay

Bài viết được sự cho phép của tác giả Sơn Dương Trong một lần tình cờ vào VOZ forums, có một bạn hỏi về Interface trong Java là gì? Nó khác với Abstract Class chỗ nào? Tại sao phải dùng Interface, mặc dù nó chẳng rút gọn code đi tý nào, thậm chí còn dài hơn. Mặc dù có nhiều bạn trả lời cho chủ topic đó nhưng hầu hết là hiểu sai, hoặc chưa hiểu rõ bản chất của Interface trong Java. Để các bạn có cái nhìn thấu đáo, hiểu rõ bản chất của Interface. Từ đó có thể ứng dụng Interface một cách chuẩn chỉ cho dự án của mình. Mình đã cho ra đời bài viết này. Java Interface là gì? Có phải “bộ mặt” của Java? Để hiểu một cách chính xác thì phải đọc khái niệm Interface của chính chủ Oracle : In its most common form, an interface is a group of related methods with empty bodies. – Oracle – Đến Oracle cũng không thể định nghĩa Interface một cách khoa học kiểu: Interface là xyz, bla bla. Nhưng chúng ta có thể hiểu một cách nôm na và chính xác như sau: Trong thế giới thực, chúng ta có vật (đồ vật, con vật…) và các hành vi của nó. Interface được sinh là để định nghĩa các hành vi của một nhóm vật. Mình lấy ví dụ như sau: Một con mèo (đây là con vật) thì có các hành vi như: chạy, bắt chuột, ngủ… Ta sẽ định nghĩa một Interface Cat như sau: interface CatBehaviors { // Cách con mèo chạy với tốc độ void run ( int speed ) ; // Cách con mèo bắt chuột void catchMouse ( int mouse ) ; // Định nghĩa cách con...

By stationd
Tổng Hợp Các Phương Thức Của Thread

Tổng Hợp Các Phương Thức Của Thread

Bài viết được sự cho phép của tác giả Nhựt Danh Thread có nhiều phương thức khá hay, nếu lúc nào đó bỗng nhiên bạn cần đến, thì việc tìm hiểu thêm về chúng cũng mất kha khá thời gian. Và cũng nhân tiện có nhiều bạn cũng đặt các câu hỏi xoay quanh một vài phương thức được dùng nhiều, hôm nay mình viết hẳn một bài để tổng hợp lại các phương thức đó của Thread lại. Mình sẽ tập trung giải nghĩa cụ thể vào từng phương thức, có ví dụ rõ ràng, để các bạn nắm rõ hơn và để mình nhanh chóng cho ra những bài viết còn lại của chuỗi kiến thức Thread khá là đồ sộ này nhé. Lưu ý rằng bài viết hôm nay sẽ chưa có đủ mặt các phương thức, nhưng mình sẽ cập nhật thêm sau này và sẽ để lại đường link đến bài này từ các bài viết liên quan khác. Thread.sleep() Một phương thức đơn giản nhưng khá nhiều bạn thắc mắc. Giải Nghĩa sleep() là một phương thức static của Thread. Do đó chúng ta gọi kèm với tên của lớp: Thread.sleep() . Thread.sleep() làm cho Thread hiện tại (chính là Thread đang gọi đến lệnh Thread.sleep() ) phải tạm hoãn lại việc thực thi trong một khoảng thời gian được chỉ định. Nói cho đầy đủ thì là vậy, nhưng các lập trình viên hay dùng theo tên của phương thức, đó là “Ngủ” . Tuy Thread.sleep() được nạp chồng cho phép bạn chỉ định thời gian ngủ cho Thread hiện tại tính đến nano giây. Nhưng bạn đừng có nghĩ rằng Thread.sleep() sẽ thực sự ngủ với chính xác khoảng thời gian mà bạn định nghĩa nhé. Vì việc ngủ và thức này...

By stationd
[Python cơ bản thường dùng trong công việc] Phần 7 : Xử lý file JSON

[Python cơ bản thường dùng trong công việc] Phần 7 : Xử lý file JSON

JSON là gì? JSON là một trong những định dạng file trao đổi dữ liệu thông dụng nhất hiện nay. Với kiến trúc đơn giản và tương đồng với cấu trúc của Python nên việc thao tác JSON trên Python rất dễ hiểu. Việc làm python không cần kinh nghiệm 7.1. Load file từ Internet Thông thường dữ liệu JSON được lấy từ nguồn khác (như file, internet..) nên chương này sẽ bắt đầu bằng cách hướng dẫn download một file JSON từ Internet và sau đó mới parsing nội dung JSON download. Sử dụng module urllib2 để download file và module json để encode/decode JSON data. Ví dụ: import urllib2 import json response = urllib2.urlopen('https://api.github.com/ users/voduytuan/repos') data = json.load(response) print data Ví dụ trên sẽ truy vấn đường dẫn https://api.github.com/users/voduytuan/repos để lấy danh sách Repository trên Github của mình dưới định dạng JSON. 7.2. Parsing JSON Data Nếu như bạn đã có JSON data dưới dạng chuỗi, muốn parsing chuỗi này thành Data thì sử dụng như cách dưới đây: import json mystring = '{"a":1,"b":2,"c":3,"d":4,"e":5}' data = json.loads(mystring) print data (Hiển thị: {u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}) 7.3. Encoding JSON Data Nếu như bạn đã có một biến và muốn encode thành JSON string thì có thể dùng theo cách sau: import json mydata = { 'name': 'John', 'age': 10 } jsonstring = json.dumps(mydata)print jsonstring (hiển thị: {"age": 10, "name": "John"}) << Phần 6 : Xử lý hình ảnh Phần 8 : Xử lý file XML >>

By stationd
Hướng dẫn Java Design Pattern – Flyweight

Hướng dẫn Java Design Pattern – Flyweight

Bài viết được sự cho phép của tác giả Giang Phan Trong một số tình huống trong phát triển phần mềm, chúng ta có thể cải thiện hiệu suất của ứng dụng với việc sử dụng Cache . Hãy tưởng tượng rất nhiều đối tượng được tạo ra và lãng phí bộ nhớ. Mô hình Flyweight được tạo ra để tránh vấn đề này và tối ưu hóa hiệu suất. Flyweight Pattern là gì? Use sharing to support large numbers of fine-grained objects efficiently. Flyweight Pattern là một trong những Pattern thuộc nhóm cấu trúc (Structural Pattern). Nó cho phép tái sử dụng đối tượng tương tự đã tồn tại bằng cách lưu trữ chúng hoặc tạo đối tượng mới khi không tìm thấy đối tượng phù hợp. Flyweight Pattern được sử dụng khi chúng ta cần tạo một số lượng lớn các đối tượng của 1 lớp nào đó. Do mỗi đối tượng đều đòi hỏi chiếm giữ một khoảng không gian bộ nhớ, nên với một số lượng lớn đối tượng được tạo ra có thể gây nên vấn đề nghiêm trọng đặc biệt đối với các thiết bị có dung lượng nhớ thấp. Flyweight Pattern có thể được áp dụng để giảm tải cho bộ nhớ thông qua cách chia sẻ các đối tượng. Vì vậy performance của hệ thống được tối ưu. Flyweight object là immutable , nghĩa là không thể thay đổi khi nó đã được khởi tạo. Hướng dẫn Java Design Pattern – Proxy Bridge Pattern trong Java – Code ví dụ Composite Pattern Hai trạng thái của Flyweight Object Trạng thái của flyweight object là một phần quan trọng trong việc thiết kế Flyweight Pattern. Mục tiêu chính của Flyweight Pattern là giảm bộ nhớ bằng cách chia sẽ các đối tượng. Điều...

By stationd
Biến toàn cục (global), biến cục bộ (local), biến nonlocal trong Python

Biến toàn cục (global), biến cục bộ (local), biến nonlocal trong Python

Bài viết được sự cho phép của tác giả Nguyễn Chí Thức Trong bài Python này bạn sẽ học về biến toàn cục (global), biến cục bộ (local), biến nonlocal trong Python và trường hợp sử dụng các biến này. Biến toàn cục trong Python Trong ngôn ngữ lập trình Python , một biến được khai báo bên ngoài hàm hoặc trong phạm vi toàn cục được gọi là biến toàn cục hay biến global. Biến toàn cục có thể được truy cập từ bên trong hoặc bên ngoài hàm. Tuyển dụng lập trình python mới nhất trên Station D Hãy xem ví dụ về cách tạo biến toàn cục trong Python. x = "Biến toàn cục" #khai báo biến x #Gọi x từ trong hàm vidu() def vidu (): print( "x trong hàm vidu() :" , x) vidu() #Gọi x ngoài hàm vidu() print( "x ngoài hàm vidu():" , x) Trong ví dụ trên, ta khai báo biến x là biến toàn cục, và định nghĩa hàm vidu() để in biến x. Cuối cùng ta gọi hàm vidu() để in giá trị của biến x. Chạy code trên ta sẽ được kết quả là: x trong hàm vidu(): Biến toàn cục x ngoài hàm vidu(): Biến toàn cục Chuyện gì sẽ xảy ra nếu bạn thay đổi giá trị của x trong hàm? x = 2 def vidu (): x=x* 2 print(x) vidu() Nếu chạy code này bạn sẽ nhận được thông báo lỗi: UnboundLocalError: local variable 'x' referenced before assignment Lỗi này xuất hiện là do Python xử lý x như một biến cục bộ và x không được định nghĩa trong vidu(). Để thay đổi biến toàn cục trong một hàm bạn sẽ phải sử dụng từ khóa global. Chúng tôi sẽ nói kỹ hơn trong bài...

By stationd
Mô tả công việc – Vị trí lập trình Front-end

Mô tả công việc – Vị trí lập trình Front-end

TỔNG QUAN Lập trình viên Front-end là người tập trung phát triển phía Client Side, nói một cách đơn giản dễ hiểu là tập trung vào mảng phát triển xây dựng giao diện và trải nghiệm cho người dùng, là người phụ trách phát triển hiển thị và trải nghiệm người dùng cho ứng dụng web. Front-end Developer chính là người quyết định cái nhìn đầu tiên của người dùng về trang web, đồng thời mang lại một trang web dễ dàng thao tác và sử dụng. >>> Xem thêm: Frontend cần học những gì để trở nên thật giỏi Những yêu cầu từ phía nhà tuyển dụng Một frontend dev phải có tư duy về UI/UX Lập trình viên không đơn thuần chỉ là một coder giỏi mà còn phải có tư duy như một Designer, một Business Analyst (BA) có thể phát triển sản phẩm đẹp, tiện dụng mang lại trải nghiệm tốt nhất cho người dùng. Bởi vì trong sự cạnh tranh khốc liệt thì một sản phẩm đẹp hơn sẽ chiếm được tình cảm và sự ủng hộ từ phía người dùng, người ta không thể sử dụng một thiết bị rất đẹp về mọi thứ như iPhone, nhưng khi mở ứng dụng của bạn lên lại thấy xấu, thiết kế cẩu thả, mắc phải các lỗi cơ bản về hiển thị. Có hàng tá sản phẩm giống bạn nhưng lại rất tiện dụng, trong khi đó sản phẩm của bạn lại rối rắm, phức tạp, thì rõ ràng không ai muốn bỏ thời gian, công sức để tìm hiểu. Nói một cách khác, một sản phẩm xấu, hoặc khó sử dụng sẽ làm cho người dùng cảm thấy nó thiếu chuyên nghiệp và không tôn trọng họ. Sản phẩm đẹp sẽ giúp bạn nâng cao...

By stationd
Dùng MicroPython với wifi board ESP-8266

Dùng MicroPython với wifi board ESP-8266

Bài viết được sự cho phép của tác giả Nguyễn Việt Hưng Khi trở thành một trong những ngôn ngữ lập trình phổ biến nhất thế giới, Python không chỉ được dùng trong làm web, data science, hay sysadmin tool mà nó còn đá sang cả một lĩnh vực vốn giới hạn về tài nguyên: nhúng. Bình thường khi bật Python lên để in ra màn hình dòng “hello, world” ta đã dùng tới 8MB bộ nhớ. Vậy nên việc dùng Python cho lập trình nhúng thường nghe có vẻ không phù hợp. MicroPython ra đời, là một bản thu gọn của Python, tối ưu chạy trên các vi xử lý cũng như các môi trường giới hạn về tài nguyên. Bài này khám phá việc chạy MicroPython trên một thiết bị tí hon có tên WEMOS D1 mini. WEMOS D1 mini Là 1 bảng mạch điện có khả năng thu phát sóng wifi (wifi board) có kích thước nhỏ hơn ngón chân cái của người lớn, thiết bị này có giá 2 USD. Bảng mạch này sử dụng vi điều khiển (microcontroller) ESP-8266, với xung nhịp 80MHz/160MHz, 96KB RAM và 4 MB Flash. Microcontroller A microcontroller is a small computer on a single integrated circuit. In modern terminology, it is similar to, but less sophisticated than, a system on a chip or SoC; an SoC may include a microcontroller as one of its components. A microcontroller contains one or more CPUs along with memory and programmable input/output peripherals. Một vi điều khiển là một máy tính nhỏ, trên một mạch điện tử (P/S: SoC là khái niệm tương tự, nhưng phức tạp hơn). Nó có một hoặc nhiều CPU, memory và chỗ để thực hiện vào ra dữ liệu. Hãy nhìn vào chiếc máy bàn hay laptop bạn đang...

By stationd
PHP Developer là gì? Lộ trình trở thành PHP Web

PHP Developer là gì? Lộ trình trở thành PHP Web

Bài viết được sự cho phép của tác giả Phạm Bình Hello các bạn, Trong bài viết này mình sẽ chia sẻ với các bạn lộ trình để trở thành PHP web developer. Thực ra mình không rõ nên coi nội dung dưới đây là lộ trình, là kỹ năng, hay kiến thức nữa, nhưng đại loại nếu bạn muốn trở thành PHP web developer thì nội dung dưới đây sẽ có ích với bạn. I. PHP WEB DEVELOPER LÀ GÌ Tìm hiểu qua một chút về “cái đích” mà chúng ta sẽ hướng đến, thì PHP web developer là tên một nghề liên quan đến công việc lập trình web. Trong đó PHP là tên ngôn ngữ lập trình, web developer tạm dịch là “Người phát triển web”, vậy PHP web developer thì hiểu là “Người phát triển web sử dụng ngôn ngữ PHP” (Ngoài PHP thì còn nhiều ngôn ngữ khác cũng làm được web). Ok, dễ hiểu đúng không. Nhưng thực ra, cái tên “PHP web developer” thì là cách gọi vắn tắt của “ PHP/JavaSctipt/HTML/CSS/bla bla,… web developer “, nghĩa là để trở thành PHP web developer thì bạn cần phải học rất nhiều thứ, và PHP chỉ là một trong số chúng. 10 PHP Instagram Scripts & Widgets tốt nhất Câu chuyện trước khi PHP có composer Xem thêm tuyển dụng PHP lương cao trên Station D Giới thiệu thêm Để tạo ra một trang web, bạn sẽ cần các kiến thức: – Kiến thức về HTML/CSS/JavaScript: Dùng để tạo giao diện trang web. – Kiến thức về ngôn ngữ lập trình: Dùng để xử lý các tính năng có trên trang web (hiểu nôm na là vậy), và PHP là một ngôn ngữ lập trình. – Kiến thức về cơ sở dữ liệu: Là...

By stationd
React Native là gì? Kiến thức tổng quan về React Native

React Native là gì? Kiến thức tổng quan về React Native

Cách đây 2 năm, tôi chỉ tập trung vào lập trình Android native. Nhưng đến năm ngoái, khi công ty yêu cầu tôi học lập trình iOS, tôi đã khá phấn khích lúc đầu, nhưng sự phấn kích đó nhanh chóng phai nhạt dần, năng suất làm việc của tôi cũng suy giảm đi. Tôi nhận ra, mình phải học lại từ đầu tất cả mọi thứ như framework, các công cụ, IDE… Và vì tôi rất thích đến các buổi meetup nên tôi cũng bắt đầu tham dự các buổi meetups của cả Android và iOS. Tôi cần phải cập nhật với những tính năng mới nhất trên cả 2 platforms, nên rất tốn thời gian và khó chịu khi khả năng học của tôi không nhanh. Vì vậy, tôi đã rất hứng thú khi React Native dành cho iOS ra đời. React Native là một giải pháp giải pháp tối ưu để phát triển ứng dụng trên cả hai nền tảng iOS và Android được nhiều người lựa chọn hiện nay. Vậy React Native là gì ? Hãy cùng tìm hiểu trong bài viết này. React Native là gì? React Native là một framework phát triển ứng dụng di động đa nền tảng (cross-platform) được phát triển bởi Meta (tên trước kia là Facebook). React Native cho phép bạn xây dựng ứng dụng di động cho cả nền tảng iOS và Android bằng việc sử dụng JavaScript. REACT NATIVE – Learn once, write anywhere. Chỉ cần viết một lần là có thể build ứng dụng cho cả iOS lẫn Android. Việc này giúp chúng ta có thể tiết kiệm được thời gian, công sức, tiền bạc. Giúp tốc độ ra sản phẩm cũng như cập nhật ứng dụng nhanh chóng mặt. Đọc thêm: 9 ứng dụng tuyệt vời...

By stationd