2011-01-07 73 views
8

Tôi làm việc cho một doanh nghiệp sẽ tạo ra một kiến ​​trúc ngăn xếp dịch vụ web (xác suất nghỉ ngơi dựa), tôi là người lãnh đạo kỹ thuật có liên quan. Kiến trúc này sẽ được tạo ra bằng cách sử dụng Nền tảng Java, nhưng tôi có một vấn đề với một số thành viên của nhóm: chúng là từ trường cũ của Oracle (tức là họ đã sử dụng di sản bằng cách sử dụng PL/SQL và trong đầu của họ trên cơ sở dữ liệu, chỉ với một lớp java nhỏ gọi đó), tôi có một số tranh luận về điều này nhưng tôi muốn biết lập luận của bạn về ưu tiên hoặc khuyết điểm về câu hỏi.Thực hiện các dịch vụ nghiệp vụ trong PL/SQL hoặc Java? Ủng hộ/khuyết điểm?

Java Favor (theo ý kiến ​​của tôi)

  • Khả năng mở rộng
  • Giám sát
  • Object Oriented Language
  • quá trình Sync/Async
  • miền Giàu
  • Testability
+0

+1 cho tất cả. Gần đây tôi đã bắt đầu làm việc trong một công ty và chủ đề này chưa bao giờ quan trọng với tôi như bây giờ. Tôi cũng thích nghe ý kiến ​​của bạn. – Rekin

+0

+1 và tôi nghĩ rằng câu hỏi của bạn có thể thậm chí còn chung chung hơn: đó là về những gì cần phải được thực hiện trong các lớp trên (như trong mã Java) và những gì cần phải được "di chuyển xuống" để DB. Nó không nhất thiết về SQL/CRUD. Không phải tất cả DB đều là SQL và không phải tất cả DB đều là CRUD: có một số * rất * DB được sử dụng rộng rãi không phải là SQL và câu hỏi chính xác của bạn cũng có thể được hỏi :) – SyntaxT3rr0r

+1

rất nhiều điều cần nói quá rõ về ORM là. ORM là bằng chứng cho thấy một lỗi lớn xảy ra: một SQL DB và một ngôn ngữ "OO" như Java là hai khái niệm hoàn toàn trực giao (về cơ bản là lý thuyết, dựa trên toán học so với hướng đối tượng, dựa trên chúng ta không biết chính xác cái gì) . Có một bài báo tuyệt vời (và theo dõi và rất nhiều người theo dõi) bởi Ted Neward gọi là "Việt Nam phát triển phần mềm" * nơi ORM bị chỉ trích nặng nề. Bạn * thực sự * muốn đọc bài viết đó. – SyntaxT3rr0r

Trả lời

1

Nó phải là một quyết định tư pháp. Hoặc là một trong những có thể phù hợp hơn dựa trên trường hợp sử dụng. Ví dụ đơn giản

Nếu bạn có quy tắc kinh doanh yêu cầu dữ liệu từ một số bảng và dựa trên dữ liệu nhận được, nó quyết định thực hiện thao tác cơ sở dữ liệu cuối cùng (chèn hoặc cập nhật)./sql thủ tục là nơi để làm điều đó. Vì điều này sẽ tiết kiệm thời gian và băng thông n/w và sẽ nhanh hơn.

3

tôi đã làm việc trên một dự án như vậy sử dụng MS SQL hơn Oracle. Đó không phải là một trải nghiệm thú vị. Vấn đề là T-SQL không phải là một ngôn ngữ rất hiện đại và vì vậy chúng tôi không hiệu quả như chúng tôi có thể có và có nhiều sự sao chép mã hơn so với những thứ khác.

Có một lý lẽ để đảm bảo rằng năng suất của nhà phát triển quan trọng hơn lang thang, vì vậy nếu những người này tốt như vậy, vậy thì sao. Nhưng bạn sẽ không tìm thấy nhiều nhà phát triển trẻ, những người sẽ muốn làm việc theo cách đó.

1

Đó là một câu hỏi phức tạp, nhưng một ý nghĩ rất khiêu khích.

Bắt đầu từ Oracle 9i, Nó có hỗ trợ hoàn toàn cho thủ tục lưu trữ Java, tức là bạn có thể lưu trữ các lớp Java bên trong máy chủ cơ sở dữ liệu và thực hiện chúng khi bạn thực thi các thủ tục Pl/Sql.

        Nó luôn luôn là một lựa chọn tốt để chọn một công nhân hoàn hảo hơn là gắn bó với tình cảm! Như bạn đã nói Java có sự hiện diện và hỗ trợ cho các khái niệm linh hoạt trên nhiều miền khác nhau.

        Ở đây tôi có thể nghĩ ra các tùy chọn sau cho giải pháp tối ưu mà mọi người có thể chấp nhận.

  • thủ tục Write yêu cầu trong java, lưu trữ chúng vào máy chủ
  • Viết tại yêu cầu quan trọng nhất, mà thực sự giảm độ phức tạp của công việc so với PL/SQL và gọi cho họ trong PL/SQL
  • Nếu không làm ô nhiễm một trong hai môi trường duy trì các lớp riêng biệt, đây là tùy chọn tốt nhất thứ hai
+0

geez, tôi không phải là người nói tiếng Anh bản ngữ để tôi có thể hiểu được lỗi chính tả và ngữ pháp của bạn nhưng ít nhất bạn có thể cố gắng chấm câu. Viết hoa ở đầu câu, giãn cách sau dấu ',', v.v. Đừng ngần ngại nhấn thanh dấu cách nhiều hơn một chút (nhưng không phải trước dấu '!'). – SyntaxT3rr0r

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