Pull to refresh
4
0
Send message

Человечная декомпозиция работы

Reading time26 min
Views26K

img


За 15 лет работы разработчиком я обнаружил, что ложные убеждения о человеческой природе — основные враги хорошей декомпозиции. Если знать о них и стремиться не угодить к ним в ловушку, со временем можно сформулировать советы по созданию качественной декомпозиции. Так произошло со мной, и я спешу поделиться этим знанием.

Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments31

Внезапное желание стать разработчиком. Личный опыт

Reading time7 min
Views54K
В это прохладное августовское утро я пил крепкий горячий чай, пытаясь, наконец, проснуться и начать работать. Но, пока разум сопротивлялся порыву сознательности, вся моя активность сводилась к просмотру котиков и чтению всякой всячины в сети. В какой-то момент я оказался на Тостере. Всё так же полуосознанно, я подумал, что всё время попадал туда, если гуглил какие-то конкретные вопросы, и решил посмотреть, как хотя бы выглядит главная страничка сайта. А она выглядела вот так:

Небольшой скриншот, который я из эстетических соображений убираю под спойлер
image

Видите пару схожих вопросов рядом? Вот и мой разум приоткрыл один глаз и сказал – «Хм… Знакомая тема, бро». Стараясь не думать, как выглядят глаза разума, я прочитал эти вопросы, комментарии к ним, и у меня появилось непреодолимое желание поделиться с сообществом своей историей. История под катом.
Engage!
Total votes 71: ↑63 and ↓8+55
Comments406

Слышали о языке Prolog?

Reading time8 min
Views34K
Prolog — это один из тех языков, которые программисты обычно изучают в самом начале карьеры (например — в школе или в институте). Его, правда, забывают почти сразу же после того, как изучили.

Почему? Ну, лично я виню в этом индустрию разработки ПО. Я работаю в этой сфере последние 17 лет. Я участвовал в самых разных проектах, связанных с веб-разработкой и с большими данными (а именно, это были крупные интернет-площадки, ETL-конвейеры и прочее подобное). Суть в том, что за всё это время я не увидел ни одной строчки кода, написанной на Prolog.



Теперь расскажу о том, что случилось на прошлой неделе. Это был совершенно обычный вторник, я проводил собеседование с начинающим программистом. Когда я спросил его о том, на каких ещё языках программирования он может писать, он ответил так: «Я учил Prolog в университете, но им уже никто не пользуется».

Это заставило меня задуматься о том, насколько подобное заявление соответствует действительности.
Читать дальше →
Total votes 67: ↑53 and ↓14+64
Comments123

Нагрузочное тестирование: что в нем интересного и какие навыки нужны?

Reading time5 min
Views6.8K

Попросили рассказать о перспективах и задачах в сфере тестирования производительности Василия Кудрявцева, директора по качеству АО РТЛабс и руководителя нашего курса «Нагрузочное тестирование».

Самая актуальная на сегодня область в QA

Последние месяцы из-за сложившейся ситуации с пандемией все больше продуктов и сервисов переходят в онлайн, а уже существующие — быстрыми темпами расширяют свою аудиторию. Трафик и нагрузка возрастают, а вместе с тем и актуальность нагрузочного тестирования (НТ).

Даже начинающих специалистов, но с необходимым набором скиллов, хантят в течение нескольких недель. Причем выбор проектов огромен: банкинг, маркеты, доставка, образование и стриминговые сервисы, всевозможный онлайн-досуг и т.д. 

Можно рассчитывать на зарплату на 30-50% выше, чем по другим направлениям тестирования.

Узнать о перспективах
Total votes 11: ↑4 and ↓7-1
Comments2

Поддерживаем разработку нескольких версий продукта в Git. Станислав Лукьянов (GridGain)

Reading time19 min
Views8.1K


Всем привет! Меня зовут Станислав Лукьянов. Я работаю в компании GridGain. Сегодня я хотел поговорить о том, как мы поддерживаем старые версии в Git.

Total votes 16: ↑16 and ↓0+16
Comments2

Этапы внедрения CI/CD

Reading time7 min
Views6.9K


Jason Dorfman, MIT CSAIL


Ключевым моментом при разработке и написании кода ПО является скорейший переход на набор эксплуатационных принципов и методов, более известный как CI/CD, который соединяет непрерывную интеграцию с непрерывной поставкой. С помощью CI/CD команды разработчиков могут чаще и надежнее выкатывать изменения кода, таким образом быстрее удовлетворяя потребности бизнеса и пользователей.


Непрерывная интеграция — философия написания кода и набор методов, разработанные для стимулирования команд разработки делать мелкие изменения кода и фиксировать их в репозиториях с версионированием как можно чаще. Из-за того, что большинство современных приложений требуют написания кода с использованием разных платформ и инструментов, командам нужен способ интеграции и проверки сделанных ими изменений.

Читать дальше →
Total votes 16: ↑11 and ↓5+10
Comments4

Можно ли сложить N чисел типа double наиболее точно?

Reading time13 min
Views28K

В предыдущих сериях…


Прошлая статья рассказала о двух способах сложения двух двоичных чисел с плавающей запятой без потери точности. Чтобы добиться этого, мы представили сумму c=a+b в виде двух чисел (s,t)=a+b, причём таких, что s — наиболее близкое к a+b точно-представимое число, а t=(a+b)-s — это отсекаемая в результате округления часть, составляющая точную погрешность. У читателей был вопрос: а можно ли достаточно точно сложить массив чисел типа double? Оказывается, можно! Но только, вероятно, не всегда и не абсолютно… и не алгоритмом Кэхэна, который тогда вспоминали в комментариях. За подробностями прошу под кат, где мы и найдём приложение тому, о чём я рассказал в прошлый раз.


Total votes 76: ↑76 and ↓0+76
Comments45

Целый этаж аналитиков. Как поняли цифровизацию на заводе

Reading time7 min
Views15K
На одном крупном деревенском заводе решили заняться цифровизацией (что бы это ни значило). Цифровизацию нельзя доверять всяким придуркам (= тем, кто сейчас сидит на заводе), поэтому сделали хитрый ход – наняли кучу аналитиков, которые заняли целый этаж заводоуправления. Однако, взгляды на работу этих ребят у всех участников процесса серьёзно разошлись.

Я расскажу несколько версий произошедшего. Кто прав – решать вам.
Читать дальше →
Total votes 41: ↑31 and ↓10+31
Comments26

Год на Gentoo после Xubuntu и macOS: мой опыт (мне нравится)

Reading time7 min
Views53K

Эффект IKEA — когнитивное искажение, которое появляется, когда покупатели непропорционально высоко оценивают значимость (ценность) товаров, которые они создают отчасти сами (например, собирают из деталей)[1].

Read more
Total votes 48: ↑39 and ↓9+42
Comments226

Что происходит, когда вы выполняете manage.py test?

Reading time11 min
Views10K

Перевод статьи подготовлен специально для студентов курса «Python Web-Developer».

Вы запускаете тесты командой manage.py test, но знаете ли вы, что происходит под капотом при этом? Как работает исполнитель тестов (test runner) и как он расставляет точки, E и F на экране?

Когда вы узнаете, как работает Django, то откроете для себя множество вариантов использования, таких как изменение файлов cookie, установка глобальных заголовков и логирование запросов. Аналогично, поняв то, как работают тесты, вы сможете кастомизировать процессы, чтобы, например, загружать тесты в другом порядке, настраивать параметры тестирования без отдельного файла или блокировать исходящие HTTP-запросы.

В этой статье мы проведем жизненно важную настройку выходных данных ваших тестов, а еще сменим стиль отображения результатов выполнения тестов с точек и букв на эмодзи.

Читать далее
Total votes 9: ↑7 and ↓2+8
Comments0

Три образовательных сервиса, которые помогут на практике научиться работать в IT на уровне PRO

Reading time4 min
Views14K

Образовательное болото появилось недавно. Уже никого не удивишь тренажерами по программированию. Много курсов с нуля, к которым у мастодонтов айти-индустрии накопились претензии.

А вот тренажерам для администраторов и DevOps, Data Science и по работе с инструментарием типа Docker, Kubernetes, TensorFlow и Linux удивиться можно. Особенно если они с хорошей методологической траекторией.

О таких мы и поговорим.

Читать далее
Total votes 6: ↑3 and ↓3+3
Comments5

Как мы «разогнали» команду QA, и что из этого получилось

Reading time9 min
Views29K
Или как получить неочевидные последствия, если отказаться от команды тестирования. Полтора года назад мы разрушили команду тестирования: отказались от регресса, передали E2E автотесты на Selenium в поддержку разработчикам и разошлись по командам, которые пилят фичи, чтобы предотвращать ошибки «в зародыше». В розовых мечтах нам казалось, что так будет больше пользы: QA работают над качеством, тестирование начинается рано, а разработчики пишут автотесты сами и никто им не мешает.



Но не фартануло получилось не совсем так. Розовые мечты окрасились дополнительными оттенками: никто не думает о качестве, автотесты всё хуже, а у разработчиков без команды QA (внезапно) стало больше работы. Так проявились последствия второго порядка, к которым мы не были готовы. Сейчас мы их исправляем и можем рассказать, что это за последствия, как они возникают, какой урон наносят и как попробовать их предугадать, чтобы не было так больно.

Читать дальше →
Total votes 36: ↑27 and ↓9+30
Comments104

Как я получил пожизненный запас чесночной пиццы с помощью Python и Selenium

Reading time3 min
Views20K

История голодного студента с пытливым умом


Не знаю, как вы, а я обожаю пиццу. Особенно если это особые чесночные пицца-палочки Papa John’s. Поэтому я был в восторге, когда после заказа еды навынос получил от них следующее письмо:


Papa John’s (с) Заголовок письма с опросом

Бесплатная еда! Мне определённо нужно было пройти этот опрос…
Total votes 29: ↑25 and ↓4+28
Comments29

О полезности contextvars

Reading time5 min
Views27K

В Python есть множество возможностей и языковых конструкций. Какие-то мы используем каждый день, а о некоторых даже опытные программисты узнают с удивлением после нескольких лет работы с языком (привет, Ellipsis!). Совсем недавно вышел Python 3.9, но в этой статье я расскажу о функциональности, представленной еще в версии 3.7. На мой взгляд, она совершенно незаслуженно обделена пристальным вниманием. Речь, конечно же, о contextvars.
Читать дальше →
Total votes 39: ↑35 and ↓4+38
Comments9

Визуализация использования GIL в CPython

Reading time6 min
Views4K
Интересно, как ведут себя потоки, когда борются за GIL, или немного информации отсюда только для Python3.

Сразу оговорюсь, что использую Ubuntu 16.04 c ядром 4.15.0-115-generic, на машине стоит 4-х ядерный процессор Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz с 4 GB RAM.

Теория


Ни для кого не секрет, что в Linux библиотека потоков реализует стандарт POSIX threads. Реализация потоков в CPython использует данные потоки, из-за чего управление ими полностью осуществляется операционной системой.

GIL в Python3 это булевская переменная locked, доступ к которой защищен мьютексом mutex, и при изменении которой в false, ОС «сигнализирует» какому-то потоку, который ожидает условную переменную cond.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments2

Сложение двух чисел с плавающей запятой без потери точности

Reading time9 min
Views80K
Здравствуйте, друзья, как вы думаете, если мы напишем такой код:

s = a+b;
z = s-a;
t = b-z;

то не кажется ли вам, что в результате его выполнения получится, что t=0? С точки зрения привычной математики действительных чисел это и правда так, а вот с точки зрения двоичной арифметики с плавающей запятой в переменной t будет кое-что другое. Там будет то, что спасает нас от потери точности при сложении чисел $a$ и $b$. Кого интересует данная тема, прошу под кат.

Total votes 99: ↑97 and ↓2+135
Comments172
12 ...
8

Information

Rating
Does not participate
Registered
Activity