tag:blogger.com,1999:blog-51537414676629815322024-02-08T05:27:43.827+03:00Матрица информационных технологийПрограммирование, философия, новости IT-индустрииAndrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.comBlogger73125tag:blogger.com,1999:blog-5153741467662981532.post-72744642003460979192023-11-27T18:47:00.002+03:002023-11-27T18:51:48.982+03:00Что вам разрешено делать<p>Вставил сюда этот перевод, поскольку показался интересным.</p><p><a href="https://sashachapin.substack.com/p/making-normal-conversations-better"><span style="color: #394548; font-family: "palatino linotype", "book antiqua", Palatino, serif; font-size: inherit;">Это список вещей, которые вам разрешено делать, но которые, как вы думали, вам не по силам, или о которых вы даже не подозревали.</span></a></p><p style="box-sizing: border-box; color: #394548; font-family: "palatino linotype", "book antiqua", Palatino, serif; font-size: 16px; margin: 16px 0px;"><ya-tr-span data-ch="0" data-index="3-0" data-selected="false" data-source-lang="en" data-target-lang="ru" data-translated="true" data-translation="Я не перепробовал все из этого списка, в основном из-за стоимости. " data-type="trSpan" data-value="I haven’t tried everything on this list, mainly due to cost. " style="box-sizing: border-box; font-size: inherit;">Я не перепробовал все из этого списка, в основном из-за стоимости. </ya-tr-span><ya-tr-span data-ch="0" data-index="3-1" data-source-lang="en" data-target-lang="ru" data-translated="true" data-translation="Но вы были бы удивлены, насколько дешево большинство вещей из этого списка (особенно бесплатных)." data-type="trSpan" data-value="But you’d be surprised how cheap most of the things on this list are (especially the free ones)." style="box-sizing: border-box; font-size: inherit;">Но вы были бы удивлены, насколько дешево большинство вещей из этого списка (особенно бесплатных).</ya-tr-span></p><p style="box-sizing: border-box; color: #394548; font-family: "palatino linotype", "book antiqua", Palatino, serif; font-size: 16px; margin: 16px 0px;"><strong style="box-sizing: border-box;">Обратите внимание, что вы можете заменить “нанять” или “купить” на “обменять на” или “найти руководство по изготовлению своими руками” почти везде ниже.</strong><ya-tr-span data-ch="0" data-index="4-0" data-selected="false" data-source-lang="en" data-target-lang="ru" data-translated="true" data-translation=" Например, вы можете убрать ванную в обмен на то, что ваш сосед по дому проведет пару часов за вас." data-type="trSpan" data-value=" E.g. you can clean the bathroom in exchange for your housemate doing a couple hours research for you." style="box-sizing: border-box; font-size: inherit;"> Например, вы можете убрать ванную в обмен на то, что ваш сосед по дому проведет пару часов за вас.<span></span></ya-tr-span></p><p style="box-sizing: border-box; color: #394548; font-family: "palatino linotype", "book antiqua", Palatino, serif; font-size: 16px; margin: 16px 0px;"><ya-tr-span data-ch="0" data-index="4-0" data-selected="false" data-source-lang="en" data-target-lang="ru" data-translated="true" data-translation=" Например, вы можете убрать ванную в обмен на то, что ваш сосед по дому проведет пару часов за вас." data-type="trSpan" data-value=" E.g. you can clean the bathroom in exchange for your housemate doing a couple hours research for you." style="box-sizing: border-box; font-size: inherit;"></ya-tr-span></p><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtLBw1Le4VhAYdozfeza1nVt6iNkYeh3K4N40aXbFZXkeG7xPR9_blKI5OXO4Qpa-zUzKdoQEiECtb92xjUrfN6PKer3cPqlM0gkLgFRraFxb0pXEVwFHCQ9nJ9YYaljQJ4kpXZzFtvkyLDOgoXn0N76CBNKMa3U-0o09QRsU8ca6f9JApooe3H7Y77Jk/s751/browser_GQXaa6NTnU.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="559" data-original-width="751" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtLBw1Le4VhAYdozfeza1nVt6iNkYeh3K4N40aXbFZXkeG7xPR9_blKI5OXO4Qpa-zUzKdoQEiECtb92xjUrfN6PKer3cPqlM0gkLgFRraFxb0pXEVwFHCQ9nJ9YYaljQJ4kpXZzFtvkyLDOgoXn0N76CBNKMa3U-0o09QRsU8ca6f9JApooe3H7Y77Jk/s320/browser_GQXaa6NTnU.png" width="320"></a></div></div></div><br><p></p><a href="http://trurl123.blogspot.com/2023/11/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-47657889911453885302023-03-03T13:56:00.004+03:002023-03-03T13:56:50.771+03:00На работе все идет не так, я страдаю, что делать?<p>Иногда ребята в команде делятся наболевшим. Тупят клиенты, контролирующие органы выпускают кривые обновления, коллеги из других команд хотят переложить на тебя ответственность, бизнес-логика слишком сложная. Все это больно, хочется поделиться, снижается мотивация. При этом не хочется, чтобы твоя команда страдала и демотивировалась.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh9O62BJvTma_b9ccSJ0-RJjxfaZ-rHHjyE5VvbKLKnorKdbAG6c1XacEqLI1kaixmu0gYde7aP1SjeUrE7EPGOlvUvOjIGtStSvgVkE6GZpu60xf08fqbACY7DxNVrnM0IkUKrGHnUgO0NpvcyZ_ysnAocOloeATpc_1CxlNy6zQiKBX3aM1OzIoJA" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1101" data-original-width="1200" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEh9O62BJvTma_b9ccSJ0-RJjxfaZ-rHHjyE5VvbKLKnorKdbAG6c1XacEqLI1kaixmu0gYde7aP1SjeUrE7EPGOlvUvOjIGtStSvgVkE6GZpu60xf08fqbACY7DxNVrnM0IkUKrGHnUgO0NpvcyZ_ysnAocOloeATpc_1CxlNy6zQiKBX3aM1OzIoJA" width="262"></a></div><p></p><p><span></span></p><a href="http://trurl123.blogspot.com/2023/03/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-59277707623374624922022-08-12T22:32:00.004+03:002022-08-12T22:38:37.873+03:00 Что изменилось за последние 10 лет в Контуре?<div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhvZNa7dGn5ktpgZoGlUtE75cdiBkgrEGvC2bALd0AXAITWTXGCUbdJNk9AgNxTy9gAQU7K4-NiKYF4ek9IprCEqmcTvpBUwJRAL1QYLCnRSQM9_6N3lheL4XoCd-8MS59X7TKvtTzoqL4v4gmhoPG3JeEjoxTXK2PRS99lvOW1ypSm8uw9KcGS9vhw" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="674" data-original-width="1200" height="180" src="https://blogger.googleusercontent.com/img/a/AVvXsEhvZNa7dGn5ktpgZoGlUtE75cdiBkgrEGvC2bALd0AXAITWTXGCUbdJNk9AgNxTy9gAQU7K4-NiKYF4ek9IprCEqmcTvpBUwJRAL1QYLCnRSQM9_6N3lheL4XoCd-8MS59X7TKvtTzoqL4v4gmhoPG3JeEjoxTXK2PRS99lvOW1ypSm8uw9KcGS9vhw" width="320" /></a></div><br /><br /></div></div></div>Уже почти 10 лет работаю в компании СКБ Контур и изменения произошли грандиозные. Попробую перечислить то, что вспомню. Перечисленные факты есть в публичных источниках, так что не раскрою коммерческой тайны. Также предупрежу, что данный текст не является официальным сообщением от лица компании. Итак, поехали.<p></p><p>- Размер компании вырос с 2 тыс до 10 тыс.</p><p>- Основным языком программирования был C#, но сейчас уже есть целые отделы, которые пишут на Java, Python, Go.</p><p>- Открылось направление Data Science для решения задач анализа больших даных, распознавания изображений и звука, предсказания поведения.</p><p>- Многие внутренние проекты выводим на внешний рынок. Например, https://kontur.ru/talk</p><p>- Освоили различные сервисы и базы данных. Например, ElasticSearch, PostgreSQL, MongoDB, Cassandra, Kafka, Redis, Rabbit, Graphite, ClickHouse, Redash. По некоторым сервисам есть централизованная техподдержка, позволяющая быстро внедрять их в проекты.</p><p>- Создание стартапов внутри компании поставлено на поток. Создано множество успешных продуктов внутри компании.</p><p>- Открыты новые офисы разработки в городах: Ростов На Дону, Казань, Иннополис, Пермь, Питер, Самара, </p><p>- Научились работать с удаленными сотрудниками. Есть сотрудники, работающие в других странах. </p><p>- Внутренние сервисы развиты на высоте. Есть своя мощная система деплоя и орекстрации. Системно решены проблемы сбора метрик по сервисам, логгирования, трассировок запросов.</p><p>- Разработана система грейдов для сотрудников, чтобы системно принимать решение о назначении зарплаты.</p><div>- Создана своя система UI-котролов для быстрого внедрения единого дизайна в продукты.</div>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-85064573461947524122021-01-06T13:57:00.000+03:002021-01-06T13:57:23.918+03:00За что платить деньги программистам?<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis6BC45iYZoouox6-fRxGM7GCeomrEIoK04-zFAacjLGtc8XcWJniNVzLWlNWomL_6GtNNMMI2Tg5OC3RZnx1vPDQAdNkMDL04c0G5_NpIlTR47cRQp4j2veNRRwEagOKJMWPQUFoMh0Q/" style="margin-left: 1em; margin-right: 1em;"><img data-original-height="720" data-original-width="1280" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis6BC45iYZoouox6-fRxGM7GCeomrEIoK04-zFAacjLGtc8XcWJniNVzLWlNWomL_6GtNNMMI2Tg5OC3RZnx1vPDQAdNkMDL04c0G5_NpIlTR47cRQp4j2veNRRwEagOKJMWPQUFoMh0Q/w400-h225/image.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><span style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">Сейчас у нас в компании уже порядка 1000 человек занимаются созданием программ. И как в любой большой компании возникает вопрос как оценивать разработчиков. Кому платить больше, кому меньше? Задались этой проблемой уже давно, но процесс грейдов постоянно развивается и каждый раз руководство делится этим на разных конференциях. <a href="https://vc.ru/dev/171381-ocenka-kompetenciy-razrabotchikov-v-konture">Пример.</a> Так что не нарушу коммерческую тайну, если тоже порассуждаю в своем блоге об этом. </span><span style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">Сразу скажу, что я не являюсь официальным представителем компании и мое мнение может отличаться от официальной.</span><br style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><br style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">Хотелось бы, чтобы определять было не слишком сложно, но и при этом оценка была сравнимой. Приставил линейку к человеку и сразу понял: это мидл или ведущий. Но одной линейкой не измерить. Можно выделить две крупных линейки: техника и человек. Техника - это высокая техническая сложность, просто большой объем логики в приложении, техническая эрудированность. Люди - это умение повышать продуктивность людей, мотивировать, организовывать, вести переговоры.</span><br style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><br style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">С одной стороны кажется, что работа с людьми - это не про программистов. Зачем программиста заставлять работать с людьми, если можно за меньшие деньги нанять менеджера и он все организует. Проблема в том, что такой менеджер должен тоже должен быть частично технарем. Иначе он не сможет понять программистов, программисты не будут его слушать, смотреть как на тупого. Поэтому такие люди нужны как смазка, которая заставляет крутиться шестеренки. </span><br style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><br style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">Другая идея в грейдах - это мультипликативность. Если человек умножает свои знания через других, то такое должно бцениться больше. Ты научился делать что-то более эффективно на 5%. Ты научил 99 человек. Теперь твои проценты умножились на 100. Как будто ты научился что-то делать эффективнее не на 5%, на на 500%. Чем авторитетнее человек среди других, тем более он ценнен.</span><br style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><br style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">Если на мультипликативность смотреть еще более широко, то можно сказать: на сколько широко твое сознание. Ты осознаешь только то, что ты делаешь в конкретный момент или всё что ты делаешь, делаешь исходя из интересов целого проекта или целой компании? Ты можешь не быть ответственным лицом, но можешь работать так, чтобы приносить максимальную пользу исходя из глобальных целей.</span><br style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><br style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">Чем выше грейд программиста, тем шире у него сознание, тем меньше его я. Деньги должны даваться тем людям, которые больше отдают, причем дают это эффективно. Важно при этом отдавать не интенсивным путем, вкладывая в работу как можно больше сил, а делать более правильные вещи.</span><p></p><div><span style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">Применяя это правило широты сознания можно наложить шкалу каждую линейку и подлинейку. Чем больше крупных задач ты сделал, чем на больших людей ты повлиял - тем ты круче. Но не так все просто.</span></div><div><span style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"> </span></div><div><span style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">Получается, что не решается проблема адекватности оценки. Если ты хорошо проявил себя в одном проекте, не значит, что ты хорошо проявишь себя в другом проекте. Если оценивать знания, то знания довольно многомерны. Разные знания нужны в разных проектах. Ты можешь много знать, делать качественно, но результат работы у другого программиста может оказаться коммерчески успешнее. В целом невозможно оценить полностью адекватно. Поэтому остается полагаться на какие-то простые модели и жить не всегда честно. Так устроен наш мир.</span></div><div><span style="background-color: white; color: #202124; font-family: Roboto, Arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"><br /></span></div>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-18442091119592233532020-07-20T22:02:00.002+03:002020-07-22T09:06:39.225+03:00Высокие нагрузки для начинающих<div>Что такое высокие нагрузки? Это нагрузки, когда система, созданная на стандартных технологиях не справляется и нужно осуществлять уже не наращивание мощностей компьютера, а что-то качественно менять. Какие технологии применяются для высоких нагрузок?</div><div><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh98BIAHFzvJ_UlYMGUmXgydF59COSwE5ICvRWWw1BLTJcBtVreBUKOkdxMnnlehy-uH8LhcDJDn1YfoV-oE6G1DSZanXsJbom9IYRTS-ati8BDuapX9JLX26pB2qTrnNmDrJhyphenhyphenXODQhDw/s1600/1595272024758968-0.png" style="margin-left: 1em; margin-right: 1em;">
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh98BIAHFzvJ_UlYMGUmXgydF59COSwE5ICvRWWw1BLTJcBtVreBUKOkdxMnnlehy-uH8LhcDJDn1YfoV-oE6G1DSZanXsJbom9IYRTS-ati8BDuapX9JLX26pB2qTrnNmDrJhyphenhyphenXODQhDw/s1600/1595272024758968-0.png" width="400" />
</a>
</div><br /></div><div><br /></div><div><b>Балансировщик нагрузки</b></div><div><br /></div><div>Вот вы запускаете веб-сервис и ему нужно справляться с большим количеством запросов. И вот он в какой-то момент перестал справляться. А давайте добавим второй сервер - возникает мысль. А как запросы будут попадать на эти сервера? Есть решение - сервис Nginx, созданный давным давно русским разработчиком. Этот сервис устанавливают на отдельный сервер и он принимает от клиентов запросы и передает дальше. Есть множество других альтернатив, но Nginx стал уже стандартом де-факто и у нас в компании он используется повсеместно. Наши сервисы работают для всей России и этот маленький балансировщик прекрасно справляется. Как он распределяет запросы? Довольно распространенным подходом является Round Robin, когда для каждого нового запроса выбирается следующая реплика. Когда доходим до конца списка - начинаем сначала. При таком подходе у некоторых разработчиков возникает желание реализовать прилипание пользователей к репликам, чтобы использовать кеширование внутри реплик. Но сейчас прилипание считается плохим подходом и не рекомендуется. Nginx сейчас также используется не только для балансировки, но и просто как веб-сервер, являясь альтернативой для Apache Web Server. Долгое время для хостинга стандартным стеком был LAMP (linux-apache-mysql-php). Сейчас вместо apache многие используют nginx.</div><div><br /></div><div><b>Балансировка балансировщиков</b></div><div><br /></div><div>У вас возможно возник вопрос - но все равно же балансировщик упрется в производительность? Как работает Яндекс и Гугл? Для этих целей пользователям выдаются разные IP-адреса по одному и тому же имени. Этим уже занимаются DNS-сервера, которые определяют какой IP-адрес соответствует доменному имени. Тут также можно использовать подход RoundRobin, выдавая последовательно IP-адреса или можно основываться на географическом положении пользователя и таким образом выдавать адреса тех серверов, которые ближе географически.</div><div><br /></div><div><b>Микросервисы</b></div><div><br /></div><div>Довольно модной темой было разделение приложения на микросервисы. В чем удобство?</div><div>- Каждый сервис можно независимо развертывать (устанавливать на сервера, deploy)</div><div>- Микросервисы могут разрабатывать разные команды.</div><div>- Если микросервис ломается, то он не ломает все остальные (как правило).</div><div>- Помогает изолировать проблему потребления ресурсов. Вы сразу видите, кто потребляет CPU или память.</div><div><br /></div><div>В настоящее время появилось большое количество противников микросервисов, поскольку за всё нужно платить. </div><div>- Сетевые запросы между сервисами - дорогое удовольствие. Они замедляют вашу систему.</div><div>- Сложно находить причину аварии без каких-то дополнительных инструментов. Вы видите ошибку, но не видите полной цепочки из-за чего ломается.</div><div>- Ваше приложение может быть разделено на микросервисы, но при этом все равно иметь сильную связанность (high coupling). Некоторые считают, что на одну базу данных должен быть один микросервис и скорее всего у вас такого нет. </div><div>- Вы все равно при развертывании обновляете все свои сервисы, поскольку так проще и надежнее.</div><div>- Вы все равно разрабатываете все свои сервисы одной командой разработчиков.</div><div><br /></div><div><b>Очередь задач</b></div><div><b><br /></b></div><div>Другим подходом решения проблемы высокой нагрузки является очередь задач. Она применяется для выполнения длительных операций. Например, для конвертации картинок, шифрования, построения отчетов. Применяется, когда нет необходимости отвечать сразу же. Вы выполняете запрос на операцию, вам сервер выдает ID задачи и потом через некоторое время вы по ID проверяете, готова ли задача. Все задачи складываются в очередь и исполнители задач постепенно разгребают задачи в n потоков. Сервисы, реализующие очереди, достаточно умные и не дают одну и ту же задачу разным исполнителям (если все работает стабильно). Такой подход помогает справиться с большим потоком задач.</div><div>В нашей компании прижились сервисы RabbitMQ, Kafka и очередь сообщений собственной разработки.</div><div><br /></div><div><b>Кеширование</b></div><div><b><br /></b></div><div>Когда вы часто обращаетесь к одним и тем же данным, стоит их сохранять в памяти. Но мы помним, что реплика сервера может оказаться где угодно, каждый новый запрос не привязывается к одной и той же реплике и локально в памяти реплики может получится не эффективно сохранять, поскольку мало вероятно, что сохраненное значение будет востребовано. Распространенной практикой является использование выделенных сервисов для кеша. Например, Redis или Memcache.</div><div><br /></div><div><b>Шардирование</b></div><div><b><br /></b></div><div>По мере роста базы данных вы можете упереться объем дискового пространства. Вы можете наращивать диски на сервере, но и это может закончиться. Чтобы хранить данные на множестве серверов применяется механизм шардирование. Как это может работать? Например у вас 10 серверов и вам нужно хранить на них пользователей. Вы вычисляете из UserId хеш-функцию от 0 до 9 и сохраняете пользователя на соответствующий сервер.</div><div>Также не нужно забывать о репликации данных и на каждый сервер добавьте еще по 1-2 реплики для надежности.</div><div><br /></div><div><b>NoSQL</b></div><div><b><br /></b></div><div>NoSQL базы данных как правило имеют очень сильные ограничения по возможностям выборок данных и по структуризации данных по сравнению с SQL-базами данных. Но они решают проблему производительности. Также из коробки может идти решение по шардированию данных, чего обычно нет в SQL-базах данных.</div><div>Например, в нашей компании широко распространено использование Cassandra. Она имеет высокую скорость записи данных, имеет встроенное шардирование, но есть проблемы с частыми изменениями данных и имеет очень сильные ограничения по функциям.</div><div>При использовании NoSQL распространен подход денормализации данных, когда одни и теже данные дублируются в разных структурах, чтобы сократить время выборки. </div><div><br /></div><div><b>CDN</b></div><div><b><br /></b></div><div>Для новостных сайтов и других, которые находятся под постоянной высокой нагрузкой есть решение, которое называется Content Delivery Network. Статические файлы веб-сайта, а именно стили, HTML и Javascript (сейчас уже модно весь код сводить только к Javascript) можно сохранять в отдельном сервисе сторонней компании. В нашей компании я не слышал, чтобы использовались такие сервисы. Видимо, потому что у нас не такие высокие нагрузки.</div><div><br /></div><div><br /></div>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-81090814201097527112020-05-20T18:41:00.000+03:002020-05-21T08:18:11.008+03:00Особенности удаленной работы На текущей работе продолжительный период пришелся на участие в распределенной команде. Мы пробовали работать с Казанью, в итоге почти вся наша казанская часть уволилась. Мы пробовали работать с Ростовым-На-Дону и у нас это получилось, теперь ростовский офис содержит множество команд. Потом вырос и казанский офис, но уже на базе других проектов. В итоге сформировалось понимание, с какими проблемами может столкнуться команда, работающая удаленно.<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8Ku_brkSbbWNkbyeUOH45E9h4JZ89FcQDksZHna501FtdK4MLHQmo0qOiQJzNIMzIrDr93gZ5xKXNMgCwovLwAS1DR4fSKBy2Y6LKmEamy-_gA97V6C5bhDzbEe5In2LpHto5IRfAuKA/s1600/Clipboard01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="463" data-original-width="623" height="237" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8Ku_brkSbbWNkbyeUOH45E9h4JZ89FcQDksZHna501FtdK4MLHQmo0qOiQJzNIMzIrDr93gZ5xKXNMgCwovLwAS1DR4fSKBy2Y6LKmEamy-_gA97V6C5bhDzbEe5In2LpHto5IRfAuKA/s320/Clipboard01.jpg" width="320"></a></div>
<br>
<br>
Сразу предупреждаю, что я не являюсь официальным представителем компании и мое мнение может отличаться от мнения руководства.<br>
<a href="http://trurl123.blogspot.com/2020/05/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-61985178512371121972019-02-15T14:53:00.000+03:002019-02-15T14:53:03.975+03:00Работа с потоками в C#<h2 style="color: #4580a0; font-family: Verdana, Geneva, sans-serif; font-size: 1.8em; font-variant-caps: small-caps; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: lighter;">
1. Начало работы<a href="https://www.blogger.com/null" name="E3B" style="color: #6677aa; font-family: Tahoma, Geneva, sans-serif;"></a></h2>
<h3 style="color: #4580a0; font-family: Tahoma, Geneva, sans-serif; font-size: 1.35em;">
Обзор и ключевые понятия<a href="https://www.blogger.com/null" name="E6B" style="color: #6677aa;"></a></h3>
<div style="font-family: Verdana, Geneva, sans-serif; font-size: 12px; text-align: justify;">
C# поддерживает параллельное выполнение кода через многопоточность. Поток – это независимый путь исполнения, способный выполняться одновременно с другими потоками.</div>
<div style="font-family: Verdana, Geneva, sans-serif; font-size: 12px; text-align: justify;">
Программа на C# запускается как единственный поток, автоматически создаваемый CLR и операционной системой (“главный” поток), и становится многопоточной при помощи создания дополнительных потоков. Вот простой пример и его вывод:<br>
</div><a href="http://trurl123.blogspot.com/2019/02/c.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-45099905830033286862019-02-15T14:41:00.001+03:002019-02-15T14:41:44.759+03:00Как работает реляционная БД<img align="left" src="https://habrastorage.org/files/1e7/e05/af0/1e7e05af0dc24cf2977fdd6e2bd69e9a.jpg" style="background-color: white; border-style: none; color: #222222; font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 16px; height: auto; margin: 5px 30px 5px 0px; max-width: 100%; vertical-align: middle;"><span style="background-color: white; color: #222222; font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 16px;">Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.</span><br>
<a href="http://trurl123.blogspot.com/2019/02/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-84011860033477715952016-09-26T06:00:00.000+03:002016-09-26T06:01:17.397+03:00Специализация в разработке<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnPmbfWbb_YpHUJ0z13Ei0z02aXKOHyezMe7F0mXxFOQ-8F0e8x2mtgNW6gzOHs4vHLCBDqy7RyzHVX4SSc5B8cY_cYvucOA-ynE7JyDpP4F_39wxWlmegPqDrKtvmxyO0d2ckdxPlm1U/s1600/be_1_7_3.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnPmbfWbb_YpHUJ0z13Ei0z02aXKOHyezMe7F0mXxFOQ-8F0e8x2mtgNW6gzOHs4vHLCBDqy7RyzHVX4SSc5B8cY_cYvucOA-ynE7JyDpP4F_39wxWlmegPqDrKtvmxyO0d2ckdxPlm1U/s320/be_1_7_3.jpg" width="320"></a>Специализацию в работе человечество изобрело уже давно и казалось бы это очевидный способ повышать производительность, но оказалось не все так просто в разработке программного обеспечения. <br>
<a href="http://trurl123.blogspot.com/2016/09/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-2201470030267065832015-11-21T07:28:00.000+03:002015-11-21T08:39:22.401+03:00Цели компании<div class="separator" style="clear: both; text-align: center;">
<a href="http://mahalla1.ru/wp-content/uploads/2012/01/vysshaya-cel-jizni.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://mahalla1.ru/wp-content/uploads/2012/01/vysshaya-cel-jizni.jpg" height="240" width="320" /></a></div>
<br />
В нашей компании ежегодно происходит общее собрание, куда приглашаются только избранные и где озвучиваются цели компании. Все это с пафосом транслируется на всю компанию. Я задумался, на сколько эффективны эти цели. Например, цель в том, чтобы в каждой компании в России пользовались нашими продуктами. Предположим, что эта цель воплотилась в жизнь. Кому станет лучше от этого? Программист, который пишет программу будет продолжать получать точно такую же зарплату. Сотрудник, которого наняли на испытательный срок, и которого уволили через три месяца, будет чувствовать, что стало лучше? Вовсе нет. Во время транляции этого собрания, один сотрудник написал, что он обнаружил один плюс от собрания: ему достались плюшки, которые обычно съедаются через несколько минут, как только они появляются на кухне.<br />
Или, например, можно поставить цель заработать в два раза больше денег. Да, будет узкая группа лиц в компании, которые почувствуют от этого выгоду. Для остальных жизнь никак не изменится. Компании не выгодно платить рядовому сотруднику значительно больше, чем средняя зарплата на рынке. Например, я задерживаюсь после работы. Жена и дети спрашивают, зачем? Как мне ответить? Чтобы поднять зарплату директора в два раза больше?<br />
Для того, чтобы решить эту непростую проблему, существуют цели, которые называются миссиями компаний. Например, миссия IKEA <complete id="goog_905483608">"</complete>Улучшение повседневной жизни каждого". <span style="font-family: inherit;">Миссия Google: "Удобно организовать всю информацию в мире и сделать ее доступной и полезной каждому". Чтобы усилить мотивацию всех сотрудников в компании, ее цели должны строиться вокруг миссий. Миссия должна нести добро не одной отдельной компании, а вообще всем. Если такой миссии нет, то компания не станет лидером. </span>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-3291174801432470492015-04-03T23:16:00.000+03:002015-04-03T23:16:19.593+03:00Ох, как же тяжело быть программистом?<div dir="ltr" style="text-align: left;" trbidi="on">
Недавно прочел статью <a href="https://stokito.wordpress.com/2015/03/23/ох-как-же-тяжело-быть-программистом/">Ох, как же тяжело быть программистом </a>и задумался, а на самом ли деле мне тяжело живется? Давайте разберем все тезисы.<br>
<b>Как бы ты не старался, тебе потом будет стыдно за этот код и даже будет хотеться переписать.</b><br>
</div><a href="http://trurl123.blogspot.com/2015/04/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-14577688427713899052013-06-28T23:25:00.000+04:002013-06-28T23:25:49.365+04:00Второе внимание облегчает понимание<div dir="ltr" style="text-align: left;" trbidi="on">
<blockquote>
<i>Сильвио Мануэль улыбнулся, понимая мою проблему. Он сказал, что
требуется огромная сила для того, чтобы освободиться от намерения
повседневной жизни. Тот секрет, который он только что открыл мне,
состоял в том, как отходить от такого намерения. Чтобы выполнить то,
что он сделал, нужно перенести свое внимание на светящуюся оболочку.</i><br>
<br>
<b><i>Карлос Кастанеда Дар орла</i></b></blockquote>
Любые мероприятия по разработке сайтов, коллективные блоги, книги по менеджменту Software Development содержат статьи и мысли о том, что нужно мотивировать сотрудников, писать код качественно и быстро, зарабатывать больше денег. Другими словами, копать глубже, кидать дальше. Почему так остро стоит проблема мотивации?<br>
<br>
</div><a href="http://trurl123.blogspot.com/2011/10/blog-post_7.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-44177174050690977692013-06-28T23:13:00.000+04:002014-02-24T11:44:12.710+04:00Архитектура высоконагруженной системы Диадок<div dir="ltr" style="text-align: left;" trbidi="on">
Размещаю здесь статью, которую когда-то писал для Хабра, чтобы не потерялась.<br>
<br>
Те, кто интересуется highload-системами, читали про архитектуры
Twitter, Facebook и прочие другие. Но никогда еще не было публикаций о
системах такого класса, как Диадок. В отличие от Twitter, эта система не
является бесплатной и доступной всем и содержит довольно большой слой
бизнес-логики, предназначенной для решения задач из конкретной
предметной области.<br>
</div><a href="http://trurl123.blogspot.com/2013/06/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-29229001310909086892013-04-13T22:14:00.002+04:002013-04-13T22:14:29.984+04:00Что нужно делать, чтобы удержать людей?<div dir="ltr" style="text-align: left;" trbidi="on">
Прочитал недавно презентацию от Github про найм и вывел для себя интересные мысли.<br>
<div style="text-align: left;">
</div>
<ul style="text-align: left;">
<li>Замена сотрудника на нового - это очень дорого для компании. Это</li>
<ul>
<li>2 недели поиска</li>
<li>2 месяца интервью</li>
<li>3 месяца, пока сотрудник начнет продуктивно работать</li></ul></ul></div><a href="http://trurl123.blogspot.com/2013/04/blog-post_13.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-48649413577335398062013-03-04T23:49:00.001+04:002013-03-04T23:49:55.265+04:00Как организовать разработку крупных проектов<div dir="ltr" style="text-align: left;" trbidi="on">
Компания, где я работаю, разрабатывает крупные проекты. В некоторых направлениях компания занимает если не лидирующие позиции, то является крупным игроком на рынке. Программного кода очень много. Во время работы в среде разработки может быть открыто пожалуй несколько сотен проектов. Около сотни проектов являются запускаемыми приложениями.<br><br>Все очень круто, все очень сложно. Чтобы справляться со всем этим хозяйством компания нанимает лучших программистов. Поиск умов производится не только среди специалистов с опытом, но также среди студентов. Нужны только лучшие сотрудники, только вперед.<br>
<br>
</div><a href="http://trurl123.blogspot.com/2013/03/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-87049628182048500792013-01-27T20:16:00.003+04:002013-01-27T20:16:37.052+04:00Церковь святого аджайла<div dir="ltr" style="text-align: left;" trbidi="on">
Недавно просмотрел видео про аджайл. Автор явно в теме, но в самой теме явно есть проблемы. Автор почему-то говорит, что об аджайл говорят последние несколько лет. В действительности, аджайл уже использовали в Удмуртии в 2001-м году. Странно, что далекой от центра Удмуртии уже знали об аджайл, а в Москве стало слышно только последние несколько лет. Наверное, для автора будет сюрприз, что инкрементальные способы разработки были известны еще в 1957 году, а сами методики SCRUM, RUP и XP были разработаны в девяностые.<br>
</div><a href="http://trurl123.blogspot.com/2013/01/blog-post_27.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-47709187534518708232013-01-10T06:58:00.001+04:002013-01-10T06:58:53.287+04:00Сказки про программистов<div dir="ltr" style="text-align: left;" trbidi="on">
1. Жил-был программист. Работал он в одной компании, видел как многие другие программисты меняют работу. И вот он тоже искал, искал работу и нашел. Зарплата была большая, но все что-то не устраивало. То под кондиционером посадят, то поругают зря, то профессионального развития нет. Мучился он мучился и перешел работать в другую компанию с меньшей зарплатой. А все потому, что не в деньгах счастье, но важно то, что вы делаете.<br>
<br>
</div><a href="http://trurl123.blogspot.com/2013/01/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-61292036796085007692012-12-01T16:19:00.000+04:002012-12-01T18:11:06.493+04:00Новая работа в СКБ Контур<div dir="ltr" style="text-align: left;" trbidi="on">
Сегодня вроде закончился обычный день, но в понедельник будет уже все
по-другому. Я уже не пойду на работу в ЦВТ, а пойду на работу в совершенно другую компанию, которая называется СКБ Контур.
Ощущение смены работы в данном случае чем-то напоминает, когда человека
вытаскивают из теплой постели и отправляют идти на работу. Вы не подумайте, в ЦВТ на
работу я ходил, но эта работа уже стала настолько привычной, что смена
работы - это как небольшой стресс.<br>
</div><a href="http://trurl123.blogspot.com/2012/12/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-20800097669214776842012-11-18T09:15:00.001+04:002020-06-10T08:30:14.543+03:00Сумерки ООП<div dir="ltr" style="text-align: left;" trbidi="on">
Объектно-ориентированное программирование стало в настоящее время почти стандартом программирования, в вузах принципы ООП являются обязательными для изучения. 10-15 лет назад все только и говорили об ООП, потом появились паттерны проектирования, основанные на ООП. Знать паттерны считалось довольно крутым достижением.<br>
<br>
Но сейчас в англоязычном интернете появляются статьи, направленные против ООП. Про паттерны проектирования больше никто не вспоминает, больше говорят про паттерны кода в конкретном языке программирования, либо про паттерны, не связанные с ООП. В советах, начинающим программистам больше не встречаются принципы SOLID. Давайте разберемся, а в самом ли деле ООП так нужно?<br>
<br>
</div><a href="http://trurl123.blogspot.com/2012/11/blog-post_18.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-36292319878730494072012-11-08T19:00:00.000+04:002012-11-08T19:00:06.577+04:00Каким должен быть менеджер проектов?<div dir="ltr" style="text-align: left;" trbidi="on">
В последнее время организуются семинары, выездные конференции на тему менеджмента в IT-организациях. Я лично на такие мероприятия не хожу, поэтому немного пофантазирую на эту тему.<br>
<br>
</div><a href="http://trurl123.blogspot.com/2012/11/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-23542442037105181982012-10-24T08:34:00.001+04:002018-07-09T09:14:20.424+03:00Как я люблю программировать<div dir="ltr" style="text-align: left;" trbidi="on">
На работе основное время я трачу на программирование. Программирую я с 16-ти лет и программирование стало неотъемлемой частью моей жизни. Все по-разному программируют и относятся к работе. Здесь я хочу описать, как это делаю я и получить отзывы о том, как это делаете вы и как относитесь к своей работе.<br>
</div><a href="http://trurl123.blogspot.com/2012/10/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-24421750370574325562012-09-28T18:30:00.000+04:002012-09-30T21:44:29.526+04:00Об информатизации школНедавно встречался с директором школы, где учится мой старший сын. Узнал, какая информатизация грядет в школах. Сейчас из Москвы спускают приказ об обязательном использовании электронных дневников. Как обычно у нас бывает, хотели как лучше, получилось как всегда. Какие тут получаются проблемы?<br />
<ul>
<li>Повышенная нагрузка на учителей, которые и так загружены работой, чтобы хоть как-то поддерживать уровень зарплаты на нужном уровне.</li>
<li>Как практика показывает, учителя не успевают своевременно вводить оценки в компьютер и оценки быстро теряют актуальность. Таким образом для родителей выгоды тут довольно мало.</li>
<li>Федеральные ресурсы для электронных дневников решено не использовать, таким образом вместо того, чтобы решить проблему глобально по стране, каждый регион тратит время и деньги локально. </li>
<li>Электронные дневники - это большие затраты на сервера и обслуживание. В каждом классе планируется установить компьютер для ввода данных. На каждую школу государство выделяет отдельный сервер.</li>
<li>Школа не может отказаться от введения электронных дневников, поскольку это приказ свыше. </li>
<li>Все эти затраты похожи на очередной распил бабла нашими чиновниками.</li>
</ul>
В итоге, я считаю, это еще очередной повод задуматься, за кого голосовать на ближайших выборах.Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-10404138566751855252012-09-10T23:05:00.000+04:002012-09-10T23:05:36.215+04:00Как оценивать срок разработкиМногие компании создают программы и сайты на заказ и всегда очень остро стоит вопрос, как оценить, сколько времени уйдет на ту или иную работу. Я решил собрать несколько правил, которые могут помочь в оценке.<br>
<a href="http://trurl123.blogspot.com/2012/09/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-72513553798253150032012-08-04T08:24:00.000+04:002012-08-04T08:24:16.227+04:00Найм. Вы все делаете так?Недавно читал статью бывшего сотрудника Яндекса, Ивана Сагалаева, который сейчас работает в Штатах, которая называлась <a href="http://softwaremaniacs.org/blog/2012/07/19/hiring-wrong/" rel="nofollow">Найм: вы всё делаете не так</a>. Также недавно услышал историю, как одна большая компания А хотела переманить ведущего программиста из другой компании Б размером поменьше. После часового собеседования в компании А, они с гордостью заявили, что этот ведущий программист не соответствует их уровню требований и может работать только как начинающий программист и не в коем случае не может быть ведущим. Интересно, а в самом ли деле компания А делала найм правильно?<br>
<a href="http://trurl123.blogspot.com/2012/08/blog-post.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0tag:blogger.com,1999:blog-5153741467662981532.post-39456465201430876582012-06-18T13:22:00.000+04:002012-06-18T13:22:21.102+04:00Слоу вебНедавно наткнулся на статью в ленте новостей ycombinator, которая называлась <a href="http://blog.jackcheng.com/post/25160553986/the-slow-web" rel="nofollow">The Slow Web</a>. Перевести ее как медленный веб было как-то не логично. Медленный веб ассоциируется с медленным соединением, тут же вспоминается ролик "ни единого разрыва". Неужели автор хочет разрывов? В действительности статья совсем про другое.<br>
<a href="http://trurl123.blogspot.com/2012/06/blog-post_18.html#more">Дальше »</a>Andrey Lapinhttp://www.blogger.com/profile/02270292038879392123noreply@blogger.com0