- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近在很多代码中注意到人们将硬编码的配置(如端口号等)值放在类/方法的深处,使其难以找到,也无法配置。
这是否违反了 SOLID 原则?如果不是,我是否可以向我的团队成员引用另一个“原则”来说明为什么这不是一个好主意?我不想只是说“这很糟糕,因为我不喜欢它”,但我很难想出一个好的论点。
1 Câu trả lời
反对在类中硬编码 TCP 端口号的一个很好的论据是违反“上下文独立性”。来自 GOOS ,我的重点是:
Context Independence
... the "context independence" rule helps us decide whether an object hides too much or hides the wrong information. A system is easier to change if its objects are context-independent; that is, if each object has no built-in knowledge about the system in which it executes. This allows us to take units of behavior (objects) and apply them in new situations. To be context-independent, whatever an object needs to know about the larger environment it’s running in must be passed in.
关于solid-principles - SOLID 原理,以及类内的硬编码配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16448076/
Trong thời đại của sức mạnh điện toán, video đám mây cần loại CPU nào? Trong bối cảnh dữ liệu tăng trưởng bùng nổ và các thuật toán ngày càng tinh vi, kỷ nguyên của "sức mạnh điện toán" đã đến. Khi video trở thành trụ cột của lưu lượng truy cập Internet, tỷ lệ thâm nhập ngày càng bão hòa của các cảnh âm thanh và video, và việc theo đuổi "giới hạn cảm giác" của con người
Tôi đang phát triển một mạng lưới sâu bằng keras. Có một kích hoạt "sigmoid cứng". Định nghĩa toán học của nó là gì? Tôi biết Sigmoid là gì. Có người đã hỏi một câu hỏi tương tự trên Quora: https://www.quora.com
Tôi có một vấn đề SQL bất thường mà tôi không biết cách giải thích tốt nhất, vì vậy hãy kiên nhẫn với tôi. Tôi có ba bảng, một bảng cho các tổ chức tình nguyện, một bảng cho người dùng và một bảng cho thông tin chi tiết về người dùng. #Bảng 1# ## Tên Chủ tịch
Tôi đang cố gắng sử dụng plugin jquery có tên là bigText. Một plugin tuyệt vời để tạo tiêu đề khối. Nếu bạn muốn sử dụng nó với phông chữ tùy chỉnh thì nó nói rằng bạn cần Google WebFont Loader, vì vậy
Giả sử tôi có một bảng ngày, personid 1/1/2001 1 1/2/2001 3 1/3/2001 2 1/4/2001 2 1/5/2001 5 1/6/2001 5 1/7/200
Dưới đây là câu lệnh SQL tôi muốn thực thi. Tôi muốn tránh việc thực hiện nhiều yêu cầu cho việc này, tôi khá chắc là có thể... Bảng đầu tiên: products_categories (category_id, category_infos
Tôi đặt lại một số cam kết trong Android Studio và chọn loại đặt lại cứng. Tôi đã mất một tuần làm việc. Có hy vọng nào để khắc phục điều này không? Tôi đang sử dụng Android Studio có tích hợp tùy chọn GUI để thực hiện tất cả
Khi tôi biên dịch mã C bằng chuỗi công cụ chéo của mình, trình liên kết sẽ in ra các trang cảnh báo cho biết tệp thực thi của tôi sử dụng số thực cứng, nhưng libc của tôi sử dụng số thực mềm. Sự khác biệt là gì? Câu trả lời tốt nhất là dấu phẩy động cứng sử dụng đơn vị dấu phẩy động trên chip. mềm mại
Hệ thống Linux có kiến trúc arm64 và arm armv8-a. Làm sao để biết Debian đang chạy dấu chấm động cứng hay mềm? Câu trả lời tốt nhất tuân thủ AAPCS64, GNU GCC cho armv8 chỉ cung cấp dấu phẩy động cứng cho aarch6
Tôi đang phát triển một hạt nhân nhỏ cho cortex-m3. Tôi đã tạo một ứng dụng thử nghiệm nhỏ cố tình gây ra lỗi. Bây giờ tôi không biết phải làm sao để thoát khỏi thất bại này. Tôi hiểu rằng ngăn xếp có thể cần được cập nhật bằng địa chỉ của các hàm khác nhau. Tôi cũng biết rằng trong một số trường hợp, việc quay lại từ một lỗi có thể là
Giới hạn cứng/mềm có nghĩa là gì? Sự khác biệt về kích thước tệp lõi Ví dụ: ulimit -Sc 1024 so với ulimit -Hc 1024 Tôi thường đặt ulimit -c unlimited trong tập lệnh của mình trước khi chạy tệp nhị phân.
Tôi muốn tải kho khóa MSCAPI trong Java và kiểm tra các chứng chỉ có sẵn trong kho của TÔI. Tuy nhiên, một số khóa cho các chứng chỉ này nằm trên mã thông báo phần cứng và một cửa sổ bật lên sẽ yêu cầu mã thông báo trong quá trình tải. có
Đúng, đây là một bài toán hơi khó; một mảng (không có bản sao), chứ không phải bất kỳ mảng lẻ nào. Để tôi giải thích, chúng ta hãy bắt đầu từ đây; $a = mảng ( 'một' => 1, 'hai' => 2, 'ba' =
Tôi cần chạy chương trình sử dụng ftd2xx trên BeagleBoard xM rev C chạy Ubuntu 12.04. Tôi đang cố gắng sử dụng thư viện ARM libftd2xx.so được cung cấp ở đây.
Tôi là một lập trình viên xuất sắc, rất giỏi!