Tag Archives: dự án

Developer phải làm sao khi làm việc với code … rởm?

Ở bài “Tại sao code của dự án hiện tại nó … tởm quá vậy” trong kì trước, mình đã nói lý do mà code của các dự án càng để lâu sẽ càng loằng ngoằng, rối rắm.

Đây là chuyện bất khả kháng, và chúng ta ít khi có quyền lựa chọn project mình tham gia!

Thay vì than trời, trách đất, chửi mấy lão developer trước kia, bạn hãy cùng mình tìm hiểu một số cách “sống chung với lũ” – tức sống và làm việc chung với code bựa.

Ở cuối bài, mình cũng sẽ chia sẻ một số phương pháp để nâng cao chất lượng code trong dự án, giúp code đỡ “tởm dần đều” qua thời gian nhé!

Continue reading Developer phải làm sao khi làm việc với code … rởm?

Tại sao code hiện tại của dự án lại … “tởm” quá vậy?

Khi đi học hoặc mới đi làm, chúng ta được dạy về việc viết code rõ ràng, mạch lạc, chất lượng:

  • Code phải được chia tách thành các class/module rõ ràng.
  • Mỗi module phải làm một nhiệm vụ duy nhất, ít lệ thuộc lẫn nhau (high cohension/low coupling)
  • Code được thiết kế theo architecture phù hợp (3-tier hoặc MVC) tùy vào dự án. Có sử dụng design pattern tùy vào vấn đề.

Khi tham gia dự án đầu tiên, hẳn ai cũng mong rằng mình sẽ được tiếp xúc với những dòng code mạch lạc, chất lượng như vậy.

Thế nhưng, đời sẽ cho bạn một gáo nước lạnh ngay lập tức! Khi tham gia một dự án, nhiều khả năng các bạn sẽ được đọc một đống code vừa khổng lồ, vừa tởm vừa rối như canh hẹ.

Có những đống code đọc vào chỉ muốn chửi WTF

Thật đấy, 96.69% code của các dự án lớn đều như vậy cả. Có thể dự án hiện tại bạn đang làm cũng vậy đấy!

Vì sao thế? Cùng đọc bài viết này để biết nhé!

Continue reading Tại sao code hiện tại của dự án lại … “tởm” quá vậy?

Review sách – Release It! – Xây dựng và thiết kế hệ thống trâu bò cho hàng triệu người dùng

Hôm nay chúng ta tiếp tục series sách thuần technical nhé. Kì trước, mình vừa review cuốn sách Ship It! – Làm phần mềm theo phong cách chất chơi người dơi. Kì này, mình sẽ giới thiệu cuốn sách cũng hay không kém mang tên Release It! – Xây dựng và thiết kế hệ thống trâu bò cho hàng triệu người dùng.

Giới thiệu

Đây là một cuốn sách trong bộ sách Pragmatic Programmer. Bộ sách này có nhiều cuốn sách rất hay, chuyên sâu về kĩ thuật mà lại dễ đọc, rất phù hợp với lập trình viên, điển hình là 3 cuốn sách SQL Anti-PatternThe Healthy Programmer, Ship It  mà mình từng review trước đây.

Cuốn sách này có thể coi là “đàn em” của cuốn sách Ship It mình đã giới thiệu kì trước. Continue reading Review sách – Release It! – Xây dựng và thiết kế hệ thống trâu bò cho hàng triệu người dùng

Review sách – Ship It! – Làm phần mềm theo phong cách chất chơi người dơi

Lâu rồi mình chưa viết bài review sách. Nhiều bạn kêu gọi mang mục này quay lại nên hôm này mình tiếp tục review và giới thiệu sách cho bà con đọc nhé.

Kì này mình sẽ giới thiệu một cuốn sách khá hữu ích mang tên Ship It! – Làm phần mềm theo phong cách chất chơi người dơi.

Continue reading Review sách – Ship It! – Làm phần mềm theo phong cách chất chơi người dơi

Làm sao để trở thành một lập trình viên “có giá” và lương cao?

Là một lập trình viên, hẳn bạn nào cũng muốn có một công việc với mức lương khá khẩm, môi trường làm việc ngon lành.

Tuy nhiên, các công ty trả lương cho bạn dựa theo giá trị của bản thân bạn, tức là việc bạn có thể mang lại bao nhiêu tiền cho công ty. Muốn có mức lương như ý, bạn phải là một lập trình viên “có giá”, đem lại nhiều giá trị cho công ty và cho team.

Vậy, phải làm sao để nâng cao giá trị bản thân, trở thành một lập trình viên “có giá”? Hãy đọc và làm theo những kinh nghiệm mình chia sẻ trong bài viết này nhé!

Continue reading Làm sao để trở thành một lập trình viên “có giá” và lương cao?

Sinh viên “bối rối” vì 7 điểm khác biệt giữa đi học và đi làm

Trong trường Đại Học, chúng ta thường được dạy những kiến thức cơ bản về lập trình, về qui trình làm ra phần mềm. Tuy nhiên, môi trường lập trình chuyên nghiệp có những điều rất khác so với  môi trường học tập.

Do đó, khi vừa ra trường và bắt đầu đi làm, các bạn sinh viên thường cảm thấy “sốc” hoặc “bối rối” vì những khác biệt này.

Vì vậy, hôm nay chúng ta cùng điểm qua 7 điểm khác biệt các bạn sẽ gặp phải khi bắt đầu đi làm nhé.

Continue reading Sinh viên “bối rối” vì 7 điểm khác biệt giữa đi học và đi làm

Quản lý công việc hiệu quả với Kanban và Trẻ Lô (Trello)

Có lúc nào, bạn từng cảm thấy mệt mỏi vì có quá nhiều việc phải làm, quá nhiều thứ phải học chưa?

Có khi nào, bạn cảm buồn bực vì một ngày chỉ có 24 tiếng, không đủ để giải quyết mọi việc chưa?

Có khi nào, bạn từng cảm thấy hối hận khi thấy bỏ nhiều thì giờ vào những việc vô bổ, không hoàn thành xong công việc được giao chưa?

Đừng lo, hãy đọc kĩ bài viết này! Mình sẽ chia sẻ với các bạn một phương pháp quản lý công việc/thời gian vừa đơn giản vừa hiệu quả mà mình đang áp dụng.

Continue reading Quản lý công việc hiệu quả với Kanban và Trẻ Lô (Trello)

Xoá mù Agile và Scurm – Phần 2 – Tìm hiểu và ứng dụng Scrum

phần trước, chúng ta đã tìm hiểu về các nguyên lý Agile.

Trái ngược với Agile, Scrum không phải là những nguyên lý chung chung mà là một bộ khung (framework), với các công cụ (artifact), vai trò (role) và qui trình rõ ràng dựa trên các nguyên lý của Agile.

Hầu hết các bài viết về Scrum hiện nay đều tập trung vào việc giải thích các khái niệm của Scrum. Để bạn đọc dễ hiểu hơn, mình sẽ lấy ví dụ cụ thể về một dự án phần mềm: Công ty A. nọ muốn tạo ra một hệ thống bán sách mang tên Taka.vn, cạnh tranh trực tiếp với Tiki.vn.

Continue reading Xoá mù Agile và Scurm – Phần 2 – Tìm hiểu và ứng dụng Scrum

Xoá mù Agile và Scurm – Phần 1 – Tìm hiểu về Agile

Phần mềm không tự nó sinh ra cũng không tự nó nâng cấp, mà phải được phát triển và bảo trì bởi các lập trình viên. Nhiều qui trình được thành lập để giúp việc phát triển phần mềm trở nên dễ dàng và bài bản hơn.

Mỗi lập trình viên điều phải hiểu về các qui trình này để có thể làm việc một cách hiệu quả. Tuy nhiên, mình thấy đa số bạn sinh viên chỉ hiểu mang máng về các qui trình này. Một số bạn đã đi làm nhưng cũng chỉ mù quáng tuân theo qui trình mà không hiểu rõ mục đích cũng như ý nghĩa của nó.

Bài viết này sẽ cho bạn cái nhìn rõ ràng hơn về các qui trình phát triển phần mềm, cũng như cách các công ty áp dụng chúng trong thực tế.

Continue reading Xoá mù Agile và Scurm – Phần 1 – Tìm hiểu về Agile

Kĩ năng “Back of The Envelope” của các developer thần thánh

Kì này, chúng ta tìm hiểu về một kĩ năng “bá đạo” mang tên Back of the Envelope. Tại sao lại gọi nó là kĩ năng của các developer “thần thánh”?

  • Phỏng vấn tuyển dụng tại cái công ty Google, Facebook, Amazon đều đòi hỏi developer có kĩ năng này.
  • Kĩ năng này không bao giờ lỗi thời, đến tầm Project Manager hay Software Architect vẫn cần. Đại ca Bob Martin – Chú Bob (Tác giả Clean Code) rất trùm sò trong kĩ năng này.
  • Kĩ năng này không chỉ hữu dụng trong lập trình, mà còn rất bổ ích trong cuộc sống.
  • Tuy đơn giản nhưng rất lại có rất ít developer biết, luyện tập và áp dụng nó

Đến đây bạn cũng tò mò kĩ năng này là gì mà sao lại ghê gớm như vậy phải không nào? Đọc hết bài viết để tìm hiểu nhé!

Continue reading Kĩ năng “Back of The Envelope” của các developer thần thánh