Công Nghệ
Review và giải thích sâu về framework, ngôn ngữ, AI, blockchain… ngắn gọn, dễ hiểu, cập nhật liên tục như git pull ‑‑rebase.
1826 bài viết

Chém gió: Tại sao tui vẫn thích Firefox
Bài viết được sự cho phép của tác giả Lưu Bình An Ngày xưa khi Firefox ra đời đánh dấu sự tàn lụi của IE6, với những tính năng siêu ngầu như: cho phép user cài thêm extensions , thay theme như thay áo. Ai cũng khoái. Vài năm sau, dân chơi thứ thiệt bước vào cuộc đấu, cái tên ai cũng biết là ai đấy – Chrome . Khi vừa xuất hiện thực sự Chrome trở thành cơn địa chấn, số lượng người dùng lúc ban đầu nhiều không tưởng, và không ngừng tăng, bởi vì nó được chống lưng bởi Google, con ác chủ bài để Google có thể chiếm hết thị phần trình duyệt. Chắc chắn bạn cũng đang dùng Chrome để đọc blog này! "Bắt đầu từ vị trí dev, làm tốt sẽ được trao cơ hội trở thành leader" 10 kênh Youtube học lập trình không thể bỏ qua dành cho Junior Web Developer / Designer Web bây giờ khác xưa nhiều rồi, công nghệ tân thời tốn điện hơn xưa, à ko, tốn RAM và CPU hơn, web ko còn là những trang tin đơn giản, nó còn là những ứng dụng phức tạp chạy trên trình duyệt bằng những công nghệ, ngôn ngữ không ngừng thay đổi để thõa mãn thú tính của người sử dụng, chúng ta đấy. Tui một developer chạy con Macbook Pro cấu hình cao nhất, mới nhất. Khi bắt đầu lập trình và bật Chrome DevTools lên, pin tụt nhanh như chó phóng qua hàng rào Và nếu bạn cũng là developer như tui, chắc bạn cũng sẽ bật Task manager lên và kiểm tra, a đù, sao Chrome mày ăn RAM tao kinh dị vạy. Rồi bạn nghe đâu với bản Firefox Quantum mới bọn dev của...

Tại sao bạn nên đi làm công ty thay vì làm freelancer
Bài viết được sự cho phép của tác giả Võ Quang Huy Tình hình hôm vừa rồi có đi cafe với ông Anh, ổng hỏi sao chú không ở nhà làm cho khỏe, làm công ty làm chi cho mệt? WordPress thiếu chi dự án… Đúng là một câu hỏi cũng đáng phải suy nghĩ Làm ở nhà thì thời gian thoải mái hơn, tự do, nếu ổn định thì thu nhập cao hơn… Nhưng… Suy nghĩ thế thôi chứ theo mình đi làm công ty mình được nhiều thứ hơn là tiền… Với hơn 4 năm theo nghiệp code trải qua hơn 4 công ty thì hôm nay mình xin được chia sẽ cho các bạn những lý do bạn nên đi làm công ty thay vì làm ở nhà (freelancer). 1. Sự ổn định Cái này thì tất nhiên rồi làm công ty với một mức thu nhập ổn định thì sẽ mang đến cho bạn một sự yên tâm. Hằng tháng cứ đến ngày 5 (Ngày nhận lương của mình =)) ) là tiền tự vào tài khoản, ngày làm đủ 8h tối về chở vợ con đi siêu thị chơi chả lo gì. Còn làm freelancer tháng nào nhiều dự án thì thu nhập được, tháng này bận việc hoặc nhác làm thì tiền chả có, chưa tính đến chuyện khách hàng chơi lầy làm xong rồi mà không chịu trả tiền… Ổn định ở đây không chỉ ảnh hưởng đến bản thân bạn và còn ảnh hưởng đến người chung quanh… Nếu bạn làm công ty người thân sẽ thấy yên tâm: “à con tui nó làm công ty nước ngoài… Chồng tao làm lead công ty ABC…” Còn nếu bạn làm ở nhà phụ huynh của bạn sẽ cảm thấy khá lo lắng không...

Thuật toán là gì? 11 thuật toán hàng đầu dành cho lập trình viên
Xã hội hiện tại đang chứng kiến một cuộc cách mạng to lớn trong lĩnh vực công nghệ. Những phát minh mới liên tục được cập nhật. Thường thì nguồn gốc của những phát minh này là từ những chương trình gạo cội có khả năng chi phối và thao túng các xu hướng công nghệ đang diễn ra. Trong số đó không thể không nói đến mã hóa và thuật toán, được sử dụng để phát triển các chương trình cạnh tranh như vậy. Vì thế, đối với một chương trình thành công và có tầm ảnh hưởng, việc khai thác một thuật toán tốt nhất đúng và chính xác là điều tất yếu. Sau đây cùng tìm hiểu thuật toán là gì và 11 thuật toán hàng đầu được sử dụng rộng rãi trong lập trình và phát triển web. Thuật toán là gì? Thuật toán là gì? Thuật toán (Algorithm) hay còn được gọi là giải thuật là một tập hợp các bước được xác định rõ ràng, có thể thực hiện được bằng máy tính để giải quyết một vấn đề hoặc thực hiện một phép tính. thuật toán luôn tường minh và thực hiện các hành động cụ thể từng bước một để mang lại kết quả tối ưu nhất. Dễ hiểu hơn, thuật toán là cách giải một bài toán bằng chương trình máy tính. Thuật toán được sử dụng rộng rãi trong nhiều lĩnh vực của công nghệ thông tin (IT). Trong toán học, lập trình máy tính và khoa học máy tính, thuật toán thường đề cập đến một quy trình nhỏ giải quyết một vấn đề lặp đi lặp lại. Thuật toán cũng được sử dụng như các đặc tả kỹ thuật để thực hiện xử lý dữ liệu và đóng...

13 IDE trên trình duyệt tốt nhất mọi lập trình viên nên biết
Một môi trường phát triển tốt là điều cần thiết cho mọi lập trình viên. Cho dù bạn đang phát triển các ứng dụng web mới nhất hoặc học ngôn ngữ lập trình lần đầu tiên, thì môi trường bạn sử dụng phải thuận tiện và dễ sử dụng. IDE (Integrated Development Environment) được thiết kế để giúp việc lập trình trở nên dễ dàng hơn cho các nhà phát triển. Hầu hết chúng là các chương trình ngoại tuyến được cài đặt trên ổ cứng của máy tính. Bài học cho các Developer sau lỗi bug video từ Facebook 8 video game giúp bạn lập trình web tốt hơn Nhiều IDE dựa trên trình duyệt phù hợp để lập trình trên đám mây. Hầu hết các công cụ trong số này có những hạn chế khi so sánh với những đối thủ ngoại tuyến, nhưng chúng đang dần cải thiện theo thời gian. Bất kể bạn định làm gì, đều có một IDE phù hợp cho hầu hết mọi mục đích sử dụng. 1. IDE trực tuyến chuyên nghiệp tốt nhất: AWS Cloud9 Khi Amazon mua IDE Cloud9 vào năm 2016, nó đã được các nhà phát triển yêu thích. Việc tích hợp đầy đủ với Amazon Web Services khiến nó được cho là nền tảng phát triển trực tuyến mạnh mẽ và có thể mở rộng nhất hiện có. IDE trực tuyến kết hợp trình soạn thảo code với terminal và các công cụ gỡ lỗi mạnh mẽ. Cloud9 cũng có chế độ lập trình theo cặp tương tự như VS Live Share cho phép lập trình cộng tác từ xa theo nhóm. Nếu cần tạo mẫu nhanh, Cloud9 cung cấp cho bạn quyền truy cập trực tiếp vào những AWS service thông qua hỗ trợ terminal tích...

Tất tần tật về Java
Mọi người cùng xem qua những nội dung hay nhất về Java, đây sẽ là một nguồn tại liệu cực kỳ quý giá dành cho hành trang của bất kỳ lập trình viên Java nào. Dưới đây là tổng hợp 20 công cụ Java tốt nhất cho Developers bạn có thể tham khảo: 1) JUNIT: JUnit là một công cụ kiểm tra mã nguồn mở cho ngôn ngữ lập trình Java . Đây là công cụ quan trọng để phát triển và triển khai dựa trên thử nghiệm. Đặc trưng: JUnit cung cấp hỗ trợ để viết và chạy thử nghiệm Nó cung cấp các chú thích để xác định các phương pháp test Cung cấp các xác nhận để thử nghiệm kết quả dự kiến JUnit cho phép viết mã nhanh hơn, giúp tăng chất lượng Liên kết tải xuống: http://junit.org/junit4/ 2) NETBEANS: NetBeans là IDE nguồn mở MIỄN PHÍ. Nó cho phép phát triển các ứng dụng máy tính để bàn, thiết bị di động và web. Đặc trưng: Nó cung cấp hỗ trợ đầy đủ cho Công nghệ Java mới nhất Hỗ trợ chỉnh sửa mã nhanh & thông minh quá trình quản lý dự án dễ dàng & hiệu quả Phát triển giao diện người dùng nhanh chóng Giúp viết mã không có lỗi NetBeans IDE cung cấp hỗ trợ vượt trội cho các nhà phát triển C / C ++ và PHP NetBeans IDE có thể được cài đặt trong bất kỳ HĐH nào hỗ trợ Java, từ Windows đến Linux đến các hệ thống Mac OS X Download link: https://netbeans.org/downloads/index.html 3) Maven Apache: Apache Maven là một phần mềm công cụ quản lý dự án. Nó dựa trên khái niệm Mô hình đối tượng dự án (POM). Đặc trưng: Đơn giản thiết lập dự...

Cảm ơn Vim, mình đã dừng code bằng VS Code.
Tác giả: Nguyễn Hữu Đồng Trước tiên, cảm ơn a Nguyễn Ngọc Thịnh đã giới thiệu cho mình một code editor rất là tuyệt vời, sau khi học sử dụng Vim, mình đã không thể quay lại dùng VS Code. Trước tiên, mình sẽ nếu một số điểm mạnh của vim(neovim) so với vs code. Tốc độ code : Thực sự thì khi đã quen với vim thì tốc độ code của bạn sẽ lên một tầm cao mới, copy, paste, search, replace code, comment code, tất cả đều bằng phím tắt cả. Navigation : Navigate giữa các dòng, đầu dòng cuối dòng cực kì nhanh với phím tắt, chuyển giữa các file, search file rất nhanh Nhẹ : vim rất nhẹ, mình có cảm giác khi code với vscode thì con mac air của mình không thể thở nổi, quạy quay như máy cày, nhưng khi code với vim, mình không gặp trường hợp đó, nó rất nhẹ, đôi khi còn không thể nghe tiếng quạt chạy All in terminal : code với vim mình không cần phải switch qua lại giữa vscode với terminal nữa, tất cả trong terminal, kết hợp với iTerm2 nữa thì thật là tuyệt vời. Navigate, tạo mới, tắt, thay đổi khoảng cách giữa các tab đều bằng phím tắt. Nhanh hơn dùng chuột 96,69 lần. Kho plugin cực kì đầu đủ và nhẹ nhàng : nếu bạn cần màu sắc màu mè, highlight như vscode đã có vim-monokai-pro , muốn autocomplete đã có coc-nvim , muốn show sidebar đã có scrooloose/nerdtree , muốn fuzzy search đã có fzf , muốn comment code đã có tpope/vim-commentary và còn rất nhiều nữa, các bạn có thể tìm tại đây vim-awesome.com . Khác biệt : giữa một rừng các thanh niên code bằng vscode, bản thân...

Muốn trở thành một web developer nên bắt đầu từ đâu?
Bài viết được sự cho phép của tác giả Tino Phạm Thế giới lập trình là rộng lớn với rất nhiều lĩnh vực và cơ hội mang lại cho bạn sự trải nghiệm, cũng như con đường đi mà bạn sẽ chọn lựa cho sự nghiệp, đam mê của mình. Bạn là một người mới và đang mong muốn trở thành một web developer. Và thời điểm này bạn vẫn chưa thể xác định sẽ bắt đầu từ đâu khi đi trên con đường này. Với kinh nghiệm của bản thân, mình sẽ chia sẽ để giúp bạn có định hướng và cái nhìn tổng quan hơn trước khi bước chân vào con đường trở thành web developer . Trong lĩnh vực lập trình ứng dụng web, chúng ta có lập trình cho Front-end và lập trình cho Back-end. Bắt đầu từ hướng lập trình Front-end là dễ dàng hơn cho bạn. Vì sao ư? Để trở thành một Front-end developer bạn chỉ cần học một số công nghệ chính bên dưới: HTML5 CSS3 JavaScript Học một trong các Framework sau: Angular/ React/ Vue . Vì những Framework này giúp bạn xây dựng front-end cho ứng dụng nhanh hơn, dễ dàng mở rộng và thay đổi UI, đồng thời giữ cho code front-end có tổ chức hơn. Trong khi để trở thành một Back-end developer bạn cần phải nắm được những công nghệ sau: Ngôn ngữ lập trình cho Back-end. Bạn sẽ phải chọn dùng một trong các ngôn ngữ: C# , Java , PHP, Python , etc. Bạn phải học một Framework tương ứng cho ngôn ngữ mà bạn đã lựa chọn. Ví dụ: bạn chọn dùng C# thì bạn phải học thêm về .NET Framework, .NET Core, etc. Bạn chọn dùng Java thì phải biết Framework: Hiberate hoặc...

Kiến trúc JVM – kiến thức không thể bỏ qua
Bài viết được sự cho phép của tác giả Kiên Nguyễn Đã là lập trình viên Java thì không thể không biết về JVM (Java Virtual Machine). Một chương trình Java sẽ được biên dịch ra byte code và thực thi với JRE (Java runtime environment) JVM là gì? Định nghĩa JVM 10 điều mọi nhà phát triển ứng dụng Android nên biết về kiến trúc Architecture Xem thêm nhiều việc làm Software Architect hấp dẫn trên Station D 1. WORA – HAHA Tất nhiên, chỉ WORA là có nghĩa WRITE ONE, RUN ANYWHERE. Một chương trình Java sau khi viết có thể chạy ở khắp mọi nơi. Chính Virtual Machine đã giúp ta điều này. Tất cả các class Java đều được compiler thành byte code, quẳng cho JVM thực thi. 2. JVM Architecture Diagram Cái wth gì đây vậy?. Rối bùi nhùi lên thế!. Rất xin lỗi bạn đọc, những ai chưa từng tìm hiểu về kiến trúc JVM. Thề, mới đầu mình nhìn hình cũng ngộp cmn luôn. Ngáo ngơ bm. Tuy nhiên, sau khi chia nhỏ thành các components để tìm hiểu và liên kết lại với nhau, kiến trúc JVM lại không quá phức tạp và khó hiểu. Hãy cùng tìm hiểu chứng năng và mục đích của từng components nhé. 3. Trời, vậy nó hoạt động như thế nào? Như hình vẽ ta thấy 3 cục to to, đó chính là ba thành phần cơ bản nhất của JVM. Với tên như sau: Class Loader Subsystem Runtime Data Area Execution Engine Nhìn thì rối rắm nhưng JVM thực chất được chia thành 3 components chính. Kiến trúc này tương đương với kiến trúc “xay thịt heo”. Cũng 3 bước thuận theo lẽ tự nhiên. Class Loader Subsystem – chuẩn bị thịt (cạo lông, thui,)....

Xây dựng sự nghiệp tại As White Vietnam: Nỗ lực hết mình đổi lấy thành công xứng đáng
Xuất hiện tại thị trường Việt Nam từ năm 2011, AS White Vietnam – Công ty con của tập đoàn As White Global, đã không ngừng phát triển và đứng vững trên thị trường. Đây là môi trường làm việc tuyệt vời với đầy đủ sự chuyên nghiệp, quốc tế, cùng với nền tảng vững chắc và nhiều cơ hội phát triển, xứng đáng là điểm đến lý tưởng cho các nhân tài công nghệ tỏa sáng sự nghiệp. AS White Vietnam – Mang giá trị “lành nghề” Việt Nam vươn xa đến thị trường Úc AS White Global là công ty chuyên về các giải pháp nhân sự tích hợp ở nước ngoài với đội ngũ hơn 1000 nhân sự cùng nhiều văn phòng trải khắp Sydney, Việt Nam, Philippines và Malaysia. AS White Global đã và đang thực hiện tốt sứ mệnh cung cấp cho các doanh nghiệp tại Úc những “mảnh ghép” tài năng nhất để phát triển đội ngũ toàn cầu của mình. Là cánh tay đắc lực cho sự phát triển của tập đoàn, AS White Vietnam ra đời với mục đích hỗ trợ công ty mẹ gắn kết nhân tài với các công ty đang có nhu cầu tuyển dụng tại Úc, mang đến các giải pháp tổng hợp nhân sự tối ưu giúp doanh nghiệp tìm kiếm những ứng viên sáng giá và tài năng, phù hợp cho từng vị trí thuộc nhiều lĩnh vực ngành nghề cũng như đáp ứng yêu cầu khắt khe nhất. Tại Việt Nam, hiện công ty đã và đang làm việc với các khách hàng thuộc hơn 23 lĩnh vực khác nhau, từ Tài chính, Vật liệu xây dựng, Dịch vụ môi trường, CNTT, đến Tư vấn quản lý, Bất động sản, Bán lẻ và Viễn thông....

Sử dụng Alternate Exchange trong RabbitMQ
Bài viết được sự cho phép của tác giả Giang Phan Khi một Message đến Exchange, nếu không tìm thấy Queue nào phù hợp cho Message, Message sẽ tự động bị hủy. RabbitMQ cung cấp một tiện ích mở rộng AMQP được gọi là Alternate Exchange , để collect các Message không thể gửi được trước khi chúng bị huỷ. Chúng ta sẽ biết được cách làm việc và cài đặt của Alternate Exchange trong bài viết này. Sử dụng binding Exchange to Exchange trong RabbitMQ Sử dụng Dead Letter Exchange trong RabbitMQ Flow của một Message trong Alternate Exchange Alternate Exchange được định nghĩa để collect các Message không thể gửi được (rejected/ discarded/ unrouted) trước khi chúng bị huỷ. Bất kỳ 4 loại Exchange: Direct, Fanout, Topic, Headers có thể được chỉ định như một Alternate Exchange cho một Exchange khác thuộc bất kỳ loại nào. Tuy nhiên, ta nên sử dụng Fanout Exchange như một Alternate Exchange vì nó chuyển tiếp tin nhắn vô điều kiện. Để chỉ định một Alternate Exchange cho một Exchange GPCoder.AltTopicExchange , chúng ta chỉ cần thêm arguments: alternate-exchange =” GPCoder.AltFanoutExchange ” cho GPCoder.AltTopicExchange . Khi đó GPCoder.AltFanoutExchange trở thành một Alternate Exchange cho GPCoder.AltTopicExchange . Flow của một Message trong Alternate Exchange: Một Producer publish một Message đến source Exchange với một routing key dựa trên loại của Exchange. Trong trường hợp này là GPCoder.AltTopicExchange . Một Fanout Exchange ( GPCoder.AltFanoutExchange ), được chỉ định là một AlternateExchange cho GPCoder.AltTopicExchange . Nếu một Message có routing key match với bất kỳ routing key pattern nào mà Queue đã binding với GPCoder.AltTopicExchange , thì Message sẽ được chuyển đến Queue match đó. Nếu không match với bất kỳ routing key pattern nào, khi đó Message sẽ bị reject. Theo mặc định của...

Build một ứng dụng Chat cho Android & iOS bằng Contus Fly như thế nào?
Biên dịch: Dương Đình Tuấn “Thành công của mỗi ứng dụng chat khác nhau về những chức năng riêng biệt mà nó có” – Vậy thì đâu là những tính năng đáng chú ý, thứ mà bạn mang vào trong chính ứng dụng chat của mình? Cuộc chiến giữa các nhà cung cấp ứng dụng chat luôn ở mức cao trào! Khi chúng ta hầu như đều nhận ra rằng các ứng dụng nhắn tin tự động đã thay đổi cách giao tiếp, thông qua việc sử dụng các smartphone. Thói quen sử dụng smartphone đang tăng dần trong tất cả lĩnh vực và nó cũng cho thấy rằng số lượng người dùng nhắn tin qua ứng dụng chat đang phát triển mạnh, lên đến 2,48 tỷ người dùng trong năm 2021. Những thống kê này hoàn toàn là một dấu hiệu tốt cho các doanh nghiệp có khát khao và chuyên gia kinh doanh đối với việc đem ứng dụng chat ngay sau đây của bạn vào thị trường này. Nhưng, làm sao để làm ra ứng dụng chat iOS/Android lung linh của bạn với khả năng đánh bại những gã khổng đã làm ứng dụng này trước đây? Contus Fly, một giải pháp chat thời gian thực (real-time) hiện có mặt tại các doanh nghiệp có quy mô lớn và các công việc liên quan đến công nghiệp khác, để làm ra ứng dụng chat riêng cho họ, cách làm này phù hợp với bất kỳ giải pháp trò chuyện nào. Giải pháp chat hiện đại này được trang bị các tính năng và công nghệ có một không hai để làm tăng trải nghiệm. Tìm việc làm android hấp dẫn online tại nhà Tuyển dụng ios lương cao cho bạn up to 30M Điều gì làm cho...

PyUnit – Kiểm thử tự động
Bài viết được sự cho phép của vntesters.com Python ngay từ đầu không phải là một công cụ kiểm thử tự động mà là một ngôn ngữ lập trình . Vậy làm thế nào để có thể tạo ra được các kịch bản kiểm thử tự động trên ngôn ngữ Python. Câu trả lời cho vấn đề này là thư viện unittest của Python. 10 sự thật thú vị về ngôn ngữ lập trình Python 11 tip học Python dành cho các “newbie” Python unittest, đôi khi còn được gọi là PyUnit , là một nền tảng kiểm thử (testing framework), được phát triển từ JUnit dành cho Python. Một nền tảng kiểm thử trên một ngôn ngữ lập trình được thiết lập để cho ngôn ngữ lập trình biết phương thức nào là phương thức kiểm thử (testing method), lớp nào là lớp kiểm thử (testing class), kết quả như thế nào là đúng (Passed), như thế nào là sai (Failed)…. Từ khoá chính trong PyUnit testcase: Từ khoá này được dùng để mô tả cho Python biết lớp đang tương tác là một lớp kiểm thử. Ex: class A(unittest.TestCase): setup: Từ khoá này được dùng bên trong một lớp kiểm thử. Nó dùng để tạo một phương thức, và phương thức này sẽ được chạy trước khi thực thi mã trong phương thức kiểm thử (Pre-condtion). Ex: def setUp(self): teardown: Từ khoá này được dùng bên trong một lớp kiềm thử. Nó dùng để tạo một phương thức, và phương thức này sẽ được chạy sau khi thực thi mã trong phương thức kiểm thử (Post-condition). Ex: def tearDown(self): Ở mức độ cao hơn, chúng ta sẽ có setUpClass() , tearDownClass() , setUpModule() và tearDownModule() với mực độ thực thi ở cấp độ lớp và module Chúng ta...