Tag Archives: series

Series Phản Phác Quy Chân – Chuyện về những “ổ gà” trên con đường lập trình

Hôm nay, trước khi nói về ngành lập trình, ta hãy nói về ngành cầu đường.

Trên đời này làm gì có đường, người ta đi mãi cũng thành đường thôi. – Lỗ Tấn

Từ chuyện xây đường…

Thưở xưa, để đến nơi, người ta phải đi chân trần, trèo đèo lội suối, đập đá băng rừng.

Dần dần người ta chặt cây, nhổ cỏ, làm đường đất để mà đi. Đường đất vừa bẩn vừa nhiều bụi, người ta lại lát đá, lát gạch cho đường sạch đẹp, dễ đi hơn.

Thế rồi khoa học tiến bộ, người ta không lát đá nữa mà ủi phẳng, trải nhựa, trải bê tông. Trên đường nhựa, người ta xây cầu vượt, xây vòng xoay, xe cộ băng băng qua lại, nhanh chóng và tiện lợi hơn nhiều so với ngày xưa.

go-your-own-road-by-erik-johansson

Continue reading Series Phản Phác Quy Chân – Chuyện về những “ổ gà” trên con đường lập trình

Series JavaScript sida – Cùng làm quen và “chịch”, nhầm… nghịch ES6

Dạo gần đây mình đi làm thêm, project hiện tại có sử dụng React với cả ES6 – chuẩn Javascript mới. Do mấy bài viết trước mình chê JavaScript sida nhiều thấy cũng tội, hôm nay viết một bài nói tốt cho nó một tí để đổi gió nhé.

Phiên bản JavaScript hiện tại chúng ta đang sử dụng dựa trên chuẩn ECMAScript 5 (ES5). Hiện tại, JavaScript được sử dụng ngày càng nhiều, từ front-end cho đến back-end, điều này đòi hỏi sự cải tiến trong JavaScript (Nghĩ cũng đúng, cái ngôn ngữ sida thế mà code mấy hệ thống to to, code phức tạp thì để lâu chả banh chành ra à !!). Đó là lý do chuẩn ECMAScript 6 (ES6) ra đời, cung cấp 1 số tính năng mới cho JavaScript, đồng thời giúp code trở nên tường minh và dễ viết hơn.

Capture

Continue reading Series JavaScript sida – Cùng làm quen và “chịch”, nhầm… nghịch ES6

Series Phản Phác Qui Chân – Tuốt tuồn tuột về Unicode và Charset

Chào mừng các bạn đã quay lại với series Phản Phác Quy Chân. Lần này series sẽ tập trung giải thích mổ xẻ tất tần tật về Unicode, encode và charset. Hầu hết các ngôn ngữ/framework đều hỗ trợ sẵn Unicode nên bạn có thể thoải mái code cả mấy năm trời mà chẳng cần quan tâm đến 2 thằng này. Tuy nhiên, không phải hù gì các bạn nhưng mà “Lỗi liên quan tới encoding là những lỗi khó chịu và khó sửa nhất”, do đó tự trang bị những kiến thức “xưa mà không cũ” về Encoding vẫn khá là cần thiết đấy nhé.

So I have an announcement to make: if you are a programmer working in 2003 and you don’t know the basics of characters, character sets, encodings, and Unicode, and I catch you, I’m going to punish you by making you peel onions for 6 months in a submarine. I swear I will.

And one more thing:

IT’S NOT THAT HARD.

Continue reading Series Phản Phác Qui Chân – Tuốt tuồn tuột về Unicode và Charset

Series Phản Phác Quy Chân – Tại sao cộng string lại chậm

Lý giải chút về tên series

返璞归真 – Phản phác quy chân: Nghĩa là điểm cao nhất cũng chính là điểm xuất phát, được ứng dụng trong rất nhiều lĩnh vực. Trong võ học, nó có nghĩa là đạt tới cảnh giới “Tối thượng” trong truyền thuyết, quên đi tất cả võ học trong thiên hạ, bản thân đã không còn chiêu thức cụ thể, chỉ dựa vào ý cảnh mà đơn giản xử lý.

Võ học được thành lập từ các chiêu thức cơ bản, tuyệt thế võ công cũng từ các chiêu thức cơ bản mà ra. Code học cũng tạo thành từ bit/byte cơ bản, chương trình phức tạp đến mấy cũng dịch được ra bytecode. Đôi khi, ta đã quá quen với việc dùng thư viện, dùng framework mà quên thì những thứ nằm sâu bên dưới, không nắm được bản chất. Có những vấn đề mà phải nắm rõ bản chất của nó ta mới có thể giải quyết được.

Như cái tên “Phản Phác Quy Chân”, series này không giới thiệu công nghệ hay ngôn ngữ mới, mà sẽ tập trung quay lại những cái bản chất, đơn giản, tinh túy nhất mà ít người quan tâm để ý (Bên tiếng Anh có một từ tương tự : Back to Basic, bỏ qua những cái phức tạp, quay lại những cái cơ bản để hiểu tận gốc vấn đề).

01_s_by_darkdamage-d5yo32c

Ở bài viết đầu, mình sẽ nhắc sơ lại về string, cũng như giải thích lý do vì sao việc cộng string sẽ ảnh hưởng tới bộ nhớ và performance của hệ thống (Hình minh họa và bài viết méo liên quan với nhau đâu, vì tác giả thích thế :v).

Continue reading Series Phản Phác Quy Chân – Tại sao cộng string lại chậm

Series JavaScript sida – Bind, Call và Apply trong JavaScript

Để hiểu rõ về các hàm được đề cập trong bài viết này, các bạn nên ôn lại chút kiến thức về object trong javascriptđít (this) trong javascript nhé. Như đã hứa, trong bài này mình sẽ giới thiệu bộ 3 function bind, call ,apply. Đây là 3 hàm tạo nên sự mạnh mẽ và bá đạo của JavaScript.

Trói đít (this) lại bằng bind

Bind là một hàm nằm trong Function.prototype, do đó chỉ có function mới có khả năng gọi nó. Như đã nhắc tới trong bài viết về this, bind được dùng để xác định tham số this cho một function.

1

Continue reading Series JavaScript sida – Bind, Call và Apply trong JavaScript

Series Javascript sida – OOP trong JavaScript

Trước khi xem bài này, các bạn nên ôn lại kiến thức bằng cách xem lại 2 bài viết về objectprototype trong series JavaScript sida. Trước khi phân tích về OOP trong JavaScript, mình sẽ nhắc lại sơ 1 số khái niệm trong OOP. Bạn nào quên rồi có thể lên wiki xem lại nhé: https://vi.wikipedia.org/wiki/Lập trình hướng đối tượng.

Trong phạm vi bài viết, ta sẽ bàn về 3 đặc tính của OOP, so sánh cách hiện thực chúng trong Java và JavaScript. Vì Wiki có sẵn rồi nên mình chỉ copy vào thôi, không giải thích lại lòng vòng nhé:

Continue reading Series Javascript sida – OOP trong JavaScript

Series Javascript sida – Pờ rồ tô tai (Prototype) là cái gì

Ở bài trước, mình đã nói về khái niệm object và đít– một số khái niệm cơ bản trong JavaScript. Trong bài này, mình sẽ giải thích khái niệm prototype – một khái niệm khá lòng vòng phức tạp, dễ làm điên đầu các front-end developer.

Prototype là cái đếu gì?

Khi một thằng developer khác cứ đi theo và hỏi bạn “Prototype là cái đếu gì?”, hãy trả lời nó: Là cái đầu cha mày, hỏi hỏi suốt. Câu trả lời này có phần hơi bố láo nhưng lại khá là chính xác, có thể hiểu protoype nôm na là khuôn hoặc là cha của một object.

Continue reading Series Javascript sida – Pờ rồ tô tai (Prototype) là cái gì

Series JavaScript sida – Object trong JavaScript

Như đã chia sẻ ở bài viết trước, trong năm 2016 mình sẽ dành thời gian trau dồi kĩ năng front-end, do đó số lượng các bài viết về front-end trên blog sẽ nhiều hơn một chút.  Sau series C# hay ho được nhiều người đón nhận, năm nay blog sẽ có thêm series Javascript sida. Lý do là: càng học sẽ càng thấy C# nó hay ho, trong khi đó càng học lại càng thấy Javascript nó sida, bạn nào không tin cứ theo dõi series sẽ biết.

Bạn nào theo dõi blog lâu cũng biết mình có một số tình cảm khá phức tạp cả yêu lẫn ghét dành cho javascript. Về bản thân ngôn ngữ, cá nhân mình thấy nó là một ngôn ngữ trời đánh, khá sida, làm bao nhiêu lần mình phải thốt lên đ.m hay WTF khi học.

Javascript vốn được thiết kế một cách tạm bợ thô sơ, dùng để validate ở client side (Bạn nào tò mò muốn biết thêm về lịch sử của js có thể đọc thêm cuốn Professional JavaScript for Web Developers). Song chẳng hiểu duyên trời đưa đẩy thế nào, JavaScript cùng với PHP lại trở thành hai ngôn ngữ được sử dụng ở khắp mọi nơi, dù hứng chịu biết bao gạch đá.

c19be8898d6f097228295a6408ef3911c896257b035a120922865af69b92e4d4

Continue reading Series JavaScript sida – Object trong JavaScript

Series C# hay ho: EPPlus – Thư viện Excel “bá đạo” – Phần 2

Tiếp theo phần 1, thì phần này mình sẽ hướng dẫn các bạn thao tác với các công thức trong Excel, cũng như đọc nội dung từ file Excel.  Continue reading Series C# hay ho: EPPlus – Thư viện Excel “bá đạo” – Phần 2

Series C# hay ho: EPPlus – Thư viện Excel “bá đạo” – Phần 1

Lang thang dạo qua các group trên facebook, mình thấy có nhiều bạn hỏi cách để xuất file Excel trên MVC, hoặc đọc nội dung từ file Excel trong C#. Bài viết này sẽ giới thiệu EPPLus, một thư viện C# khá “bá đạo”, có khả năng xử lý tuốt tuồn tuột những thứ liên quan đến Excel.

Bài này được viết bởi khách mời Phạm Hồng Sang, một bạn nam dễ thương cùng trường FPT và đồng nghiệp ASWIG với mình. Văn phong của Sang gãy gọn đơn giản chứ không lòng vòng hài hước như mình, bạn nào thấy giọng văn lạ thì đừng thắc mắc nhé.

Continue reading Series C# hay ho: EPPlus – Thư viện Excel “bá đạo” – Phần 1