<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Блог Сергея Копылова: заметки с тегом работает без тебя</title>
<link>https://www.blog.sergeykopylov.ru/tags/rabotaet-bez-tebya/</link>
<description>Блог Сергея Копылова</description>
<author>Сергей Копылов</author>
<language>ru</language>
<generator>E2 (v3559; Aegea)</generator>

<itunes:owner>
<itunes:name>Сергей Копылов</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Блог Сергея Копылова</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Хорошо, когда работа идёт без тебя, часть 2</title>
<guid isPermaLink="false">77</guid>
<link>https://www.blog.sergeykopylov.ru/all/horosho-kogda-rabota-idyot-bez-tebya-chast-2/</link>
<pubDate>Sun, 22 Mar 2020 12:38:37 +0300</pubDate>
<author>Сергей Копылов</author>
<comments>https://www.blog.sergeykopylov.ru/all/horosho-kogda-rabota-idyot-bez-tebya-chast-2/</comments>
<description>
&lt;p&gt;Когда я собрался увольняться из компании, в которой вёл большой проект со стороны интерфейса, к нам пришёл молодой разработчик сразу после университета. Он не знал конкретных библиотек, которые мы использовали.&lt;/p&gt;
&lt;p&gt;За этот месяц я рассказал ему, что необходимо, и он довольно быстро включился в процесс. По прошествии нескольких месяцев, бывшие коллеги рассказали мне, что так получилось, что сейчас он единственный поддерживает разработку интерфейса этого большого проекта. И что разработка идёт вполне себе устраивающими темпами.&lt;/p&gt;
&lt;p&gt;У него есть мои контакты, но он ни разу мне не писал. Конечно, он может спросить что-то у коллег, но и они говорят, что он не так часто это делает.&lt;/p&gt;
&lt;p&gt;И это комплимент для меня. Если большую систему с сотнями представлений и страниц можно успешно поддерживать не имея большого опыта, то это значит, что та архитектура, те принципы, которые были использованы были правильными.&lt;/p&gt;
</description>
</item>

<item>
<title>Хорошо, когда работа идёт без тебя, часть 1</title>
<guid isPermaLink="false">72</guid>
<link>https://www.blog.sergeykopylov.ru/all/rabota-bez-tebya-1/</link>
<pubDate>Sun, 22 Mar 2020 12:25:05 +0300</pubDate>
<author>Сергей Копылов</author>
<comments>https://www.blog.sergeykopylov.ru/all/rabota-bez-tebya-1/</comments>
<description>
&lt;p&gt;Однажды ко мне пришёл менеджер и сказал, что нужно сделать развёрнутую систему прав. Я был ведущим разработчиком на проекте, у меня оставалось два дня до отпуска, а систему прав нужно было выпускать через 2 недели, когда я ещё буду в отпуске.&lt;/p&gt;
&lt;p&gt;Я задумался. К тому времени у нас была очень простая система прав. У нас было что-то вроде 7 разделов и если кто-то имел доступ к разделу, то мог делать в нём всё. Теперь требовалось сделать так, чтобы для разных пользователей были доступны или нет конкретные действия и кнопки: просмотра, редактирования, удаления.&lt;/p&gt;
&lt;p&gt;Но были и плюсы:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;мы уже обсуждали будущую необходимость появления системы прав с бекэндером и он знал, как это можно сделать;&lt;/li&gt;
&lt;li&gt;мы никогда не опирались на то, что фронтенд сам что-то контролирует, поэтому запрет редактирования заключался не в скрытии кнопочки, а в том, что и по API редактирование не будет доступно;&lt;/li&gt;
&lt;li&gt;у нас были конфигурации каждой страницы. Страницы были описаниями какие данные где взять и как их отобразить, а не вёрсткой каждой страницы отдельно;&lt;/li&gt;
&lt;li&gt;в начале проекта я настоял на том, чтобы каждая страница отображала одну сущность, или один набор сущностей. К примеру, кнопка удаления была только на странице редактирования документа, а не где-то ещё. Запретив переход на эту страницу мы автоматически запрещали и редактирование, и удаление. Сделал я это исходя из удобства пользователю, но оказалось, что это удобно и нам.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Я написал за несколько часов заглушку бибилиотеки, проверяющей права. Договорился с бекэндером о том, в каком формате он будет присылать список прав для каждого пользователя. И рассказал своей команде, что именно нужно делать для того, чтобы всё заработало.&lt;/p&gt;
&lt;p&gt;И пошёл в отпуск.&lt;/p&gt;
&lt;p&gt;Когда я вернулся, система была готова и выпущена, в отпуске меня никто не тревожил, а ребята смогли придумать пару вещей, о которых я не успел подумать до отпуска, но которые несколько улучшили систему.&lt;/p&gt;
&lt;p&gt;Я обрадовался. Если ребята могут это сделать без меня, то значит, что код, который я написал понятен, подход, который я предложил тоже, подготовка ребят достаточная, а я могу не тратить время на такие задачи и переходить на ещё более сложные.&lt;/p&gt;
&lt;p&gt;А вот если бы мне каждый день звонили в отпуске, то это бы значило не то, что ребята не знают границ, а то, что я недостаточно хорошо объяснил и подготовил работу.&lt;/p&gt;
</description>
</item>


</channel>
</rss>