Thứ Hai, 18 tháng 1, 2016

Mánh khéo

nh khóe code và test
  • Hầu hết các trường hợp, sử dụng inheritance (kế thừa) là thiết kế hướng đối tượng tồilàm cho code khó test và khó bảo trì. Nên cân nhắc sử dụng composition (sở hữu) và interface. Bạn còn nhớ nguyên tắc thứ 2 trong lập trình hướng đối tượng không đó là:”Ưu tiên sử dụng Composition hơn Inheritance”
  • Không nên sử dụng Interface khi bạn chưa rõ ràng về domain của chương trình. (Mỗi khi cần thêm 1 function, bạn sẽ phải thêm nó vào interface và implement của interface đó, gấp đôi công sức).
  • Bảo mật/mã hóa rất khó. Sao không tái sử dụng  thư viện hay thuật toán có sẵn v…v, và bạn nên biết rõ mình đang làm gì nhé!
  • Có vô vàn nguyên nhân làm chương trình bị crash (lỗi): deploy ( các phase phát triển, kiểm thử, tích hợp,… ) sai cách, input bị lỗi, user dùng sai cách, quá tải … Chuẩn bị sẵn sàng cho những điều đó: Ghi log những exception gặp phải, deploy thử lên server test, đặt giới hạn cho bộ nhớ…Việc ghi log rất quan trọng vì hi có sự cố gì, thì việc đầu tiên bạn cần làm là đọc log, nếu ko có thì bạn ko biết chuyện gì đã xảy ra và làm sao để sữa lỗi đó.
workflow (1)

  • Kết nối mạng (HTTP, socket) rất dễ xảy ra vấn đề. Luôn nhớ đặt timeout cho các kết nối này, sử dụng thư viện để wrap chúng, retry nếu kết nối có vấn đề.
  • Khi thêm code chắc chắn sẽ làm chương trình phức tạp ít nhiều, tăng khả năng bug cao, thế nên giảm số lượng code thì giảm lượng phức tạp phát sinh
  • Validate những thứ người dùng nhập vào, vừa đảm bảo tính bảo mật, lại hạn chế được bug.
  • Tái sử dụng code chưa chắc đã khiến code của bạn dễ bảo trì hơn. Hãy thử tái sử dụng code giữa 2 domain khác nhau, điều này có thể làm chúng “dính chặt” với nhau hơn.
  • Chỉ test những thứ cần test, test ít thì dễ sót bug, test nhiều thì sẽ mất thời gian và tốn công update test case mỗi khi đổi requirement.
  • Commit code vừa là một khoảng thời gian nghỉ giữa, giúp bạn nhìn lại code của mình. Nó vừa là một cách giúp bạn kiểm soát code của mình. Vì vậy hãy giữ số lượng code nhỏ, code chạy được, viết message rõ ràng bao gồm thứ bạn đã làm và lý do bạn làm thứ đó.
  • Với kiến trúc tốt,  bạn có thể dễ dàng nâng cấp, thay thế. Tập trung xây dựng kiến trúc tốt, ít móc nối trước, về sau sẽ dễ thở hơn.
  • Như đồ dùng điện tử, code để lâu không sử dụng cũng rất dễ hư hỏng, do đó cần được refactor (tùy chỉnh code nhằm cải thiện nó mà không thay đổi chức năng ban đầu) thường xuyên. Tuy nhiên cần tránh refactor code quá nhiều
♣ Mánh khóe làm việc
  • Scrum cơ bản là bộ khung làm việc (framework) hay có thể hiểu nôm na là cách thức làm việc để trở nên “linh hoạt” trong phát triển phần mềm. Vì thế nên dùng Scrum khi bạn muốn hoàn thành một module/dự án
Scrum
  • Viết code cho mình và người khác hiểu nhất là khi bạn làm việc với nhóm. Hãy thêm comment vào code để dễ hiểu hơn, một năm xem lại vẫn hiểu như ban đầu
  • Hiểu rõ thư viện/framework mà mình sử dụng và cứ thế sử dụng. Đừng phí thời gian và công sức mà viết lại
  • Nên cài đặt để việc build một project diễn ra nhanh chóng tiện lợi nhất có thể. Hãy chắc chắn bạn có thể build bằng command line, sẽ rất có ích (Có thể kích hoạt build từ xa, hoặc đưa project lên CI chẳng hạn).
  • Hiểu rõ những tool bạn sử dụng (IDE, source control, build tool, Photoshop). Tập dần cho quen với các hotkey. Bạn sẽ làm việc nhanh hơn và “pro” hơn.
  • Ngồi lâu không tốt chút nào. Hãy tập một số thói quen để đảm bảo sức khỏe khi làm việc: Không nên ngồi quá 2 tiếng,  cho mắt nghỉ ngơi , sắp xếp bàn làm việc, bàn phím, chuột sao cho làm việc thoải mái…
  • Hãy sử dụng các framework/process/pattern 1 cách có quy tắc vào dự án. Vì không phải lúc nào Test-Driven Development cũng tốt, không phải lúc nào cũng nên áp dụng DI/IoC.
♣ Mánh khóe phát triển bản thân
  • Cách học hỏi và lên trình độ nhanh nhất đó là vọc code của các ứng dụng, framework Open Source
  • Code review cũng là một trong những cách hay nhất giúp bạn tiến bộ, có người đánh giá code của bạn, giúp bạn phân biệt code giỏi và dở, tránh những lỗi lầm cơ bản
  • Đừng chung tình với ngôn ngữ mà hãy thử tìm hiểu một ngôn ngữ mới sẽ giúp bạn hiểu những khái niệm mới, có cái nhìn mới, cách suy nghĩ sẽ linh hoạt hơn.
  • Học một ngôn ngữ hướng đối tượng là chuyện dễ.  Nhưng biết cách thiết kế hệ thống theo hướng đối tượng là chuyện khó.
  • Hãy tìm hiểu các nguyên lý SOLID và một số Design Pattern ( Design Pattern giúp bạn giải quyết vấn đề một cách tối ưu nhất, cung cấp cho bạn các giải pháp trong lập trình OOP), chúng sẽ nâng cao hiểu biết của bạn về thiết kế hướng đối tượng.
  • Luôn giữ tinh thần học hỏi, nhưng đừng chạy theo công nghệ mới. Đừng chọn một công nghệ cho một dự án chỉ vì nó hot/mới/hay. Cái mới chưa chắc tốt hơn cái cũ :)
Tổng hợp từ toidicodedao.wordpress.com
 Học lập trình trực tuyến myclass.vn xin chúc bạn có ngày làm việc và học tập thật vui vẻ!

0 nhận xét: