Skip to main content

Posts

Showing posts from November, 2015

(Unit Test) Những luật cần thiết để viết unit test

Trước giờ mình làm những dự án trên iOS ít khi nào khách hàng đòi hỏi mình phải viết unit test cho họ. Hiện tại mình cũng đang tập viết unit test trên iOS nên có vài kinh nghiệm khi nghiên cứu về nó, nếu bạn nào có kinh nghiệm nào khác xin chia sẻ tại đây để chúng ta có thể tìm ra hướng giải quyết tốt nhất. - Khái niệm unit test : Unit test là một đơn vị kiểm tra tự động nhỏ, được viết bởi người lập trình viên để kiểm tra những dòng code của ứng dụng thực tế, chúng phải được viết một cách độc lập. - 5 luật đơn giản nên tuân theo trước khi viết unit test là F.I.R.S.T . Chữ này được viết tắt của những chữ như: F ast — nhanh: Unit test phải chạy thường xuyên, do đó cần phải viết sao cho chạy nhanh. I solated — tách biệt: Unit test không nên phụ thuộc vào các yếu tố bên ngoài, hoặc kết quả của unit test này phụ thuộc vào kết quả của unit test khác. R epeatable — lặp lại: Unit test phải trả ra cùng kết quả mỗi khi chúng được thực thi. S elf-verifying — tự kiểm tra: Unit test phải dùng...

Giới thiệu StackView trên iOS 9.0

Trước khi iOS 9.0 ra mắt thì những người lập trình viên trên iOS vẫn còn rất khó dùng constraints để làm auto layout trên nhiều thiết bị của Apple. Vì nó tuỳ biến rất nhiều, và người làm phải hiểu cơ chế của nó thì mới tuỳ chỉnh được, và nếu trên giao diện phức tạp thì cũng rất khó tuỳ chỉnh và bảo trì code đó. Khi Apple ra mắt iPhone 5 (với kích thước màn hình 4 inch) thì mình có 1 cách để làm giao diện dọc theo trục đứng là dùng TableView và những cell trên table để thiết kế giao diện để khi chạy trên màn hình 3.5 inch và 4 inch đều được. Điểm lợi thứ nhất là nó sẽ tự động thêm xuống và có thể scroll được. Lợi thứ hai là có thể dùng chung thành phần của từng cell riêng biệt đó trên những màn hình khác được. Nhược điểm là code không tường minh cho lắm vì những thành phần của 1 màn hình được chia tách từng phần trên 1 cell của table view. Thực ra cách này mình cũng học theo ý tưởng sắp xếp những control trên giao diện Android. Vì thế khi Apple ra mắt iOS 9 đã giới thiệu thêm control m...

EXIF Orientation Handling Is a Ghetto

Mình thấy nội dung này hay nên copy qua trang để lưu trữ và share cho các bạn. Có thể xem nội dung gốc tại đây . One of my favourite services at the moment is  Transloadit , who provide an image processing API that works a treat on top of platforms like  Heroku , where there are strict request timeout limits that make large uploads difficult. They handle auto-orientation of images automagically by default, and normally I’m not even aware of it happening during testing since my camera and OSX also handle auto-orientation transparently. Recently one particular image stuck out on the staging server as un-rotated, while it worked fine locally using  ImageMagick / Dragonfly . Not only that, but the width and height seemed to be wrong, warping the image (the app I’m working on uses a tiled layout, and requires the width and height of each image to be explicitly set in CSS). I put together a few test images, and have been talking it over via email with Transloadit for the last c...

NGỮ PHÁP N4

Ghi chú: Danh sách dưới đây chỉ để THAM KHẢO, nhiều chỗ sơ sài không chính xác. Bản đúng và đầy đủ sẽ có tại Lớp học Cú Mèo. Phiên bản Saromalang 2.0  ♪ NEW ♪    BẢNG TRA NHANH NGỮ PHÁP N4 Điều hướng: Mẫu câu  01-10  |  11-20  |  21-30  |  31-40  |  41-50  |  51-63 NGỮ PHÁP N4: MẪU CÂU 01 ~ 10 1. ~(も)~し、~し~:Đã A lại còn B / vừa A vừa B www.saromalang.com お腹がすいたし、のどが渇いたし、何か食べたい。 Onakagasuita shi, nodo ga kawaitashi, nanika tabetai. Vừa đói vừa khát nên tôi muốn ăn thứ gì đó. このシャツは色もきれいですし、デザインもいいですね。 Kono shatsu wa iro mo kireidesu shi, dezain mo īdesu ne. Cái áo này màu đẹp và thiết kế đẹp. 2. ~によると~そうです: Theo ~ thì nghe nói là ~ www.saromalang.com 天気予報によると、明日は晴れるそうです。 Tenkeyohō ni yoru to, ashitahahareru-sōdesu. Theo dự báo thời tiết thì ngày mai trời đẹp. 彼の話によれば、この茶碗は高価な骨董品だそうだ。 Kare no hanashi ni yoreba, kono chawan wa koukana kottōhin da sōda. Theo lời anh ấy thì cái chén này là thứ đồ cổ rất đắt tiền. 3. ~...