Xin đừng đánh nhau với Framework
Xin bắt đầu bằng câu chuyện rùa và thỏ.
Phiên bản 1: Như mọi người đã biết, rùa thắng thỏ vì rùa rất chăm chỉ, chậm và chắn chắn.
Sau khi thua rùa, thỏ ta rất cay cú nói với thỏ con: “Đời cha đã thua rùa vì không chăm chỉ, đời con, con nhất định phải lấy lại danh dự cho nhà Thỏ, không được lười biếng tích cực luyện tập để phục thù”. Và khi thỏ con trưởng thành, thỏ con thách đấu với rùa con.
Phiên bản 2 : “Toét, toét, toét!” Thỏ con và rùa con cắm đầu chạy. Chạy một hồi, thỏ con không dám nghỉ, chạy một mạch. Sau cùng, Rùa con vẫn thắng bởi Thỏ con mải mê chạy quá mà không chú ý đến đường đi, không nghiên cứu kỹ bản đồ, không suy nghĩ kỹ về mục tiêu phải chạy. Và cuối cùng là thỏ con bị lạc lối, chạy mãi, chạy mãi mà ko thấy đích đâu cả. Cuối cùng khi đến nơi thì rùa đã đến từ lúc nào.
bài học rút ra ở đây là, chúng ta chăm chỉ rồi chưa đủ, chúng ta đã biết xác định mục tiêu, nghiên cứu chiến thuật kỹ trước khi ra trận vẫn chưa đủ mà chúng ta còn cần phải học cách sử dụng công cụ. Rùa cháu biết sử dụng công cụ nên vẫn chiến thắng.
Trong cuộc sống thật cũng vậy, chúng ta đôi khi cắm đầu cắm cổ vào làm, mất rất nhiều thời gian, sau đó chúng ta hả hê xung sướng vì đã làm những chương trình hết sức ghê gớm, hết sức khủng khiếp. Sau đó chúng ta nhìn vào framework thấy là, ô, nó cũng đã có rồi mà, chỉ việc sử dụng thôi. Và mặt chúng ta dài ra, vì tiếc rằng đã ko nghiên cứu kỹ những thứ mà framework đã có sẵn cho chúng ta. Nếu nghiên cứu kỹ một chút chúng ta đã có thể rút ngắn đi được rất nhiều thời gian phát triển phần mềm. Và liệu 1 mình chúng ta, hoặc cứ cho là một nhóm chúng ta có thể giỏi hơn một tập thể hàng nghìn những con người ưu tú, trong một tổ chức mà tổng thu nhập của nó lớn hơn rất nhiều lần Việt Nam? câu trả lời là có, có thể nhưng xác suất chỉ là 1 / 1.000.000.000.000.000 e+100000. Và rất hiếm để có 1 Hà Đông thứ 2, lóe sáng rồi vụt tắt. Vì vậy, chúng ta hãy học tập cách sử dụng cái ô tô trước khi nghĩ đến việc sáng chế, phát minh ra một loại ô tô mới. Và theo kinh nghiệm của tôi, thứ tự ưu tiên tìm hiểu như sau:
- Apple (nếu là iOS, MacOS), Google (nếu là Android), Microsoft (nếu là WindowsPhone). Vì chắc chắn cha mẹ bao giờ cũng có trách nhiệm tối cao với những đứa con của mình
- Các thư viện có sẵn. Nhưng các bạn cũng đừng dựa hoàn toàn vào nó, hãy tìm hiểu xem nó được viết ra thế nào. Và trong quá trình tìm hiểu, trình độ của bạn đã được tăng lên rất nhiều. Và có nhiều thư viện đã từng rất tốt, nhưng sau một thời gian, Apple thấy rằng nó cần thiết, và họ thêm vào trong API ở phiên bản mới của mình. Và các bạn cũng cần chú ý đến những điều đó để thay những thư viện không chính thống bằng những thư viện chính thống từ Apple.
- Cuối cùng là viết thư viện của bản thân bạn để có thể tái sử dụng.
Thế nào là đánh nhau với Framework:
Bạn bỏ qua những điều mà Framework cung cấp và tạo ra một thứ của riêng bạn. Ví dụ
- Bạn replace view trong uiViewController, và thay bằng cái của bạn
- Khi muốn chia màn hình, bạn tự làm cái của bạn, thay vì sử dụng SplitViewController
- Bạn muốn làm một Class Button mới có thể thay đổi trạng thái khi bấm với một tham số là isSelected sau đó thấy thông báo bị duplicate property, thế là bạn chuyển nó sang isChoosen sau đó cắm đầu cắm cổ viết mà ko biết đươc rằng Button nó đã có sẵn property selected và setImage for selected stage.
- Bạn tạo một cái UIView để thay cho navigation bar, sau đó lại khốn khổ để làm thế nào cho các thành phần navigation bar nó chạy mượt mà. Trong khi đó chúng ta đã có sẵn UINavigationController để điều khiển những việc như vậy, và chúng ta hoàn toàn có thể thay đổi và custom nó.
- Bạn muốn tạo một cái bảng mà nội dung, layout của nó chẳng mấy khi thay đổi và bạn đâm đầu vào code với một cái dynamic tableView với một loạt các reuse cell, return cell, rồi numberRowsInSections. Trong khi đó, đã có sẵn cả một loại staticTableView để bạn sử dụng trong trường hợp đó.
- Bạn muốn làm một quyển sách mà có thể lật ra lật vô. Bạn lao vào làm luôn trên một UIViewController, với đủ các container, đủ các UIView và animation. Mà bạn ko biết rằng đã có một UIPageViewController đã có sẵn, và bạn chỉ việc config nội dung của bạn vào mà thôi.
- Bạn muốn hiện 1 thông báo kiểu popup, và bạn lao vào làm luôn với 1 cái View, sau đó bạn add lên Windows và giải quyết một đống các vấn đề về tọa độ, về điểm gắn arrow. Trong khi đó rất đơn giản, bạn chỉ cần kéo một segue với cái tên là PopoverSegue rồi config nó thế là xong.
Dĩ nhiên là cái gì cũng có cái giá của nó, khi bạn làm những việc đó, tay bạn sẽ to ra, đầu bạn sẽ to ra, mắt bạn sẽ lồi ra, và bạn sẽ trở thành những coder vĩ đại. Nhưng đó là trong trường hợp bạn có đủ thời gian để nghiên cứu tất cả, giống như việc bạn trường sinh bất lão, hoặc trí ít thì cũng sống đến 200, 300 tuổi. Nhưng hầu hết mọi người chỉ sống đến 100 tuổi thôi nên tôi sẽ ko chọn cách 1 mình khiêu vũ với bầy sói vậy. Mà tôi sẽ chọn cách đứng trên vai những người khổng lồ, học tập những cái họ đã làm và sử dụng nó một cách thành thục. Chúng ta muốn đi nhanh, chúng ta không thể chỉ dùng sự kiên trì, sử dụng sự định hướng tốt, chúng ta còn cần phải biết cách dùng công cụ. Và một trong những công cụ quan trọng nhất đó là học tập từ Framework, sử dụng thành thạo Framework. Ngoài ra còn rất nhiều công cụ khác nữa? Nếu các bạn like và share bài viết đủ 100, tôi sẽ tiết lộ cho các bạn biết những bí mật tiếp theo.
- Ứng dụng bán hàng trên smartphone, smart TV, mạng xã hội...
- STracking ứng dụng chấm công nhân viên làm các công việc ngoài văn phòng công ty
- Phần mềm quản lý xe thường có những tính năng gì?
- B2B CLOUD
- Ứng dụng quản lý vận tải trên smartphone
- Hệ thống điều hành, tìm gọi và quản lý xe sử dụng công nghệ mới
- App chăm sóc thú cưng, dịch vụ thú y
- Phân hệ Quản lý Đội xe (Fleet Management) trong một hệ thống ERP thường có gì?
- app hẹn lịch chăm sóc sắc đẹp, book vé spa, massage
- Phần mềm CRM (phần mềm quản lý khách hàng) cho lĩnh vực vận tải, hậu cần thường gồm những gì?
- Hệ thống chấm công từ xa thông minh SAttendance và hệ thống định vị STracking
- ứng dụng SMS gateway
DVMS chuyên:
- Tư vấn, xây dựng, chuyển giao công nghệ Blockchain, mạng xã hội,...
- Tư vấn ứng dụng cho smartphone và máy tính bảng, tư vấn ứng dụng vận tải thông minh, thực tế ảo, game mobile,...
- Tư vấn các hệ thống theo mô hình kinh tế chia sẻ như Uber, Grab, ứng dụng giúp việc,...
- Xây dựng các giải pháp quản lý vận tải, quản lý xe công vụ, quản lý xe doanh nghiệp, phần mềm và ứng dụng logistics, kho vận, vé xe điện tử,...
- Tư vấn và xây dựng mạng xã hội, tư vấn giải pháp CNTT cho doanh nghiệp, startup,...
Vì sao chọn DVMS?
- DVMS nắm vững nhiều công nghệ phần mềm, mạng và viễn thông. Như Payment gateway, SMS gateway, GIS, VOIP, iOS, Android, Blackberry, Windows Phone, cloud computing,…
- DVMS có kinh nghiệm triển khai các hệ thống trên các nền tảng điện toán đám mây nổi tiếng như Google, Amazon, Microsoft,…
- DVMS có kinh nghiệm thực tế tư vấn, xây dựng, triển khai, chuyển giao, gia công các giải pháp phần mềm cho khách hàng Việt Nam, USA, Singapore, Germany, France, các tập đoàn của nước ngoài tại Việt Nam,…
Quý khách xem Hồ sơ năng lực của DVMS tại đây >>
Quý khách gửi yêu cầu tư vấn và báo giá tại đây >>