Ngôn ngữ lập trình lưu trữ biến như thế nào?

Ngôn ngữ lập trình lưu trữ biến như thế nào?

Mở đầu Có lẽ khi lập trình không nhiều người quan tâm tới cách bộ nhớ tổ chức lưu trữ và thao tác với biến như thế nào (vì nó hơi khó) nhưng khi nắm được nó bạn sẽ thấy được nhiều vấn đề rất tường minh, nó liên quan tới phần cứng của máy tính nên nắm được nó cũng giúp cho bạn có nền tảng vững hơn khi học sâu và rộng hơn về sau này. Ngôn ngữ phù hợp nhất để mô tả và giải thích cho việc lưu trữ...

Cơ chế browser load HTML và JS

Cơ chế browser load HTML và JS

Bài này mình xin giới thiệu sơ qua về cách trình duyệt tải nội dung HTML và CSS như thế nào. 1. Thứ tự thực hiện khi trình duyệt tải nội dung HTML và JS. Lấy nội dung trang HTML (ví dụ index.html) Bắt đầu dịch (parse) trang HTML cho trình duyệt. Nếu bộ dịch của trình duyệt gặp phải thẻ <script> mà tham chiếu tới file script ngoài. Trình duyệt sẽ gửi request để lấy nội dung file script đó, trong quá trình gửi request này, trình duyệt sẽ tạm ngừn...

Cài đặt phpspec vào laravel

Cài đặt phpspec vào laravel

1. Giới thiệu. Phpspec là một thư viện hỗ trợ test theo design pattern emergent cho PHP: http://www.phpspec.net/en/stable/ 2. Mục tiêu. Giả sử cấu trúc thư mục của project như sau: /myproject /app /Http /Controllers TestController.php /Models Test.php /Services TestService.php /public /resources /spec /Http /Controllers TestControllerSpec.php /Models ...

Gọi hàm trong javascript

Gọi hàm trong javascript

Trong JS, dấu () để gọi thực thi hàm. 1. Function Expression Function expression là function được khởi tạo bằng phép gán =; function có thể có tên hoặc không có tên. VD: var f = function() { console.log(5); } // hoặc var f = function test(){ console.log(5); } Function expression không được hoisting(khác với function declaration giải thích phía dưới) console...

Kinh nghiệm đi Fuji-Q-Highland từ Tokyo

Kinh nghiệm đi Fuji-Q-Highland từ Tokyo

Fuji-Q-Highland là khu vui chơi giải trí nổi tiếng ở Nhật bản. Đến với Fuji-Q-Highland, bạn vừa được thưởng thức những trò mạo hiểm đứng trong top thế giới vừa được ngắm nhìn cảnh núi Phú Sỹ hùng vĩ ở cách đó không xa. Các trò tàu lượn cảm giác mạnh đứng trong top của thế giới: - Trò Fujiyama cao thứ 8 TG, dài thứ 5 TG, nhanh thứ 10 TG(theo xếp hạng năm 2007) - Trò Dodonpa nhanh thứ 4 TG, độ gia tốc đứng thứ 1 TG (theo xếp hạng năm 2013) - Trò Eejanaika là trò tàu...

Bạn đã thực sự hiểu mutable và immutable?

Bạn đã thực sự hiểu mutable và immutable?

Mở đầu Bạn đã từng đọc hay nghe đâu đó nói rằng: mutable là giá trị có thể thay đổi được còn immutable là giá trị không thể thay đổi được. Nhưng bạn đã thực sự hiểu đúng nó chưa? >> test = 3 # => 3 >> test # => 3 >> test = 2 * test # => 6 >> test # => 6 Bạn nghĩ đoạn code trên(trong ruby) chứng tỏ biến test có phải là ...

Giải thích cụ thể về this trong javascript

Giải thích cụ thể về this trong javascript

1. Mở đầu Trước khi học hiểu về this bạn nên học trước về scope và closure Trong js, từ khóa this là thứ rất hay nhưng cũng là thứ gây ra bao rắc rối cho nhiều người, nhất là đối với những người đi từ ngôn ngữ lập trình khác sang js. Lý do lớn nhất khiến this gây hiểu nhầm cho bao nhiêu người chính là v&igr...

Download private file trên S3 về browser trong rails

Download private file trên S3 về browser trong rails

Nếu file trên S3 được public thì chỉ cần trả về url của file cho user, khi user click vào url đó trên browser thì họ sẽ download được. Còn nếu file trên S3 là private và ta muốn download file thông qua API thì làm như sau: Download S3 file rồi lưu về file tạm(temporary file) trên server. Gửi nội dung file tạm về cho người dùng Xóa file tạm trên server(có thể xóa hoặc không nhưng nên xóa đi) Khi không cần xóa file tạm thì bạn chỉ cần làm như sau (ở đây mình d&ug...

Có nên gọi ActiveRecord::Rollback với rescue trong transaction rails?

Có nên gọi ActiveRecord::Rollback với rescue trong transaction rails?

Khi sử dụng transaction trong RoR, có lúc ta không cần phải gọi câu lệnh ActiveRecord::Rollback , cũng có lúc ta phải gọi nó. Xét ví dụ: self.transaction do first_operation begin second_operation call_other_function rescue Exception => e #deal with the error raise ActiveRecord::Rollback #force a rollback end end Nếu bỏ raise ActiveRecord::Rollback : Mọi thay đổi tới DB xảy ra ở second_operation và call_other_function đều được r...

eval trong javascript

eval trong javascript

Ta nên tránh dùng eval vì một số lý do sau: Dễ bị tấn công injection. Không debug được code trong eval. Hiệu năng khi chạy code trong eval. Có 2 cách gọi eval là gọi trực tiếp(Direct call) và gọi gián tiếp(Indirect call) Direct call là gọi trực tiếp bằng cách gọi eval(...your code...)  Indirect call là gọi gián tiếp thông qua một biến trung gian(xem VD phía dưới) Xét ví dụ sau: ...