Tôi đang mất dấu dòng chảy của ứng dụng web PHP của mình, nó trở nên khó hoạt động với


14

Tôi đã lập trình được một vài năm và đã trở nên rất quen thuộc với C # và JavaScript theo thời gian. Tôi có một số dự án C # và JavaScript lớn hơn mà tôi không gặp khó khăn khi điều hướng xung quanh. Gần đây tôi đã bắt đầu một dự án PHP & AngularJS để làm việc mà không có kinh nghiệm trước đó với PHP.

Dòng chảy của khía cạnh PHP đang trở nên khó theo dõi (Phía JavaScript lớn hơn, nhưng dễ xử lý), khi tôi thử và nghĩ về nó, tôi tưởng tượng ra một quả bóng rối. Những lỗi thiết kế chính mà tôi mắc phải khi bắt đầu đang bắt đầu chồng chất và ảnh hưởng đến thiết kế của tôi. Phải mất nhiều thời gian hơn và lâu hơn để thực hiện bất cứ điều gì mới.

Tôi đang ở một thời hạn chặt chẽ và thấy càng ngày càng khó để viết tốt, DRY, RẮN, mã. Việc sao chép / dán các đoạn mã trở nên hấp dẫn hơn để tạo ra các thay đổi nhỏ cho hành vi của nó khi thời gian thiết kế tăng lên. Cũng mất nhiều thời gian để quay lại cơ sở mã bất cứ khi nào tôi phải thực hiện chuyển đổi ngữ cảnh (Từ một dự án rồi quay lại dự án này), tôi có cảm giác sợ hãi mỗi khi quay lại làm việc với dự án này.

Những bước tôi có thể thực hiện để khắc phục điều này? Cũng cần thêm thời gian để có thể chứng minh được, sếp của tôi không phải là nhà phát triển và không quen với vòng đời phát triển hoặc phần mềm nên việc giải thích có thể khó khăn hơn bình thường.



1
Cảm ơn @gnat Tuy nhiên, tôi ít quan tâm đến việc gây án cho sếp của mình hơn là tôi đang tìm ra cách tự khắc phục vấn đề. Làm một vụ án cho sếp của tôi sẽ không tốt nếu tôi không biết một cách có phương pháp tốt để xác định và thay đổi các vấn đề.
Douglas Gaskell

Câu trả lời:


11

Bạn đang nhận nợ kỹ thuật. Bạn càng biện minh cho mã cẩu thả với thời hạn, càng nhiều thời hạn sẽ thấy bạn càng ngày càng đạt được ít hơn.

Hiểu rằng bạn hoàn toàn có thể thoát khỏi điều này. Không ai sẽ bắt bạn làm cho một mớ hỗn độn và đưa bạn ra ngoài. Bạn sẽ thức dậy vào một ngày với sự bừa bộn.

Tại thời điểm đó, bạn sẽ cập nhật sơ yếu lý lịch của mình và biến nó thành vấn đề của tôi hoặc bạn sẽ quyết định trả hết nợ và dành thời gian để làm sạch mã.

Nếu bạn đi theo thói quen dọn dẹp, hãy hiểu rằng đây không phải là "dành nhiều thời gian hơn cho thiết kế". Đây là về việc phá vỡ một số thói quen lười biếng và bỏ rác.

Ném ra mã bẩn bán buôn là một ý tưởng tồi. Không phải vì công việc đi vào nó, mà bởi vì mã làm việc nắm bắt một ý tưởng. Chuyển ý tưởng thành mã sạch trước khi bạn bỏ mã bẩn.

Có các bài kiểm tra đơn vị sẽ giúp với điều này nhưng nếu bạn tạo các bài kiểm tra của mình với cùng một sự chăm sóc, bạn sẽ gặp rắc rối, họ cũng có thể cần sửa chữa.

Đừng cho vào cứng nhắc. Nếu bạn không thể thay đổi thì đó không phải là phần mềm.


1
"Không ai sẽ bắt bạn làm cho một mớ hỗn độn và đuổi bạn ra ngoài." ... Trừ khi bạn thực hiện đánh giá mã. ;)
jpmc26

1
@ jpmc26 Nếu bạn nghĩ rằng đánh giá mã sẽ cứu bạn khỏi số phận này, bạn đã nhầm. Đánh giá mã chỉ giúp bạn khi bạn sẵn sàng học hỏi từ người khác. Không phải khi bạn tập trung vào một thời hạn. Làm việc, lộn xộn, mã sẽ lặp đi lặp lại ý kiến. Tôi đã thấy các nhà quản lý giải quyết các tranh chấp này bằng cách lật một phần tư. Nếu bạn không quan tâm đến chất lượng, sẽ không ai có thể lôi nó ra khỏi bạn. Đừng nghĩ rằng bạn có thể dựa vào người khác để ngăn bạn làm bừa. Nếu nói đến điều đó, họ sẽ chỉ định bạn cập nhật tài liệu.
candied_orange

Nếu bạn đọc bình luận của tôi và nghĩ rằng tôi đang nói đánh giá mã là ma thuật như kỳ lân và cầu vồng sẽ sửa chữa mọi thứ mà không cần bất kỳ nỗ lực hay sự tự nguyện nào, bạn đã nhầm lẫn vô cùng. Nhưng họ cho ai đó cơ hội để gọi bạn ra ngoài.
jpmc26

1
@ jpmc26 Nếu bạn đọc câu trả lời của tôi và nghĩ rằng tôi đang nói rằng không có hy vọng nào từ bỏ, bạn đã nhầm lẫn vô cùng. Tôi đang kêu gọi các lập trình viên chịu trách nhiệm cá nhân về mã sạch hơn là dựa vào bất kỳ quy trình nào để thực hiện nó. Chỉ có một điều trưởng thành. Bạn có quan tâm hoặc bạn không.
candied_orange

Tất nhiên, nhưng ngay cả những lập trình viên giỏi nhất cũng sẽ đưa ra những quyết định ngu ngốc. Đánh giá mã với người khác cho bạn cơ hội đặt mã của mình trước người khác có thể bắt được mã trước đó. Đó là toàn bộ điểm . Thật khó để nhìn thấy các điểm vấn đề một mình cho đến khi bạn thực sự cố gắng thay đổi điều gì đó và nó trở nên khó khăn. Tất nhiên các đánh giá mã và bất kỳ kỹ thuật nào khác đều vô dụng nếu bạn không quan tâm.
jpmc26

9

Phải mất nhiều thời gian hơn và lâu hơn để thực hiện bất cứ điều gì mới.

Đây là lời biện minh của bạn. 'fess up, ăn một vài con quạ và giải thích lý do tại sao mọi thứ mất nhiều thời gian hơn và bạn cần dành một ít thời gian để tái cấu trúc + thiết kế lại hệ thống.

Nếu bạn không làm điều đó, bạn sẽ cần phải cấu trúc lại từng chút một, ở mức thấp. Các tác vụ đã mất nhiều thời gian hơn bạn muốn - hãy dành thêm một chút thời gian mỗi khi bạn chạm vào cơ sở mã để thử và làm cho một cái gì đó tốt hơn. Thêm một bài kiểm tra tích hợp. Trích xuất một sự trừu tượng.

Câu trả lời ngu ngốc cho "Làm thế nào để tôi tái cấu trúc một dự án lớn?" là, "Một mảnh tại một thời điểm".

BIÊN TẬP

Đang đọc các bài viết liên quan, và tình cờ thấy bài đăng trên blog này: http://ronjeffries.com/xprog/articles/refactoring-not-on-the-backlog/ . TLDR : không cố gắng tạo ra một 'giai đoạn' tái cấu trúc lớn trong dự án của bạn; không có khả năng mua lại từ các chủ dự án và bạn sẽ không bị ảnh hưởng trong các lựa chọn của mình về những gì cần giải quyết trong thời gian bạn có. Thay vào đó, hãy dành thời gian cho mỗi thay đổi hoặc sửa lỗi mới để loại bỏ mã mà bạn đang làm việc ngay bây giờ. Đừng để mùi hôi bám vào khi bạn có cơ hội sửa chúng.


3
Đó chính xác là những gì tôi đã làm với các di sản của tôi trong quá khứ. Điều tuyệt vời: một khi bạn đã có bước ngoặt, dự án bắt đầu phát sáng như với bụi cổ tích.
qwerty_so

-2

Sonarqube hỗ trợ PHP để bạn có thể giúp theo dõi khoản nợ hiện tại và các rò rỉ mới. http://docs.sonarqube.org/display/PLUG/PHP+Plugin

Mẫu trực tiếp với Drupal https://sonarqube.com/dashboard?id=drupal


1
Đáng buồn là tôi không thể cài đặt JVM trên thiết bị làm việc của mình. Điều này trông giống như một công cụ tuyệt vời khác.
Douglas Gaskell

Đó là khá hà khắc cho một máy trạm phát triển.
Archimedes Trajano

Tôi không có quản trị viên cục bộ hoặc bất kỳ quyền cài đặt nào hoặc chạy quyền cho bất kỳ ứng dụng được liệt kê nào không có màu trắng. Nó đã từng tồi tệ hơn nhiều .... thật đáng buồn.
Douglas Gaskell

Không thể nói tôi đồng cảm, mặc dù tôi thông cảm.
Archimedes Trajano

được đánh giá thấp vì đây chỉ là quảng cáo / liên kết đến một công cụ, không phải là câu trả lời cho câu hỏi của OP.
James Snell
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.