Do các công cụ thiết kế làm giảm kinh nghiệm lập trình? [đóng cửa]


10

Gần đây tôi đã tìm kiếm xung quanh, đặc biệt là một số công cụ MS có sẵn và tôi nhận thấy sự tập trung lớn vào các công cụ thiết kế và trình hướng dẫn. Không chỉ để phát triển UI mà cho tất cả mọi thứ.

  • Entity Framework có modeller
  • Dịch vụ RIA có (các) trình hướng dẫn DomainService
  • Quy trình làm việc có toàn bộ quy trình thiết kế công việc ... (Tôi không biết, chưa thực sự sử dụng nó)

Có nhiều hơn, nhưng tôi nghĩ rằng bạn có ý tưởng. Có rất nhiều công cụ thiết kế. Sử dụng một số trong số này tôi thấy rằng:

Họ làm phức tạp các vấn đề vượt quá các trường hợp sử dụng theo quy định

(tức là tất cả các video demo công nghệ)

Gần đây tôi đã đánh giá một số công nghệ này và cố gắng hợp tác với chúng, cuối cùng tôi phải mổ xẻ chính xác những gì các nhà thiết kế, người điều hành và pháp sư đang làm cho tôi ... nếu không tôi thực sự phải làm khi tôi phải cố gắng làm một cái gì đó với bất cứ điều gì đã được tạo ra.

Này kết thúc lên trở thành một trường hợp tôi phải chiến đấu công cụ, hoặc chống lại sản lượng của nó đủ như vậy mà tôi có thể vừa thực hiện toàn bộ điều bản thân mình mà không có nó - và có nhiều hiểu biết mạnh hơn về những gì đang xảy ra. Tôi thấy điều này đặc biệt gây phẫn nộ với nhà thiết kế Silverlight và trình hướng dẫn dịch vụ miền RIA.

Tôi thấy mình tự hỏi "Công cụ này có ích gì nếu tôi phải tìm ra hoạt động bên trong của nó hoặc viết lại một nửa sản lượng của nó để sử dụng nó?"

Chúng không nhanh như vậy

Điểm bán hàng của các công cụ này là tăng năng suất và điểm này có thể thay đổi theo thời gian sử dụng công cụ và không nhất thiết phải áp dụng cho các nhà thiết kế UI (mặc dù, trong một số trường hợp vẫn còn -> Tôi đang nhìn bạn thiết kế Silverlight) . Tôi thấy rằng tôi có thể hack một số mã nhanh hơn nhiều so với tôi có thể kéo và thả, thay đổi kích thước, di chuyển, bất cứ điều gì trong một nhà thiết kế.

Giao diện người dùng cản trở mô hình

Có lẽ đây chỉ là tôi, nhưng khi tôi đang sử dụng bất cứ thứ gì gợi nhớ đến công cụ thiết kế UML, tôi cuối cùng đã dành nhiều thời gian hơn để mọi thứ không bị cắt ngang và để tôi có thể nhìn thấy tất cả trên màn hình hơn là mô hình hóa những gì tôi Tôi đang cố gắng để đạt được.

Họ không vui

Một nửa lý do mà tôi mã hóa để kiếm sống là tôi thích nó. Nhấp vào hộp kiểm và chọn hộp tổ hợp và sau đó sửa mọi thứ không phù hợp.

Tôi không xuất hiện một mình

Cộng đồng dường như cũng không muốn những công cụ này. Ví dụ tốt nhất tôi có thể nghĩ đến vào lúc này là Entity Framework Code-First.

Vì vậy tôi hỏi:

  1. Các công cụ thiết kế có thực sự cải thiện năng suất?
  2. Họ là những kẻ giết người vui vẻ?
  3. Là "cộng đồng" thực sự yêu cầu nhiều công cụ thiết kế hơn, hay các nhà cung cấp chỉ nghĩ chúng ta là ai?

Câu trả lời:


7

Tôi đoán là các công cụ thiết kế tốt sẽ cải thiện năng suất và không lấy đi từ "niềm vui". Tuy nhiên, đó chỉ là dự đoán vì tôi chưa bắt gặp một công cụ thiết kế tốt.

Cá nhân tôi đã không yêu cầu các công cụ thiết kế.


2
+1 Tôi chắc chắn thích "chưa bắt gặp một công cụ thiết kế tốt". mặc dù tôi có thể đã thêm "tốt hơn chất xám giữa nhãn cầu của tôi."
Ken Henderson

2
Thuật sĩ +1 chỉ hữu ích miễn là những gì bạn đang làm phù hợp với mô hình mà họ thể hiện. Bởi vì tôi chủ yếu được trả tiền để làm những điều kỳ lạ, chúng thường chỉ cản trở bạn. Công cụ thiết kế duy nhất mà tôi từng thực sự thích là (sẵn sàng cho một cú sốc từ người không phải là người hâm mộ Microsoft này) cơ sở dữ liệu đồ họa và trình tạo truy vấn trong MS Access. Nó hoạt động tốt bởi vì cơ sở dữ liệu quan hệ và SQL đều có khái niệm khá đơn giản và được xác định rõ ràng, vì vậy công cụ thiết kế có thể xử lý hầu hết mọi thứ bạn muốn làm.
Bob Murphy

Bất cứ điều gì bạn tự xây dựng để giúp bạn thực hiện một nhiệm vụ là một "công cụ thiết kế tốt". Điều này bao gồm trình soạn thảo, trình biên dịch, trình gỡ lỗi, thư viện cá nhân của bạn, v.v. Vấn đề với hầu hết "phần mềm trả tiền" là nó phải đủ chung cho mọi người, vì vậy nó thường không phù hợp với vấn đề này. Và, họ không bao giờ bận tâm để làm cho nó chơi tốt! Hãy làm theo triết lý Unix. Tôi không muốn ở trong bộ công cụ làm vườn có tường bao quanh của MS.
Spencer Rathbun

4
  1. Tôi nghĩ rằng nó có thể phụ thuộc. Nếu bạn là một nhà phát triển khá thiếu kinh nghiệm thì sử dụng các công cụ thiết kế có lẽ sẽ hiệu quả hơn là gõ nó ra. Tôi khá chắc chắn rằng tôi đã làm việc hiệu quả hơn trong những ngày đầu sử dụng VB6 so với việc tôi thiết kế nó bằng tay. Một điều khác cần xem xét là làm thế nào để công nghệ (ít nhất là cách IDE trình bày nó) cho vay để chỉnh sửa bằng tay. VB6 và .NET WinForms chắc chắn không (hoặc đúng hơn là bạn có thể không muốn chỉnh sửa tệp mã "được tạo" (hoặc một phần của). Với WPF và ASP.NET tôi nghĩ rằng một nhà phát triển khá thiếu kinh nghiệm sẽ bắt đầu với người thiết kế nhưng nhanh chóng tốt nghiệp để chỉnh sửa trực tiếp XAML / ASP. Một khi bạn biết những gì bạn đang làm, chắc chắn sẽ nhanh hơn để chỉnh sửa đánh dấu trực tiếp. Nghĩ lại về EF v1.0,

  2. Phụ thuộc vào việc đánh dấu là thú vị để làm việc với. WPF và ASP (.NET) có thể thú vị. VB6 / WinForms - không muốn chỉnh sửa các phần mã được tạo nhiều hơn mức cần thiết.

  3. Tôi không nghĩ rằng cộng đồng làm rõ ràng. Mặc dù khi học một cái gì đó mới, nhà thiết kế có thể làm cho nó dễ dàng hơn trong việc học.


2

như thường lệ, nó phụ thuộc

Khi tôi lần đầu tiên điều tra bằng các dịch vụ web, Java có một hướng dẫn 50 trang và .NET có một trình hướng dẫn. Đoán xem cái nào đã được sử dụng?


1

Tương tự ở đây, không có công cụ thiết kế.

Tôi thiết kế cơ sở dữ liệu ERD trên giấy và viết một nhà triển khai đưa ra các câu lệnh "tạo bảng", theo cách đó tôi có thể xóa sạch và xây dựng lại theo ý muốn. Cũng giúp cho phiên bản cơ sở dữ liệu.

Tôi thấy rằng giấy 11x17 (A3) có thể là một nơi tuyệt vời để thiết kế các hệ thống rất bắt buộc. Lấy một cục tẩy và bút chì tốt (tôi thích Staedtler ).


1

Từ quan điểm của nhà cung cấp, tất cả những công cụ thiết kế lạ mắt đó dường như phục vụ một mục đích tương tự như giảm giá / giấy phép sinh viên miễn phí. Ý tưởng là cho phép bạn tạo ra một cái gì đó với nỗ lực và chi phí tối thiểu. Khi bạn đã đầu tư, họ cá cược rằng bạn sẽ học cách mở rộng các kỹ năng của mình bằng các công cụ của họ thay vì học hỏi người khác.

Điều đó không có nghĩa là các công cụ không có công dụng sản xuất hợp pháp. Nó nên có giá trị để kiểm tra mã được tạo và học hỏi từ nó. Thật không may như Ken Henderson đã lưu ý, mã thường không thể đọc được và không phải là thứ bạn muốn sử dụng làm mẫu cho công việc trong tương lai. Tôi được nhắc nhở về một số phần trong Lập trình Dịch vụ WCF , trong đó tác giả giải thích cách viết mã theo cách thủ công hoặc được tạo bởi Visual Studio. Chắc chắn, tùy chọn được tạo yêu cầu một phần tiếp theo để loại bỏ mã không liên quan.


0

Các công cụ thiết kế có thực sự cải thiện năng suất?

Họ có thể miễn là dự án của bạn đơn giản và không quá phức tạp đối với họ. Kinh nghiệm của tôi bạn đập vào tường ngay khi bạn cố gắng thực hiện / giải quyết một vấn đề trong thế giới thực.

Họ là những kẻ giết người vui vẻ?

WF (Workflow) & WPF vui vẻ nhưng cũng là kẻ giết người khi VS 2008 bị sập sau mỗi 30 phút.

Là "cộng đồng" thực sự yêu cầu nhiều công cụ thiết kế hơn, hay các nhà cung cấp chỉ nghĩ chúng ta là ai?

Nhiều công cụ được phát hành bởi MS gần đây dường như là những nỗ lực tuyệt vọng để giữ chân các nhà phát triển. Cuộc chiến bây giờ đang diễn ra trong thị trường điện thoại thông minh. Ai sẽ giành chiến thắng trong các nhà phát triển, MS, Google hay Apple?


0

Luôn luôn là như vậy, ngay cả vào thời trước chúng ta thường phân biệt giữa các nhà phát triển, những người chỉ biết cách bấm vào trình hướng dẫn và các nhà phát triển biết mã thuật sĩ đã tạo mã nào và có thể sửa đổi nó cho các trường hợp cạnh.

Rằng bạn thậm chí còn có nhiều công cụ, trình hướng dẫn và nhà thiết kế hơn, tất cả đều làm công cụ dưới vỏ bọc để ngăn bạn tự cắt những mảnh sắc nhọn là một lợi ích cho các nhà phát triển, những người không muốn biết hoặc không có bề rộng kinh nghiệm hoặc kỹ năng để hiểu mã được tạo ra. Tôi tưởng tượng có một điểm ngọt ngào giữa những gì bạn muốn máy tính làm cho bạn và những gì bạn cần phải tự làm thay thế là ngôn ngữ lập trình hoàn toàn dựa trên việc kéo và thả các khối vào một biểu mẫu. (Tôi đã từng làm việc với một thứ như vậy trong môi trường dành riêng cho tên miền, tôi sẽ không muốn sử dụng nó!)

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.