2011-01-11 35 views
6

Trong một dự án một người (trang web hoặc ứng dụng dành cho máy tính để bàn), nơi bạn vừa là nhà thiết kế và nhà phát triển, bạn nên làm gì trước, thiết kế hoặc viết mã?Cách nào tốt hơn để làm đầu tiên, thiết kế giao diện hoặc viết mã?

+6

"Khi chúng tôi hoàn thành xây dựng ngôi nhà của chúng tôi và chuyển đến, và có bên houswarming, chúng tôi cuối cùng đã thuê một kiến ​​trúc sư, ông đã thực hiện một thiết kế tuyệt vời". Bạn có cảm nhận được nó không ;)? –

+0

Trong khi tôi tin rằng bạn nên bắt đầu với giao diện người dùng, tôi giả định rằng logic chương trình là khá đơn giản, vì nó là với nhiều ứng dụng web. Nếu tôi gặp khó khăn, các thuật toán phức tạp tôi bắt đầu ở đầu bên kia, bởi vì thiết kế của mã đó sẽ ảnh hưởng đến toàn bộ dự án của tôi, trong khi giao diện người dùng thường có thể được chứa. Điều quan trọng là logic được tuyên bố đơn giản và rõ ràng để nó có thể được duy trì. Ví dụ, khi bạn đang tạo một ngôn ngữ lập trình, hãy bắt đầu với phép tính lõi, chứ không phải cú pháp. – luqui

Trả lời

13

Theo giao diện Tôi đoán bạn có nghĩa là giao diện người dùng, chứ không phải API. Tôi luôn thiết kế giao diện trước. Khi tôi viết mã tôi lười biếng - tôi làm bất cứ điều gì sẽ hoàn thành công việc với nỗ lực ít nhất. Điều này dẫn đến các giao diện không có ý nghĩa gì chỉ vì đó là cách dễ nhất (hoặc sạch nhất) để thực hiện nó trong mã. Nhưng trước khi bạn viết mã, bạn không thiên vị và sẽ đưa ra quyết định tốt hơn về giao diện tốt.

Tuy nhiên - chúng vẫn sẽ là quyết định không tốt. Bạn có thể nghĩ rằng bạn biết những gì cảm thấy tự nhiên, nhưng bạn không. Kiểm tra nó trên mọi người! Hãy xem những gì họ làm, cách họ cố gắng sử dụng phần mềm của bạn, đặt câu hỏi cho họ và điều chỉnh cho phù hợp. Nếu bạn thường xuyên thực hiện việc này, thì việc thiết kế trước tiên hoặc mã đầu tiên không quan trọng. Đây là cách để tạo ra một sản phẩm đỉnh cao.

+0

+1 vì bạn bắt đầu bằng giao diện người dùng. – Simone

0

Tôi thường thiết kế dự án trên giấy (hoặc với các công cụ sơ đồ), sau đó viết phần cốt lõi và cuối cùng là giao diện người dùng. GUI là cuối cùng. Vì vậy, bạn có thể thực hiện các bài kiểm tra đầu tiên với phần logic của chương trình và chỉ sau đó với phần trình bày.

Giả sử hướng phát triển có vẻ như đi từ tâm của hành tây sang phần bên ngoài.

1

Từ quan điểm thông thường, tôi muốn nói thiết kế mockup (nghĩ bút và giấy) là tốt nhất để bắt đầu. Xác định những gì bạn muốn chương trình/trang web để làm và làm thế nào nó nên xem xét mà không đi vào chi tiết. Nếu bạn có một mục tiêu rõ ràng từ khi bắt đầu liên quan đến các chức năng và thiết kế trên một lệnh triển khai dự án nhỏ hơn thì đó không phải là vấn đề lớn.

Tuy nhiên, tôi phải nói rằng tôi luôn làm mã trước khi thiết kế và tôi hiếm khi tạo bản nháp nháp. Ngoài ra tôi không bao giờ làm theo lời khuyên của riêng tôi.

+0

Chính xác bạn mã * thành * nếu bạn không có thiết kế? Tôi đồng ý rằng có một trong tâm trí hoặc trên giấy là đôi khi đủ, nhưng tôi không thấy làm thế nào bạn có thể bắt đầu viết mã mà không có một ở tất cả. –

+0

Có thể "làm mã trước khi thiết kế" không phải là cách phù hợp để đặt nó.Thay vào đó tôi thường bắt đầu mã hóa xương sống và triển khai kỹ thuật nhiều hơn trước tiên và sau đó tôi tạo ra một giao diện người dùng cơ bản để kiểm tra các chức năng này. Hoàn thành tất cả các mã trước khi thiết kế rõ ràng là một cách khá ngu ngốc để đi về nó. Nhưng như tôi đã nói tôi không nghĩ rằng tôi đang làm theo cách tôi nên (theo lời khuyên của riêng tôi). –

1

Đây là Tôi nghĩ rằng một bước thông thường bởi cách tiếp cận bước:

  • Tìm hiểu các yêu cầu.
  • Tạo mô hình ứng dụng và hiển thị ứng dụng cho khách hàng hoặc đồng nghiệp.
  • Tạo thiết kế kỹ thuật toàn cầu. Liệt kê các công nghệ để sử dụng và tổng quan mức cao về các thành phần cần thực hiện.
  • Sau đó bắt đầu viết mã hoặc tạo một thiết kế chi tiết hơn.
+0

+1 bởi vì bạn bắt đầu bằng giao diện người dùng. – Simone

0

Tôi khuyên bạn nên in màu xanh của giao diện người dùng của mình, sau đó đồng thời thực hiện mã hóa và giao diện. Nó sẽ tốt hơn vì bạn có thể nhận được kết quả ngay lập tức nếu bạn thích và có thể thay đổi nó.

Điều này giống như thử nghiệm trang HTML.

2

Tôi nghĩ rằng bằng cách nói "thiết kế giao diện", bạn có nghĩa là giao diện đồ họa. Như PNL dạy, bạn sẽ xử lý những điều tốt hơn bạn đã thấy, do đó, trực quan hóa giúp rất nhiều trong việc thiết kế một dự án mới.
Đó là lý do tại sao tôi bắt đầu các dự án theo ý tưởng trực quan đầu tiên của tôi bằng cách vẽ các mô hình của các trang mà tôi biết chính xác sẽ hoạt động như thế nào, với bút và giấy.

Điều này cho phép tôi khái niệm hóa các thực thể ứng dụng (có thể là các lớp) và các chức năng (có thể được dịch trực tiếp thành các phương pháp).
Tại thời điểm này tôi viết giao diện lập trình, mà đối với tôi là phần quan trọng nhất của ứng dụng cả khi bắt đầu từ đầu hoặc để làm lại sau này.
Thông thường, nó không phải là một kiểu lập trình hoàn toàn mới, vì nhiều lập trình viên có các mẫu và cú pháp và mã được ưa thích để sử dụng lại hoặc được hướng đến một số giải pháp theo khung/môi trường mà chúng phải làm việc, nhưng dù sao tôi coi nó là một nhiệm vụ then chốt .

Trước khi viết mã, tôi cũng thiết kế DB, sử dụng cũng được giao cho các phương thức cấp thấp hơn được sử dụng bởi các phương thức giao diện mà tôi đã viết (90% dự án tôi làm là DB-dased). đến với tâm trí của tôi về các thuộc tính hoặc các bảng phụ có thể hoàn thành tốt hơn thông tin được ứng dụng xử lý hoặc cải thiện các chức năng.

Khi có thời gian, tôi cũng tạo một số bảng và biểu đồ bằng Excel, xác định toàn bộ nhiệm vụ CRUD cho mỗi bảng (rõ ràng không phải mọi bảng đều có thể cần tất cả nhiệm vụ CRUD).
Điều này cho phép tôi viết trong một vài lần cũng là các truy vấn SQL chung, cũng làm giảm công việc viết mã, tránh chuyển sự chú ý sang các phương ngữ SQL khác.

Tôi bắt đầu viết mã làm nhiệm vụ cuối cùng và tại thời điểm này công việc được thực hiện.
Viết logic của ứng dụng với nền được giải thích cho phép tôi chỉ nghĩ và viết bằng (các) ngôn ngữ chính được chọn để nhận ra dự án, thường là PHP để xử lý phía máy chủ và JavaScript cho GUI khách hàng.

Tôi đã thử nghiệm sự thật của một cụm từ mà một thầy thường hay nói: một công việc tốt là lập kế hoạch 90%, 10% thực hiện.
Tôi hoàn toàn đồng ý: khi một kế hoạch tốt được thực hiện, phần còn lại chỉ đơn giản là đóng gói tất cả các phần.

Chúc mừng mã hóa và một năm mới may mắn! :)

1

Tôi thường làm tất cả các wireframes của màn hình trước, sau đó là sơ đồ cơ sở dữ liệu, sau đó tôi mã, và sau đó tôi làm lối vào.

Hãy suy nghĩ về nó một cách hợp lý - giao diện/giao diện là lý do tại sao cơ sở dữ liệu và mã của bạn ở đó, không phải theo cách khác.

Tôi thấy rất nhiều người dành quá nhiều thời gian vào kiến ​​trúc và thiết kế cơ sở dữ liệu, trong khi giao diện người dùng bị bỏ qua.

Người dùng cuối không quan tâm đến cơ sở dữ liệu của bạn trông như thế nào, bạn viết mã gì hoặc bạn có bao nhiêu lớp.

Các vấn đề liên quan