Loại điều này thay đổi rất nhiều từ nơi này đến nơi khác. Tại trang web hiện tại của tôi, ranh giới giữa nhà phát triển và DBA thực sự rất mờ nhạt - chúng tôi (DBA) cũng viết PL / SQL và họ (nhà phát triển) mổ xẻ các kế hoạch truy vấn. Tất cả chúng ta đều xem mình là đồng nghiệp, chỉ đơn thuần với các kỹ năng và trách nhiệm khác nhau. Điều này rất thú vị: gần đây công ty đã nhảy lên băng đảng DevOps . Cộng đồng cơ sở dữ liệu hoàn toàn không hiểu điều này; chúng tôi luôn làm việc như vậy Không cần phải nói rằng chúng tôi đang làm việc rất hiệu quả như thế này: tầng cơ sở dữ liệu là cho đến nayPhần đáng tin cậy nhất trong kho công nghệ của công ty, rất dễ vận hành (vì chúng tôi có các kỹ năng trong nhóm DBA để hiểu ứng dụng ở mức độ sâu và các nhà phát triển có tiếp xúc với DBA để hiểu các hoạt động 24/7/365 và cách để cấu trúc ứng dụng của họ cho nó).
Nhưng tôi biết ý của bạn là gì khi bạn nói về loại nhà phát triển "sai". Anh ấy tự học, điều mà bản thân nó là một điều cao quý, nhưng trên đường đi, anh ấy đã nhận được sự không tin tưởng vào bất kỳ loại hướng dẫn chính thức nào. Anh ta không biết những gì anh ta không biết , và anh ta bực bội với bất cứ ai cố gắng khai sáng cho anh ta, anh ta coi đó là một sự xúc phạm đối với các kỹ năng tự học của mình. Anh ấy đã học được phong cách lập trình bắt buộc, bởi vì bạn có thể học nó mà không cần bất kỳ thứ lý thuyết nào mà các loại CS luôn bập bẹ (tốt, rất tệ; mọi người cần phải biết big-Ovà các bit tương tự của lý thuyết). Anh ấy cũng học được một chút về OO, chỉ vì anh ấy phải sử dụng Java. Nhưng một chuyên gia cơ sở dữ liệu tốt - nhà phát triển hoặc DBA - phải thoải mái suy nghĩ theo kiểu khai báo, suy nghĩ về lý thuyết tập hợp, các dạng thông thường, thậm chí có thể hiểu được đại số và phép tính quan hệ. Rất khó để liên lạc với những người này, vì họ rất tích cực thù địch với bất cứ điều gì có thể khiến họ rời khỏi vùng thoải mái của họ, điều này thường bị giới hạn trong cách định dạng một cái gì đó trên trang web. Nếu họ nghĩ về cơ sở dữ liệu, họ nghĩ rằng một bảng giống như một lớp và một hàng giống như một đối tượng. Những kẻ này thực sự sẽ chỉ làm SELECT * FROM TABLE
và lọc và sắp xếp kết quả theo mã của riêng họ. Họ thực sự, thực sự không hiểu tại sao một cơ sở dữ liệu tốt hơn một tệp phẳng (và họ không bí mật nghĩ rằng bất cứ ai sử dụng cơ sở dữ liệu quan hệ là một thằng ngốc).
Để tôi cho bạn một ví dụ thực tế: gần đây tôi đã nói chuyện với một trong những loại này về các vấn đề liên quan đến việc đẩy lùi việc phát hành phần mềm của chúng tôi sau khi nó được đưa vào sản xuất, nếu một vấn đề đã qua QA. Tôi đã giải thích rằng trong khi chúng tôi có thể khôi phục ứng dụng của anh ấy (một trong nhiều người truy cập cơ sở dữ liệu), thì nó sẽ cần có khả năng hoạt động với cơ sở dữ liệu vẫn được triển khai. Anh ấy hỏi tại sao, và tôi nói, trong các bảng và cột mới đó, sẽ có dữ liệu khách hàng thực sự. Sau đó anh ta nói, vì vậy chỉ cần sao chép nó vào một bảng tạm thời, có vấn đề gì. Tôi nhìn chằm chằm vào anh ta trong sự hoài nghi: khi một khách hàng gọi và nói, tiền của tôi đã biến mất khỏi tài khoản của tôi, chúng tôi nói gì với anh ta, rằng nó ổn, nó nằm trong một bảng tạm thời? Anh ta chỉ đơn giản là không nhận được rằng khi bạn giao dịch với tiền của người khác, bạn phải hành động như một người trưởng thành có trách nhiệm. Đối với tất cả tôi biết anh vẫn không; Anh ấy không còn ở bên chúng tôi nữa.
Trại MySQL đã như thế này trong một thời gian dài; họ sẽ nói rằng bạn không cần giao dịch, khóa ngoại, v.v., nếu bạn nghĩ bạn làm điều đó chỉ vì bạn không biết bạn đang làm gì, v.v. (sau đó khi họ lớn lên, họ lặng lẽ thêm chúng vào). Đây là những loại ORM như ActiveRecord hoặc Hibernate được phát triển để họ có thể viết các ứng dụng cơ sở dữ liệu mà không cần phải chạm vào SQL. Sử dụng những công nghệ này tôi coi là một lá cờ đỏ - đây không phải là một công ty coi trọng các kỹ năng DBA. Điều họ thực sự muốn là một người giữ trẻ ...