ToCode
Kanalga Telegram鈥檇a o鈥榯ish
讟讬驻讬诐 拽爪专讬诐 诇诪转讻谞转讬诐 诪讗转 讬谞讜谉 驻专拽
Ko'proq ko'rsatish1 419
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
-230 kunlar
Postlar arxiv
1 419
# 讗专讘注讛 诪讻砖讜诇讬诐 砖诪讜谞注讬诐 诪讗讬转谞讜 诇诇诪讜讚 讟讻谞讜诇讜讙讬讛 讞讚砖讛
讘转讜专 诪转讻谞转讬诐 讗谞讞谞讜 讬讜讚注讬诐 砖讛注讜诇诐 讛讟讻谞讜诇讜讙讬 诪砖转谞讛 讻诇 讛讝诪谉, 砖讞砖讜讘 诇诇诪讜讚 讟讻谞讜诇讜讙讬讜转 讞讚砖讜转 (讙诐 讘诇讬 拽砖专 诇讞讬驻讜砖 注讘讜讚讛 讗讜 砖讬谞讜讬 拽专讬讬专讛) 讜砖讻讻诇 砖谞拽驻讬讚 诇诇诪讜讚 讟讻谞讜诇讜讙讬讜转 讞讚砖讜转 讻诇 讛讝诪谉 讜诇讛驻讜讱 讗转 讛诇讬诪讜讚 诇讞诇拽 讘诇转讬 谞驻专讚 诪讛讞讬讬诐 砖诇谞讜, 讻讱 讬讛讬讛 诇谞讜 拽诇 讬讜转专 诇驻转讞 拽专讬讬专讛 诇讟讜讜讞 讛专讞讜拽 讜诇讛讬砖讗专 专诇讜讜谞讟讬诐.
讜诇诪专讜转 砖专讜讘谞讜 诪讘讬谞讬诐 讗转 讛讞砖讬讘讜转 砖诇 诇讬诪讜讚 讟讻谞讜诇讜讙讬讜转 讞讚砖讜转, 讘驻讜注诇 讻砖讗谞讞谞讜 诪谞住讬诐 诇砖诇讘 诇讬诪讜讚 讗讬讻讜转讬 砖诇 讟讻谞讜诇讜讙讬讛 讗谞讞谞讜 诪讙诇讬诐 砖讛诪砖讞拽 讛专讘讛 讬讜转专 拽砖讛 诪诪讛 砖拽讬讜讜讬谞讜. 讛诪注讘专 讘讬谉 "砖讬讞拽转讬 拽爪转 注诐 Elixir" 诇讘讬谉 "讗谞讬 诪讘讬谉 诇注讜诪拽 讗转 Elixir, Pheonix 讜 Erlang 讜诪住讜讙诇 诇讘谞讜转 拽讜讚 诪拽爪讜注讬 讘讝讛" 讚讜专砖 讛砖拽注转 讝诪谉 讜讬讜转专 诪讝讛 讚讜专砖 讛转讙讘专讜转 注诇 诪讻砖讜诇讬诐 驻谞讬诪讬讬诐 砖诪讜谞注讬诐 诪讗讬转谞讜 诇诇诪讜讚 讗转 讛讟讻谞讜诇讜讙讬讛 诇专诪讛 讗诇讬讛 讗谞讞谞讜 专讜爪讬诐 诇讛讙讬注.
讗专讘注转 讛诪讻砖讜诇讬诐 砖谞专讗讛 讘驻讜住讟 诪讜驻讬注讬诐 讗爪诇 讻诇 讗讞讚 讜讗讞转 砖诪讙讬注讬诐 诇诇诪讜讚 讟讻谞讜诇讜讙讬讛 讞讚砖讛. 讛诐 诇讗 住讬诪谞讬诐 砖讛诇讬诪讜讚 诇讗 讘砖讘讬诇讻诐 讗讜 砖讗转诐 诇讗 讟讜讘讬诐 诪住驻讬拽. 讛诐 讘住讱 讛讻诇 讞诇拽 诪转讛诇讬讱 讛诇讬诪讜讚 砖讛诪讜讞 砖诇谞讜 注讜讘专 讘讚专讱 诪讻讗谉 诇砖诐. 讗讘诇 专拽 讗诐 谞讘讬谉 讗讜转诐 讜谞讚注 诇爪驻讜转 诇讛诐, 谞讜讻诇 诇讛转讙讘专 注诇讬讛诐 讻砖讛诐 诪讙讬注讬诐 讜诇讛爪诇讬讞 诇诇诪讜讚 讗转 讛讟讻谞讜诇讜讙讬讛 讛讞讚砖讛 诇专诪讛 讗诇讬讛 讗谞讞谞讜 专讜爪讬诐 诇讛讙讬注.
## 讘诇讘讜诇 (Confusion)
诪讻砖讜诇 诪住驻专 讗讞讚 谞拽专讗 "讘诇讘讜诇" 讜讛讜讗 拽讜专讛 讻砖讗谞讬 诪转讞讬诇 诇诇诪讜讚 讟讻谞讜诇讜讙讬讛 讞讚砖讛 讜诪专讙讬砖 砖砖讜诐 讚讘专 诇讗 诪爪诇讬讞 讗讜 砖讗谞讬 诇讗 诪讘讬谉 讗驻讬诇讜 诪讗讬驻讛 诇讛转讞讬诇. 讗谞讬 讬讻讜诇 诇驻转讜讞 Tutorial 讜诇讗 诇讛爪诇讬讞 诇讛专讬抓 讗转 讛拽讜讚 讘讜, 讗讜 诇拽专讜讗 住驻专 讗讜 诇爪驻讜转 讘诪讚专讬讻讬诐 讘讬讜讟讬讜讘 讜讻诇 驻注诐 诪讞讚砖 讗谞讬 诪专讙讬砖 砖讗谞讬 诪讘讬谉 诪讛 讛专讗讜 讘诪讚专讬讱 讗讘诇 诇讗 讬讜讚注 诇讬讬砖诐.
讛讘注讬讛 注诐 讘诇讘讜诇 讛讬讗 砖讛转讙讜讘讛 讛讗讬谞讟讜讗讬讟讬讘讬转 砖诇谞讜 专拽 诪讞诪讬专讛 讗转 讛讘注讬讛: 讻砖讗谞讬 诪谞住讛 诇讛专讬抓 讚讘专讬诐 讜讻诇讜诐 诇讗 注讜讘讚 讗谞讬 专抓 诇讗讬谞讟专谞讟 诇讞驻砖 驻讬转专讜谞讜转, 讗讜 专抓 诇讞驻砖 诪讚专讬讻讬诐 讗讞专讬诐 砖讬讜转专 讬转讗讬诪讜 诇讬. 讘诪拽讜诐 诇讛转拽讚诐 讜诇诇诪讜讚 讗谞讬 诪讘讝讘讝 讝诪谉 讬拽专 讘讞讬驻讜砖 讗讞专 转砖讜讘讜转 讻砖讛讗诪转 讛讬讗 砖讛砖讗诇讜转 砖诇讬 讘讻诇诇 诇讗 专诇讜讜谞讟讬讜转 讗讜 讬注诇诪讜 诪注爪诪谉 注诐 讛转拽讚诪讜转 讛诇讬诪讜讚.
讛讚专讱 诇爪讗转 诪讛讘诇讘讜诇 讛讜讗 讚讜讜拽讗 诇诇讻转 谞讙讚 讛讗讬谞讟讜讗讬爪讬讛 讜诇讛驻住讬拽 诇讞驻砖 注讜讚 诪拽讜专讜转 诇讬诪讜讚. 讛驻讬转专讜谉 讛谞讻讜谉 讛讜讗 驻砖讜讟 诇讛转拽讚诐, 讙诐 讗诐 讝讛 诇讜拽讞 讬讜转专 讝诪谉 诪诪讛 砖拽讬讜讜讬转 讜讙诐 讗诐 讝讛 讗讜诪专 诇砖讘转 注讻砖讬讜 砖讘讜注 诇讻转讜讘 转讜讻谞讬转 砖讘砖驻讛 讗讞专转 讛讬讬转 讻讜转讘 讗讜转讛 讘砖注讛. 专拽 讘讛诇讬讻讛 拽讚讬诪讛 讗驻砖专 讬讛讬讛 诇爪讗转 诪讛讘讜抓 讜诇讛转讞讬诇 诇砖讗讜诇 讗转 讛砖讗诇讜转 讛谞讻讜谞讜转.
## 注讜诪住 讬转专
诪讻砖讜诇 砖谞讬 讛讜讗 注讜诪住 讬转专 讜讝讛 诪讛 砖拽讜专讛 讻砖讗谞讞谞讜 诪讞驻砖讬诐 诇讛讘讬谉 讛讻诇 诇讙讘讬 讛讟讻谞讜诇讜讙讬讛: 讗讬讱 讝讛 注讜讘讚, 讗讬讝讛 讘注讬讜转 讬讛讬讜 讘讻诇 诪拽专讬 讛拽爪讛 讛讗驻砖专讬讬诐, 讗讬讱 讝讛 诪转谞讛讙 注诇 讻诇 讛驻诇讟驻讜专诪讜转, 诪讛 讘讚讬讜拽 讛讛讘讚诇讬诐 讘讬谉 砖讬讟转 注讘讜讚讛 讗讞转 诇讗讞专转, 诪讛 讛 Best Practices, 讗讬讝讛 住驻专讬讜转 注讝专 爪专讬讱 诇讛讜住讬祝 诇诪注专讻转 讜讻讜'.
拽讞讜 诇讚讜讙诪讛 住驻专讬讛 讻诪讜 React: 讗驻砖专 诇诇诪讜讚 讗转 专讬讗拽讟 诪讛专 诪讗讜讚 讗诐 诪转诪拽讚讬诐 讘住驻专讬讛 注爪诪讛 讜讘爪讜专转 讛驻注讜诇讛 砖诇讛, 讗讘诇 讗诐 诪转讞讬诇讬诐 诇拽专讜讗 砖讗诇讜转 诪专讗讬讜谞讜转 注讘讜讚讛 讜诪谞住讬诐 诇讛讘讬谉 讙诐 讗转 React 讜讙诐 讗转 Redux 讜讙诐 讗转 MobX 讜讙诐 讗转 create-react-app 讜讻诇 讛讚讘专讬诐 砖讘转讜讻讜 讜讻诪讜讘谉 讗转 Styled Components 讜 React Router - 讗讝 诪专讜讘 讚讘专讬诐 砖讻讗讬诇讜 讞讬讬讘讬诐 诇讚注转 讘砖讘讬诇 诇讛砖转诪砖 讘专讬讗拽讟 讗谞讞谞讜 专拽 砖讜拽注讬诐 讘转讜讱 讬讬讗讜砖 砖诇注讜诇诐 诇讗 谞爪诇讬讞 诇诇诪讜讚 讗转 讝讛, 砖专讬讗拽讟 讙讚讜诇讛 注诇讬谞讜 讜砖爪专讬讱 诇讜讜转专.
讛驻讬转专讜谉 诇注讜诪住 讬转专 讛讜讗 驻砖讜讟 诇讛讘谞讛 讗讘诇 拽砖讛 诇讘讬爪讜注 - 讛讜讗 讚讜专砖 诇诪爪讜讗 讚专讱 驻砖讜讟讛 讜讛讙讬讜谞讬转 诇诇诪讜讚 讗转 讛讟讻谞讜诇讜讙讬讛 讜诇讛讬爪诪讚 讗诇讬讛, 讬讬拽讞 讻诪讛 砖讬讬拽讞. 专拽 讘讗诪爪注讜转 驻讜拽讜住 注诇 讛讚讘专 讛讞砖讜讘 讛讘讗 讗驻砖专 讬讛讬讛 诇讻住讜转 讘住讜祝 讗转 讛讟讻谞讜诇讜讙讬讛 讘诪诇讜讗讛.
## 讛转谞讙讚讜转 (Resistance)
"讘转讜讱 讛谞驻砖 注讜诪讚 讗讘讬专 讜诪讜诇讜 讚专拽讜谉. 讗转讛 讛讗讘讬专, 讛讛转谞讙讚讜转 讛讬讗 讛讚专拽讜谉". 讝讛 爪讬讟讜讟 砖诇 住讟讬讘谉 驻专住驻讬诇讚 诪转讜讱 讛住驻专 Do The Work 砖诪讚讘专 讘爪讜专讛 讞讚讛 注诇 谞讜砖讗 讛讛转谞讙讚讜转 讛驻谞讬诪讬转. 讛专注讬讜谉 讘讙讚讜诇 讛讜讗 砖诇诪讜讞 砖诇谞讜 讬砖 讻讜讞 讗讘讜诇讜爪讬讜谞讬 诪讚讛讬诐 诇讛转讗诪抓 诇讛讬砖讗专 讘住讟讟讜住 拽讜讜. 诇讬诪讜讚 讟讻谞讜诇讜讙讬讛 讞讚砖讛 驻讜转讞 讗转 讛讚诇转 诇砖讬谞讜讬 讜砖讬谞讜讬讬诐 讝讛 讚讘专 诪驻讞讬讚.
讛讛转谞讙讚讜转 谞诪爪讗转 砖诐 诪讛专讙注 讛专讗砖讜谉 讜讛讬讗 转注砖讛 讛讻诇 讻讚讬 诇诪爪讜讗 讗转 讛转讬专讜爪讬诐 诇讻讬砖诇讜谉 注讜讚 诇驻谞讬 砖讻转讘转诐 讗转 砖讜专转 讛拽讜讚 讛专讗砖讜谞讛. 讛讛转谞讙讚讜转 转讙专讜诐 诇讻诐 诇讛专讙讬砖 砖注讘专转诐 讗转 讛讙讬诇, 讗讜 砖讗转诐 注讚讬讬谉 诇讗 讘讙讬诇, 讗讜 砖讬砖 诇讻诐 讬讜转专 诪讚讬 讬诇讚讬诐, 讗讜 驻讞讜转 诪讚讬 讝诪谉 讗讜 讻住祝, 讗讜 讻诇 住讬驻讜专 讗讞专 砖爪专讬讱 讘砖讘讬诇 诇讛讬砖讗专 讗讬驻讛 砖讗转诐 谞诪爪讗讬诐 讜诇讗 诇诇诪讜讚 讗转 讛讚讘专 讛讞讚砖 讛讝讛 砖讗转诐 专讜爪讬诐 诇诇诪讜讚.
讗讬谉 讚专讱 拽诇讛 诇讛转诪讜讚讚 注诐 讛转谞讙讚讜转 驻谞讬诪讬转. 讻谉 讻讚讗讬 诇讝讻讜专 砖讛讬讗 砖诐, 诇讛讝讻讬专 诇注爪诪讻诐 讗转 讛住讬讘讛 讘砖讘讬诇讛 讗转诐 诇讜诪讚讬诐 讗转 讛讚讘专 讛讞讚砖 讜诇讬爪讜专 住讚专 讬讜诐 讜砖讬讙专转 诇讬诪讜讚讬诐. 讜诇拽专讜讗 讗转 讛住驻专 砖诇 住讟讬讘谉 驻专住驻讬诇讚.
## 讛住讞讜转 讚注转
1 419
# 讛驻讜谞拽爪讬讜转 match, fullmatch 讜 search 砖诇 诪讜讚讜诇 re 讘 Python
诪住讬讘讜转 砖讗谞讬 诇讗 诇讙诪专讬 诪讘讬谉 诪讜讚讜诇 讛讘讬讟讜讬讬诐 讛专讙讜诇讗专讬讬诐 砖诇 驻讬讬转讜谉 讻讜诇诇 砖诇讜砖 驻讜谞拽爪讬讜转 诇讛转讗诪转 讘讬讟讜讬讬诐 专讙讜诇讗专讬讬诐 注诐 砖诪讜转 砖诪爪诇讬讞讬诐 诇讘诇讘诇 讗讜转讬 讻诇 驻注诐 诪讞讚砖. 讘讜讗讜 谞专讗讛 讘讝专讬讝讜转 诪讛 讻诇 讗讞转 注讜砖讛 讜讗讬讱 诇讝讻讜专 讗转 讛讛讘讚诇 讘讬谞讬讛谉.
## 讛驻讜谞拽爪讬讛 search
讛驻讜谞拽爪讬讛 search 讛讬讗 诪讘讞讬谞转讬 驻讜谞拽爪讬讬转 讘专讬专转 讛诪讞讚诇 砖诇 讘讬讟讜讬讬诐 专讙讜诇讗专讬讬诐. 讛讬讗 讛讚讘专 讛讻讬 讚讜诪讛 诇诪讛 砖拽讬讬诐 讘讻诇 砖驻讛 讗讞专转 讜讘讙诇诇 讝讛 砖讬诪讜砖 讘讛 讬讘讟讬讞 讗转 讛讞讜讜讬讛 讛讻讬 专讙讜注讛 砖讗驻砖专. 驻讜谞拽爪讬讬转 search 诪讞驻砖转 讗转 讛转讘谞讬转 讛专讙讜诇讗专讬转 讘拽诇讟 讜诪讞讝讬专讛 讗讜讘讬拽讟 讛转讗诪讛 讗诐 讛拽诇讟 诪转讗讬诐 诇转讘谞讬转.
讚讜讙诪讛 诇砖讬诪讜砖:
import re
if re.search(r'([a-z])\1', 'hello'):
print("yay")
## 讛驻讜谞拽爪讬讛 fullmatch
驻讜谞拽爪讬讬转 fullmatch 讛讬讗 讞讬讚讜砖 砖诇 驻讬讬转讜谉 3.4. 讛砖诐 砖诇讛 讬讞住讬转 诇讗 诪讘诇讘诇 讜讛讬讗 讘注爪诐 诪讞驻砖转 讛转讗诪讛 诪诇讗讛 讘讬谉 讛讟拽住讟 诇讘讬讟讜讬 讛专讙讜诇讗专讬. 讗驻砖专 诇讚诪讬讬谉 砖讛讬讗 诪讜住讬驻讛 诇讘讬讟讜讬 讛专讙讜诇讗专讬 砖诇谞讜 讗转 讛转讜讜讬诐 \A 讜 \z 诇讛转讞诇讛 讜诇住讜祝 砖诇 讛讘讬讟讜讬.
讗讬砖讬转 讗谞讬 诇讗 诪砖转诪砖 讘驻讜谞拽爪讬讛 讝讜 讜讻砖爪专讬讱 讗谞讬 诪讜住讬祝 讗转 住讬诪谞讬 转讞讬诇转 砖讜专讛 讜住讜祝 砖讜专讛 诇讘讬讟讜讬 讘爪讜专讛 诪住讜讚专转, 讗讘诇 讗谞讬 讬讻讜诇 诇讚诪讬讬谉 诇诪讛 讗谞砖讬诐 讬讞砖讘讜 砖讛讬讗 讬讜转专 谞讜讞讛.
讛拽讜讚 讛讘讗 诇讚讜讙诪讛 讬讚驻讬住 专拽 讗转 讛 yay 讗讘诇 诇讗 讬讚驻讬住 讗转 讛 no, 讻讬 讗讜诪谞诐 拽讬讬诪转 讗讜转 讻驻讜诇讛 讘讟拽住讟 讗讘诇 讬砖 砖诐 注讜讚 转讜讜讬诐 诇驻谞讬讛 讜讗讞专讬讛:
import re
if re.search(r'([a-z])\1', 'hello'):
print("yay")
if re.fullmatch(r'([a-z])\1', 'hello'):
print("no...")
讛拽讜讚 讛讘讗 讬讚驻讬住 yay 讻讬 讛讘讬讟讜讬 讛专讙讜诇讗专讬 诪讻住讛 讗转 讻诇 讛讟拽住讟:
import re
if re.fullmatch(r'h.*o', 'hello'):
print("yay")
## 讛驻讜谞拽爪讬讛 match
讛驻讜谞拽爪讬讛 match 讛讬讗 注讘讜专讬 讛诪讘诇讘诇转 讘讬讜转专 讘诪讜讚讜诇. 拽讜讚诐 讻诇 讻讬 讛讬讗 诇讗 驻讜注诇转 讻诪讜 讗祝 驻讜谞拽爪讬转 讞讬驻讜砖 讘讬讟讜讬讬诐 专讙讜诇讗专讬讬诐 诪拽讘讬诇讛 讘砖驻讜转 讗讞专讜转 讗讘诇 讛讬讗 诇拽讞讛 讗转 讛砖诐 讛讻讬 诪拽讜讘诇 诇驻讜谞拽爪讬讜转 讞讬驻讜砖 讘讘讬讟讜讬讬诐 专讙讜诇讗专讬讬诐. 诇诪讬 砖诇讗 讝讜讻专讬诐, 讛驻讜谞拽爪讬讛 match 诪讞驻砖转 讛转讗诪讛 诇讘讬讟讜讬 讛专讙讜诇讗专讬 讛讞诇 诪转讞讬诇转 讛诪讞专讜讝转, 讻诇讜诪专 讛讬讗 专拽 诪讜住讬驻讛 \A 讘转讞讬诇转 讛讘讬讟讜讬.
讛谞讛 讻诪讛 讚讜讙诪讗讜转 诇讛诪讞砖讛 - 讛转讜讻谞讬转 诪讚驻讬住讛 专拽 讗转 讛讜讚注讜转 讛 yay 讜诇讗 讗转 讛 no:
import re
if re.match(r'h.*o', 'hello'):
print('yay')
if re.match(r'h', 'hello'):
print('yay')
if re.match(r'o$', 'hello'):
print('no')
砖讜专讛 转讞转讜谞讛: 谞砖转诪砖 讘 re.search 讘讻诇 讛讝讚诪谞讜转, 谞砖转诪砖 讘 re.fullmatch 讘砖讘讬诇 诇住驻专 诇诪讬 砖拽讜专讗 讗转 讛拽讜讚 砖讬砖 驻讛 讞砖讬讘讜转 诇讛转讗诪讛 诪诇讗讛, 讜谞转专讞拽 诪 re.match 讻讬 专讜讘 讛住讬讻讜讬讬诐 砖诪讬 砖拽讜专讗 讗转 讛拽讜讚 诇讗 讬讝讻讜专 讗转 讛讛讘讚诇 讛讚拽 讘讬谞讛 诇讘讬谉 fullmatch.1 419
# 讻诇讜诐 诇讗 注讜讘讚 诇讬
讗讞讚 讛爪注讚讬诐 讘讚专讱 诪 Junior 诇 Senior 讛讜讗 讛讬讞住 诇讘注讬讜转 讞讚砖讜转 讜诇讗 诪讜讻专讜转.
讘转讞讬诇转 讛讚专讱 讘注讬讜转 讞讚砖讜转 诪诇讞讬爪讜转 讗讜转谞讜, 讙讜专诪讜转 诇谞讜 诇驻拽驻拽 讘讛讬讙讬讜谉 讛驻谞讬诪讬 砖诇 讛驻讬转专讜谉 讜诇讛转讞讬诇 诇注砖讜转 讛诪讜谉 注讘讜讚讛 (诇专讜讘 诪讬讜转专转) 专拽 讘砖讘讬诇 诇讛讬专讙注. 诪转讻谞转讬诐 讘转讞讬诇转 讛讚专讱 讬讻讜诇讬诐 诇砖讘转 砖注讜转 注诇 讞讬驻讜砖讬诐 讘讙讜讙诇 砖讗讬谉 诇讛诐 砖讜诐 拽砖专 诇讘注讬讛 砖诇讛诐, 诇讛住转讘讱 讘转讜讱 诪讚专讬讻讬诐 砖讗讜诇讬 拽爪转 诪讝讻讬专讬诐 讗转 诪讛 砖讛诐 专讜讗讬诐 注诇 讛诪住讱 讜讘注讬拽专 诇讛转讞驻专 注讜讚 讬讜转专 讘转讜讱 讛转拽诇讛. 讻讻诇 砖讚讘专讬诐 诪诪砖讬讻讬诐 诇讗 诇注讘讜讚 讗谞讞谞讜 专拽 谞砖讘讜专 讬讜转专 拽讜讚 讜谞谞住讛 诇诪爪讜讗 注讜讚 讜注讜讚 讻讬讜讜谞讬诐 讞讚砖讬诐 注讚 砖诪砖讛讜 讬住转讚专 注诐 讗讬讝砖讛讜 诪讚专讬讱.
讻讻诇 砖爪讜讘专讬诐 讬讜转专 谞讬住讬讜谉 讗谞讞谞讜 诇讜诪讚讬诐 诇讛住转讻诇 讬讜转专 讘专讜讙注 注诇 讛讘注讬讜转. 讘诪拽讜诐 诇讞驻砖 驻讬转专讜谞讜转 讗谞讞谞讜 诪讞驻砖讬诐 诇讛讘讬谉 讗转 讛讘注讬讛 讟讜讘 讬讜转专. 讗谞讞谞讜 诪讘讬谞讬诐 砖诪讞砖讘讬诐 诇讗 诪砖拽专讬诐, 砖讬砖 讛住讘专 驻砖讜讟 诇诪讛 砖讗谞讞谞讜 专讜讗讬诐 讜谞讝讻专讬诐 砖驻转专谞讜 讘注讬讜转 讬讜转专 诪住讜讘讻讜转 讘注讘专 - 讜讝讛 谞讜转谉 诇谞讜 讻讞 诇讛诪砖讬讱 诇讞拽讜专 讗转 讛讘注讬讛.
"诪注谞讬讬谉 诇诪讛 讝讛 诇讗 注讜讘讚" 讛讬讗 砖讗诇讛 讛专讘讛 讬讜转专 讗驻拽讟讬讘讬转 诪讗砖专 讞讬驻讜砖 诪讜讟专祝 讗讞专讬 驻讬转专讜谞讜转. 讜讝讛 诪注讙诇: 讻讻诇 砖转爪诇讬讞讜 诇讛砖讛讜转 讗转 讞讬驻讜砖 讛驻讬转专讜谉 讜诇讛转专讻讝 讘诇讛讘讬谉 讟讜讘 讬讜转专 讗转 讛讘注讬讛, 讻讱 转诇诪讚讜 讬讜转专 讚讘专讬诐 讘注诇讬 诪砖诪注讜转 讜转爪讘专讜 谞讬住讬讜谉 砖讬注讝讜专 诇讻诐 诇驻转讜专 讘注讬讜转 讞讚砖讜转 讘注转讬讚.
1 419
# 拽讜讚诐 讻诇 讗诪讜谉
讗诪讜谉 讛讜讗 讛诪驻转讞 诇讗讬谞讟专拽爪讬讛 讘讬谉 讗谞砖讬诐, 讜注住拽讬诐 砖诪讘讬谞讬诐 讗转 讝讛 讬讻讜诇讬诐 诇讘讞讜专 讗讞转 诪砖转讬 讚专讻讬诐 诇驻注讜诇讛:
1. 讬砖 注住拽讬诐 砖讬注砖讜 诪讗诪抓 诇注专注专 讗转 讛讗诪讜谉 讻讚讬 诇讛讜专讬讚 诇诇拽讜讞 讗转 讛讘讬讟讞讜谉 讜诇讬爪讜专 转诇讜转: 讛讘谞拽 砖诇讻诐 讗诇讜祝 讘讝讛, 诪住驻专讬诐 注诇 驻讬讬住讘讜拽 砖讛讬讗 讞讜住诪转 讞砖讘讜谞讜转 讘讗拽专讗讬, 讜讗驻讬诇讜 注住拽讬诐 拽讟谞讬诐 讬讘讞专讜 诇驻注诪讬诐 讘诪讜讟讜 "讗爪诇谞讜 讛诇拽讜讞 转诪讬讚 讟讜注讛". 讛诪讞砖讘讛 讻讗谉 讛讬讗 砖诇拽讜讞 诪驻讜讞讚 诇讗 讬注砖讛 讘注讬讜转 讜诇讗 讬转讜讜讻讞.
2. 讜讬砖 注住拽讬诐 砖讬注砖讜 讛讻诇 讻讚讬 诇讬爪讜专 讗诪讜谉 讜诇讛注爪讬诐 讗转 讛诇拽讜讞: 讝讗转 诪讚讬谞讬讜转 讛"100% 讛讞讝专 讻住驻讬 讘诇讬 诇砖讗讜诇 砖讗诇讜转" 砖讗谞讞谞讜 诪讻讬专讬诐 讜讗讜讛讘讬诐, 讛讘讞讬专讛 诇讛爪讬讙 诇诇拽讜讞 讻诪讛 砖讬讜转专 诪讬讚注, 诇住驻专 诪讛 讛讜诇讱 诇拽专讜转 注讻砖讬讜 讜诇诪讛 讛讚讘专讬诐 讛讜诇讻讬诐 讘讻讬讜讜谉 砖讛诐 讛讜诇讻讬诐. 注住拽讬诐 讻讗诇讛 注讜讘讚讬诐 讬讞讚 注诐 讛诇拽讜讞讜转 砖诇讛诐 讜讘砖讘讬诇 讛诇拽讜讞讜转 砖诇讛诐 讜注诇讬讛诐 诇讛诪砖讬讱 诇住驻拽 注专讱 诇讟讜讜讞 专讞讜拽 讻讚讬 诇讛讬砖讗专 讘诪砖讞拽.
诪讘讟 诪住讘讬讘 诪专讗讛 砖讙诐 讗爪诇谞讜 讘转讜讻谞讛 砖转讬 讛砖讬讟讜转 注讜讘讚讜转: 讻讜诇谞讜 诪讻讬专讬诐 讬讜注爪讬诐 砖诪讘诇讬诐 讗转 讛讬诪讬诐 讘诪讻讬专转 讟讻谞讜诇讜讙讬讜转 拽砖讜转 讻讚讬 砖转讛讬讜 讞讬讬讘讬诐 诇讛转拽砖专 讗诇讬讛诐 讘讗诪爪注 讛诇讬诇讛 讻砖讚讘专讬诐 谞砖讘专讬诐. 讜诪爪讚 砖谞讬 讬砖 讛诪讜谉 驻专讬诇讗谞住专讬诐 砖诪转驻专谞住讬诐 讟讜讘 讻讬 讛诐 注讜砖讬诐 讛讻诇 讻讚讬 诇诇诪讚 讜诇讛注爪讬诐 讗转 讛诇拽讜讞讜转 砖诇讛诐 讙诐 讻砖拽砖讛.
讛讘讞讬专讛 讛讬讗 诇讻谉 诇讗 讛讗诐 诇讛转驻专谞住 讗讜 诇讗, 讗诇讗 讗讬讝讛 住讜讙 注住拽 讗转诐 专讜爪讬诐 诇讘谞讜转. 讜讗谞讬 讞讜砖讘 砖讘诪爪讘 讻讝讛 讘专讜专 讘讗讬讝讛 讙讬砖讛 讻讚讗讬 诇讘讞讜专.
1 419
# 讙诐 转讛诇讬讻讬 注讘讜讚讛 讝讛 转砖转讬转
专讻讬讘讬 转砖转讬转 讘拽讜讚 砖诇谞讜 讛诐 讛讚讘专讬诐 砖讗谞讞谞讜 诪砖转诪砖讬诐 讘讛诐 砖讜讘 讜砖讜讘 讘讛专讘讛 诪拽讜诪讜转 讜讻讱 讛诐 讞讜住讻讬诐 诇谞讜 讝诪谉 拽讬讚讜讚 - 讘诪拽讜诐 诇讻转讜讘 讜诇讚讘讙 讻诇 驻注诐 诪讞讚砖 讗转 讗讜转讜 讚讘专, 讗谞讬 诪砖转诪砖 讘诪砖讛讜 拽讬讬诐.
砖讜讜讛 诇讝讻讜专 砖转讛诇讬讱 驻讬转讜讞 转讜讻谞讛 讻讜诇诇 讬讜转专 诪讻转讬讘转 拽讜讚. 转讛诇讬讱 讛驻讬转讜讞 爪专讬讱 诇转转 诇谞讜 转砖讜讘讛 诇砖讗诇讜转:
1. 讗讬讱 诪讚讘讙讬诐 讗转 讝讛?
2. 诪讛 诪讬谞讬诪讜诐 讘讚讬拽讜转 砖爪专讬讱 诇讻转讜讘 讘注讘讜讚讛 注诇 驻讬爪'专?
3. 诇诪讛 讗谞讞谞讜 注讜砖讬诐 Mock 讘讘讚讬拽讛? 讜诇诪讛 诇讗?
4. 诪讛 砖讜诪专讬诐 讘 git?
5. 诪讛 讛驻讜专诪讟 砖诇 讛讜讚注转 拽讜诪讬讟?
6. 讗讬讱 诪注诇讬诐 讙讬专住讛?
7. 讗讬讱 驻讜转讞讬诐 驻专讜讬拽讟 讞讚砖? 诪讛 爪专讬讱 诇讛转拽讬谉 讻砖诪拽讘诇讬诐 诪讞砖讘 讞讚砖?
8. 诪讛 注讜砖讬诐 讻砖讻诪讛 讗谞砖讬诐 爪专讬讻讬诐 诇注讘讜讚 注诇 驻讬爪'专讬诐 砖讜谞讬诐 讘驻专讜讬拽讟?
讗诐 讻诇 驻注诐 砖谞讙讬注 诇讗讞讚 讛诪爪讘讬诐 讛讗诇讛 谞爪讟专讱 诇讙诇讜转 诪讞讚砖 诪讛 注讜砖讬诐 讘讜, 讛注讘讜讚讛 转讛讬讛 讗讬讟讬转 讜诇讗 拽讜谞住讬住讟谞讟讬转. 讘讗专讙讜谞讬诐 讟讜讘讬诐 讛转砖讜讘讜转 诇砖讗诇讜转 讗诇讛 讜注讜讚 讻讘专 谞诪爪讗讜, 转讜注讚讜 讜讻转讜讘讜转 讘诪住诪讻讬诐 诪住讜讚专讬诐.
1 419
# 讗讬讱 诇讛专讬抓 住拽专讬驻讟 讻诇 驻注诐 砖讛诇驻讟讜驻 诪转讞讘专 讗讜 诪转谞转拽 诪讛讞砖诪诇 讘 Ubuntu
诪讗讝 砖注讘专转讬 诇诇讬谞讜拽住 讙讬诇讬转讬 砖讝诪谉 讛住讜诇诇讛 砖诇 讛诇驻讟讜驻 转诇讜讬 讘讛诪讜谉 讛诪讜谉 讚讘专讬诐 讜砖讗驻砖专 注诐 砖讬谞讜讬讬诐 拽讟谞讬诐 诇拽讘诇 讛专讘讛 讬讜转专 砖注讜转 诪讞砖讘 讙诐 讻砖讗讬谉 讞砖诪诇 讘住讘讬讘讛. 爪专讬讱 专拽 诇讝讻讜专 诇讛驻住讬拽 讗转 讛讙讬讘讜讬, 诇讛讜专讬讚 讗转 讘讛讬专讜转 讛诪住讱, 诇讛讗讟 拽爪转 讗转 讛诪注讘讚, 诇讘讟诇 转讛诇讬讻讬 专拽注 诪讬讜转专讬诐 讜诇拽讜讜转 诇讟讜讘. 讗讜诪谞诐 Ubuntu 诇讗 讬注砖讛 讘砖讘讬诇讻诐 讬讜转专 诪讚讬 讘讙讬讝专转 砖讬诪讜专 讞讬讬 讛住讜诇诇讛 讗讘诇 拽诇 诪讗讜讚 (讗诐 讬讜讚注讬诐 讗讬驻讛 诇讞驻砖) 诇讛讜住讬祝 住拽专讬驻讟讬诐 砖诇谞讜 砖讬拽专讗讜 讻诇 驻注诐 砖讛诪讞砖讘 诪转讞讘专 讗讜 诪转谞转拽 诪讛讞砖诪诇 讜讛诐 讻讘专 讬讟驻诇讜 讘住讙讬专转 转讛诇讬讻讬诐 讝讜诇诇讬 住讜诇诇讛.
讘砖讘讬诇 诇讛专讬抓 住拽专讬驻讟讬诐 讘注转 讞讬讘讜专 讗讜 谞讬转讜拽 诪讛讞砖诪诇 谞爪讟专讱 诇讛转拽讬谉 讗转 讛讞讘讬诇讛 pm-utils 讜讙诐 诇注讚讻谉 诪住驻专 讛讙讚专讜转. 谞转讞讬诇 讘讛转拽谞讛:
$ sudo apt-get install pm-utils
讞讘讬诇转 pm-utils 讻讜诇诇转 砖转讬 驻拽讜讚讜转 诪注谞讬讬谞讜转. 讛专讗砖讜谞讛 诪讻谞讬住讛 讗讜转谞讜 诇诪爪讘 讞讬住讻讜谉 讘讞砖诪诇:
sudo pm-powersave true
讜讛砖谞讬讛 讞讜讝专转 诇诪爪讘 注讘讜讚讛 专讙讬诇:
sudo pm-powersave false
驻拽讜讚讜转 讗诇讛 诪讞驻砖讜转 住拽专讬驻讟讬诐 讘转讜讱 转讬拽讬讬转 /etc/pm/power.d 讜讬专讬爪讜 讗转 讻诇 讛住拽专讬驻讟讬诐 砖诐 诇驻讬 住讚专, 讻砖讻诇 住拽专讬驻讟 诪讜驻注诇 注诐 讛驻专诪讟专 true 讗讜 false (讛驻专诪讟专 true 诪爪讬讬谉 讻谞讬住讛 诇诪爪讘 讞讬住讻讜谉 讘讞砖诪诇, false 诪爪讬讬谉 讬爪讬讗讛 诪诪爪讘 讝讛).
注讚 诇驻讛 讛讻诇 讟讜讘 讜讬驻讛 讗讘诇 专讜讘谞讜 诇讗 讛讜诇讻讬诐 诇讝讻讜专 讻诇 驻注诐 砖讗谞讞谞讜 诪谞转拽讬诐 讗转 讛诪讞砖讘 诪讛讞砖诪诇 讙诐 诇讛专讬抓 讗转 讛住拽专讬驻讟 砖诇 pm-powersave 讜诇讻谉 爪专讬讱 注讜讚 砖讬谞讜讬 拽讟谉 讻讚讬 砖诪谞讙谞讜谉 讝讛 讬专讜抓 讗讜讟讜诪讟讬转 讘注转 谞讬转讜拽 讗讜 讞讬讘讜专 讛诪讞砖讘 诇讞砖诪诇. 讗讞专讬 讞讬驻讜砖 拽爪专 讘专砖转 诪爪讗转讬 砖讚专讱 拽诇讛 诇注砖讜转 讗转 讝讛 讛讬讗 诇讛讜住讬祝 udev rule. 讘转讜专 诪谞讛诇 诪注专讻转 谞讬爪讜专 讗转 讛拽讜讘抓 /etc/udev/rules.d/99-powersave.rules 讜讘转讜讻讜 谞讻转讜讘:
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/sbin/pm-powersave true"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/sbin/pm-powersave false"
诇讗讞专 诪讻谉 讛驻注讬诇讜 讗转 讛驻拽讜讚讛 讛讘讗讛 讻讚讬 诇专注谞谉 讗转 讻诇诇讬 讛 udev:
udevadm control --reload-rules && udevadm trigger
讜爪专讜 讗转 讛住拽专讬驻讟讬诐 砖讗转诐 爪专讬讻讬诐 讘转讬拽讬讬转 /etc/pm/power.d. 讻诇 住拽专讬驻讟 砖转讬爪专讜 砖诐 讬讜驻注诇 讗讜讟讜诪讟讬转 讻砖讛诪注专讻转 谞讻谞住转 诇诪爪讘 讞讬住讻讜谉 讘讞砖诪诇 讗讜 讬讜爪讗转 诪诪谞讜. 讘讚祝 讛转讬注讜讚 注诇 谞讬讛讜诇 爪专讬讻转 讞砖诪诇 转讜讻诇讜 诇诪爪讜讗 讚讜讙诪讗讜转 诇住拽专讬驻讟讬诐 讻讗诇讛 讜讻诇讬诐 砖讬注讝专讜 诇讻诐 诇爪诪爪诐 讗转 爪专讬讻转 讛讞砖诪诇 砖诇 讛诪讞砖讘 讻砖讛讜讗 诇讗 诪讞讜讘专 诇拽讬专.1 419
# 讜讗诐 讝讛 诪驻住讬拽 诇讛讬讜转 讻讬祝?
讬砖 诪注讟 讚讘专讬诐 砖讗谞讞谞讜 诇讜诪讚讬诐 砖讻讬祝 诇谞讜 诇诇诪讜讚 讗讜转诐 诪讛砖谞讬讛 讛专讗砖讜谞讛 讜注讚 砖诪讙讬注讬诐 诇专诪讛 讙讘讜讛讛. 讘专讜讘 讛诪拽专讬诐 讛讛转讞诇讛 诪诇讛讬讘讛 讜讻讬驻讬转, 讗讞专讬讛 讬砖 转讛讜诐 砖讗谞讞谞讜 诇讗 诪讘讬谞讬诐 诇诪讛 注砖讬谞讜 诇注爪诪谞讜 讗转 讝讛 讜讘住讜祝 (讘诪拽专讛 讛讟讜讘) 讚讘专讬诐 诪转讞讬诇讬诐 诇讛住转讚专 讜讗驻砖专 诇讛转讞讬诇 诇讬讛谞讜转 诪讛讛爪诇讞讛.
讗诐 讬爪讗转诐 诇诪住注 讘转拽讜讜讛 诇讛砖讬讙 诪讬讜诪谞讜转 讞讚砖讛, 讗讬谉 讟注诐 诇驻专讜砖 讗讜 讗驻讬诇讜 诇讛讗讟 专拽 讻讬 讛诇讬诪讜讚 讛驻住讬拽 诇讛讬讜转 讻讬祝. 讛讚讘专 讛讬讞讬讚 砖爪专讬讱 诇讛砖转谞讜转 讛讜讗 讛住讬驻讜专 砖讗转诐 诪住驻专讬诐 诇注爪诪讻诐:
1. (讘讛转讞诇讛) 讗谞讬 讻诇 讻讱 诪转专讙砖转 诇诇诪讜讚 讗转 讛诪讬讜诪谞讜转 讛讞讚砖讛 讛讝讗转. 讗谞讬 讘讟讜讞讛 砖讝讛 讬砖驻专 诇讬 讗转 讛讞讬讬诐 讜讬驻转讞 诇讬 讛专讘讛 讗驻砖专讜讬讜转 诇讛爪诇讞讛.
2. (讘讛诪砖讱, 讻砖诪驻住讬拽 诇讛讬讜转 讻讬祝) 讗谞讬 诪诪砖讬讻讛 诇讛砖拽讬注 砖注讛 讘讬讜诐 讘诇讬诪讜讚 讛诪讬讜诪谞讜转 讛讞讚砖讛 讛讝讗转. 讘砖讘讬诇 诇讛砖讬讙 诪讬讜诪谞讜讬讜转 讞讚砖讜转 爪专讬讱 诇注讘讜讚 拽砖讛 讜讝讛 砖讜讜讛 讗转 讛讛砖拽注讛.
讗谞讬 讗讬砖讬转 讗讜讛讘 讗转 讛谞拽讜讚讛 砖诇讬诪讜讚 诪驻住讬拽 诇讛讬讜转 诪诇讛讬讘 讜诪转讞讬诇 诇讛驻讜讱 诇砖讬讙专讛. 讝讛 讛专诪讝 讛专讗砖讜谉 砖诪专讗讛 诇讬 砖讗谞讬 讘讚专讱 讛谞讻讜谞讛.
1 419
# 讟注讜转 讘转讛诇讬讻讬 注讘讜讚讛
讻砖讞讘专转 驻讬谞讘讜讟 诪住驻专转 诇谞讜 砖讝诇讬讙转 讛诪讬讚注 讛诪讟讜专驻转 诪诪谞讛 讛讬讗 转讜爪讗讛 砖诇 讟注讜转 讗谞讜砖 讘诪注讘专 诇注谞谉 砖诇 讗诪讝讜谉 讗谞讬 诪拽讘诇 讗转 讛专讜砖诐 砖讛诐 诇讗 讬讜讚注讬诐 诪讛 讝讛 讟注讜转 讗谞讜砖, 讗讜 砖讗谞讞谞讜 诇讗 诪转讻讜讜谞讬诐 诇讗讜转讜 讚讘专.
讟注讜讬讜转 讗谞讜砖 拽讜专讜转: 讻砖诪转讻谞转 注讜砖讛 Deploy 诇 Production 讘诪拽讜诐 诇住讘讬讘转 讛讟住讟 讝讜 讟注讜转 讗谞讜砖; 讻砖讗转讛 诪讜讞拽 讘讟注讜转 讗转 讛拽讜讘抓 package.json 讘诪拽讜诐 讗转 package-lock.json 讝讜 讟注讜转 讗谞讜砖; 讗驻讬诇讜 讻砖讗转讛 诪专讬抓 讗转 讛讟住讟讬诐 讘讟注讜转 注诇 诪讻讜谞转 讛驻专讜讚拽砖谉 讜诪讜讞拽 讗转 讻诇 讘住讬住 讛谞转讜谞讬诐 讝讜 讟注讜转 讗谞讜砖. 讟注讜转 讗谞讜砖 拽讜专讬转 诇讘谉 讗讚诐 砖讬讜讚注 诪讛 爪专讬讱 诇注砖讜转 讜讘讟注讜转 注砖讛 讗转 讛讚讘专 讛诇讗 谞讻讜谉.
诪爪讚 砖谞讬 讘驻讬谞讘讜讟 诇驻讬 讛讻转讘讛 拽讜讚 讛诪拽讜专 砖诇 讛诪注专讻转 讛讬讛 讙诇讜讬 诇讻诇 讘专砖转, 讜讻诇诇 讗住讬诪讜谞讬诐 诇讙讬砖讛 诇砖讬专讜转讬 讛注谞谉 讘讛诐 讛砖转诪砖讜. 讛讻谞住转 讗住讬诪讜谞讬 讙讬砖讛 诇转讜讱 拽讜讚 讛诪拽讜专 讜讛砖讗专转 拽讜讚 讛诪拽讜专 注诐 讛讗住讬诪讜谞讬诐 讙诇讜讬 讘专砖转 讗讬谞谉 讟注讜讬讜转 讗谞讜砖 讗诇讗 讟注讜讬讜转 讘转讛诇讬讻讬 注讘讜讚讛: 讝讛 诇讗 诪砖讛讜 砖拽讜专讛 砖谞讬讛 讗讞转 讜诪讬讚 讗讞专讬 讝讛 讗转讛 拽讜诇讟 诪讛 注砖讬转 讜诪转讞专讟 注诇 讝讛, 讗诇讗 讘注讬讛 砖拽讬讬诪转 讘诪注专讻转 诇讗讜专讱 讝诪谉 讜讗谞砖讬诐 专讜讗讬诐 讜诪转注诇诪讬诐 (讗讜 诇讗 砖诪讬诐 诇讘).
讛讬转专讜谉 讘讟注讜讬讜转 讘转讛诇讬讻讬 注讘讜讚讛 讛讜讗 砖讬讞住讬转 拽诇 诇驻转讜专 讗讜转谉 - 诪讜住讬驻讬诐 讘讚讬拽讜转 讗讘讟讞讛 转拽讜驻转讬讜转 讜注讜讘专讬诐 诇讛砖转诪砖 讘驻专讬讬诪讜讜专拽 砖诪爪驻讬谉 讗转 讛住讜讚讜转 讘诪拽讜诐 诇讛砖讗讬专 讛讻诇 讙诇讜讬 讘拽讜讚 讛诪拽讜专. 讗谞讬 诇驻讞讜转 讗专讙讬砖 讛专讘讛 讬讜转专 讘讟讜讞 讗诐 讘诪拽讜诐 诇讝专讜拽 "讟注讜转 讗谞讜砖" 讘诇讬 诇讞砖讜讘 注诇 讝讛, 讛讛讜讚注讛 诇爪讬讘讜专 转住讘讬专 砖讛讬讜 讟注讜讬讜转 讘转讛诇讬讻讬 注讘讜讚讛 讜转驻专讟 诪讛 讛转讬拽讜谞讬诐 砖讘讜爪注讜.
1 419
# 诇诪讛 讝讛 诇讗 诪转专住拽 (讗讜: 讘注讬讜转 砖诇讗 专讜讗讬诐)
讻诇 讛讞讬讬诐 诇讬诪讚讜 讗讜转讬 砖爪专讬讱 诇住讙讜专 拽讜讘抓 讗讞专讬 砖驻讜转讞讬诐 讗讜转讜 讻讬 讗讞专转 讗转讛 诇讜拽讞 讬讜转专 诪讚讬 File Handlers 诪诪注专讻转 讛讛驻注诇讛 讜讘住讜祝 讛诐 讬讬讙诪专讜 讜讛转讜讻谞讬转 转转专住拽. 讜注讜讚 讛诐 讗诪专讜 砖讘 Python 讗谞讬 讬讻讜诇 诇讛砖转诪砖 讘 with 讻讚讬 砖讛拽讜讘抓 讬讬住讙专 讗讜讟讜诪讟讬转 讜诇讗 讬讛讬讜 诇讬 讘注讬讜转. 讗讝 讬讜诐 讗讞讚 讛诇讻转讬 诇讘讚讜拽 讗转 讛住讬驻讜专 讛讝讛 讜讻转讘转讬 讗转 讛拽讜讚 讛讘讗:
for _ in range(100_000):
fout = open('output.txt', 'w')
fout.write("hahaha\n")
诪讗讞专 讜诪住驻专 讛 File Handlers 讛驻转讜讞讬诐 讘诇讬谞讜拽住 砖诇讬 诪讜讙讘诇 诇 1024, 爪讬驻讬转讬 诇讛转专住拽讜转 诪讛讬专讛. 讛讬讗 诇讗 讛讙讬注讛.
诪讞砖讘讬诐 专讜爪讬诐 诇注讝讜专 (讞讜抓 诪 C++, 讗讘诇 讛讬讗 讘讗诪转 诪住讬驻讜专 讗讞专), 讜讘诪拽专讛 砖诇 驻讬讬转讜谉 讛谞讬住讬讜谉 讛讝讛 诪转讘讟讗 讘讝讛 砖驻讬讬转讜谉 砖诪讛 诇讘 砖讻诇 讗讬讟专爪讬讛 砖诇 讛诇讜诇讗讛 诪讗讘讚转 讗转 讛讙讬砖讛 诇 File Handle 讛拽讜讚诐 砖谞讜爪专 讜诇讻谉 诪专砖讛 诇注爪诪讛 诇住讙讜专 讗转 讛拽讜讘抓, 讙诐 讘诇讬 close 讜讙诐 讘诇讬 with.
讛讗诐 讝讛 讗讜诪专 砖讻讚讗讬 诇讬 诇讛转专讙诇 诇讻转讜讘 讻讱 拽讜讚? 讗谞讬 诇讗 讘讟讜讞. 讬砖 转讜讻谞讬讜转 砖砖讜诪专讜转 讛专讘讛 讗讜讘讬拽讟讬诐 讘讝讬讻专讜谉 讜砖诐 讬讻讜诇 诇讛讬讜转 砖驻讬讬转讜谉 诇讗 讬诪讞拽 讗转 讛 File Handles 砖讬爪专谞讜 讻讬 讛转讜讻谞讬转 注讚讬讬谉 砖讜诪专转 诪爪讘讬注 讗诇讬讛诐. 讗讜诇讬 讬讜转专 诪讟专讬讚讛 讛讗驻砖专讜转 砖拽讜讚 砖诪讜驻讬注 讘诪注专讻转 讬砖转讻驻诇 (讻讬 诪转讻谞转讬诐 专讙讬诇讬诐 诇注砖讜转 copy-paste 诪诪拽讜诪讜转 讗讞专讬诐 讘拽讜讚) 讜讬讙讬注 诇诪拽讜诪讜转 讘讛诐 讛讜讗 讻谉 讬讜讘讬诇 诇讝诇讬讙转 拽讘爪讬诐 驻转讜讞讬诐.
诇拽专讬讗讛 谞讜住驻转 讘谞讜砖讗 砖讜讜讛 诇拽专讜讗 讗转 讛驻讜住讟 讛讘讗 砖诇 专讗讜讘谉 诇专谞专 砖讙诐 注砖讛 谞讬住讜讬讬诐 注诐 诪讬诪讜砖讬诐 谞讜住驻讬诐 砖诇 驻讬讬转讜谉 (pypy 讜 jython):
https://lerner.co.il/2015/01/18/dont-use-python-close-files-answer-depends/.1 419
# 讗讬讱 谞讜爪专 讞讜讘 讟讻谞讬
讗谞砖讬诐 讗讜讛讘讬诐 诇讚讘专 注诇 "讞讜讘 讟讻谞讬" 讻讗讬诇讜 讝讜 讘讞讬专讛, 讻讗讬诇讜 讗谞讞谞讜 拽诪讬诐 讬讜诐 讗讞讚 讜讗讞专讬 讛转诇讘讟讜转 诪讞诇讬讟讬诐 "讛讬讜诐 讗谞讬 讗讻转讜讘 拽讜讚 讙专讜注 讻讚讬 砖讛驻讬爪'专 讬注讘讜讚 诪讛专 讬讜转专". 讻谉, 讬砖 诪爪讘讬诐 讻讗诇讛, 讗讘诇 讛诐 诇讗 讛专讜讘.
讞讜讘 讟讻谞讬 谞讜爪专 讻砖讗谞讞谞讜 诪讝谞讬讞讬诐 讗转 讛转砖转讬讜转 砖诇谞讜 注讚 砖讘住讜祝 讛谉 谞砖讘专讜转:
1. 讻砖讗谞讞谞讜 诇讗 诪砖拽讬注讬诐 讻诪讛 砖注讜转 讻诇 砖讘讜注 讘砖讬讚专讜讙 转诇讜讬讜转 讘驻专讜讬拽讟.
2. 讻砖讗谞讞谞讜 诇讗 诪讘爪注讬诐 住拽专 讗讘讟讞转 诪讬讚注 转拽讜驻转讬.
3. 讻砖讗谞讞谞讜 诇讗 讘讜讚拽讬诐 驻注诐 讘讻诪讛 讞讜讚砖讬诐 砖讗驻砖专 诇讞讝讜专 诪讙讬讘讜讬.
4. 讻砖讗谞讞谞讜 诇讗 注讜砖讬诐 Refactoring 讘讬讜诐 讬讜诐, 讗诇讗 诪砖讗讬专讬诐 讗转 讝讛 诇讬讜诐 讗讞讚 讻砖讬讛讬讛 讝诪谉.
5. 讻砖讗讬谉 诇谞讜 转砖转讬转 讘讚讬拽讜转 讗讜 砖讗谞讞谞讜 诪讜讻谞讬诐 诇讛砖诇讬诐 注诐 讘讚讬拽讜转 砖谞讻砖诇讜转.
讘专讜讘 讛诪拽专讬诐 讞讜讘 讟讻谞讬 讛讜讗 转讜爪讗讛 砖诇 转讛诇讬讻讬 注讘讜讚讛. 讛讜讗 谞讜爪专 诇讗讜专讱 讝诪谉 讜讘讙诇诇 讝讛 拽砖讛 诇转拽谉 讗讜转讜. 讙诐 讗诐 讗谞讬 讗讞诇讬讟 诇拽讞转 砖诇讜砖讛 讞讜讚砖讬诐 专拽 诇"转讬拽讜谉 讛拽讜讚" 讜讛讞讝专转 讛讞讜讘 讛讟讻谞讬, 诪讛专 诪讗讜讚 讗谞讬 讗诪爪讗 讗转 注爪诪讬 砖讜讘 讘讗讜转讜 诪爪讘. 诪注专讻转 讟讜讘讛 讛讬讗 讻讝讗转 砖诪谞拽讛 讗转 注爪诪讛 讻诇 讬讜诐 拽爪转 讜讻讱 讛讞讜讘 讛讟讻谞讬 谞砖讗专 转诪讬讚 讘砖诇讬讟讛.
