Антипаттерны в функциональных языках программирования могут показаться непривычными в силу отличия этих языков от других их видов, в связи с чем разработчики нередко пишут не самые удачные реализации, склонные к ошибкам и трудные в обслуживании. В статье мы разберём пять наиболее типичных антипаттернов, избегая которые вы сможете создавать более удобный в работе код при меньшем количестве ошибок.Читать полностью »
Рубрика «ruvds_перевод» - 17
5 антипаттернов при написании кода на функциональном ЯП
2023-05-21 в 10:00, admin, рубрики: ruvds_перевод, scala, антипаттерны, Блог компании RUVDS.com, Программирование, программирование для начинающих, функции, функциональное программированиеОткройте для себя весь потенциал побитовых операторов. Без математики
2023-05-19 в 13:00, admin, рубрики: CHIP-8, ruvds_перевод, битовые операторы, Блог компании RUVDS.com, двоичные числа, инвертирование бит, Программирование, шестнадцатеричные числа
При изучении нового языка программирования в его документации мы обычно находим таблицу, где перечислены различные операторы, которые можно использовать с числами. Помимо хорошо знакомых нам +, -, * и /, в ней всегда присутствует раздел, который многие пропускают. Я имею ввиду раздел с побитовыми операторами: <<, >>, &, ^ и |.
И хотя поначалу они могут казаться туманными, не особо нужными и востребованными только теми, кто пишет на низкоуровневых языках, на деле эти операторы имеют немалое значение. Причём некоторые из наиболее эффективных способов их применения совсем не требуют математики.
Побитовые операторы позволяют управлять двоичным представлением данных, что на деле оказывается очень полезной возможностью. Поэтому предлагаю познакомиться с этим инструментом и научиться грамотно его использовать.Читать полностью »
FET: замышляем новую шалость
2023-05-14 в 10:00, admin, рубрики: DIY, diy или сделай сам, fet, n-fet, ruvds_перевод, биполярные транзисторы, Блог компании RUVDS.com, гаджеты, полевые транзисторы, Производство и разработка электроники, транзисторы, Электроника для начинающихВ прошлый раз мы разобрали основы полевых транзисторов, поговорили об их нюансах и возможных подвохах. Но на основах здесь дело не заканчивается, поэтому давайте разберём реальные случаи применения этих транзисторов во всём их разнообразии! Я хочу показать вам несколько крутых схем, где дружелюбные полевики, особенно их МОП-модификация, способны вам помочь. Попутно с этим я также представлю вам несколько полевых транзисторов, с которыми вы, как мне кажется, подружитесь надолго. Если, конечно, вы с ними ещё не знакомы.Читать полностью »
Почему работать с OAuth сложно даже сегодня?
2023-05-10 в 13:00, admin, рубрики: api, oauth, ruvds_перевод, авторизация, аутентификация, Блог компании RUVDS.com, информационная безопасность, Программирование, протоколы безопасности, токен доступаOAuth — это стандартный протокол. Ведь так? И для OAuth 2.0 есть клиентские библиотеки практически на всех языках программирования, которые можно представить.
Вероятно, вы подумаете, что имея клиентскую библиотеку, можно реализовать OAuth для любого API буквально за десять минут. Или хотя бы за час.
Если вам это удастся, то, пожалуйста, сообщите об этом нам — мы угостим вас изысканным ужином и послушаем, как у вас это получилось.
Читать полностью »
Ошибки, которые я совершил, будучи молодым менеджером
2023-05-07 в 10:00, admin, рубрики: ruvds_перевод, Блог компании RUVDS.com, Карьера в IT-индустрии, менеджмент, управление персоналом, управление проектамиСтановление в качестве менеджера далось мне необычайно трудно. Я трижды брался за это дело и бросал, пока, наконец, мне не удалось утвердиться. И всё дело было в том, что я совершал множество ошибок. С тех пор, когда настало время растить собственную команду и обучать других управлять её частью, я видел, как многие люди в разной степени тоже испытывают трудности — зачастую аналогичные моим.
Ниже я дам небольшую, старательно собранную подборку собственных ошибок и стратегий, которые помогли их преодолеть.Читать полностью »
Эй, Google, это твой баг
2023-05-03 в 13:00, admin, рубрики: Google, Google API, Google Maps, google maps api, Google Play, Google Street View, ruvds_перевод, Блог компании RUVDS.com, Геоинформационные сервисы, отладка, приложения для android, разработка мобильных приложенийЭто история о том, как мы обнаружили баг в приложении для Android и упорно пытались доказать, что это баг Google, а потом ещё упорнее пытались заставить компанию его устранить.
Прежде чем вдаваться в подробности, приведу немного контекста.
- Issue track: https://issuetracker.google.com/issues/261816912
- Баг обнаружен 7 декабря 2022 года.
- Полное устранение подтверждено 12 апреля 2023 года.
▍ Да, это заняло больше четырёх месяцев!
Почему так долго? Позвольте мне объяснить природу бага и хронологические этапы его устранения.
Читать полностью »
Я пытался зарабатывать по $5 в день пассивного дохода, но вместо этого научился чему-то новому
2023-05-02 в 13:00, admin, рубрики: Automate, ruvds_перевод, бизнес-модели, Блог компании RUVDS.com, блокировщики рекламы, ботоводство, боты, Монетизация IT-систем, пассивный доход, приложения для androidЧто такое пассивный доход?
Его можно определить как деньги, получаемые от действий, в которых вы не принимаете активного или прямого участия.
Лично для меня это всегда было связано с использованием преимуществ умения нешаблонно мыслить и зарабатывать деньги. Смогу ли я, разработчик ПО, могу зарабатывать деньги на том, чему уже научился (предпочтительно без необходимости что-либо делать)?
Заманчиво, не так ли?
Читать полностью »
Алгоритмы балансировки нагрузок
2023-05-01 в 13:25, admin, рубрики: ruvds_перевод, Алгоритмы, балансировка нагрузки, балансировщик нагрузки, Блог компании RUVDS.com, веб-серверы, оптимизация запросов, Серверная оптимизация, Серверное администрированиеРано или поздно веб-приложения перерастают среду одного сервера. Компаниям требуется увеличить или их доступность, или масштабируемость, или и то, и другое. Чтобы сделать это, они развёртывают своё приложение на нескольких серверах и ставят перед ним балансировщик нагрузок для распределения входящих запросов. Чтобы справляться с нагрузками, большим компаниям могут потребоваться тысячи серверов, на которых запущено веб-приложение.
В этом посте мы рассмотрим способы, которыми один балансировщик нагрузок может распределять HTTP-запросы на множество серверов. Мы начнём снизу и проделаем весь путь вверх до современных алгоритмов балансировки нагрузок.
Читать полностью »
Ускоряем Python в сто раз при помощи менее чем ста строк на Rust
2023-04-30 в 14:15, admin, рубрики: numpy, pyo3, python, Rust, ruvds_перевод, библиотеки python, Блог компании RUVDS.com, оптимизация производительностиОднажды на работе у нас возникла проблема с производительностью одной из наших основных Python-библиотек.
Эта библиотека формирует фундамент нашего конвейера 3D-обработки. Это довольно большая и сложная библиотека, использующая NumPy и другие научные пакеты Python для выполнения широкого спектра математических и геометрических операций.
Кроме того, наша система должна работать на мощностях компании с ограниченными ресурсами CPU, и хотя поначалу она справлялась хорошо, с ростом количества одновременных физических пользователей у нас начали возникать проблемы, а наша система едва выдерживала нагрузку.
Мы пришли к выводу, что для работы с увеличившейся нагрузкой нужно сделать систему, по крайней мере, в пятьдесят раз быстрее, и решили, что помочь в этом нам может Rust.
Так как проблемы производительности, с которыми мы столкнулись, встречаются довольно часто, мы можем воссоздать и решить их прямо здесь, в (не такой уж короткой) статье.
Так что заварите себе чаю (или кофе) и я расскажу вам (а) о самой проблеме и (б) о нескольких итерациях оптимизаций, которые мы смогли применить для решения этой проблемы.
Если вы хотите сразу перейти к получившемуся коду, то читайте раздел «Подведение итогов».
Читать полностью »
FET: (F)дружелюбный (E)эффективный (T)транзистор
2023-04-30 в 10:00, admin, рубрики: bjt, diy или сделай сам, JFET, ruvds_перевод, биполярные транзисторы, Блог компании RUVDS.com, гаджеты, Производство и разработка электроники, транзисторы, Электроника для начинающихРаботая со схемой, управляющей приличной силой тока, вы зачастую сталкиваетесь с полевыми транзисторами (FET, Field-Effect Transistor). Независимо от того, хотите ли вы управлять парой мощных светодиодов, двигателем или включать/отключать USB-устройство, в схеме обычно присутствует полевой транзистор, выполняющий часть ответственной работы. Вы можете не знать, как именно он функционирует, как его использовать и какие нюансы при этом учитывать — поэтому начнём с основ.Читать полностью »