ããã·ãã«ã¹ã¯JBreakäŒè°ãšã¢ã¹ã¯ã¯JPointã¯2 ãã¢ããŒãã§ããã©ã¡ããæ¥ã«éå¬ãããäž¡æ¹ã¯JUG.ruã«ãã£ãŠéå¬ãããã©ã¡ãããã®å°åã®äž»èŠãªJavaäŒè°ã§ãã ãããŠä»å¹Žãç§ãã¡ã¯ãããã1é±éã§æŽçããŸããïŒãããŠãã®åŸãçãæ®ããŸããïŒã ãããã£ãŠãJBreakãšJPointã®ã¹ããŒãªãŒã¯ãã©ã®ããã«é²ãã ãããã€ãŸãããã¬ãŒã¯ãã€ã³ããã«çµ±åããããšã«ããŸããã ã«ããã®äž-ããã·ãã«ã¹ã¯ãšã¢ã¹ã¯ã¯ã®äž¡æ¹ã®è©³çŽ°ã
ä»å¹Žãåãã€ãã³ããäž¡æ¹ã®ã«ã³ãã¡ã¬ã³ã¹ã§èµ·ãããŸãããäŒå Žã®å€æŽã§ãã 1幎åã®ããã·ãã«ã¹ã¯ã§ã¯ããã容éã®å€§ããéšå±ãæ¢ãå¿ èŠãããããšãæããã«ãªãã倧èŠæš¡ãªããšãã¹ãã»ã³ã¿ãŒãã«ãªããŸããã ãããŠãæé·ãç¶ããJPointã¯ãä»åã¯WTC Congress Centerã§éå¬ãããŸããã
ã¬ããŒãã®å¯Ÿè±¡èªè ãç解ããããã«ãäž¡æ¹ã®äŒè°ã®ããã°ã©ã ã«æå®ã衚瀺ãããŠããŸããæè¡å ¥éãæè¡è åããããŒãã³ã¢ãæºåå®äºãçããŸãã ãã¡ããããããã®æå®ã¯ããã«è°è«ãšè°è«ã®çªç Žå£ããããããŸããã åã¬ããŒãã®æå®ã¯æ£ããã§ããïŒ åé¡ã¯å šäœãšããŠæ£ããã§ããïŒ ãããŠãã©ã¡ããããæ£ããã§ããããïŒ
ãããããã¹ãŠã®äººã«é©ããããªã¢ã³ããæãã€ãããšã¯ã»ãšãã©äžå¯èœã§ãããã¬ããªã«ã¯ãã¬ããŒãã誀ã£ãŠç€ºããããããšã¯é¿ããããŸããããäžè¬çã«ã·ã¹ãã ã¯ãã¬ããŒãã«æ¥ãŠäœãç解ããŠããŸããããšãããŒãã³ã¢ã®ããã«æ¬²ããã£ãŠããããåå¿è ã«èšããããç¶æ³ã®æ°ãæžããã®ã«åœ¹ç«ã¡ãŸã
ã©ã¡ãã®å Žåãããªã³ã©ã€ã³ãµããŒããæ¹åããããšã«ããŸãããé«å質ã®åçãTwitterãšVKontakteã«ãã°ããæçš¿ããJPointãšJBreakã®Telegramãã£ãããäœæããŸãã ãŸããJPointã¯ãã¢ããã°ã¬ãŒããããããªã³ã©ã€ã³ãããŒããã£ã¹ããåä¿¡ããŸãããã¬ããŒãã®åéã«ãéåžžã¯èŠèŽè ãäœãããããšããªãã£ããšãã«ãä»åã¯ã¹ããŒã«ãŒãšã®ã€ã³ã¿ãã¥ãŒãšã«ãã«ã¿ãŒãžã¥æ®åœ±ãè¡ãããŸããã ãããã®ãã¹ãŠã®ãªã³ã©ã€ã³ã¢ã¯ãã£ããã£ã®çµæã«åºã¥ããŠãæŸéã®èŠèŽè ã®1人ãåãé»å ±ãã£ããã§ããŸãã§äŒè°ã«ãããã®ããã«ããšæžããŠããŸãã
SJPointïŒSberbank-TechnologiesãGridGainãOdnoklassnikiãAlfa-LaboratoryãDeutsche Bankã ãã§ãªãïŒã«è±å¯ãªäŒæ¥ãããããããããã«é¢é£ããäœããã®çš®é¡ã®ã¢ã¯ã·ã§ã³ã絶ããè¡ãããŠããŸããïŒããã§ã¯ããã€ãéè¡ã¯ç¬èªã®ããã¹ããŒããæã£ãŠããŸãããã¹ããŒã«ãŒZalandoã¹ã¿ã³ãã§Baruch SadogurskyãšYevgeny BorisovããæŠãããGIFãåé€ã§ããŸãã
ãããŠã誰ããéãŸã£ãäž»ãªãã®ã¯ã©ãã§ããïŒ 2ã€ã®äŒè°ã®ããã°ã©ã ã¯éšåçã«éè€ããŠããŸããããäž¡æ¹ã®éœåžã«ã¯ãæä»çããªãã®ããããŸããïŒç¹ã«JPointã¯ã2æ¥éã®å ±åãå¢ããã ãã§ãïŒã ãã¹ãŠã®ã¹ããŒãã«ã€ããŠã話ãããããšã¯ã§ããŸããããæãåºã«æ®ãç¬éããèŠãããŸãã
æžãã®ã¯éå±ã§ãããããŸããã Aleksey Shipilev ïŒRed HatïŒã«ããShenandoahã®ã¬ããŒãžã³ã¬ã¯ã¿ãŒã«é¢ããæ°ããã¬ããŒãã¯ãäž¡éœåžã§å€§æåãåããŸãã ã é°è¬ã¯ãªãïŒ ããããç§ãã¡ã®ç掻ã®äžã§ãã°ãã°ãé°è¬ã®ãªãããšããèšèã¯ã誰ããåã³ecãšãããããšãæå³ããŠããŸããã ShipilevãGCã«ã€ããŠã®ã¡ã€ã³ããã¯ãšããŠãThe Garbage Collection Handbookãã«èšåããåŸãã¹ããŒã«ãŒã®Tagir lany Valeevãšç§ãã¡èªèº«ã®ãã£ã¬ã¯ã¿ãŒAlexei 23derevo Fedorovãå«ãèŽè¡ã®äžéšããããåãäžããããšã«ããŸããã
GCã¢ã«ãŽãªãºã ã®æè¡çãªè©³çŽ°ã«å ããŠãã¬ããŒãã¯ããŽããèŠã€ããã«ã¯ãŽãã®ããã«èããå¿ èŠãããããšãããã¬ãŒãºã§èšæ¶ãããŠããŸããã ãããŠãã¢ã¬ã¯ã»ã€ã¯ã¹ãããã®éã«æ å ±ãã£ãŒã«ããçãå°œããããã®ã§ãå¥ã®ããŒã«ã§ããããèŠããŠããŸããïŒãç§ãã¡ã¯åçŽãªäººã ã§ãããæšæºåå·®ãèšç®ããŸããããšããã³ã¡ã³ãããããŸãïŒã
Pro .NET Performanceã®äœè ã§ããSasha Goldstein ïŒSela GroupïŒã¯ã.NETã«ã³ãã¡ã¬ã³ã¹ã§ææãéããŸãã ããããä»ã§ã¯ãå€ãã®äººã«ãšã£ãŠäºæ³å€ã«ã圌ã¯JPointã§è©±ãããŸãã-ãããŠããžã£ãã¹ããããéåžžã«é«ãè©äŸ¡ãåããŸããã ããšã€ãªã¢ã³ã®é åããåŸæããæåã®è©Šã¿ã§ã©ã®ããã«å¯èœã§ããïŒ Javaã¢ããªã±ãŒã·ã§ã³ã®ç£èŠã«åœ¹ç«ã€BPF LinuxããŒã«ã«æ³šç®ãéãŸã£ãã®ã¯ããããå©ãã«ãªããŸããïŒSashaãã€ã³ã¿ãã¥ãŒã§ç§ãã¡ã«èªã£ãããã«ãåœåLinuxããŒã«ã¯åœŒèªèº«ã«èå³ããããJavaã¯ã¢ããªã±ãŒã·ã§ã³ã®äŸ¿å©ãªãã€ã³ãã«ãªããŸããã Linuxäžã®.NETã¯ãŸã ãŸã°ãã§ãã
圌ã®è¬æŒã®çŽåŸããµãŒã·ã£ãããã«æ·±ãJavaã«é¢äžããŠããã®ã¯èå³æ·±ãããšã§ãã Andrei apangin PanginãšVadim Tsesko ïŒOdnoklassnikiïŒã®Javaãããã¡ã€ã©ãŒã®è€éãªåäœã«é¢ããããã©ãŒãã³ã¹ã«èå³ãããã圌ã¯äŒè°ã®çµäºãåŸ ããã«ãããã«GitHubã®Panginãããã¡ã€ã©ãŒã«å¯èŒžãå§ããŸããã
ã¹ããªã³ã°ã«é¢ããCharles Nutterã®ã¬ããŒãïŒRed HatïŒãžã®å¿çã§ãããã·ãã«ã¹ã¯ã¯ããšã³ã³ãŒãã£ã³ã°ã«é¢ããçè«çå°å ¥éšåãé·ããããšäžæºãè¿°ã¹ãŸããã å®éãã©ãã³èªã®ã¢ã«ãã¡ãããã®åœã«äœãã§ããNutterã«ãšã£ãŠã¯ãããªã«æåã®ããã«ãã·ã¢ã®ããã°ã©ããŒããšã³ã³ãŒãã«ã€ããŠçŽæ¥ç¥ã£ãŠããããšã¯æããã§ã¯ãªããããããŸããã ãããããã®é·ã玹ä»ã¯ã¢ã¹ã¯ã¯ã§åœ¹ã«ç«ã¡ãŸãããã¢ã¹ã¯ã¯ã§ã¯ããã£ãŒã«ãºã®ã¬ããŒãã§ãããžã§ã¯ã¿ãŒã®åé¡ãçºçããŸããã 圌ã¯ã¹ã©ã€ãããªããŠãçè«çãªéšåãäŒããããšãã§ãããã®åŸãæè¡ã¯joniããã³jcodingsã©ã€ãã©ãªã«åãæ¿ããç¬éãŸã§æ©èœããç»é¢ã«ã³ãŒãäŸã衚瀺ããå¿ èŠããããŸããã ãã®çµæãæééãã«ãããç²åŸãããããžã§ã¯ã¿ãŒã¯ããŸãã§åœŒãã¹ããŒã«ãŒã§ãããã®ããã«ãå€ãã®ææã济ã³ãŸããã
äž¡éœåžã®IDEAã§ã®æ€æ»ã«ã€ããŠè©±ããTagir Valeev ïŒJetBrainsïŒã¯ããç§ã®ã¬ããŒãã®å©ç¹ã¯çãããããšããèª å®ãªæ¿èªããå§ãŸããŸãã-ããããããã¯ãIDEã§ã¯ã³ã¯ãªãã¯ã§ã³ãŒããæ¹åããæ©äŒã®èåŸã«ãããã®ãèãããšã«å€ãã®é¢å¿ãå¯ããããšãæ¢ããŸããã§ããã èããŠããªãå Žåãããã¯äžéšã®æ§é ãä»ã®æ§é ã«çœ®ãæããããã®åçŽãªæ©æ¢°äœæ¥ã®ããã«èŠãããããããŸããããã¬ããŒãã¯ãããããã§ã¯ãªãããšã瀺ããŸããã
èªèã§ããããã«ããå¿ èŠãããåããã¶ã€ã³ã®å€ãã®ããªãšãŒã·ã§ã³ãååšããå¯èœæ§ããããŸãïŒãJohn Skeetã§ããããããreg expã§åãåã£ãŠããªããïŒã åé·ãšæãããå Žåã§ããããã¥ã¡ã³ãã®ãã¥ã¢ã³ã¹ãèªãå¿ èŠããããŸãïŒããã®å Žåãmap.getOrDefaultãšmap.putIfAbsentã®åäœã¯ç°ãªããŸãããäž¡æ¹ãšãJava 8ã«ç»å ŽããŸããïŒã åæã«ãããã¥ã¡ã³ããäžå®å šã§ããå¯èœæ§ããããŸãïŒãStack Overflowã«ã€ããŠã¯ãŸã çããèŠã€ãããŸããããã€ã³ã¿ãŒãã§ã€ã¹ã«é¢ãããã®ã§ããææ¥ã¯æ°ããå®è£ ããããŸããIDEAã§ã³ãŒããå£ãå§ããŸããããã¯ãStack Overflowãžã®ãªã³ã¯ã§ãã ïŒãïŒã ãŸããã³ãŒããå€æŽããããšãã«ãæ£ããå Žæãã«ã³ã¡ã³ããä¿åããŠé 眮ããå¿ èŠããããªã©ãå€ãã®æçœãªç¬éããããŸãïŒãããŒãã«ã®åã¯ã©ãã«ãããŸããïŒéèŠãªé»è©±ã¯ããã«èšé²ãããŸããïŒãïŒ
ããã«ããã£ã¹ã«ãã·ã§ã³ãŸãŒã³ã®ãããã§ããã®å Žåã®å®éçãªå©ç¹ãåŸãããå¯èœæ§ããããŸããããã§ã¯ãè¬æŒè ããå ±ååŸã«è©³çŽ°ã«è³ªåããã人ã«åçããŸããã 確ãã«å€ãã®éçºè ãIDEAã«é¢é£ãã質åãæã£ãŠããŸã-ãããŠãããã®å€ããå°ãã䟿å©ãªæ©äŒããããŸããã ãã®çµæãäŒè°ã®åŸãTagirã¯ãã°ã®ä¿®æ£ã«åãçµã¿å§ã ãJPointã«çŽæ¥è¡šç€ºãããããã«ãªããŸããã 念ã®ããã«ãæ確ã«ããŸããããã¯ãã«ã³ãã¡ã¬ã³ã¹ããã°ãåãåãããã®å ¬åŒãã£ã³ãã«ã§ããããšãæå³ãããã®ã§ã¯ãããŸããã
Nikita Lipsky ïŒExcelsiorïŒã¯äž¡æ¹ã®äŒè°ã«åå ããŸãããããŸã£ããç°ãªããããã¯ã§ãããã¢ã¹ã¯ã¯ã§ã¯ããã€ãã³ãŒãæ€èšŒã«ã€ããŠè©±ããæ¯åœã®ããã·ãã«ã¹ã¯ã§ã¯ããJava 9 ModulesïŒWhy Not OSGiïŒããšããã¬ããŒãã§å€ãã®èŽè¡ãéããŸããã
ãã®ãããªã¿ã€ãã«ã®ã¬ããŒãã¯éââåžžã«çãã¯ãã§ã-OSGiã䜿çšããŠãããžã§ã¯ããã¢ãžã¥ãŒã«ã«åå²ã§ãããšããããŒã¯ã©ã€ã³ãã«ãã®èšèãç¹°ãè¿ãã ãã§ååã§ãããJDKèªäœããèŠéããããšãã§ããŸãã ããã«äœãè¿œå ã§ããŸããïŒ å€ãã®ããšãå€æããŸããã ãOSGiãã³ãã«ã¢ã¯ãã£ããŒã·ã§ã³ã·ã¹ãã ã¯æéç匟ã§ããJVMããªã³ã¯ã®é 延ãç·©åãå§ãããšãOSGiã¢ããªã±ãŒã·ã§ã³ã¯åäœãåæ¢ããŸãããšãããŒã¿ã¯åèã«èª¬æããOSGiã«ã€ããŠèªãã»ã©é åçãªãžã°ãœãŒããºã«ãèŠãå§ããŸããã è¬æŒã®å šäœçãªæŽ»æ°ã«ã€ããŠã¯ããªãã¹ããŒã®å¥ã®å瞟ãæããããšãã§ããŸããåé ã«ã«ã«ã ã¹ãåŒçšãããŠããå ±åæžã¯ãçãäžã«ãã³ãã©ãä»ããŠè¡ãããæåŸã«ãåºç£ã¯é¿ããããªãããšèšã£ãŠéå±ããããšã¯ã§ããŸããã
Yegor yegor256 Bugaenkoã¯ãããŸããŸãªãããã¯ãæã€å¥ã®ã¹ããŒã«ãŒã«ãªããŸãããããã·ãã«ã¹ã¯ã§ã¯ãŠãŒãã£ãªãã£ã¯ã©ã¹ã«ã€ããŠãã¢ã¹ã¯ã¯ã§ã¯æ³šéã«ã€ããŠè©±ããŸããã Yegorãç¥ã£ãŠãããšã圌ã¯äž¡æ¹ã®çŸè±¡ã容赊ãªãæ¹å€ããããšã¯å®¹æã«æšæž¬ã§ããŸãããã¡ããã圌ã®ã¬ããŒãã«ã¯ãæºåãããŠãçããŸãããšããã¢ã€ã³ã³ããããŸããã JPointã®ãã¬ãŒã³ããŒã·ã§ã³ã§ã¯ã圌ã¯JBreakã®ã¬ããŒãã®èŽè¡ããåãåã£ããã£ãŒãããã¯ãå«ããããšãã§ããŸããããèè ã¯ããã¢ã§ããããã¬ããŒããªãŒã®ãšãŽïŒãã¹ãŠã®ãã³ãžã¥ã©ã¹ããããŠç§ã¯ãã«ã¿ãã£ã³ã§ããã
æšå¹ŽãYegorãšãæªæ¥ã®OOPã ã«ã€ããŠè©±ãåã£ã Baruch jbaruch Sadogurskyã¯ãBugaenkoã®æçºçãªã¹ããŒãã¯ã5ã€ã®ã¹ã©ã€ãããããŠä»ããã«ããããŸãããããšãã圢åŒã«é©åããŠãããšè¿°ã¹ãŸãããããã«è°è«ããŠãã ããã ãã®å Žåãããã¯è¡ãããŸãããBaruchèªèº«ããJPointã§æãç©æ¥µçã«Egorã䜿çšããŠãã¢ãããŒã·ã§ã³ã®å©ç¹ãæè·ããŸããã äžæ¹ãã¢ã¬ã¯ã»ã€ã»ã·ãã¬ãã¯ãäŒå Žãåºãããæ»ãããå®æçã«é¡ãå€ããŠããŸããã ç§ãã¡ã¯ãäœãèµ·ãã£ãŠãããã«ã€ããŠã®åœŒã®ææ ãæ£ç¢ºã«è§£èªããããšãçŽæããŸãããã圌ãã¯åŒ·ããšæããŠããŸãã
ããã·ãã«ã¹ã¯ã§ã¯ã ããªã«ã»ãã«ã«ãã§ã ïŒã¢ã«ãã¡ç 究æïŒãåç¬ã§ã¹ããªã³ã°ããŒããã¹ãã®ã¬ãŒãã«ã€ããŠè©±ããã¢ã¹ã¯ã¯ã§ã¯ãšãã²ããŒããªãœã ïŒãã€ãã¯ãããžãŒãºïŒãåå ããŸããã ãŠãŒãžãŒã³ã¯ãŸããæ¥ã®ãã¥ã¢ã³ã¹ã«ã€ããŠå¥ã®ã¬ããŒããäœæããŸãã-ãããŠãæ倧ã®äŒè°å Žã¯äººã§ãã£ã±ãã§ããã ããããæãé®®æãªãªãŒãã£ãšã³ã¹ã¬ãã¥ãŒã¯æ¬¡ã®ãšããã§ãããããããã¬ããŒãã®åŸãSpringã®ããžãã¯ãç解ã§ããããã«ãªããŸãããã
äž¡æ¹ã®ã«ã³ãã¡ã¬ã³ã¹ã®ãŒãã©ã«ã¹ãã³ãµãŒãšãªã£ãSberbank Technologiesããããã©ãããã©ãŒã ã§ã®äœæ¥ã«ãããã¢ãŒããã¯ãã£ã®æ±ºå®ãã課éçšã®DSLèšèªã®äœæã«è³ããŸã§ããŸã£ããç°ãªããããã¯ãæã€è€æ°ã®è¬æŒè ãäžåºŠã«ããŸããã ã©ã¡ãã®ã¬ããŒããããæçšãã¯èŠèŽè ãå€æããããšã§ãããèŽè¡ã®äžã§æã掻çºãªã®ã¯æããã«ãDevOpsã«ã€ããŠã®Oleg olegchir Chirukhinã®ããã©ãŒãã³ã¹ã§ããã ãJavaã«ã³ãã¡ã¬ã³ã¹ã«åå ããŠããã®ã§ãããã®å šå¡ã管çè ãæé€ããæ¹æ³ãç解ããŠããããªã©ã®åœŒã®æèšã¯ã巚倧ãªäŒç€Ÿã§åãããšã¯éå±ãããã¹ãŠã®ãã¿ã³ãç· ãããããšãæå³ããªãããšãæ確ã«ç€ºããŠããŸããã
Kotlinã«èå³ããããŸããïŒJPointã®æ°æ¥åã«ãKotlin / Nativeã®ãã¯ãã«ã«ãã¬ãã¥ãŒãçªç¶ãªãªãŒã¹ããããã®çµæããã«ããã©ãããã©ãŒã ãžã®èšèªã®åãã«é¢ããAndrei abreslav Breslavã®èšèã¯ããã®æ¹åãžã®æ°ããªå ·äœçãªã¹ãããã§åŒ·åãããŸããã ããŒã«ãèŠæž¡ããŠã¿ããšãã¢ã³ãã¬ã€ã¯ãããããCã«åã蟌ãŸããããã®ãããããããããšã«æ°ä»ããŸãããããã¯ããã€ãã£ããœãªã¥ãŒã·ã§ã³ã®æœåšçãªåžå Žãæå³ããŸãã ãããŠãèŽè¡ããWebAssemblyã®ãµããŒãã®å¯èœæ§ã«ã€ããŠå°ããããããã«å¿ããŠBreslavã¯ãçŸåšã®wasmã®ç¶æ ããã³ã«ãŒãšæ¯èŒããŸããããããããæãåºãããšã¯ã§ããŸããã
äžè¬ã«ãJPointãšJBreakã¯ã以åã®äŒè°ã§éåžžã®ãèããæ¬ ããŠããŸããã ãããããããã®ããã°ã©ã ã®äžã§ã決ããŠäŸ¿å©ã«ãªãããšã¯ãªããããããªãããæ°žé ã«èšæ¶ããããŠããŒã¯ãªãã®ã¯ãããŸãããïŒ ãããããJPointã®èŠèŽè ã«ãšã£ãŠãã²ãŒã çè«ã«é¢ããæ°åŠã®æ®åè ã§ããAlexei Savvateevã®åºèª¿è¬æŒã¯ãã®ãããªãã®ã«ãªããŸããã
JUG.ruã«ã³ãã¡ã¬ã³ã¹ã§ã¯ãåºèª¿è¬æŒã¯ãã°ãã°ã¡ã€ã³ãããã¯ããããé¢ããŠããããè³ãåãæ¿ãããããšãå¯èœã«ããŸãïŒããšãã°ãéå»ã«JPointã§è©±ãããæåãªåç©ãããªããã°ã§ããEvgenia Timonova ïŒã ãããããã®å Žåãèå³æ·±ããäžéããªãã·ã§ã³ãåŸãããŸãããSavvateevã®è¬çŸ©ã®ããŒãã¯Javaã«ã¯åœãŠã¯ãŸããŸããããå€ãã®ãžã£ãã¹ãã«è¿ã-ãããŸã§ïŒ
ãã®çµæãããªãããŒãªã«ãŒã«ã䜿çšããŠéåã«å¯ŸåŠããæ¹æ³ã®äŸãéåžžã«èå³ãæã£ãŠèããŸããã ããšãã°ããè³briã¯åœŒå¥³ã«ãšã£ãŠçœ°éããã倧ãããããããªãããšããç¶æ³ã§ãã£ãŠããäžèŠãããšãããæ€æ»å®ã«ãšã£ãŠããã»ã©æããã«ãªã£ãŠããŸããã å°åæã倧ããªè³besã®ã¿ã§è¡ãããå°åæããã¬ãŒããŒã®äžãéãæããããšå ±åããå Žåã2çªç®ã®ãªãã·ã§ã³ã¯ãè³takeãåãåã人ã«ãšã£ãŠããé åçã§ããããšãå€æããè³sizeã®ãµã€ãºãå°ãããªãããšããããŸãã
ããã¯ç§ãã¡ã®ãã¹ãŠã§ã-ããããç§ãã¡ã®ã»ãã«ãåå è ãã¢ã¯ãã£ãã§ããããšãå€æããèªåèªèº«ãããããæžããŸããïŒ
- JPoint 2017ã1æ¥ç®
- JPoint 2017ã2æ¥ç®
- jpointã®ç±ã远跡ã Nã®ããŒã0ïŒå§ãŸãã
- jpointã®ç±ã远跡ã Nã®ããŒã1ïŒå®ŽäŒãšãã®ç¶ç¶ã
- ããã©ãŒãã³ã¹ã¯äŒæ¥ã§ã ïŒHabrapost vladimir_dolzhenkoïŒ
ãããŠæåŸã«-åçããã«ãã»ãµãã°ã«ã¹ããŒããµããµããããã€ã¯ããªã§ãŸããïŒ