Failed to render content. Please refresh the page. Showing plain-text fallback.
"@/components/CTA" ನಿಂದ CTA ಆಮದು ಮಾಡಿ
ಸಾಫ್ಟ್ ವೇರ್ ಎಂಜಿನಿಯರಿಂಗ್ ಸಂದರ್ಶನ ಪ್ರಶ್ನೆಗಳು: ಎಸ್ ಡಿಇ ಪಾತ್ರಗಳಿಗಾಗಿ ಸಂಪೂರ್ಣ ಮಾರ್ಗದರ್ಶಿ (2025)
ಕೊನೆಯದಾಗಿ ನವೀಕರಿಸಲಾಗಿದೆ: ಫೆಬ್ರವರಿ 7, 2025
ಪ್ರಮುಖ ಟೇಕ್ ಅವೇಗಳು
- ಸಾಫ್ಟ್ ವೇರ್ ಎಂಜಿನಿಯರಿಂಗ್ ಸಂದರ್ಶನಗಳು ಕೋಡಿಂಗ್, ಸಿಸ್ಟಮ್ ವಿನ್ಯಾಸ ಮತ್ತು ನಡವಳಿಕೆಯ ಪ್ರಶ್ನೆಗಳ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತವೆ
- ಮಾಸ್ಟರ್ ಡೇಟಾ ರಚನೆಗಳು, ಕ್ರಮಾವಳಿಗಳು ಮತ್ತು ವಿನ್ಯಾಸ ಮಾದರಿಗಳು
- ಪರಿಹಾರಗಳು ಮತ್ತು ಟ್ರೇಡ್ ಆಫ್ ಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ವಿವರಿಸುವ ಅಭ್ಯಾಸ ಮಾಡಿ
- ಡಿಸ್ಟ್ರಿಬ್ಯೂಟೆಡ್ ಸಿಸ್ಟಮ್ ಗಳು ಮತ್ತು ಸ್ಕೇಲೆಬಿಲಿಟಿ ಕಾನ್ಸೆಪ್ಟ್ ಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ
- ವೈಯಕ್ತಿಕ ಕೊಡುಗೆದಾರ ಮತ್ತು ತಂಡದ ಸಹಯೋಗ ಪ್ರಶ್ನೆಗಳಿಗೆ ಸಿದ್ಧತೆ ಮಾಡಿ
🎯 ಪ್ರೊ ಸಲಹೆ: ಸಾಫ್ಟ್ ವೇರ್ ಎಂಜಿನಿಯರಿಂಗ್ ಸಂದರ್ಶನಗಳು ಕೋಡ್ ಬರೆಯುವ, ವ್ಯವಸ್ಥೆಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುವ ಮತ್ತು ಇತರರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ನಿಮ್ಮ ಸಾಮರ್ಥ್ಯವನ್ನು ಪರೀಕ್ಷಿಸುತ್ತವೆ. ಮೂಲಭೂತ ಅಂಶಗಳ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿ, ನಿಯಮಿತವಾಗಿ ಅಭ್ಯಾಸ ಮಾಡಿ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯುದ್ದಕ್ಕೂ ಸ್ಪಷ್ಟ ಚಿಂತನೆ ಮತ್ತು ಸಂವಹನವನ್ನು ಪ್ರದರ್ಶಿಸಿ.
ಸಾಫ್ಟ್ ವೇರ್ ಎಂಜಿನಿಯರಿಂಗ್ ಸಂದರ್ಶನ ರಚನೆ
ಸಾಫ್ಟ್ ವೇರ್ ಎಂಜಿನಿಯರಿಂಗ್ ಸಂದರ್ಶನಗಳು ಸಾಮಾನ್ಯವಾಗಿ ವಿಭಿನ್ನ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ನಿರ್ಣಯಿಸುವ ಅನೇಕ ಸುತ್ತುಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ:
ಸಂದರ್ಶನ ಸುತ್ತುಗಳು:
- ಫೋನ್ ಸ್ಕ್ರೀನ್: ಮೂಲ ಕೋಡಿಂಗ್ ಮತ್ತು ನಡವಳಿಕೆಯ ಪ್ರಶ್ನೆಗಳು
- ತಾಂತ್ರಿಕ ಸಂದರ್ಶನ: ಕೋಡಿಂಗ್ ಸಮಸ್ಯೆಗಳು ಮತ್ತು ಸಿಸ್ಟಮ್ ವಿನ್ಯಾಸ
- ಆನ್-ಸೈಟ್ / ಪ್ಯಾನಲ್: ಅನೇಕ ಸಂದರ್ಶಕರು, ವಿವಿಧ ವಿಷಯಗಳು
- ಅಂತಿಮ ಸುತ್ತು: ಹಿರಿಯ ನಾಯಕತ್ವ ಮತ್ತು ಸಾಂಸ್ಕೃತಿಕ ಫಿಟ್
ಮೌಲ್ಯಮಾಪನ ಪ್ರದೇಶಗಳು:
- ಕೋಡಿಂಗ್ ಕೌಶಲ್ಯಗಳು: ಡೇಟಾ ರಚನೆಗಳು, ಕ್ರಮಾವಳಿಗಳು, ಸಮಸ್ಯೆ ಪರಿಹಾರ
- ಸಿಸ್ಟಮ್ ಡಿಸೈನ್: ಸ್ಕೇಲೆಬಿಲಿಟಿ, ಆರ್ಕಿಟೆಕ್ಚರ್, ಟ್ರೇಡ್-ಆಫ್ ಗಳು
- ನಡವಳಿಕೆ: ತಂಡದ ಕೆಲಸ, ನಾಯಕತ್ವ, ಸಮಸ್ಯೆ ಪರಿಹರಿಸುವ ವಿಧಾನ
- ಡೊಮೇನ್ ಜ್ಞಾನ: ಭಾಷೆ / ಚೌಕಟ್ಟು ನಿರ್ದಿಷ್ಟ ಪ್ರಶ್ನೆಗಳು
ಕೋಡಿಂಗ್ ಸಂದರ್ಶನ ಪ್ರಶ್ನೆಗಳು
ಸುಲಭ ಮಟ್ಟದ ಸಮಸ್ಯೆಗಳು
1. ಮಾನ್ಯ ಆವರಣಗಳು
ಸಮಸ್ಯೆ: ಕೇವಲ '(', ')', '{', '}', '[' ಮತ್ತು ']' ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರುವ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ನೀಡಿದರೆ, ಇನ್ಪುಟ್ ಸ್ಟ್ರಿಂಗ್ ಮಾನ್ಯವಾಗಿದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸಿ.
ಪರಿಹಾರ:
'''ಹೆಬ್ಬಾವು
DEF isvalid(ಗಳು):
ಸ್ಟ್ಯಾಕ್ = []
ಮ್ಯಾಪಿಂಗ್ = {')': '(', '}': '{', ']': '['}
S ನಲ್ಲಿ ಚಾರ್ ಗಾಗಿ:
ಮ್ಯಾಪಿಂಗ್ ನಲ್ಲಿ ಚಾರ್ ಇದ್ದರೆ:
# ಕ್ಲೋಸಿಂಗ್ ಬ್ರಾಕೆಟ್
topelement = stack.pop() ಬೇರೆ '#' ಅನ್ನು ಸ್ಟ್ಯಾಕ್ ಮಾಡಿದರೆ
ಮ್ಯಾಪಿಂಗ್ ಮಾಡಿದರೆ != topelement:
ರಿಟರ್ನ್ ಸುಳ್ಳು
ಇಲ್ಲದಿದ್ದರೆ:
# ಓಪನಿಂಗ್ ಬ್ರಾಕೆಟ್
Stack.append(char)
ಹಿಂದಿರುಗಿ ಸ್ಟ್ಯಾಕ್ ಅಲ್ಲ
ಸಮಯ: ಒ (ಎನ್ + ಮೀ), ಸ್ಥಳ: ಒ (1)
ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆಗಳು: ಲಿಂಕ್ ಪಟ್ಟಿಗಳು, ಕ್ರಮಾವಳಿಗಳನ್ನು ವಿಲೀನಗೊಳಿಸಿ
ಮಧ್ಯಮ ಮಟ್ಟದ ಸಮಸ್ಯೆಗಳು
1. LRU ಕ್ಯಾಶ್
ಸಮಸ್ಯೆ: LRU (ಕಡಿಮೆ ಇತ್ತೀಚೆಗೆ ಬಳಸಿದ) ಕ್ಯಾಶ್ ಅನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಿ ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸಿ.
ಪರಿಹಾರ:
'''ಹೆಬ್ಬಾವು
ವರ್ಗ LRUCache:
ಡೆಫ್ init(ಸ್ವಯಂ, ಸಾಮರ್ಥ್ಯ):
ಸ್ವಯಂ.ಸಾಮರ್ಥ್ಯ = ಸಾಮರ್ಥ್ಯ
self.cache = {} # ಕೀಲಿ -> ನೋಡ್
ಸ್ವಯಂ.ತಲೆ = ನೋಡ್ (0, 0)
self.tail = ನೋಡ್ (0, 0)
self.head.next = self.tail
self.tail.prev = self.head
ಡೆಫ್ remove(ಸ್ವಯಂ, ನೋಡ್):
ಪೂರ್ವ, nxt = node.prev, node.next
prev.next, nxt.prev = nxt, prev
ಡೆಫ್ add(ಸ್ವಯಂ, ನೋಡ್):
prev = self.tail.prev
prev.next = ನೋಡ್
self.tail.prev = ನೋಡ್
node.prev, node.next = prev, self.tail
ಡೆಫ್ ಗೆಟ್ (ಸ್ವಯಂ, ಕೀಲಿ):
ಸ್ವಯಂ.ಕ್ಯಾಶ್ ನಲ್ಲಿ ಕೀಲಿಯಾದರೆ:
ನೋಡ್ = self.cache[ಕೀ]
self.remove(ನೋಡ್)
self.add(ನೋಡ್)
ರಿಟರ್ನ್ ನೋಡ್.value
ರಿಟರ್ನ್ -1
def ಪುಟ್ (ಸ್ವಯಂ, ಕೀಲಿ, ಮೌಲ್ಯ):
ಸ್ವಯಂ.ಕ್ಯಾಶ್ ನಲ್ಲಿ ಕೀಲಿಯಾದರೆ:
self.remove(self.cache[ಕೀ])
ನೋಡ್ = ನೋಡ್ (ಕೀಲಿ, ಮೌಲ್ಯ)
self.add(ನೋಡ್)
self.cache[ಕೀ] = ನೋಡ್
ಲೆನ್ (self.cache) > ಸ್ವಯಂ.ಸಾಮರ್ಥ್ಯ ಇದ್ದರೆ:
lru = self.head.next
self.remove(LRU)
del self.cache[lru.key]
ಸಮಯ: ಒ (ಎನ್), ಸ್ಥಳ: ಒ (ಎಚ್)
ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆಗಳು: ಟ್ರೀ ಟ್ರಾವರ್ಸಲ್, ಡೈನಾಮಿಕ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್
ಸಿಸ್ಟಮ್ ಡಿಸೈನ್ ಸಂದರ್ಶನ ಪ್ರಶ್ನೆಗಳು
1. URL ಸಂಕ್ಷಿಪ್ತಗೊಳಿಸುವ ಸೇವೆಯನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಿ (TinyURL)
ಅವಶ್ಯಕತೆಗಳು:
- ದೀರ್ಘ URL ಗಳನ್ನು ಸಣ್ಣ ಕೋಡ್ ಗಳಿಗೆ ಸಂಕ್ಷಿಪ್ತಗೊಳಿಸಿ
- ಸಣ್ಣ URL ಗಳನ್ನು ಮೂಲ URL ಗಳಿಗೆ ಮರುನಿರ್ದೇಶಿಸಿತು
- ಹೆಚ್ಚಿನ ದಟ್ಟಣೆಯನ್ನು ನಿರ್ವಹಿಸಿ (ಲಕ್ಷಾಂತರ ವಿನಂತಿಗಳು / ದಿನ)
- ಅನನ್ಯತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ಘರ್ಷಣೆಗಳನ್ನು ತಡೆಗಟ್ಟುತ್ತದೆ
- URL ಬಳಕೆಯ ಬಗ್ಗೆ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಒದಗಿಸಿ
ವಿನ್ಯಾಸ ಪರಿಗಣನೆಗಳು:
- ಎನ್ಕೋಡಿಂಗ್: URL ಕೋಡ್ಗಳಿಗಾಗಿ Base62 ಎನ್ಕೋಡಿಂಗ್
- ಸಂಗ್ರಹಣೆ: URL ಮ್ಯಾಪಿಂಗ್ ಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಡೇಟಾಬೇಸ್
- ಸ್ಕೇಲೆಬಿಲಿಟಿ: ವಿತರಿಸಿದ ಡೇಟಾಬೇಸ್ ಮತ್ತು ಕ್ಯಾಶಿಂಗ್
- ಅನನ್ಯತೆ: ಅನನ್ಯ ಕೋಡ್ ಗಳನ್ನು ರಚಿಸಿ
- ಮುಕ್ತಾಯ: URL ಮುಕ್ತಾಯವನ್ನು ನಿರ್ವಹಿಸಿ
ವಾಸ್ತುಶಿಲ್ಪಶಾಸ್ತ್ರ:
- ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ → API ಸರ್ವರ್ಗಳು → ಡೇಟಾಬೇಸ್ (ಶಾರ್ಡ್) + ಕ್ಯಾಶ್ (ರೆಡಿಸ್)
- ಪ್ರತ್ಯೇಕ ಓದುವ / ಬರೆಯುವ ಡೇಟಾಬೇಸ್ ಗಳು
- ಜಾಗತಿಕ ವಿತರಣೆಗಾಗಿ ಸಿಡಿಎನ್
- ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ವಿಶ್ಲೇಷಣೆ
ಪ್ರಮುಖ ಘಟಕಗಳು:
- ಹ್ಯಾಶ್ ಫಂಕ್ಷನ್: ಕೋಡ್ ಉತ್ಪಾದನೆಗಾಗಿ MD5 / SHA-256
- ಡೇಟಾಬೇಸ್ ಸ್ಕೀಮಾ: urlcode (ಪಿಕೆ), originalurl, createddate, expiresdate, clickcount
- ಕ್ಯಾಶಿಂಗ್ ಸ್ಟ್ರಾಟಜಿ: ರೆಡಿಸ್ ನಲ್ಲಿ ಕ್ಯಾಶ್ ಜನಪ್ರಿಯ URL ಗಳು
- ದರ ಮಿತಿ: ದುರುಪಯೋಗವನ್ನು ತಡೆಗಟ್ಟುವುದು
2. ಅಧಿಸೂಚನೆ ವ್ಯವಸ್ಥೆಯನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಿ
ಅವಶ್ಯಕತೆಗಳು:
- ಬಹು ಚಾನಲ್ ಗಳ ಮೂಲಕ ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಿ (ಇಮೇಲ್, ಎಸ್ ಎಂಎಸ್, ಪುಶ್)
- ಪ್ರತಿದಿನ ಲಕ್ಷಾಂತರ ಅಧಿಸೂಚನೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ
- ವಿವಿಧ ಅಧಿಸೂಚನೆ ಪ್ರಕಾರಗಳು ಮತ್ತು ಆದ್ಯತೆಗಳನ್ನು ಬೆಂಬಲಿಸಿ
ಮರುಪ್ರಯತ್ನಗಳೊಂದಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ವಿತರಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ
- ಬಳಕೆದಾರರ ಆದ್ಯತೆಗಳು ಮತ್ತು ಹೊರಗುಳಿಯುವಿಕೆಗಳನ್ನು ಅನುಮತಿಸಿ
ವಿನ್ಯಾಸ ಪರಿಗಣನೆಗಳು:
- ಸ್ಕೇಲೆಬಿಲಿಟಿ: ಹೆಚ್ಚಿನ ಪರಿಮಾಣ ಮತ್ತು ಸ್ಪೈಕ್ ಗಳನ್ನು ನಿರ್ವಹಿಸಿ
- ವಿಶ್ವಾಸಾರ್ಹತೆ: ಸಂದೇಶ ವಿತರಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ
- ಚಾನಲ್ ಗಳು: ಬಹು ವಿತರಣಾ ವಿಧಾನಗಳನ್ನು ಬೆಂಬಲಿಸಿ
- ವೈಯಕ್ತೀಕರಣ: ಬಳಕೆದಾರರ ಆದ್ಯತೆಗಳು ಮತ್ತು ಗ್ರಾಹಕೀಕರಣ
- ವಿಶ್ಲೇಷಣೆ: ಟ್ರ್ಯಾಕ್ ವಿತರಣೆ ಮತ್ತು ನಿಶ್ಚಿತಾರ್ಥ
ವಾಸ್ತುಶಿಲ್ಪಶಾಸ್ತ್ರ:
- ಎಪಿಐ ಗೇಟ್ವೇ → ಮೆಸೇಜ್ ಕ್ಯೂ (ಕಾಫ್ಕಾ) → ಚಾನೆಲ್ ಕಾರ್ಮಿಕರು → ಬಾಹ್ಯ ಎಪಿಐಗಳು
- ಬಳಕೆದಾರ ಆದ್ಯತೆಗಳು ಮತ್ತು ಅಧಿಸೂಚನೆ ಇತಿಹಾಸಕ್ಕಾಗಿ ಡೇಟಾಬೇಸ್
- ಘಾತೀಯ ಬ್ಯಾಕ್ ಆಫ್ ನೊಂದಿಗೆ ಮರುಪ್ರಯತ್ನಿಸಿ ಕಾರ್ಯವಿಧಾನ
- ವಿಫಲವಾದ ಸಂದೇಶಗಳಿಗೆ ಡೆಡ್ ಲೆಟರ್ ಕ್ಯೂ
ಪ್ರಮುಖ ಘಟಕಗಳು:
- ಸಂದೇಶ ಸರದಿ: ಲೋಡ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ಅಸಿಂಕ್ ಪ್ರಕ್ರಿಯೆ
- ಕಾರ್ಮಿಕ ಸೇವೆಗಳು: ಪ್ರತಿ ಚಾನೆಲ್ ಗೆ ಪ್ರತ್ಯೇಕ ಕಾರ್ಮಿಕರು
- ಟೆಂಪ್ಲೇಟ್ ಎಂಜಿನ್: ಡೈನಾಮಿಕ್ ವಿಷಯ ಉತ್ಪಾದನೆ
- ಆದ್ಯತೆಯ ಎಂಜಿನ್: ಬಳಕೆದಾರ ಸೆಟ್ಟಿಂಗ್ ಗಳು ಮತ್ತು ಆಪ್ಟ್-ಔಟ್ ನಿರ್ವಹಣೆ
3. ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಫೀಡ್ ಅನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಿ
ಅವಶ್ಯಕತೆಗಳು:
- ಲಕ್ಷಾಂತರ ಬಳಕೆದಾರರಿಗೆ ವೈಯಕ್ತಿಕಗೊಳಿಸಿದ ಫೀಡ್ ಗಳನ್ನು ರಚಿಸಿ
- ಪೋಸ್ಟ್ಗಳು, ಇಷ್ಟಗಳು, ಕಾಮೆಂಟ್ ಗಳು, ಫಾಲೋಗಳನ್ನು ನಿರ್ವಹಿಸಿ
- ನೈಜ-ಸಮಯದ ನವೀಕರಣಗಳು ಮತ್ತು ಅಧಿಸೂಚನೆಗಳು
- ಶತಕೋಟಿ ಸಂವಹನಗಳಿಗೆ ಅಳತೆ
- ಕಡಿಮೆ ವಿಳಂಬ ಮತ್ತು ಹೆಚ್ಚಿನ ಲಭ್ಯತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ
ವಿನ್ಯಾಸ ಪರಿಗಣನೆಗಳು:
- ವೈಯಕ್ತೀಕರಣ: ಪ್ರತಿ ಬಳಕೆದಾರರಿಗೆ ವಿಷಯವನ್ನು ಶ್ರೇಯಾಂಕ ಮತ್ತು ಫಿಲ್ಟರ್ ಮಾಡಿ
- ನೈಜ-ಸಮಯ: ಸಕ್ರಿಯ ಬಳಕೆದಾರರಿಗೆ ಲೈವ್ ನವೀಕರಣಗಳು
- ಸ್ಕೇಲೆಬಿಲಿಟಿ: ಬೃಹತ್ ಓದುವಿಕೆ / ಬರವಣಿಗೆಯ ಹೊರೆಯನ್ನು ನಿರ್ವಹಿಸಿ
- ಸ್ಥಿರತೆ: ಕೆಲವು ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ ಅಂತಿಮವಾಗಿ ಸ್ಥಿರತೆ
- ಗೌಪ್ಯತೆ: ಬಳಕೆದಾರರ ಗೌಪ್ಯತೆಯನ್ನು ಗೌರವಿಸಿ ಮತ್ತು ನಿರ್ಬಂಧಿಸುವುದು
ವಾಸ್ತುಶಿಲ್ಪಶಾಸ್ತ್ರ:
- ಬರೆಯುವ ಮಾರ್ಗ: API → ಸಂದೇಶ ಸರದಿ → ಡೇಟಾಬೇಸ್ + ಕ್ಯಾಶ್
- ಓದಿ ಮಾರ್ಗ: ಕ್ಯಾಶ್ → ಡೇಟಾಬೇಸ್ → ಫೀಡ್ ಸೇವೆ
- ನೈಜ-ಸಮಯ: ಲೈವ್ ನವೀಕರಣಗಳಿಗಾಗಿ ವೆಬ್ಸಾಕೆಟ್ ಸಂಪರ್ಕಗಳು
- ಫ್ಯಾನ್-ಔಟ್: ಸಣ್ಣ ಅನುಯಾಯಿಗಳಿಗಾಗಿ ತಳ್ಳುವ ಮಾದರಿ, ದೊಡ್ಡದಾಗಿ ಎಳೆಯಿರಿ
ಪ್ರಮುಖ ಘಟಕಗಳು:
- ಫೀಡ್ ಶ್ರೇಯಾಂಕ: ವಿಷಯ ಶ್ರೇಯಾಂಕಕ್ಕಾಗಿ ಯಂತ್ರ ಕಲಿಕೆ
- ಕ್ಯಾಶಿಂಗ್ ಪದರಗಳು: ಬಹು-ಹಂತದ ಕ್ಯಾಶಿಂಗ್ (ಸಿಡಿಎನ್, ರೆಡಿಸ್, ಸ್ಥಳೀಯ)
- ಡೇಟಾಬೇಸ್ ಹಂಚಿಕೆ: ಬಹು ಡೇಟಾಬೇಸ್ ಗಳಲ್ಲಿ ಡೇಟಾವನ್ನು ವಿತರಿಸಿ
- ನೈಜ-ಸಮಯದ ಪೈಪ್ ಲೈನ್: ಲೈವ್ ನವೀಕರಣಗಳಿಗಾಗಿ ಸ್ಟ್ರೀಮ್ ಸಂಸ್ಕರಣೆ
ವಿನ್ಯಾಸ ಮಾದರಿಗಳು ಮತ್ತು OOP ಪ್ರಶ್ನೆಗಳು
1. ಸಿಂಗಲ್ಟನ್ ಮಾದರಿ
ಪ್ರಶ್ನೆ: ಥ್ರೆಡ್-ಸುರಕ್ಷಿತ ಸಿಂಗಲ್ಟನ್ ಮಾದರಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ.
ಪರಿಹಾರ:
'''ಹೆಬ್ಬಾವು
ವರ್ಗ ಸಿಂಗಲ್ಟನ್:
instance = ಯಾವುದೂ ಇಲ್ಲ
lock = ಥ್ರೆಡಿಂಗ್. ಲಾಕ್()
ಡೆಫ್ new(ಸಿಎಲ್ಎಸ್):
ಒಂದುವೇಳೆ cls.instance ಯಾವುದೂ ಇಲ್ಲದಿದ್ದರೆ:
cls.lock ನೊಂದಿಗೆ:
cls.instance ಯಾವುದೂ ಇಲ್ಲದಿದ್ದರೆ: # ಡಬಲ್ ಚೆಕ್ ಲಾಕಿಂಗ್
cls.instance = ಸೂಪರ್ ().new(cls)
cls.instance ಹಿಂದಿರುಗಿ
ಡೆಫ್ init(ಸ್ವಯಂ):
ಹಸತ್ರ್ ಅಲ್ಲದಿದ್ದರೆ (ಸ್ವಯಂ, 'ಆರಂಭಗೊಳಿಸಲಾಗಿದೆ'):
# ಒಮ್ಮೆ ಮಾತ್ರ ಪ್ರಾರಂಭಿಸಿ
self.data = {}
self.initialized = ಸರಿ
ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆಗಳು: ಅಮೂರ್ತತೆ, ಬಹುರೂಪ, ಎನ್ಕ್ಯಾಪ್ಸುಲೇಶನ್
ಸಾಫ್ಟ್ ವೇರ್ ಎಂಜಿನಿಯರ್ ಗಳಿಗೆ ನಡವಳಿಕೆಯ ಪ್ರಶ್ನೆಗಳು
ತಂಡದ ಕೆಲಸ ಮತ್ತು ಸಹಯೋಗ
1. ತಾಂತ್ರಿಕ ವಿಧಾನದ ಬಗ್ಗೆ ಸಹೋದ್ಯೋಗಿಯೊಂದಿಗೆ ನೀವು ಭಿನ್ನಾಭಿಪ್ರಾಯ ಹೊಂದಿದ್ದ ಸಮಯದ ಬಗ್ಗೆ ನನಗೆ ತಿಳಿಸಿ.
ಬಲವಾದ ಉತ್ತರ:
"ನನ್ನ ಹಿಂದಿನ ಪಾತ್ರದಲ್ಲಿ, ನನ್ನ ಸಹೋದ್ಯೋಗಿ ಹೊಸ ಮೈಕ್ರೋಸರ್ವೀಸ್ ಗಾಗಿ ಏಕಶಿಲಾ ವಾಸ್ತುಶಿಲ್ಪವನ್ನು ಬಳಸಲು ಬಯಸಿದ್ದರು, ಆದರೆ ನಾನು ಅದನ್ನು ಸಣ್ಣ ಸೇವೆಗಳಾಗಿ ವಿಭಜಿಸಲು ಪ್ರತಿಪಾದಿಸಿದೆ. ಉದ್ಯಮ ಕೇಸ್ ಸ್ಟಡೀಸ್ ಬೆಂಬಲದೊಂದಿಗೆ ಮೈಕ್ರೋಸರ್ವೀಸಸ್ ನ ಸ್ಕೇಲೆಬಿಲಿಟಿ ಪ್ರಯೋಜನಗಳು ಮತ್ತು ನಿರ್ವಹಣಾ ಅನುಕೂಲಗಳನ್ನು ತೋರಿಸುವ ತಾಂತ್ರಿಕ ವಾದಗಳನ್ನು ನಾನು ಸಿದ್ಧಪಡಿಸಿದೆ.
ಎರಡೂ ವಿಧಾನಗಳನ್ನು ಚರ್ಚಿಸಲು ನಾವು ನಮ್ಮ ಟೆಕ್ ಲೀಡ್ ನೊಂದಿಗೆ ಸಭೆಯನ್ನು ನಿಗದಿಪಡಿಸಿದ್ದೇವೆ. ನಾನು ಅಭಿವೃದ್ಧಿ ವೇಗ ಮತ್ತು ನಿಯೋಜನೆ ಆವರ್ತನ ಸುಧಾರಣೆಗಳ ಡೇಟಾವನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಿದೆ. ನನ್ನ ಸಹೋದ್ಯೋಗಿ ಏಕಶಿಲಾ ವಿಧಾನದ ಸರಳತೆಯ ಅನುಕೂಲಗಳನ್ನು ವಿವರಿಸಿದರು.
ಟೆಕ್ ಲೀಡ್ ಹೈಬ್ರಿಡ್ ವಿಧಾನವನ್ನು ನಿರ್ಧರಿಸಿತು - ಏಕಶಿಲಾ ಪ್ರಾರಂಭಿಸಿ ಆದರೆ ಭವಿಷ್ಯದ ಕೊಳೆಯುವಿಕೆಗೆ ಯೋಜಿಸುವುದು. ಈ ಅನುಭವವು ಡೇಟಾ-ಚಾಲಿತ ತಾಂತ್ರಿಕ ಚರ್ಚೆಗಳ ಮೌಲ್ಯವನ್ನು ಮತ್ತು ರಾಜಿ ಪರಿಹಾರಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ನನಗೆ ಕಲಿಸಿತು.
ಪ್ರಮುಖ ಕೌಶಲ್ಯಗಳು: ತಾಂತ್ರಿಕ ಸಂವಹನ, ರಾಜಿ ಮಾಡಿಕೊಳ್ಳುವುದು, ಡೇಟಾ-ಚಾಲಿತ ನಿರ್ಧಾರ ತೆಗೆದುಕೊಳ್ಳುವುದು
ಸಮಸ್ಯೆ ಪರಿಹರಿಸುವ ವಿಧಾನ
2. ಸಂಕೀರ್ಣ ಸಮಸ್ಯೆಯನ್ನು ಡೀಬಗ್ ಮಾಡಲು ನಿಮ್ಮ ಪ್ರಕ್ರಿಯೆಯನ್ನು ವಿವರಿಸಿ.
ಬಲವಾದ ಉತ್ತರ:
"ಸಂಕೀರ್ಣ ಸಮಸ್ಯೆಗಳನ್ನು ಡೀಬಗ್ ಮಾಡುವಾಗ, ನಾನು ವ್ಯವಸ್ಥಿತ ವಿಧಾನವನ್ನು ಅನುಸರಿಸುತ್ತೇನೆ:
1. ಸಮಸ್ಯೆಯನ್ನು ಪುನರುತ್ಪಾದಿಸಿ: ಸಮಸ್ಯೆಯನ್ನು ನಿರಂತರವಾಗಿ ಪುನರುತ್ಪಾದಿಸಲು ಕನಿಷ್ಠ ಪರೀಕ್ಷಾ ಪ್ರಕರಣವನ್ನು ರಚಿಸಿ
2. ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಿ: ಲಾಗ್ ಗಳು, ಮೆಟ್ರಿಕ್ಸ್ ಮತ್ತು ಸಿಸ್ಟಮ್ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸಿ
3. ರೂಪ ಊಹೆಗಳು: ರೋಗಲಕ್ಷಣಗಳ ಆಧಾರದ ಮೇಲೆ, ಸಂಭಾವ್ಯ ಮೂಲ ಕಾರಣಗಳನ್ನು ಗುರುತಿಸಿ
4. ಪರೀಕ್ಷಾ ಊಹೆಗಳು: ವೈಜ್ಞಾನಿಕ ವಿಧಾನವನ್ನು ಬಳಸಿ - ಒಂದು ಸಮಯದಲ್ಲಿ ಒಂದು ವೇರಿಯಬಲ್ ಅನ್ನು ಬದಲಾಯಿಸಿ
5. ಸರಿಪಡಿಸುವಿಕೆಯನ್ನು ಪರಿಶೀಲಿಸಿ: ಹೊಸ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಚಯಿಸದೆ ಪರಿಹಾರ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ
ಉದಾಹರಣೆಗೆ, ನಮ್ಮ ಎಪಿಐ ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯವು 30 ಸೆಕೆಂಡುಗಳಿಗೆ ಹೆಚ್ಚಾದಾಗ, ನಾನು ಮೊದಲು ಸ್ಟೇಜಿಂಗ್ ನಲ್ಲಿ ಸಮಸ್ಯೆಯನ್ನು ಪುನರುತ್ಪಾದಿಸಿದೆ. ಲಾಗ್ ವಿಶ್ಲೇಷಣೆಯು ಡೇಟಾಬೇಸ್ ಪ್ರಶ್ನೆ ಸಮಯ ಮುಗಿದಿದೆಗಳನ್ನು ತೋರಿಸಿದೆ. ನಾನು ನಮ್ಮ ORM ನಲ್ಲಿ N+1 ಪ್ರಶ್ನೆ ಸಮಸ್ಯೆಯನ್ನು ಗುರುತಿಸಿದೆ, ಕುತೂಹಲಕಾರಿ ಲೋಡಿಂಗ್ ನೊಂದಿಗೆ ಪ್ರಶ್ನೆಯನ್ನು ಉತ್ತಮಗೊಳಿಸಿದೆ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯವನ್ನು 2 ಸೆಕೆಂಡುಗಳಿಗಿಂತ ಕಡಿಮೆ ಮಾಡಿದೆ.
ಪ್ರಮುಖ ಕೌಶಲ್ಯಗಳು: ವ್ಯವಸ್ಥಿತ ಸಮಸ್ಯೆ ಪರಿಹಾರ, ಡೀಬಗ್ಗಿಂಗ್ ವಿಧಾನ, ಕಾರ್ಯಕ್ಷಮತೆ ಆಪ್ಟಿಮೈಸೇಶನ್
ಕಲಿಕೆ ಮತ್ತು ಬೆಳವಣಿಗೆ
3. ತಂತ್ರಜ್ಞಾನದ ಪ್ರವೃತ್ತಿಗಳೊಂದಿಗೆ ನೀವು ಹೇಗೆ ಪ್ರಸ್ತುತವಾಗಿರುತ್ತೀರಿ?
ಬಲವಾದ ಉತ್ತರ:
"ನಾನು ನಿರಂತರ ಕಲಿಕೆಗೆ ರಚನಾತ್ಮಕ ವಿಧಾನವನ್ನು ನಿರ್ವಹಿಸುತ್ತೇನೆ:
- ದೈನಂದಿನ ಓದುವಿಕೆ: ತಾಂತ್ರಿಕ ಬ್ಲಾಗ್ ಗಳು, ಸುದ್ದಿಪತ್ರಗಳು (ಹ್ಯಾಕರ್ ನ್ಯೂಸ್, ಟೆಕ್ ಕ್ರಂಚ್)
- ಸಾಪ್ತಾಹಿಕ ಡೀಪ್ ಡೈವ್: ಒಂದು ಆಳವಾದ ಲೇಖನ ಅಥವಾ ಸಂಶೋಧನಾ ಪ್ರಬಂಧ
- ಮಾಸಿಕ ಯೋಜನೆಗಳು: ಹೊಸ ತಂತ್ರಜ್ಞಾನಗಳೊಂದಿಗೆ ವೈಯಕ್ತಿಕ ಯೋಜನೆಗಳು
- ಸಮ್ಮೇಳನದ ಹಾಜರಾತಿ: ವರ್ಚುವಲ್ ಸಮ್ಮೇಳನಗಳು ಮತ್ತು ಸಭೆಗಳು
- ಸಮುದಾಯ ನಿಶ್ಚಿತಾರ್ಥ: ಓಪನ್ ಸೋರ್ಸ್ ಕೊಡುಗೆಗಳು ಮತ್ತು ಸ್ಟ್ಯಾಕ್ ಓವರ್ಫ್ಲೋ
ಇತ್ತೀಚೆಗೆ, ನಾನು ಕಮಾಂಡ್-ಲೈನ್ ಟೂಲ್ ಅನ್ನು ನಿರ್ಮಿಸುವ ಮೂಲಕ ರಸ್ಟ್ ಅನ್ನು ಕಲಿತಿದ್ದೇನೆ, ರಿಯಾಕ್ಟ್ ನೇಟಿವ್ ಲೈಬ್ರರಿಗೆ ಕೊಡುಗೆ ನೀಡಿದ್ದೇನೆ ಮತ್ತು ಮೈಕ್ರೋಸರ್ವೀಸಸ್ ಮಾದರಿಗಳ ಬಗ್ಗೆ ನಮ್ಮ ಕಂಪನಿಯ ಟೆಕ್ ಟಾಕ್ ನಲ್ಲಿ ಪ್ರಸ್ತುತಪಡಿಸಿದೆ. ಇದು ನನ್ನ ಕೌಶಲ್ಯಗಳನ್ನು ಪ್ರಸ್ತುತವಾಗಿರಿಸುತ್ತದೆ ಮತ್ತು ನಮ್ಮ ಯೋಜನೆಗಳಿಗೆ ಹೊಸ ಆಲೋಚನೆಗಳನ್ನು ತರಲು ನನಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ಪ್ರಮುಖ ಕೌಶಲ್ಯಗಳು: ಸ್ವಯಂ-ನಿರ್ದೇಶಿತ ಕಲಿಕೆ, ಸಮುದಾಯ ತೊಡಗಿಸಿಕೊಳ್ಳುವಿಕೆ, ಜ್ಞಾನ ಹಂಚಿಕೆ
ಸುಧಾರಿತ ವಿಷಯಗಳು
ಡಿಸ್ಟ್ರಿಬ್ಯೂಟೆಡ್ ಸಿಸ್ಟಮ್ಸ್
1. CAP ಪ್ರಮೇಯ ಮತ್ತು ಅದರ ಪರಿಣಾಮಗಳನ್ನು ವಿವರಿಸಿ.
ಉತ್ತರ:
"ವಿತರಿಸಿದ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ, ನೀವು ಮೂರು ಗುಣಲಕ್ಷಣಗಳಲ್ಲಿ ಎರಡನ್ನು ಮಾತ್ರ ಖಾತರಿಪಡಿಸಬಹುದು ಎಂದು ಸಿಎಪಿ ಪ್ರಮೇಯವು ಹೇಳುತ್ತದೆ:
- ಸ್ಥಿರತೆ: ಎಲ್ಲಾ ನೋಡ್ ಗಳು ಒಂದೇ ಡೇಟಾವನ್ನು ಏಕಕಾಲದಲ್ಲಿ ನೋಡುತ್ತವೆ
- ಲಭ್ಯತೆ: ನೋಡ್ ವೈಫಲ್ಯಗಳ ಹೊರತಾಗಿಯೂ ಸಿಸ್ಟಮ್ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ
- ವಿಭಜನೆ ಸಹಿಷ್ಣುತೆ: ನೆಟ್ವರ್ಕ್ ವಿಭಜನೆಗಳ ಹೊರತಾಗಿಯೂ ಸಿಸ್ಟಮ್ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ
ಪ್ರಾಯೋಗಿಕವಾಗಿ, ವಿತರಿಸಿದ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ವಿಭಜನೆ ಸಹಿಷ್ಣುತೆಯು ಮಾತುಕತೆಗೆ ಒಳಪಡುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ನೀವು ಸ್ಥಿರತೆ (ಎಚ್ ಬೇಸ್ ನಂತಹ ಸಿಪಿ ವ್ಯವಸ್ಥೆಗಳು) ಅಥವಾ ಲಭ್ಯತೆ (ಡೈನಮೋಡಿಬಿಯಂತಹ ಎಪಿ ವ್ಯವಸ್ಥೆಗಳು) ನಡುವೆ ಆಯ್ಕೆ ಮಾಡುತ್ತೀರಿ. ಹೆಚ್ಚಿನ ಆಧುನಿಕ ವ್ಯವಸ್ಥೆಗಳು ಮೂರನ್ನೂ ಸಮತೋಲನಗೊಳಿಸಲು ಅಂತಿಮವಾಗಿ ಸ್ಥಿರತೆಯನ್ನು ಒದಗಿಸುತ್ತವೆ.
ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆಗಳು: ಸ್ಥಿರತೆ ಮಾದರಿಗಳು, ವ್ಯಾಪಾರ-ಆಫ್ಗಳು, ಸಿಸ್ಟಮ್ ವಿನ್ಯಾಸ
ಡೇಟಾಬೇಸ್ ವಿನ್ಯಾಸ
2. ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಪ್ಲಾಟ್ ಫಾರ್ಮ್ ಗಾಗಿ ಡೇಟಾಬೇಸ್ ಸ್ಕೀಮಾವನ್ನು ನೀವು ಹೇಗೆ ವಿನ್ಯಾಸಗೊಳಿಸುತ್ತೀರಿ?
ಉತ್ತರ:
"ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ವೇದಿಕೆಗಾಗಿ, ನಾನು ಪರಿಗಣಿಸುತ್ತೇನೆ:
ಬಳಕೆದಾರರ ಕೋಷ್ಟಕ: userid (ಪಿಕೆ), ಬಳಕೆದಾರಹೆಸರು, ಇಮೇಲ್, passwordhash, createdat
ಪೋಸ್ಟ್ ಗಳ ಕೋಷ್ಟಕ: postid (ಪಿಕೆ), userid (ಎಫ್ಕೆ), ವಿಷಯ, createdat, updatedat
ಕಾಮೆಂಟ್ಸ್ ಕೋಷ್ಟಕ: commentid (ಪಿಕೆ), postid (ಎಫ್ಕೆ), userid (ಎಫ್ಕೆ), ವಿಷಯ, createdat
ಟೇಬಲ್ ಅನ್ನು ಇಷ್ಟಪಡುತ್ತದೆ: likeid (PK), userid (FK), postid (FK), createdat (ಹಲವುಗಳಿಂದ ಹಲವು)
ಕೋಷ್ಟಕವನ್ನು ಅನುಸರಿಸುತ್ತದೆ: followerid (FK), followingid (FK), createdat (ಹಲವು-ಅನೇಕ)
ವಿನ್ಯಾಸ ನಿರ್ಧಾರಗಳು:
- ಸ್ಕೇಲೆಬಿಲಿಟಿಗಾಗಿ ಯುಯುಐಡಿಗಳನ್ನು ಬಳಸಿ
ಅನುಸರಣೆಗಾಗಿ ಮೃದುವಾದ ಅಳಿಸುವಿಕೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ
- ಆಗಾಗ್ಗೆ ಪ್ರಶ್ನಿಸುವ ಅಂಕಣಗಳಲ್ಲಿ ಸೂಚ್ಯಂಕಗಳನ್ನು ಸೇರಿಸಿ
- ದೊಡ್ಡ ಕೋಷ್ಟಕಗಳಿಗೆ ವಿಭಜನೆಯನ್ನು ಪರಿಗಣಿಸಿ
- ಸ್ಕೇಲೆಬಿಲಿಟಿಗಾಗಿ ಓದುವ ಪ್ರತಿಕೃತಿಗಳನ್ನು ಬಳಸಿ"
ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆಗಳು: ಸಾಮಾನ್ಯೀಕರಣ, ಸೂಚ್ಯಂಕ, ಸ್ಕೇಲೆಬಿಲಿಟಿ, ಸಂಬಂಧಗಳು
ಭದ್ರತಾ ಪರಿಗಣನೆಗಳು
3. ಸಾಫ್ಟ್ ವೇರ್ ವಿನ್ಯಾಸದಲ್ಲಿ ಭದ್ರತೆಯನ್ನು ನೀವು ಹೇಗೆ ಸಂಪರ್ಕಿಸುತ್ತೀರಿ?
ಉತ್ತರ:
"ಭದ್ರತೆಯನ್ನು ಮೊದಲಿನಿಂದಲೂ ವಿನ್ಯಾಸಗೊಳಿಸಬೇಕು, ನಂತರ ಸೇರಿಸಬಾರದು:
ದೃಢೀಕರಣ ಮತ್ತು ದೃಢೀಕರಣ:
- ಸರಿಯಾದ ಮುಕ್ತಾಯದೊಂದಿಗೆ ಜೆಡಬ್ಲ್ಯುಟಿ ಟೋಕನ್ ಗಳು
- ಪಾತ್ರ ಆಧಾರಿತ ಪ್ರವೇಶ ನಿಯಂತ್ರಣ (ಆರ್ ಬಿಎಸಿ)
- ಬಹು