2009-07-07 20 views
9

Làm thế nào để cải thiện năng suất của chúng tôi khi bắt đầu dự án mới bằng Delphi? Đối với tôi, tôi tạo một dự án mẫu bao gồm màn hình giật gân, mô-đun dữ liệu chính với thành phần mặc định và tất cả các chương trình con nhận biết dữ liệu (mở, đóng, truy vấn, mặc định khi không mở DB, v.v.) và lưu mẫu kho lưu trữ của tôi. (Tôi sử dụng tất cả các khung của riêng tôi và đơn vị trong dự án, vì vậy tất cả mọi thứ luôn được tạo ra tự động khi tôi chọn:. New Project và chọn mẫu của tôi)Thực tiễn tốt nhất trong phát triển ứng dụng nhanh Delphi về khả năng sử dụng lại

Câu hỏi:

  1. Có cách nào khác để cải thiện reusability bằng cách sử dụng Delphi?
  2. Khung nguồn mở miễn phí (như Jedi)/IDE PLugins (như GExpert) bạn nghĩ là tốt nhất để sử dụng bằng Delphi?

Hãy tha thứ cho tôi nếu câu hỏi này đã được hỏi trước đó.

Trả lời

7

Đối với Q1: Sử dụng thư viện trưởng thành làm cho bạn công việc grunt: DevExpress -or- TMS cho giao diện người dùng (JVD của JEDI cũng rất tốt), FastReport để báo cáo. Cũng chọn một khung kết nối tốt (nó phụ thuộc vào back-end db của bạn) để có nhiều công việc hàng ngày giải quyết OOTB. Ngoài ra, nếu bạn quen thuộc với OPF, hãy xem InstantObjects. Tôi nghe nói rất hay.

Đối với Q2: Xem enchancements IDE từ cnpack.org

Ngoài ra nó sẽ giúp dần dần xây dựng khuôn khổ chuyên ngành của riêng bạn/thiết lập các công cụ. Không phải cái gì đó rất lớn nhưng là một cách nhanh chóng để hoàn thành một số việc theo cách của bạn. Luôn cố gắng thiết kế để tái sử dụng, ngay cả khi nó mất nhiều thời gian hơn trong đầu.

7

Đối với các ứng dụng lớn hơn, chìa khóa cho năng suất là làm việc ở mức trừu tượng cao hơn mô-đun dữ liệu và cơ sở dữ liệu.

Cơ sở dữ liệu có một bộ nhỏ các loại. Trong miền của bạn, bạn có thể có ánh xạ mặc định từ các kiểu miền tới các kiểu cơ sở dữ liệu. Bạn cũng sẽ có trình xác thực và trình định dạng cho chúng. Bạn sẽ có các báo cáo, bộ lọc và tìm kiếm mặc định (cửa sổ, bảng điều khiển, truy vấn sql) cho các thực thể miền của bạn. Bạn sẽ có quyền kiểm soát truy cập dựa trên vai trò đối với họ.

Xem qua phát triển theo hướng miền.

1

Xác định phạm vi ứng dụng chính xác bạn muốn thực hiện là bước đầu tiên tốt. Cải thiện năng suất gần như luôn luôn liên quan đến chuyên môn hóa. Các công cụ chung chỉ là một phần trăm rất nhỏ về năng suất. Tôi muốn tìm kiếm (hoặc thực hiện) các khung chuyên ngành trong ngành công việc của mình nếu tôi thực sự muốn tăng năng suất.

Tôi không sử dụng GExperts hoặc plugin khác. Tôi không được hưởng lợi nhiều (có thể grep tốt trên cmdline) trong năng suất, và bất kỳ vụ tai nạn nào có thể tránh được do các vấn đề trong plugin sau đó là tiền tố.

1

Tôi đã sử dụng ModelMaker với Delphi. Nó thực sự là công cụ tuyệt vời cho phép bạn vẽ các đối tượng và sau đó có thể tạo mã dựa trên các mẫu bạn viết.

Nó có thể tăng tốc độ khi có nhiều lớp tương tự trong dự án.

1

Đối với Q2:GExperts là hữu ích. Tìm kiếm grep đặc biệt hữu ích, mặc dù tìm kiếm/thay thế có thể gây ra các tác động phụ lẻ (chèn các ký tự không nên!).

Tôi biết bạn đã đề cập đến nguồn mở/miễn phí, nhưng Castalia rất tốt. Các phương pháp tái cấu trúc hoạt động tốt và tôi thích đánh dấu cấu trúc, mà làm cho nó dễ dàng hơn nhiều để làm việc với mã (tôi đã ban đầu sử dụng CodeRush cho điều này nhưng nó đã đi Visual Studio chỉ). Ngăn xếp Dấu trang cũng thuận tiện cho việc chuyển nhanh qua lại mã.

0

Ngoài ra, nếu bạn là một nhóm, hãy tìm cách cải thiện quy trình phát triển của bạn. Bên cạnh việc sử dụng Delphi làm ngôn ngữ triển khai của bạn, phương pháp quản lý dự án của bạn là gì? Bạn sử dụng hệ thống quản lý mã nguồn nào? Hệ thống xây dựng của bạn là gì? Bạn có sử dụng các phương pháp thử nghiệm tự động không? v.v.

Khi tôi giới thiệu Scrum tại một nhà tuyển dụng trước đó, chúng tôi nhận được 50% cải thiện gần như ngay lập tức về năng suất nhóm. Vì vậy, hãy kiểm tra các phương pháp Agile khác nhau.

0

Để có thể sử dụng lại thật sự, hãy cố gắng suy nghĩ trong giao diện và thử hộp đen càng nhiều càng tốt. Các mẫu ở khắp mọi nơi, nghiên cứu chúng và đưa chúng vào thực tế.

Khi giao dịch với các đối tượng, càng nhiều càng tốt, hãy sử dụng tóm tắt hoặc giao diện thay vì triển khai cụ thể. Chỉ cần cẩn thận với việc này quá xa. Quá nhiều abastractions có thể làm tăng thêm sự phức tạp và làm cho việc gỡ lỗi trở nên khó khăn hơn.

Các đơn vị chứa quy tắc kinh doanh của bạn nên được sử dụng bởi gui của bạn. Các đơn vị chứa quy tắc kinh doanh không bao giờ nên trực tiếp sử dụng các đơn vị gui.

2

Một trong những lợi ích to lớn của tôi về khả năng sử dụng lại trong những năm gần đây đã chuyển sang lớp ORM (tôi sử dụng tiopf) để tách các đối tượng kinh doanh khỏi cơ sở dữ liệu.

Ví dụ, tôi có db tồn tại, các đối tượng email có ren nền. Để thêm chúng vào một ứng dụng khác, tôi thêm vào các đơn vị được yêu cầu và thêm một vài dòng cấu hình (ánh xạ bảng/trường). Tương tự như vậy tôi có đối tượng người dùng, danh sách tra cứu chung và giống như tất cả trong số đó có thể được thêm vào các dự án khác nhau cho giá cấu hình ban đầu. Điều này hoạt động trên các cơ sở dữ liệu khác nhau mà không có bất kỳ thay đổi nào ngoài cấu hình.

tiopf là ORM lựa chọn của tôi (đọc tổng quan của tôi here) nhưng có nhiều thứ khác.

0

Khi tôi đặt câu hỏi như thế này về "điều tốt nhất để làm hoặc sử dụng" chúng bị người kiểm duyệt xóa nhanh khỏi trang web là gì.

Theo ý kiến ​​của tôi, bạn có quyền sử dụng mẫu mẫu. Ngoài ra @ John Thomas là chính xác. Nhưng bạn có thể vượt ra ngoài:

  1. Sử dụng mẫu cho quy trình và chức năng cơ sở dữ liệu để làm việc với các yêu cầu;
  2. Cố gắng tận dụng tối đa logic cơ sở dữ liệu bên trong cơ sở dữ liệu bằng cách sử dụng các thủ tục và hàm được lưu trữ. Bằng cách này bạn không phải lo lắng về việc lựa chọn những gì được sử dụng phổ biến và những gì là cụ thể cho dự án hiện tại;
  3. Sử dụng mẫu cho menu chính và màn hình chính;
  4. Thay vì đóng nhiều cửa sổ, hãy tạo một TFrame cho từng mô-đun của ứng dụng của bạn và đặt trước một vị trí trong màn hình chính để tải chúng.Tạo một đối tượng của khung này trong bộ nhớ chỉ khi người dùng nhấp vào menu của nó. Bằng cách này, hệ thống của bạn sẽ nhanh hơn và tiết kiệm bộ nhớ hơn;
  5. Sử dụng lại các khung hình đó bằng cách tạo các khung cơ sở có chức năng và bố cục chung và chúng tạo ra các khung hình mới từ con cháu.

Tuyệt vời!

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