Lập Trình
Duyệt các bài viết được gắn thẻ Lập Trình
1677 bài viết

Golang là gì? Top 07 Framework tối ưu “cực căng” cho Golang
Golang là một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới, đứng sau thành công của nhiều phần mềm nổi tiếng như Docker hay Kubernetes. Độ “nóng” của ngôn ngữ ngữ này giúp cho việc phát triển nguồn mở của dân dev ngày càng trở nên dễ dàng hơn. Bài viết này sẽ giúp bạn hiểu hơn về Golang và cung cấp danh sách top framework hàng đầu giúp bạn đi xa hơn trong lĩnh vực GO. Hãy lưu lại lại để dùng dần nha! Giới thiệu về ngôn ngữ Golang Golang (hay còn gọi là Go) là một ngôn ngữ lập trình được phát triển bởi Google vào năm 2007 và ra mắt chính thức vào năm 2009. Golang được thiết kế để có thể xử lý các công việc đa nhiệm và đa luồng một cách hiệu quả, đồng thời hỗ trợ tốt việc lập trình hệ thống. Điểm khác biệt của Golang so với các ngôn ngữ lâp trình khác là cú pháp đơn giản và dễ đọc, hỗ trợ nhiều tính năng, bao gồm cả hỗ trợ đa nền tảng, tốc độ thực thi nhanh và khả năng quản lý bộ nhớ tự động. Nó được sử dụng rộng rãi trong các ứng dụng đòi hỏi tốc độ cao, bao gồm các hệ thống web, game, máy chủ, các ứng dụng về đám mây và các dịch vụ liên quan. Thủ thuật xử lý lỗi trong Golang Flutter cơ bản - Framework di động được yêu thích nhất hiện nay? 7 Framework tốt nhất cho Golang bạn cần biết Gin/Gin-Gonic Gin là một framework được xây dựng trên nền tảng HTTP router và middleware, cung cấp các tính năng giúp đơn giản hóa việc phát triển các ứng dụng web với Golang....
![[Python cơ bản thường dùng trong công việc] Phần 6 : Xử lý hình ảnh](https://img-cdn.stationd.blog/w800-h600/featured/class-trong-python-218x150_20250424021706_0bc6cf87.png)
[Python cơ bản thường dùng trong công việc] Phần 6 : Xử lý hình ảnh
Sử dụng thư viện Pillow (PIL Fork) để tiến hành các thao tác xử lý hình ảnh đơn giản như resize, crop, rotate… 6.1. Cài đặt PIL Vào trang web sau để download / cài đặt package PIL cho python của bạn http://pillow.readthedocs.org/en/latest/installation.html Sau khi cài đặt thì có thể sử dụng các module trong package IPL from PIL import Image 6.2. Mở file from PIL import Image im = Image.open("photo.jpg") Sau khi mở file hình thành công thì có thể thao tác trên đối tượng im . Tuyển dụng python từ các công ty hot 6.3. Ghi file Từ đối tượng Image có thể lưu file xuống máy tính bằng phương thức save(path, type) . Ví dụ: im.save('photo_new.jpg', 'JPEG') 6.4. Tạo thumbnail Sử dụng phương thức thumbnail như sau: from PIL import Image im = Image.open('photo.jpg') im.thumbnail((100, 100)) im.save('photo_thumbnail.jpg', 'JPEG') thumbnail không trả về image mới mà thực hiện trên object image đang gọi. 6.5. Các thao tác xử lý hình ảnh Tham khảo thêm thư viện PIL tại: http://pillow.readthedocs.org/en/latest/index.html << Phần 5: thao tác trên tập tin và thư mục Phần 7: Xử lý file JSON >>

Vuex là gì? Ứng Dụng Của Vuex?
Vì sao bạn lại cần Vuex trong cuộc đời của mình? Được biết đến như một Framework tân tiến và ngày càng được đánh giá cao trong cộng đồng lập trình. Điều đặc biệt của VueJS chính là hệ thống component truyền dữ liệu trực tiếp giữa cha và con (người ta hay gọi là parent-children components. Tuy nó vẫn có những hạn chế nhất định như việc không thể đồng bộ dữ liệu các biến. Cụ thể: user, login, username. Ngoài ra, đội ngũ kỹ thuật của team Facebook cũng đã cho ra mắt một kiến trúc mang tên Flux. Tại đây, luồng dữ liệu sẽ chỉ theo một chiều (one way data flow), khi có một dữ liệu mới, luồng này sẽ bắt đầu lại từ đầu. Cũng chính vì vậy, Vuex được xây dựng dựa trên ý tưởng của Flux, Redux và kiến trúc Elm, tuy nhiên nó không được tích hợp trực tiếp vào trong lõi framework Vue.js mà được tách biệt thành một thư viện riêng. Bạn đang cần tìm một biện pháp để giải quyết vấn đề xử lý và đồng bộ dữ liệu toàn cục? Redux không còn xa lạ gì đối với ai đã từng làm việc với React. VueJS cũng cần một phương pháp để quản lý dữ liệu và VueX sẽ giúp bạn điều đó. Cùng tìm hiểu Vuex là gì nhé! VueX được biết đến như một thư viện giúp bạn quản lý trạng thái các component trong VueJS, đây cũng là nơi lưu trữ tập trung cho tất cả các component trong một ứng dụng với nguyên tắc trạng thái chỉ có thể được thay đổi theo kiểu có thể dự đoán. Vuex còn được xem như là một thư viện dùng để quản lý state cho các...

Con đường trở thành thực tập sinh tại Google
Tôi là sinh viên chuyên ngành môi trường tại đại học Yale-NUS (một trường cao đẳng nghệ thuật), có thể bạn thấy khá là bất ngờ khi tôi lại trở thành thực tập tại Google – kẻ khổng lồ về công nghệ. Bởi suy cho cùng thì việc nghiên cứu về môi trường cũng như là nghệ thuật thì có liên quan gì tới công nghệ hay kinh doanh? Câu trả lời sẽ khiến bạn ngạc nhiên đấy! Đó là bởi bất cứ ai cũng có thể làm việc cho Google hay những kẻ khổng lồ công nghệ khác nếu họ thật sự cố gắng. Vì vậy, hãy để tôi giải thích và chia sẻ một số lời khuyên về những gì bạn có thể làm để có được một chuyến thực tập tại Google. 1. Tôi đã làm 9 công việc thực tập khác nhau Trước khi học đại học: The Thought Collective (một doanh nghiệp xã hội. Mùa hè đầu tiên: Philanthropy in Motion (một tổ chức phi lợi nhuận) Học kỳ đầu tiên của năm thứ hai: Part-time intern tại Flare Communications (một công ty chuyên về huấn luyện nhân sự và điều hành) Vào tháng 12, năm thứ hai: JFDI.Asia / QLC.io và Clickstream Ventures (nay là Cocoon Capital) Học kỳ thứ hai của năm thứ hai: Tôi là một part-time intern tại Green Pea Cookie (một startup về đồ ăn) Năm thứ ba: Thực tập sáu tháng tại Founder Institute (một công ty chuyên về vườn ươm) và thực tập thực tập năm tháng tại Tilt Tôi biết bạn đang nghĩ gì: “Làm cách nào mà có thể làm ngần ấy việc?”. Đúng là nó nghe có vẻ điên cuồng, nhưng như bạn đã thấy, tôi đã làm nhiều việc thực tập khác nhau ngay...

Hướng dẫn Angular 2 cho người mới bắt đầu – Phần 3
Bài viết được sự cho phép của tác giả Tino Phạm Ở phần 2 , bạn đã tạo được một ứng dụng với Angular 2 + Typescript. Tuy nhiên, nó không có gì ngoài hiển thị dòng chữ “My First Angular 2 App”. Trong phần này, mình sẽ cố gắng giải thích thêm về các bước mà chúng ta đã thực hiện ở phần 2 . "Muốn đi nhanh phải dựa vào dev, muốn đi nhanh hơn nữa phải dựa vào khách hàng" 8 lợi thế khi sử dụng Polymer so với Angular và React File tsconfig.json File tsconfig.json là file cấu hình cho trình biên dịch của Typescript (Typescript compiler configuration). Nghĩa là, chúng ta viết code Typescript ( *.ts ) nhưng khi chạy ứng dụng thì browser sẽ đọc nội dung file ( *. js ). Ví dụ: main.ts => sẽ có main.js , main.js.map được sinh ra.Các files main.js , main.js.map được Typescript compiler (tsc) tạo ra khi chúng ta gọi lệnh npm start .Vậy khi Typescript compiler chạy, nó sẽ đọc nội dung file tsconfig.json để biết được làm thế nào để biên dịch từ Typescript sang Javascript. target : “es5” => sử dụng phiên bản ECMAScript 2009 (ES6: ECMAScript 2015). Bạn có thể thay đổi nếu muốn dùng ES6 để biên dịch. module : “system” => chỉ ra làm thế nào để các modules được load lên khi làm việc với các file riêng lẽ. Ở đây sử dụng system. Ngoài ra còn các patterns: CommonJS, AMD, UMD sourceMap : true => cho phép tạo ra file *.map tương ứng. moduleResolution : “node” => cách này chúng ta có thể load modules từ thư mục node_modules. emitDecoratorMetadata và experimentalDecorators : true => enable sử dụng decorators. noImplicitAny : false => disable thông báo lỗi khi...

Type Query trong GraphQL với Spring Boot
Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Trong bài viết trước , mình đã giới thiệu với các bạn về GraphQL, những vấn đề mà GraphQL đã giải quyết được cho những hạn chế của RESTful Web Service. Mình cũng đã hướng dẫn sơ qua cho các bạn về cách hiện thực type Query của GraphQL với Spring Boot. Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết hơn về cách hiện thực type Query này sử dụng Spring Boot các bạn nhé! Đầu tiên, mình sẽ tạo một Spring Boot project với Web và GraphQL Starter để làm ví dụ: Kết quả: Như mình đã nói trong bài viết trước, để làm việc với GraphQL, chúng ta cần định nghĩa các tập tin schema .graphqls. Mặc định thì Spring Boot sẽ scan tất cả các thư mục trong classpath src/main/resources của project để đọc các tập tin schema này. Mình sẽ tạo một thư mục tên là graphql trong thư mục src/main/resources và để các tập tin schema của GraphQL trong thư mục này. Để làm ví dụ mình đã tạo mới tập tin schema.graphqls với nội dung ban đầu đơn giản như sau: type Query { hello: String } Query này sẽ return dòng chữ “Hello World” khi chúng ta query tới! Để handle cho Query trên , chúng ta sẽ tạo mới một controller và định nghĩa một method có tên giống với tên field của type Query này, như sau: package com.huongdanjava.graphql; import org.springframework.graphql.data.method.annotation.QueryMapping; import org.springframework.stereotype.Controller; @Controller public class GraphQLController { @QueryMapping public String hello() { return "Hello World"; } } Như các bạn thấy, phương thức hello() đã được annotate với annotation @QueryMapping giúp cho Spring có thể scan và map tên method này với field của type...

Buils một ứng dụng thời tiết sử dụng AngularJS
Người viết: Đinh Quốc Hội Xin chào các bạn, bây giờ một ngày hầu hết mọi người thích xem báo cáo thời tiết của các thành phố cụ thể của họ. Vì vậy, tất cả mọi người có thể có nghi ngờ rằng làm thế nào các ứng dụng thời tiết được thực hiện / phát triển và khái niệm chính đằng sau này là gì. Vì vậy, không cần phải lo lắng và suy nghĩ về điều đó nhiều, bởi vì trong bài viết này, chúng ta sẽ xem làm thế nào chúng ta có thể phát triển ứng dụng Weather của riêng mình bằng cách sử dụng Angular JS. Trước khi nói điều này, ta chỉ muốn thông báo cho bạn rằng bạn nên biết về Angular JS, REST Full API và JSON. Nếu bạn không biết về những công nghệ này, tôi sẽ chia sẻ một số tài liệu tham khảo và sau này tôi sẽ viết blog trên các công nghệ này, để bạn có thể có được một số ý tưởng. Sau đây là các bước để phát triển Ứng dụng thời tiết bằng Angular JS Nhận một WebService API thời tiết được cung cấp bởi bất kỳ nhà cung cấp dịch vụ nào. Thiết kế một mẫu HTML. Logic để xử lý API và hiển thị dữ liệu trên mẫu Tham khảo cách sử dụng AngularJS tại đây . Bước 1: (Lấy API thời tiết) Trong bước này, chúng ta cần có API thời tiết. API thời tiết là gì: API thời tiết là dịch vụ, có một số chức năng hoặc phương pháp để cung cấp dữ liệu thời tiết (dưới định dạng JSON hoặc XML) của một vị trí cụ thể. Cách nhận API thời tiết: Có rất nhiều nhà cung cấp...

Tôi đã viết API lấy thời khóa biểu trường như thế nào?
Helu các bạn! Mình học theo tín chỉ cho nên lịch học không phải tuần nào cùng giống nhau nên hôm nào cũng phải vào trang trường xem lịch (hơi mất chút thời gian và giao diện không trực quan) . Một cách nữa là viết lại thời khóa biểu (Mất nhiều thời gian mà có thể sai sót) . Các cách này không phù hợp với một thằng lười như mình và mình muốn dùng nhiều lần… Dựng API lấy thời khóa biểu sau đó có thể viết chatbot nhắc lịch hay web/mobile xem lịch tùy ý nữa… Hừm .. Bắt đầu thôi . Bước 0: Ý tưởng thực hiện Input: tài khoản, mật khẩu sử dụng trên trang trường. Lấy file thời khóa biểu. Phân tích file thời khóa biểu => dữ liệu (JSON). Bước 1: Phân tích request Password encrypted trước khi gửi lên!! Password truyền lên đã mã hóa md5, có một số data khác Chọn request login > Copy as cURL (bash) . Mở Postman Chọn Import > Paste raw text > Ấn nút import Ta được: Gửi POST thử xem sao ! Vậy là lấy được cookie rồi ^^ Đến với phần lấy file, mình sẽ phân tích request lấy file như request trên và đây là kết quả: Phần Headers Phần response – file excel là đây chứ đâu ^^ Bước 2: Tiến hành code Mình sử dụng express của NodeJS Cấu trúc project File login Nhiệm vụ là lấy cookie let optionsGetCookies = (username,password,form) =>{ form['__EVENTTARGET'] = ''; form['txtUserName'] = username; form['txtPassword'] = password; form['btnSubmit'] = 'Đăng nhập'; return { method : 'POST', uri : urlLogin, simple: false, timeout: 20000, followRedirect: true, resolveWithFullResponse: true, form:form, headers: { 'Connection' : 'keep-alive', 'Cache-Control' : 'max-age=0', 'Origin' : urlOrigin, 'Upgrade-Insecure-Requests':'1', 'Content-Type' : 'application/x-www-form-urlencoded', 'User-Agent' :...

Mediator Design Pattern – Collaborate via me
Bài viết được sự cho phép của tác giả Kiên Nguyễn Tiếp tục với chuỗi bài viết về Behaviral Pattern (Pattern hành vi), hôm nay là Mediator Design Pattern. Pattern này cũng khá là dễ nhớ nếu hiểu về concepts. Ngoài ra, nó cũng có đôi điểm tương đồng và đôi khi hay bị nhầm lẫn với Observer Pattern. 30 tiện ích Chrome cho designer và dev 5 ứng dụng Android tuyệt vời dành cho Android Developer và Designer Trở thành Guru Design Pattern ngay thôi nào! 1. Mediator Design Pattern là gì? Mediator Design Pattern is a behavioral design pattern that lets you reduce chaotic dependencies between objects. The pattern restricts direct communications between the objects and forces them to collaborate only via a mediator object. Mediator Design Pattern là dạng pattern hành vi, cho phép giảm bớt sự phụ thuộc hỗn loạn giữa các đối tượng. Mẫu này cũng tắt tất cả các giao tiếp giữa object, bắt buộc tất cả các object khi muốn comunication đều phải thông qua đối tượng mediator. Vì kiểm soát cách thức giao tiếp (communication) giữa các object nên thuộc về behavioral (hành vi). Để dễ nhớ hơn, ta có thể xem Mediator như cảnh sách giao thông thực hiện điều tiết ở ngã tư. Tuy nhiên điều tiết không chỉ đơn thuần là bấm đèn xanh đỏ, tất cả giao thông qua lại ngã tư đều chịu sự điều khiển của anh cảnh sát này. 2. Bài toán thực tế Phi công và tất cả các phương tiện bay trên trời đều cần được điều khiển. Trong thực tế được biết tới với tên (Đài kiểm soát không lưu). Để tránh xảy ra va chạm, rõ ràng tất cả cá phương tiện bay (máy bay, trực thăng, thủy phi cơ,…) đều...

Các loại layout trong Android (RelativeLayout, LinearLayout)
Bài viết được sự cho phép của tác giả Trần Hữu Cương Các loại layout trong Android (RelativeLayout, LinearLayout) 1. Layout là gì? Layout là thành phần định nghĩa cấu trúc giao diện người dùng hay nói cách khác là thành phần quyết định đến giao diện của một màn hình trong ứng dụng Android. Layout hỗ trợ việc căn chỉnh các widget (Ví dụ: TextView, Button, hay EditText…) như chúng ta thấy trong các ứng dụng Android. 2. Các loại Layout trong Android. Android đang hỗ trợ chúng ta 6 loại layout: RelativeLayout LinearLayout GridLayout TableLayout Framelayout ConstraintLayout. Hôm nay mình sẽ hướng dẫn các bạn làm việc với RelativeLayout và LinearLayout Tuyển dụng lập trình android làm việc online 3. RelativeLayout RelativeLayout là một ViewGroup có hiển thị các View con ở các vị trí tương đối. Vị trí của mỗi View có thể được quy định liên quan đến các View anh em (như bên trái của hoặc bên dưới một View khác) hoặc ở các vị trí tương đối với khu vực cha RelativeLayout(chẳng hạn như sắp xếp ngay phía dưới, bên trái hoặc trung tâm). a. Thuộc tính Gravity Các View con khi đã định vị xong trong RelativeLayout, giả sử coi như tất cả các View con nằm vừa trong một đường biên chữ nhật, thì cả khối các View con này có thể dịch chuyển tới những vị trí nhất định trong RelativeLayout bằng thuộc tính: android:gravity , nó nhận các giá trị (có thể tổ hợp lại với ký hiệu | ) Giá trị Ý nghĩa center Căn ở giữa top Ở phần trên bottom Phần dưới center_horizontal Ở giữa theo chiều ngang center_vertical Ở giữa theo chiều đứng left Theo cạnh trái right Theo cạnh phải bottom Cạnh dưới b. Định...

Giới thiệu Feign – Tạo ứng dụng Java RESTful Client không thể đơn giản hơn
Bài viết được sự cho phép của tác giả Giang Phan Trong các bài viết trước chúng ta sử dụng thư viện Jersey client , OkHttp , Retrofit để gọi các RESTful API. Trong bài này, tôi sẽ giới thiệu với các bạn thư viện khác là Feign . Thư viện này giúp chúng ta dễ dàng hơn nữa trong phát triển ứng dụng Rest Client. Giới thiệu Feign Feign là một HTTP client cho Java, được phát triển bởi Netflix. Mục tiêu của Fiegn là giúp đơn giản hóa HTTP API Client. Tương tự với các thư viện khác, Feign giúp bạn dễ dàng xử lý dữ liệu JSON hoặc XML sau đó phân tích cú pháp thành Plain Old Java Objects (POJOs). Tất cả các yêu cầu GET , POST , PUT , và DELETE đều có thể được thực thi. Feign được xây dựng dựa trên một số thư viện mạnh mẽ và công cụ khác để xử lý các request/ response trên mạng bao gồm OkHttp, JAX-RS, Gson, Jackson, JAXB, Ribbon, Hystrix, SOAP, … Các bạn xem thêm các thư viện khác: https://mvnrepository.com/artifact/io.github.openfeign Feign hỗ trợ một số tính năng mạnh mẽ khác như: Error Handling, Retry, hỗ rợ default method, static method với interface trong java 8. 10 lý do cho thấy tại sao bạn nên theo học ngôn ngữ lập trình Java API là gì? Các nguyên tắc xây dựng Rest API Xem thêm tuyển dụng Java lương cao trên Station D Sử dụng Feign Ý tưởng của Feign tương tự như Retrofit là sử dụng interface và các annotation để định nghĩa các phương thức request đến API. Với Retrofit, chúng ta còn gặp một chút phiền phức khi phải gọi xử lý Call<Respone>. Sử dụng Feign chúng ta sẽ không thấy sự...

Những loại virus nguy hiểm nhất mọi thời đại (Phần 1)
Bài viết được sự cho phép của tác giả Trần Thị Thu Hà Kể từ ngày virus đầu tiên xuất hiện, đến nay đã hơn 20 năm. Cũng có nhiều virus mới ra đời, dưới đây là một số loại virus nguy hiểm nhất, gây thiệt hại nặng nhất. Sử dụng biến Node Environment Nhân sự nên làm gì giữa tâm bão Coronavirus 1. CIH (1998) Ước tính thiệt hại 20-28 triệu USD trên toàn thế giới, không tính dữ liệu PC bị phá hủy. CIH có nguồn gốc từ Đài Loan (6/1998) được nhận dạng là một trong những virus nguy hiểm và có sức tàn phá lớn nhất. CIH còn được biết đến với tên là Chernobyl vì thời điểm kích hoạt trùng với ngày xảy ra vụ nổ nhà máy nguyên tử Chernobyl. Virus này tấn công vào các file thực thi của hệ điều hành Windows 95,98 và ME, có khả năng cư trú trên bộ nhớ máy tính để lây nhiễm và các file thực thi khác. Chỉ sau một thời gian ngắn hoạt động CIH có thể ghi đè dữ liệu trên ổ cứng, biến dữ liệu trở nên vô dụng. Tuy nhiên ngày này CIH không còn nguy hiểm bởi các hệ điều hành mới như Windows XP, 2000 đã được cải tiến. 2. Melissa (1999) Ngày 26/3/1999, virus Melissa đã lây nhiễm toàn cầu, ước tính thiệt hại 300-600 triệu USD. Virus dạng kịch bản macro trong Word này đã lây nhiễm vào 15/20 chiếc máy tính doanh nghiệp trên toàn cầu. Melissa phát tán nhanh đến nỗi Intel, Microsoft và một số hãng phần mềm khác sử dụng Outlook đã buộc phải đóng toàn bộ hệ thống e-mail để hạn chế thiệt hại. Melissa sử dụng Outlook để gửi mail đính...