рд╣реИрдмреНрд░рд╛рд╕реНрдЯреЗрдЯрд┐рд╕реНрдЯрд┐рдХреНрд╕: рд╣реИрдмрд░ рдЧреАрдХрдЯрд╛рдЗрдореНрд╕ рдХреЗ рдмрд┐рдирд╛ рдХреИрд╕реЗ рд░рд╣рддрд╛ рд╣реИ

рд╣реЗ рд╣рдмрд░ред

рдпрд╣ рд▓реЗрдЦ рд░реЗрдЯрд┐рдВрдЧ рдХреА рддрд╛рд░реНрдХрд┐рдХ рдирд┐рд░рдВрддрд░рддрд╛ рд╣реИ 2018 рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╣реИрдмрд░ рд▓реЗрдЦ. рдФрд░ рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╕рд╛рд▓ рдЕрднреА рдЦрд╝рддреНрдо рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ рдирд┐рдпрдореЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реБрдП рдереЗ, рддрджрдиреБрд╕рд╛рд░, рдпрд╣ рджреЗрдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдХреБрдЫ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдЖред

рд╣реИрдмреНрд░рд╛рд╕реНрдЯреЗрдЯрд┐рд╕реНрдЯрд┐рдХреНрд╕: рд╣реИрдмрд░ рдЧреАрдХрдЯрд╛рдЗрдореНрд╕ рдХреЗ рдмрд┐рдирд╛ рдХреИрд╕реЗ рд░рд╣рддрд╛ рд╣реИ

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рдЕрджреНрдпрддрди рд░реЗрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдПрдЧреА, рд╕рд╛рде рд╣реА рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реНрд░реЛрдд рдХреЛрдб рднреА рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдЗрд╕рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЬреЛ рд▓реЛрдЧ рдЗрд╕рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖ, рдЙрдирдХреЗ рд▓рд┐рдП рдирд┐рд░рдВрддрд░рддрд╛ рдореЗрдВ рдХрдЯреМрддреА рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред рдЬреЛ рд▓реЛрдЧ рд╕рд╛рдЗрдЯ рдХреЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рд╡реЗ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдЧрд▓рд╛ рднрд╛рдЧ.

рдХрдЪреНрдЪрд╛ рдбреЗрдЯрд╛

рдпрд╣ рд░реЗрдЯрд┐рдВрдЧ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рд╣реИ, рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдЕрдВрджрд░реВрдиреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдПрдбреНрд░реЗрд╕ рдмрд╛рд░ рдХреЛ рджреЗрдЦрдХрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣реИрдмреЗ рдкрд░ рд╕рднреА рд▓реЗрдЦреЛрдВ рдореЗрдВ рдирд┐рд░рдВрддрд░ рдХреНрд░рдорд╛рдВрдХрди рд╣реЛрддрд╛ рд╣реИред рдлрд┐рд░ рдпрд╣ рддрдХрдиреАрдХ рдХреА рдмрд╛рдд рд╣реИ, рд╣рдо рдмрд╕ рд╕рднреА рд▓реЗрдЦреЛрдВ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдЪрдХреНрд░ рдореЗрдВ рдкрдврд╝рддреЗ рд╣реИрдВ (рдПрдХ рдереНрд░реЗрдб рдореЗрдВ рдФрд░ рд░реБрдХ-рд░реБрдХ рдХрд░, рддрд╛рдХрд┐ рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЛрдб рди рд╣реЛ)ред рдорд╛рди рд╕реНрд╡рдпрдВ рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рд░реНрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗ (рд╕реНрд░реЛрдд рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдпрд╣рд╛рдВ) рдФрд░ рдПрдХ рд╕реАрдПрд╕рд╡реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛:

2019-08-11T22:36Z,https://habr.com/ru/post/463197/,"Blazor + MVVM = Silverlight ╨╜╨░╨╜╨╛╤Б╨╕╤В ╨╛╤В╨▓╨╡╤В╨╜╤Л╨╣ ╤Г╨┤╨░╤А, ╨┐╨╛╤В╨╛╨╝╤Г ╤З╤В╨╛ ╨┤╤А╨╡╨▓╨╜╨╡╨╡ ╨╖╨╗╨╛ ╨╜╨╡╨┐╨╛╨▒╨╡╨┤╨╕╨╝╨╛",votes:11,votesplus:17,votesmin:6,bookmarks:40,views:5300,comments:73
2019-08-11T05:26Z,https://habr.com/ru/news/t/463199/,"╨Т NASA ╨╕╤Б╨┐╤Л╤В╨░╨╗╨╕ ╤Б╨╕╤Б╤В╨╡╨╝╤Г ╨░╨▓╤В╨╛╨╜╨╛╨╝╨╜╨╛╨│╨╛ ╤Г╨┐╤А╨░╨▓╨╗╨╡╨╜╨╕╤П ╨╛╨┤╨╜╨╛╨│╨╛ ╨╝╨╕╨║╤А╨╛╤Б╨┐╤Г╤В╨╜╨╕╨║╨░ ╨┤╤А╤Г╨│╨╕╨╝",votes:15,votesplus:15,votesmin:0,bookmarks:2,views:1700,comments:7

рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг

рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣рдо Python, Pandas рдФрд░ Matplotlib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЬреЛ рд▓реЛрдЧ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ рд╡реЗ рдЗрд╕ рднрд╛рдЧ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реАрдзреЗ рд▓реЗрдЦреЛрдВ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рд╡рд░реНрд╖ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

import pandas as pd
import datetime
import matplotlib.dates as mdates
from matplotlib.ticker import FormatStrFormatter
from pandas.plotting import register_matplotlib_converters


df = pd.read_csv("habr.csv", sep=',', encoding='utf-8', error_bad_lines=True, quotechar='"', comment='#')
dates = pd.to_datetime(df['datetime'], format='%Y-%m-%dT%H:%MZ')
df['datetime'] = dates
year = 2019
df = df[(df['datetime'] >= pd.Timestamp(datetime.date(year, 1, 1))) & (df['datetime'] < pd.Timestamp(datetime.date(year+1, 1, 1)))]

print(df.shape)

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд░реНрд╖ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдЕрднреА рддрдХ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ) рд▓реЗрдЦрди рдХреЗ рд╕рдордп, 12715 рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдкреВрд░реЗ 2018 рдХреЗ рд▓рд┐рдП - 15904ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмрд╣реБрдд рдХреБрдЫ - рдпрд╣ рдкреНрд░рддрд┐ рджрд┐рди рд▓рдЧрднрдЧ 43 рд▓реЗрдЦ рд╣реИ (рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╣реИ; рдХреБрд▓ рдХрд┐рддрдиреЗ рд▓реЗрдЦ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реЛ рдЧрдП рдпрд╛ рд╣рдЯрд╛ рджрд┐рдП рдЧрдП, рдХреЛрдИ рдХреЗрд╡рд▓ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ) рдпрд╛ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдПрдВ)ред

рдЖрдЗрдП рдбреЗрдЯрд╛рд╕реЗрдЯ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рджреГрд╢реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рд░реЗрдЯрд┐рдВрдЧ рдореВрд▓реНрдпреЛрдВ рдФрд░ рдмреБрдХрдорд╛рд░реНрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

def to_float(s):
    # "bookmarks:22" => 22.0
    num = ''.join(i for i in s if i.isdigit())
    return float(num)

def to_int(s):
    # "bookmarks:22" => 22
    num = ''.join(i for i in s if i.isdigit())
    return int(num)

def to_date(dt):
    return dt.date() 

date = dates.map(to_date, na_action=None)
views = df["views"].map(to_int, na_action=None)
bookmarks = df["bookmarks"].map(to_int, na_action=None)
votes = df["votes"].map(to_float, na_action=None)
votes_up = df["up"].map(to_float, na_action=None)
votes_down = df["down"].map(to_float, na_action=None)
comments = df["comments"].map(to_int, na_action=None)

df['date'] = date
df['views'] = views
df['votes'] = votes
df['bookmarks'] = bookmarks
df['up'] = votes_up
df['down'] = votes_down

рдЕрдм рдбреЗрдЯрд╛ рдХреЛ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдбреЗрдЯрд╛ рдХреЛ рджрд┐рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдореВрд╣рд┐рдд рдХрд░реЗрдВ рдФрд░ рдФрд╕рдд рдорд╛рди рд▓реЗрдВред

g = df.groupby(['date'])
days_count = g.size().reset_index(name='counts')
year_days = days_count['date'].values
grouped = g.median().reset_index()
grouped['counts'] = days_count['counts']
counts_per_day = grouped['counts'].values
counts_per_day_avg = grouped['counts'].rolling(window=20).mean()
view_per_day = grouped['views'].values
view_per_day_avg = grouped['views'].rolling(window=20).mean()
votes_per_day = grouped['votes'].values
votes_per_day_avg = grouped['votes'].rolling(window=20).mean()
bookmarks_per_day = grouped['bookmarks'].values
bookmarks_per_day_avg = grouped['bookmarks'].rolling(window=20).mean()

рдЕрдм рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЧреНрд░рд╛рдлрд╝ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдЗрдП 2019 рдореЗрдВ рд╣реИрдмреЗ рдкрд░ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЗрдЦреЗрдВред

import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = (16, 8)
fig, ax = plt.subplots()

plt.bar(year_days, counts_per_day, label='Articles/day')
plt.plot(year_days, counts_per_day_avg, 'g-', label='Articles avg/day')
plt.xticks(rotation=45)
ax.xaxis.set_major_formatter(mdates.DateFormatter("%d-%m-%Y"))  
ax.xaxis.set_major_locator(mdates.MonthLocator(interval=1))
plt.legend(loc='best')
plt.tight_layout()
plt.show()

рдирддреАрдЬрд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ. рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣реИрдмрд░ рдкреВрд░реЗ рд╡рд░реНрд╖ рдереЛрдбрд╝рд╛ "рд╕реЙрд╕реЗрдЬ" рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рдкрддрд╛.

рд╣реИрдмреНрд░рд╛рд╕реНрдЯреЗрдЯрд┐рд╕реНрдЯрд┐рдХреНрд╕: рд╣реИрдмрд░ рдЧреАрдХрдЯрд╛рдЗрдореНрд╕ рдХреЗ рдмрд┐рдирд╛ рдХреИрд╕реЗ рд░рд╣рддрд╛ рд╣реИ

рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, 2018 рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд▓рдЧ рд░рд╣рд╛ рд╣реИ:

рд╣реИрдмреНрд░рд╛рд╕реНрдЯреЗрдЯрд┐рд╕реНрдЯрд┐рдХреНрд╕: рд╣реИрдмрд░ рдЧреАрдХрдЯрд╛рдЗрдореНрд╕ рдХреЗ рдмрд┐рдирд╛ рдХреИрд╕реЗ рд░рд╣рддрд╛ рд╣реИ

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВрдиреЗ рдЧреНрд░рд╛рдлрд╝ рдкрд░ 2019 рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд▓реЗрдЦреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЛрдИ рднрд╛рд░реА рдХрдореА рдирд╣реАрдВ рджреЗрдЦреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧрд░реНрдорд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж рд╕реЗ рдЗрд╕рдореЗрдВ рдереЛрдбрд╝реА рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЧрд▓реЗ рджреЛ рдЧреНрд░рд╛рдлрд╝ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдФрд░ рдирд┐рд░рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВред

рдкреНрд░рддрд┐ рд▓реЗрдЦ рджреЗрдЦреЗ рдЬрд╛рдиреЗ рдХреА рдФрд╕рдд рд╕рдВрдЦреНрдпрд╛:

рд╣реИрдмреНрд░рд╛рд╕реНрдЯреЗрдЯрд┐рд╕реНрдЯрд┐рдХреНрд╕: рд╣реИрдмрд░ рдЧреАрдХрдЯрд╛рдЗрдореНрд╕ рдХреЗ рдмрд┐рдирд╛ рдХреИрд╕реЗ рд░рд╣рддрд╛ рд╣реИ

рдкреНрд░рддрд┐ рд▓реЗрдЦ рдФрд╕рдд рд░реЗрдЯрд┐рдВрдЧ:

рд╣реИрдмреНрд░рд╛рд╕реНрдЯреЗрдЯрд┐рд╕реНрдЯрд┐рдХреНрд╕: рд╣реИрдмрд░ рдЧреАрдХрдЯрд╛рдЗрдореНрд╕ рдХреЗ рдмрд┐рдирд╛ рдХреИрд╕реЗ рд░рд╣рддрд╛ рд╣реИ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреВрд░реЗ рд╡рд░реНрд╖ рдореЗрдВ рджреГрд╢реНрдпреЛрдВ рдХреА рдФрд╕рдд рд╕рдВрдЦреНрдпрд╛ рдереЛрдбрд╝реА рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕реЗ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдирдП рд▓реЗрдЦреЛрдВ рдХреЛ рдЕрднреА рддрдХ рдЦреЛрдЬ рдЗрдВрдЬрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╡реЗ рдЗрддрдиреА рдмрд╛рд░ рдирд╣реАрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐ рдЖрд▓реЗрдЦ рдФрд╕рдд рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдЕрдзрд┐рдХ рд╕рдордЭ рд╕реЗ рдкрд░реЗ рд╣реИред рднрд╛рд╡рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╛рдардХреЛрдВ рдХреЗ рдкрд╛рд╕ рдпрд╛ рддреЛ рдЗрддрдиреЗ рд╕рд╛рд░реЗ рд▓реЗрдЦреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ рдпрд╛ рд╡реЗ рд░реЗрдЯрд┐рдВрдЧ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рд▓реЗрдЦрдХ рдкреБрд░рд╕реНрдХрд╛рд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рджреГрд╖реНрдЯрд┐ рд╕реЗ рдпрд╣ рдкреНрд░рд╡реГрддреНрддрд┐ рдЕрддреНрдпрдВрдд рдЕрдкреНрд░рд┐рдп рд╣реИред

рд╡реИрд╕реЗ 2018 рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реБрдЖ рдФрд░ рд╢реЗрдбреНрдпреВрд▓ рднреА рдХрдореЛрдмреЗрд╢ рдмрд░рд╛рдмрд░ рд╣реА рд╣реИ.

рд╣реИрдмреНрд░рд╛рд╕реНрдЯреЗрдЯрд┐рд╕реНрдЯрд┐рдХреНрд╕: рд╣реИрдмрд░ рдЧреАрдХрдЯрд╛рдЗрдореНрд╕ рдХреЗ рдмрд┐рдирд╛ рдХреИрд╕реЗ рд░рд╣рддрд╛ рд╣реИ

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдВрд╕рд╛рдзрди рдорд╛рд▓рд┐рдХреЛрдВ рдХреЗ рдкрд╛рд╕ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЖрдЗрдП рджреБрдЦрдж рдмрд╛рддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рди рдХрд░реЗрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣реИрдмрд░ рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ "рдмрдЪ рдЧрдпрд╛" рдХрд╛рдлреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрджрд▓ рдЧрдпрд╛, рдФрд░ рд╕рд╛рдЗрдЯ рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрдореА рдирд╣реАрдВ рдЖрдИред

рд░реЗрдЯрд┐рдВрдЧ

рдЕрдм, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд░реЗрдЯрд┐рдВрдЧред рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдмрдзрд╛рдИ. рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рд░реЗрдЯрд┐рдВрдЧ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рд╣реИ, рд╢рд╛рдпрдж рдореБрдЭрд╕реЗ рдХреБрдЫ рдЫреВрдЯ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд░ рдХреЛрдИ рд▓реЗрдЦ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд▓рд┐рдЦреЗрдВ, рдореИрдВ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛ред рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдкрд░рд┐рдХрд▓рд┐рдд рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╛рдмрд┐рдд рд╣реБрдЖред

рджреЗрдЦреЗ рдЬрд╛рдиреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢реАрд░реНрд╖ рд▓реЗрдЦ

рд░реЗрдЯрд┐рдВрдЧ рдФрд░ рд╡реНрдпреВрдЬ рдЕрдиреБрдкрд╛рдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢реАрд░реНрд╖ рд▓реЗрдЦ

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢реАрд░реНрд╖ рд▓реЗрдЦ

рд╢реАрд░реНрд╖ рд╕рд░реНрд╡рд╛рдзрд┐рдХ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд▓реЗрдЦ

рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╢реАрд░реНрд╖ рд▓реЗрдЦ

рдмреБрдХрдорд╛рд░реНрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢реАрд░реНрд╖ рд▓реЗрдЦ

рдмреБрдХрдорд╛рд░реНрдХ рдФрд░ рджреГрд╢реНрдпреЛрдВ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╢реАрд░реНрд╖ рдкрд░

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢реАрд░реНрд╖ рд▓реЗрдЦ

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЖрдЦрд┐рд░реА рд╡рд╛рд▓рд╛ рдирд╛рдкрд╕рдВрджреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рдПрдВрдЯреАрдЯреЙрдк

рдЙрд╣. рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдЪрдпрди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдкрд╛рдардХреЛрдВ рдХреЛ рдмреЛрд░ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред

рдирд┐рд╖реНрдХрд░реНрд╖

рд░реЗрдЯрд┐рдВрдЧ рдмрдирд╛рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬреЛ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧреЗред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╢реАрд░реНрд╖ рдХреЗ 60% рд▓реЗрдЦ "рдЧреАрдХрдЯрд╛рдЗрдореНрд╕" рд╢реИрд▓реА рдХреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЕрдЧрд▓реЗ рд╕рд╛рд▓ рдЙрдирдореЗрдВ рд╕реЗ рдХрдо рд╣реЛрдВрдЧреЗ, рдФрд░ рдмрд┐рдпрд░, рдЕрдВрддрд░рд┐рдХреНрд╖, рджрд╡рд╛ рдЗрддреНрдпрд╛рджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╣реИрдмрд░ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкрд╛рдардХ рдХреБрдЫ рди рдХреБрдЫ рдЦреЛ рджреЗрдВрдЧреЗред рдЪрд▓реЛ рджреЗрдЦрддреЗ рд╣реИрдВред

рджреВрд╕рд░реЗ, рд╢реАрд░реНрд╖ рдмреБрдХрдорд╛рд░реНрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдирд┐рдХрд▓реЗред рдпрд╣ рдордиреЛрд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд░реВрдк рд╕реЗ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реИ; рдкрд╛рдардХ рд╢рд╛рдпрдж рд░реЗрдЯрд┐рдВрдЧ рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рд▓реЗрдЦ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЖрдкрдХреЗ рдмреБрдХрдорд╛рд░реНрдХ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдпрд╣рд╛рдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдФрд░ рдЧрдВрднреАрд░ рд▓реЗрдЦреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд╕рдВрдХреЗрдиреНрджреНрд░рдг рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдЗрдЯ рдорд╛рд▓рд┐рдХреЛрдВ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдмреБрдХрдорд╛рд░реНрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкреБрд░рд╕реНрдХрд╛рд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдЧрд░ рд╡реЗ рдпрд╣рд╛рдВ рд╣реИрдмреЗ рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╢реНрд░реЗрдгреА рдХреЛ рдмрдврд╝рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдХреБрдЫ рдЗрд╕ рддрд░рд╣ред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рдерд╛.

рд▓реЗрдЦреЛрдВ рдХреА рд╕реВрдЪреА рд▓рдВрдмреА рд╣реЛ рдЧрдИ, рдЦреИрд░, рдпрд╣ рд╢рд╛рдпрдж рдмреЗрд╣рддрд░реА рдХреЗ рд▓рд┐рдП рд╣реИред рд╕рднреА рдХреЛ рдкрдврд╝рдХрд░ рдЦреБрд╢реА рд╣реБрдИ.

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ