αα»αααααΆααααΉαααΆααα·αα·αααααΎαααΌαααααΆαααΈαααα αα α¬ααΆαααααΆααααα α»α αααααααα’ααααα·αα’αααΈααααααααΎα±ααααΈαα·αααααα’αααααΆααααα½αα α αΎαβαααααΆααβααΈβααΆαβαααααβααβααααα·α βααααα½α α¬βαααβα αααααβααΆβαααααβαα½α α’αααβα’αΆα βααΎαβααααΆβαααααααα "ααΆααα·ααΆαβαα·αα·αααα"α αααααΎαααΆααΎααΆααΆα’αααΈ αα·ααααααααααΆα’αΆα ααΆααααααΆαα½αααααααααααα’αααα
ααΆαααΆααα·α ααααα·αααΎα’ααααααααααΆααΆααΆααααΎαααΆαα½α αααα’αααααΆαααααΎαααΆαααΆααΆααααα§ααααααα·ααΆααα·αα·ααααααααα·αααΉααααα½αα ααΆααα·αααΊααΆαααααα·ααΈα
αααααααααΎαααΆαα½ααααααααΌαααΆααααααΆααα·α
αα½α
α’αααΈαααα αΆαααα’αΆα
ααΎαααΆααα
αααα»αααΌαα α§ααΆα ααα αα
αααα
αααααααΌα C++ αα
αααα»α Visual Studio α’ααααααα ααααΆααΎαααΌα
ααΆααααααα
αα
αααα»αααααααααα ααΎαααΎαααΆα’ααα var αα·αβαααβααααΌαβααΆαβααααΎβαα
βααααααβααΆβαα½αβαααα»αβαα»αααΆαα ααΌα
ααααααΆαααΆααα·α α’αααααααΎααααααααααααΎα§ααααααα·ααΆαααΌααα·αα·ααααααΆααααα ααααααΆαααΆααααα αα·αααΌα
α’ααααα·ααΆααααααΆαααααΆααα·ααααΆααΈααααΌα
ααΆ Coverity, Klocwork α¬ PVS-Studio ααΆααααααΆααααααααααααα’αααα
αααααα’αΆα
αααα αΆαααΈαααα αΆαα½αα
ααα½αααΌα
ααα»αααααα
ααααα·αααΎα’ααααα·αααΉαααΆααΎααΆααα·ααΆααα·αα·ααααααΆα’αααΈ αα·αααααα’αα»ααααααΆααα
α ααα»α’αααΈααΆαααΆα’αααααααΌαααΆαααΆααα·ααΆααα·αα·αααα?
αα·ααΆαα±ααααααΈα ααΆααααααΎαααααΏααα·αααΆαααΆααααα
ααΆααα·ααΆααα·αα·ααααα’αα»ααααΆαα±ααα’αααααααΎααααα αΆααααααααααΆααΆα αααΎααα αααα»αααΌαα ααΈααΆαααααΎααααΆαααα·αααααΉαααααΌαααααΆααααααΎαααΆααΆαα αΌααααααΆαααΆαα’ααααα α§ααΆα ααααααα½αα±αα
auto x = obj.x;
auto y = obj.y;
auto z = obj.z;
α’ααααααααααΌαααΆααααααα
auto x = obj.x;
auto y = obj.y;
auto z = obj.x;
ααΌα αααα’αααα’αΆα ααΎαααΆαααΆαααΆαα’αααααα αααα»ααααααΆααα α»ααααααα α§ααΆα ααα PVS-Studio α ααααΆααααααΆαααΆααααααα
ααααα·αααΎα’αααα
ααααΌαααα
αΌααα
αααα»αααα α»αααα ααΌαααΆαααααα§ααΆα ααααααααααααα½α
ααΆααααα
αα
αααα»ααααααα·ααΈ Compiler Explorerα *
α αΎαααΌα αααα’αααααα ααΆαα·ααααααα’αΆα ααααΎαα ααΆααααα»αααΆαααα α·ααααα»αααΆααααΎαααααααααΌαααααααααααΆααααααα α αΎααααααΆαααααα α’αααα’αΆα α’αααα»αααααΆααααα α»αα’αααααααααα½αααααααααααααααΆα ααα»α’αααΈααΆαααΆα’αααΈαααααΎαααΆααααΆαα αααααααΌα ααααα
ααααααΆαααΆααααααααα
αααΆααααΆααα α»αα α
α»αβααΎβα’αααβα’αα·ααααααβαααααβααΌαβααα’βαααα»αβαααβααΆαβααΆααβααααα
βααΆαβαααβαααααβααβααΆααΆ? α¬ααΌααααΈααα’αα»ααααΆαα±ααααΆαα
αααα»αααΌα
ααΆααΊαααααΆααααααΆαααΆαααΆααααααααααΆααα·ααΆααα·αα·ααααααΆααααα αΆααααα½αα αααααΊααΆαααα½αααΆααααααΆααα’αααα’αα·αααααααααααΉαα
ααα’α»ααααα αΆααααα αΆαααααααα
αααα»αααΌα αα·ααααααααααα»αα―αααΆαααΆα ααα»α’αααΈααΆαααΆααΆαα·αα
αΆαααΆα
ααααα»αααΆααααααααΆααα·ααΈααα ααΎααΆα’αΆα
ααΆααα
ααα’αααΈ αα·ααααααα½ααα»αααΆα αααααΆα§ααΆα αααααα’αααΈαααααΆα’αΆα
ααΎααα
ααΌα
α *
α’αααα’αΆα ααααΎαααα α»ααα½αα±ααα αΆααα’αΆααααααααααααααααααα’ααααα·ααΆαα’αΆα ααααΎααα αααα»αα’αααααα
ααα α»αααααΌαααΆαα 10 αα αααα»ααααααα C++ αααααΆααααααΆα 2019 ααα α»αααααΌαααΆαα 10 αα αααα»ααααααα C# αααααΆααααααΆα 2019 ααα α»αααααΌαααΆαα 10 αα αααα»ααααααα Java αααααΆααααααΆα 2019
α₯α‘αΌαααα α’αααααΆαα’αΆααααααΆαααααα αΎα αα·αααΏααΆααααΎα’αααααααααααααααΆααα·ααΆααα·αα·αααα α’ααααααα ααααΆα ααααΆαααααααΆα ααα»αααααααααααααααααΌαα αΆααααααΎα? ααΎααααΎααΌα ααααα ααΎααααΈαααα αΌαα§αααααααααΈαα αααα»ααααααααα αα α»ααααααααααα’ααα? α αΎαβααααΆαβαααα»αβαα βααΆααβαααβααααβααΆ? α’αααααΉαααΎαα ααααΎαα αααααααα½αααΆαααααααΆααααααα
α
αααΆα: ααΆααα·ααΆααα·αα·αααααα·ααααα½α α¬αα»αα
ααααΌαα’αααΈαααααΆααααααααα ααΌα
ααΆααΆααα·αα·αααααΌααααααα ααΆαααααααααααααααΎαααΆαααα αα½αααααααααΆαα αα·αααααα α»α ααΆααα·αααααΉαααααΌα αα·αααΆααα
ααΆαααααααααΆααααΆαα»αα ααΆααΆαααα·αααΆαα
αααΎααααα»αααΆααααααααΎααΆααα·αα·αααααΌαααΎαααα½ααααααααΆα αα·αααΆαα
αααΆααααΆααααααΌα ααΆααΆαααΆααααααααααααααα
ααααααΆαααα»α α¬
0. ααααΆααα§ααααα
ααΆααΆααα’ααα
αΆααααααΎαααΆαα½αααΉαααααααΆαααααα ααΆααΆααα·αααΆαα ααΆαα·αααΆααααΆαααΆαααααα»αααΆααααααα
α
α·αααα’αα»ααααα’αααΈαα½ααα
αααα»αααααΎαααΆαα’αα·αααααα ααααα·αααΎα’ααααα·ααααααΎαα§ααααααααααααΆααααΈαα»αααα ααΌα
ααααααΏαααααΌααααα’ααααα½αααααΎααΊααΆααα
α’αααΈαααα’αααααΉαααααα ααααΆααααΆααααα
- ααΎααΆααα·ααΈα’αααΈααααααΎααααΈααααΎα’ααααααααααΆαα½αα’ααααα·ααΆα;
- ααΎα§ααααααα·ααΆαααααΌαααααΆααΉαααα·ααΆααΆαα’αα·ααααααααααα’ααααα?
- ααΎαα αα α»ααααααααΆααααα αΆα’αααΈαααααα αααα»αααααααααααα’ααα?
αααααΆααααΈα’αααααΆαααα‘αΎαα’αααΈααααααααΆααααα’αααααααΌαααΆαα αΎα ααΏαααααΌααααα’ααααα½αααααΎααΊααααΎαααΆαααΆααα·ααΆαααΎααααααααΆααααΌα (
ααΆααα·αααΊααΆα’ααααα·ααΆααα·αα·ααααααΆααααααΆα
ααααΆααααααΆαααΆα
αααΎααααααΆαααααααααααααΆαααΌαααααΆαααΌαααα αα·αα
αΆαααΆα
ααα½ααα»αααΆααΆααα’ααααααα αααααααααααααααα’αααααααΎαααΆααα½α
α αΎα αααααΆααααααΆαααα αΆααΆααααααα·αααααΆααααα ααααααΆαααΆαααααα’αααα
ααΆααΆααα·αααΆαα ααΆααααααΆαα
ααα½α 178 ααΊααΆαααΆαααΆααααα½ααααα»αααΆαααΎαααΆαααΆααααΆαα...
αα
αααα»αααααΆαα ααααα ΠΈ ααΆα ααΆααΉαααΆααααΆαααΆααααααΆαααα’ ααα»ααααααααααααΆααααααα½ααααα
αΌαααΆααα·αα·α
αααααααααΆαααΆαααααΉαααααΌααα·α
ααΆα (ααΆαα’αΆα
ααΏααΆααααΆα)α ααααααΆαααααααα’αααΈααααα·ααααααΆα αα·ααααααΎααααααΆααααααΎααΆααα
ααααα Windows α’αΆα
ααααΆααα
ααΈαααα *
αααααΆααα·αα·ααααααααααααααΌαααα α»αααααα½αα±ααα
αΆααα’αΆαααααααααα»α (αα·αααΆααααααααΌαααααααααα) ααΊααΆαααααα
1. ααααααααααααα·αααα
αααααΆααααΈααααΆααα αΎα ααααααααααααα ααΆαααααααααααααα·ααΈαααα½α αα·ααααα αΌααα αααα»α CI α αααααααΌαααααΎαα»ααααα’αααααααααααααα·ααΈα αΆααααααΎαααααΎα§ααααααα·ααΆααα·αα·ααααα ααΆααα·αααΊααΆα’αααααααααααααα·ααΈα’αΆα ααααα ααΎαααΆααα·ααΆα α¬αα·αα ααααααΎααΆααΆαααααααα ααΎααααΈααααΎααΌα ααααααΆα α’αααααααΌαααααΎααΆααα·αα·αααα α»αααααααα½αα ααα½αααα’αααΈαααααααααΆα ααΎααααΈαα»αα±ααααΌαααααα·αααΆαααΆαααααα’αΆα α αΌααα αααα»αααΆααΆα’αα·ααααααααΌαα ααΆαα
α’αααΈαααα’αααααΉαααααα ααααΆααααΆααααα
- ααΎα§αααααααααααααααΎαααααααααααααα·ααααα’αααΈαααα;
- ααΎα§ααααααα·ααΆαααααΌαααααΆααΆαα½αααααααααααα‘αΎαααααα’ααααα?
αααααΆαα―αααΆαααα’α₯αααα
αααα·αααΆααα αααααααα’αααααααΌααααααα
αΌα
α₯α‘αΌαααα α αΌαααΎααααααα ααααΆαααααα½ααααα αΌαααΆαααααααααΆαα (CI)α α§ααααααα·ααΆαααΆαα½αα’αΆα ααααΌαααΆαα’αα»αααααα αααα»ααα½αααΆαααααααΆααααα αΆαααααααααα ααΎααααΈααααΎααΌα αααα’αααααααΌααααααΎαααααΆααααΆαααΆα ααααα‘αααα½ααα αααα»αααααααααα αΌαααααααααααΆααααααΆααΆαααΈααΆαααα αααααΆααααΈααΆαααααΎαααααααΆαααααα·αα―αααΆα αααααααΌαααΆαααααΎαααααααΎα§αααααααααΎααααΆαααα»αααΌαααααααα α§ααΆα ααα PVS-Studio αααααααΌαα§αααααααααΎααααΆααααΌα ααΆααααααα
PVS-Studio_Cmd.exe (ααΆααα·ααΆααααααααααΆα αααααα C#, C++ αα ααΎ Windows)CLMonitor.exe (ααΆααααα½ααα·αα·αααααΆαα ααααα)pvs-studio-α’ααααα·ααΆα (ααΆααα·ααΆααααααα C ++ αα ααΎ Linux / macOS)pvs-studio-dotnet (ααΆααα·ααΆααααααααααΆα αααααα C# αα ααΎ Linux / macOS)pvs-studio.jar (ααΆααα·ααΆααααααα Java)αααααα·ααΈαααααα Plog (αααΆαααΆααααααααα·ααΈααααααα―αααΆα)
ααΎααααΈαααα αΌαααΆααα·ααΆααα αααα»α CI α’αααααααΌαααααΎααΈαααΆαα
- ααα‘αΎαα§ααααααα·ααΆα;
- ααααΎαααΆαααΆααα·ααΆα;
- αααααααααααα
α§ααΆα ααα ααΎααααΈααα‘αΎα PVS-Studio αα ααΎααΈαα»α (Debian-base) α’αααααααΌαααααΎαααΆαααΆααααααααΆααΆααααααα
wget -q -O - https://files.viva64.com/etc/pubkey.txt
| sudo apt-key add -
sudo wget -O /etc/apt/sources.list.d/viva64.list
https://files.viva64.com/etc/viva64.list
sudo apt-get update -qq
sudo apt-get install -qq pvs-studio
αα ααΎααααααααααααααα»αααααΎαααΆα Windows αα·αααΆααα·ααΈααα‘αΎαα§ααααααα·ααΆαααΈαααααα·ααΈααααααααααααα ααααααα ααα»ααααααΆα’αΆα ααΆαααααααΆαα§ααααααα·ααΆαααΈαααααΆααααΆααααααααΆα
PVS-Studio_setup.exe /verysilent /suppressmsgboxes
/norestart /nocloseapplications
α’αααα’αΆα
α’αΆαααααααα’αααΈααΆαααΆαααααααΆα PVS-Studio αα
ααΎαααααααααααααααΎαααΆα Windows *
αααααΆααααΈααΆαααα‘αΎαα’αααααααΌαααααΎαααΆαααΆααα·ααΆααααααααΆααα αααααΆαααΆαααΆαααααααΆααααΌαααΆαααααΆαα±ααααααΎαααααααααααααΆααααΈααΆαα ααααααα·αααΆαααααΎαααααααΆαααααααα»ααα α αααααΊαααααΆαααααΆααα·ααΆααα·αα·ααααααΆααααααΆα αααΆααααααΈαααααααααααΌα ααΆαα αααααα
αααααΆααα·ααΈααΆαααααααααΆαααΎαααααΎαααΆαα’αΆαααααααΎαααα·ααΆ αα·ααααααααα·ααααααααααααα αααα»αααΉααααα αΆααααααΎααααααΆαα C++ (Linux) ααΆα§ααΆα αααα
pvs-studio-analyzer analyze -j8
-o PVS-Studio.log
plog-converter -t errorfile PVS-Studio.log --cerr -w
ααΆααααααααΆααΈαα½αααΉαααααΎααΆααα·ααΆα α αΎαααΈααΈα
α αααΆα: ααααααβα’αααααβαα·αβαααα½αα ααΆααααΌαααΆααααααααΌααααΆαααΆααααααΆα§ααΆα αααα ααα α·ααααα»αααΆααα αααααααααααααΆαααΆαααααααα½αα±ααα αΆααα’αΆααααααααΆααα»α - FullHtml α ααΆα’αα»ααααΆαα±ααα’ααααα»αααααΆααααααΌαα
α’αααα’αΆα
α’αΆαααααααα’αααΈααΆαααα‘αΎαααΆααα·ααΆαααΎ CI αα
αααα»αα’ααααα "
αα·αα’αΈαα α’αααααΆαααααααα ααΆααααααααα§ααααααα·ααΆααα ααΎ build serverα α₯α‘αΌαααα ααααα·αααΎα’αααααΆααααΆααααΆααααα ααααΌαααααα·αααΆαααΆααααα ααααΆααααΆααααααααααΆααααΉααααΆααα α αΎαα’αααααΉαα’αΆα ααααΎααααα αΆ ααα»ααααααΆαα·αααΆααααα½αααΆαααααα»αααααα αααααααΆααΆαααααα·αααααΆαααΆααααα»αααΆααααα½ααα·αα·ααααααααα αα·αααααααααΆααααΈααΆααΆααααΌαααΆααααα αΌαααααΆαα ααα»αααα αα»ααααααΆαα ααααΆααααΆαααααΎαα»αααΆα A.
ααΆααΌαα ααΆααααααΎαααΆααα·ααΆαααααΎαααΆαααΊαα·ααα»αααΈααΆαα αΆααααααΎαααααααΆααααΆααα·ααΆαααΎ CI αααααα ααΎαααααααααααΌαααΆαααΎααααΈααα½αααΆααααααΈα―αααΆααααααΆαααααΆααααααΌαα ααΆαααααααΆααααααΆα’αΆα ααα½αααΆααααααΆαααΆααα½αααΆααα»αααααΆαααΆαααΆααΆαααααααΎ gitα
git diff --name-only HEAD origin/$MERGE_BASE > .pvs-pr.list
α₯α‘αΌαα’αααααααΌααααααΌααααααΈα―αααΆαααααα α’ααααα·ααΆαααΆααΆααααα αΌαα α§ααΆα ααααα αααα»α PVS-Studio αααααααΌαααΆαα’αα»αααααααααααΎααα -S:
pvs-studio-analyzer analyze -j8
-o PVS-Studio.log
-S .pvs-pr.list
α’αααα’αΆα
ααααααααααααααα’αααΈααΆααα·ααΆαααααΎααΆα *
ααΆααααααΆαααα‘αΎαααΆααα·ααΆαααααααΎααΆα α’αααα’αΆα αααααααΆααααΆααααααααΉααααααααΆαααΆααααααΆα αααα ααα»ααααααααΎαααααααααααααΌαααααα·αααΆαααΆααααααα·αα’αΆα ααααααΆααααΆαααα
ααΆααα’ααααααα·αααΆααα’ ααα»αααααααα»αα
ααααΎαααΆααααααΆαααΆααα’αααα
αααααααααα½αα αα·αααααΉαααααααΈα§ααααααα·ααΆααα·αα·ααααααα»ααααααα ααα»ααααααααααΈααΆαααααΎαααααα―αααΆ α¬ααΈα§ααααααα·ααΆαααΆααααααααααα ααΆαααααΆαααα αα·ααααααα·ααΈαααα½ααααααααααααΆααααΏααααα α§ααΆα ααα PVS-Studio ααΆα
2. ααΆααα½ααααα αΌααα ααΎαααΆαααΈαα’αααα’αα·αααααα
α₯α‘αΌααααααΆααααααα αΎαααΎααααΈααα‘αΎα αα·αααααααα ααΆααααααααα§ααααααα·ααΆααααααΆααααΆαααααΎααααΆααααΆαα’αα·αααααααααα αΆαααααα αααααα ααα»α ααα α’αααααΆαααααΆαααα½α ααΆααααα ααΌααα·ααΈααααΎααΆαααΆαα αααΎα ααΌα ααααααΆα’αΆα ααααΌαααΆαααα α ααΆααΆαααααααΆααααα½ααααα»αα
ααΆαααααΎαααααΆαααααααα»α α’αααα’αα·ααααααα’αΆα
ααα‘αΎαα§ααααααα·ααΆαα
αΆαααΆα
αααααααα½αα―αα αααααΆαααΆαααΆααααα ααΆααΉαα
αααΆααααα
αααΎα αα·ααααααααα½αααααΈααΆαα’αα·αααααα ααΌα
ααααα’αααα’αΆα
ααααΎααααααααααααα·ααααααααΎαααΆαααααααααααΎαααααα·ααΈααα‘αΎα αα·αααααααα
αΆαααΆα
αα αααααΆαα PVS-Studio ααΆαα
αααΎααααααα
αααααΆααααα’αααααΉαααααΌαααα‘αΎααααααα·ααΈαααα½αα
αΆαααΆα
αα§ααΆα ααααααααΆαα
3. ααΆαααααΎααααΆαααααα αΆααααα
αα
ααααΆααααΆαααα ααΆαααααααααααααΌααα·ααΆαααΆαααααΈαααΈα’αααΈαα·ααΈαααααΎαααααΏαα§ααααααα·ααΆαα’αα‘α»ααααααααΎααααΆαααααα
αΆαααααα ααΆααα·ααΆαααααααααααααααααΆααααΌαααααΌαα
αααΆααααα
αααΎα ααα»ααααααΎααΎαααααΆααααααΌαααΌαααΉαααΆααααα»ααααΆαα
αααα»αααααααααΆααααΌααααα»αααααααα½α? ααααΎααααα·αααΆα refactoring ααΆαα½ααααααΆαααα ααααααααΆααΉααααααΆαααααααΌαααααΆαααΌαααΆααααΌαααααΆαααααααα α
ααα½αααα―αααΆααααααααΌαααΆαααααΆααααααΌααααα»αααααααα½αααααααΆαααΎαααΈααα ααΌα
ααααααΆααα ααα»αααααα»αααΆααα·ααΆααα½αααΆα αααααΆααααααΆαααΆαααααααααΆα
ααααα·αααΎα’ααααα·ααΆαααααΎααααα αΆαα αααα»αααΌααααααΆαααααΆααααααΌαααααΈαααα ααΆααΉαααΆαααΆααααααα―αααΆαααα α§ααΆα ααα PVS-Studio ααΉαααααΆααα’αααα’αααΈαααα αΆααααααααααΎααΆαααΌαααααΉαα
ααΆααΆααα·αααΆαα ααΆαααααΆααα’αααα’αα·ααααααα±ααααααΎα§αααααααΊαα·ααααααααααΆααααα ααΎαααααΌαααααΆαααα½αααααΆααΆααΆα’αααΈ αα·ααααααααααΆααΆα ααΆα§ααΆα ααα ααΆαααααααααααΊααΆα’αααααα’αααΈααΆαα
αΆααααααΎααα αααααααΆαα PVS-Studio ααα»ααααα’αααα’αΆα
αααααααααΆαααααααααααααααααΆαααααΆααα§αααααααΆαα½ααααα’αααα
αΌαα
α·αααα
ααααααααΎαααΆα PVS-Studio αα ααΎ Windows (C, C++, C#) ααααααααΎαααΆα PVS-Studio αα ααΎ Linux αα·α macOS (C, C++) ααααααΎαααααΎαααΆα PVS-Studio Java
α’ααααααααααααααααααΌαααααααΆαααΆααα’αααααα αΆαααΆα ααααααΆααααΆαααααΎααααΆαααααα αΆααααα α αΎααα·αααααΌαααΆααααααααΆα αααΎαααα π
ααΌααααΈαααα ααααΆααααΆαααααΆαααααΆααα§αααααααα ααΎαααΆααααααααΆααααΆααααααΆαααΆα αααΎααααα»αα’αα‘α»ααααααααΆαα αΆααααααΎαααααΌαα ααΆα’αα»αα α’ααααα·ααΆααα·αα·αααααα·αααα’α₯αααα αααα ααΌα ααααααΈααααα½ααα ααααα½ααα½ααααααααααΆααα·αααααΆααα·ααα·αα ααΆβααααααΆβααΆβααΆβααΆαβααΆαβαααα½αβαααα»αβααΆαβαααβααααΆααβαα½αβααΆ ααΆβα§ααΆα ααα αααα»αβαααααα·ααΈβαααα½α PVS-Studio αααααΆαα Visual Studio α’αααβααααΆααβααβα α»α βαααΌαα»αβαα½αβααα»αααααα
ααααααΆαααΆααααα α’αααα’αΆα
ααααΎααΎαααΈααΆααααααααΆααα½αααα α§ααΆα ααα α’αααα’αΆα
ααΆαααΆααααααα αΆααΎααααΈααΆααααα ααααα·αααΎααΆααα·αααααΆααα·ααα·αα’αΆα
ααααΌαααΆααα ααααα
αααα»αααΆαα’αΆαααααααΆαααααΆααα»α α’αααα’αΆα
αααααΆααααΎαααΆ ααΆααααααααααΆαααΆααα·αααααΆααα·ααα·ααα·α
ααΆααα»αααΆααααΆααα
ααααααΌαααααΆαααΌαααααα’αααα
αααααΆααααΈααΆααα½ααααα αΌα
ααΌα ααααααΎαααΆαααααααΆααααααΆααααΆαααΆααα’ααααααΆααα½ααααα αΌαααΆααα·ααΆααα·αα·αααααα αααα»αααααΎαααΆαα’αα·ααααααα αααααΈααΆααΆαααΆααααααΆααααααΆαααα‘αΎαα§ααααααααααααα ααΎ CI ααααα ααααααααααΆαααααα»αααΎααααΈααααΎαααΆααα½αααΆααΊαα»αααααΌαααααααα’αααα’αα·ααααααα αααΆαααΆαα·α α’ααααα·ααΆααα·αα·αααααα·ααααααΆα α ααααααααα·ααΆαααΆααααααααΆααααΆαααΈα’αααααΆαααααΌααα·αααα’αααααα αααα»ααα αα·α ααΆααΊααΆαααα½αααΆααααααααΆααα’αααααΆ α’αααα ααααΏα α αΎαααααΉαα’ααα ααααα·αααΎα’αααααααα α’αααΈαα½αα
ααΆααΆααα·αααΆαα αααααααΆαααΆαααααΎααααΆααααΆαααα αΆα ααΆααα·ααΆααα·αα·ααααααααααΆαα·αααααΎα±ααααΆαα’αα·ααααααααΆαααΆαααΆαααααααααα αααΆαααΆαα·α α’αααααααααααα ααααααααααΆαααααΆααα’αααα’αα·ααααααααΊαα·αααΆαα αααΎααααααα»αααΆααααααααααααααααααα»αααααΆα αα·αα ααααΌαα ααααΆαααααΌα ααα»αααααα αααα»αααΆαααααΎαααααΌααααααα½αααα αααααααααΆααΆαααααΎααααα αΆαααααΆααααΈααΆαααααααα½αααααΌαααΆαααααΎαααααΆααααΆαααααΎααααααα·αααααΉααααα·ααααααΆαα α·αααααα»ααααααα ααα»αααααααααΆααα αααΆααααα αααΎααααααα ααΆααα·ααΆααα·αα·αααα αα αααααααΎααΆαααα αΆα αα·αα·αααααΎαααΆααααΆαααααΆααααααΌααααααααΆαααα ααΎαα»αααααΌαααααααα’ααα α αΎαααΆαααΆαααααΈαααααααα½αα±αααααααα αααααααααα»αααααΎααΆαααΎααΌαα
α αΎαβααααα·αβααΎβα’ααα α¬βαα ααΆααΈβααααβα’αααβαα
βααβαα·αβααααΆααβααΆβααΎβααΆβααΆαβαααααβαααα»αβααΆαβα’αα»ααααβαααααα·ααΈβαα·ααΆαβαααβαααα»αβααααΎβα±ααβα’αααβα
αΆααβααααΎβαβα’αΆαβα’ααααα "
ααααα·αααΎα’αααα
ααα
αααααααα’ααααααααααΆαα½ααααααα·αααααααα·ααΆαααΆααΆα’ααααααα ααΌαααααΎαααααααααα Maxim Zvyagintsev α
ααααα: www.habr.com