Pull to refresh
1
0

User

Send message

Python — Эволюция создания объектов (первая часть)

Level of difficultyMedium
Reading time10 min
Views4.2K

Как упростить себе жизнь или почему ты должен уметь создавать объекты правильно?

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

В вопросе "как создавать объект?" я сторонник эволюционного подхода. Я не стремлюсь использовать порождающие паттерны при первой возможности. У меня есть простой набор вопросов самому себе, который помогает мне принять решение, стоит ли изменить способ создания объекта или нет.

Читать далее
Total votes 9: ↑8 and ↓1+8
Comments10

Почему квантовая механика и теория относительности несовместимы?

Reading time7 min
Views87K


Несмотря на то, что мы достигли определенных успехов в понимании внутреннего устройства вселенной (бозон Хиггса, ага), в наших знаниях все еще есть зияющие пробелы. В конце концов, почему у нас до сих пор нет Теории Великого Объединения и Теории Всего?.. И почему Общая теория относительности Эйнштейна никак не может подружиться с квантовой механикой?

Кстати говоря, а зачем нам их вообще дружить?

Все наши знания о законах вселенной можно разделить на две большие группы. В одной окажется квантовая механика, из которой выросла Стандартная Модель вместе со всеми своими фундаментальными частицами и тремя взаимодействиями: электромагнитным, сильным и слабым. В другую группу попадет ОТО, разработанная Эйнштейном, описывающая четвертое фундаментальное взаимодействие — гравитацию, а также черные дыры, расширение вселенной и даже путешествия во времени.

Могут ли они сосуществовать вместе?

Вы наверно уже догадались, что мы точно не знаем, как квантовая механика и ОТО могут объединиться в квантовую гравитацию. Не смотря на больше количество любопытных теорий о том, как это можно сделать, я не буду сейчас на них останавливаться, а просто попытаюсь объяснить, зачем это вообще нужно.
Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments82

Как обхитрить мозг и заставить его полюбить сложные задачи [Дофаминовый детокс]

Level of difficultyEasy
Reading time7 min
Views126K

Как часто вы ловили себя на мысли «Вот, блин, весь выходной прозалипал в бесконечных лентах, а ничего полезного так и не сделал»? Не спешите себя винить! Скорее всего, все дело в вашем мозге, который привык баловаться дофамином. Увы, с этой проблемой сталкиваются большинство современных людей (и мы в beeline cloud — не исключение). Хорошая новость: ее можно решить!

Почему некоторых людей гораздо сильнее мотивируют именно сложные задачи? И есть ли способ превратить трудные дела в легкие?

Скорее всего, вы можете играть в видеоигры хоть каждый день. Или, например, листать социальные сети. Не сомневаюсь также, что вы без труда сможете просидеть целый день перед экраном монитора.

А теперь попробуйте целый час посвятить учебе... Звучит очень утомительно. А что, если вместо этого часок-другой поработать над своим сайд-проектом? Хм. Всё равно скукотища.

Читать далее
Total votes 116: ↑104 and ↓12+102
Comments143

Шпаргалка по безопасной сборке Docker-образов

Reading time17 min
Views14K

Каждый контейнер Docker основан на образе, который обеспечивает базу для всего, что вы когда-либо будете развертывать и запускать. Если злоумышленник как-то повлияет на сборку образа и изменит Dockerfile, то сможет совершить навредить вашим системам. Например, добавить вредоносный код, получить доступ к секретным данным сборки или атаковать хост-компьютер. Поэтому защита начинается уже во время подготовки образа, с первой инструкции.

Привет, Хабр! Меня зовут Эллада, я специалист по информационной безопасности в Selectel. Продолжаю рассказывать о безопасности в Docker. Под катом расскажу, как настроить сборку образов, обеспечить безопасность и добавить сканирование в пайплайн.
Читать дальше →
Total votes 48: ↑46 and ↓2+58
Comments7

Сложнейшая проблема компьютерных наук: центрирование

Level of difficultyMedium
Reading time7 min
Views29K

Заявляю: «Мы, как цивилизация, разучились использовать центрирование». Ну то есть мы, конечно, знаем, как это делать — очень просто:

display: flex;
justify-content: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Не спрашивайте, почему вам нужно запомнить четыре слова вместо просто горизонтальное/вертикальное; всё равно лучше, чем было до этого.

Ещё можно использовать сетку:

display: grid;
justify-items: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Также не спрашивайте, почему выражение justify-content стало justify-items.
Читать дальше →
Total votes 192: ↑187 and ↓5+225
Comments56

Настоящая причина, по которой вы не станете сеньором

Level of difficultyEasy
Reading time5 min
Views11K

История о воробушках, правильном фидбеке и житейских проблемах/

В 1958 году Мао Цзэдун инициировал «Большой скачок» — организованную китайской коммунистической партией кампанию по трансформации страны в индустриально развитое государство.

Акция «Четыре зла» входила в число первых шагов, предпринятых в рамках «Большого скачка». Под девизом «Человек должен победить природу» власти нацелились на уничтожение четырех вредителей: крыс, мух, комаров и воробьев.

Борьба с вредителями широко практиковалась по всему миру, а сами её методы считались научно обоснованными. Но, вопреки ожиданиям, большинство принятых мер, хоть трижды научных, пагубно сказалось на производстве продуктов питания.

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

Читать далее
Total votes 38: ↑19 and ↓19+3
Comments23

10 полезных сочетаний клавиш в PyCharm

Reading time2 min
Views118K

Привет, мои дорогие!

Сегодня я хочу поделиться с вами своими лайфхаками касательно работы в PyCharm, ведь мы все хотим сократить время разрабатывая проект, а в этом нам помогут быстрые команды при помощи сочетаний клавиш. Так как я предпочитаю пользоваться операционной системой семейства Windows, сочетания клавиш будут заточены под нее. Перед тем как применять данные комбинации, проследите за тем чтобы у вас стояла английская раскладка, иначе, команды будут совсем другие.

Читать далее
Total votes 18: ↑6 and ↓12-5
Comments12

Этот опасный рефакторинг

Level of difficultyMedium
Reading time7 min
Views6.6K

Ошибки во время рефакторинга могут дорого обойтись. Модернизация, ведущая к отказу системы, или внесение новой функциональности параллельно с ошибочными правками явно принесут вред. Но степень вреда может быть разной.
Читать дальше →
Total votes 27: ↑24 and ↓3+37
Comments19

Делаем код-ревью правильно

Level of difficultyMedium
Reading time12 min
Views21K

В начале своей карьеры я как-то работал над одним заказом, создавая платформу сентимент-анализа для социальных сетей. В то время Twitter ещё был Twitter’ом. Наша команда состояла из семи человек, среди которых я был джуниором. Мы были молоды и полны энтузиазма. Наш девиз можно было описать как: «Мы гибкие, быстрые и всё ломаем!». Да, мы действительно гордились своей скоростью. Код-ревью? Я вас умоляю. Мы считали эту практику бюрократическим пережитком корпоративного мира.

И что вы думаете? Через несколько месяцев наша база кода стала подобна минному полю. Причём баги нас волновали меньше всего, хотя их была уйма. Реальная проблема заключалась в том, что никто не мог понять код, написанный другими. У нас во многих местах дублировалась логика, и в модулях использовались разные стили кода. Всё было очень печально.

Тогда до нас дошло! Нужно взять всё под контроль. Код-ревью реально помогают сохранять код читаемым, обслуживаемым и масштабируемым.

Итак, в двух словах: если вы не проводите код-ревью, или делаете их «для галочки», то обрекаете себя на боль, пусть не сразу, но в конечном итоге однозначно. Это можно сравнить с возведением дома на фундаменте из песка. Какое-то время он, может, и простоит, но явно недолго. А в мире стартапов второго шанса у вас может уже не быть.
Читать дальше →
Total votes 50: ↑48 and ↓2+70
Comments26

Немыслимое – как тебя обсуждать?

Level of difficultyEasy
Reading time7 min
Views3.3K

В своей предпоследней статье на Хабре, «Оде о бесполезности споров» я рассказал об эксперименте, в котором ученый пытался переубедить убежденного сторонника плоской Земли. Как вы помните, он отказался даже посмотреть в телескоп, заявляя что «Сама мысль об искривленной поверхности воды оскорбительна для здравого смысла».

Многие читатели, уверен, задавались вопросами: Как это работает? О чем думает сторонник плоской Земли, когда отказывается проверять главную теорию своей жизни на практике? Принимает ли он решение на основании неверно истолкованных фактов или опирается исключительно на эмоции? Я берусь продемонстрировать это способом, понятным каждому разумному человеку — вывернув ситуацию наизнанку.

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

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

Набраться мужества и посмотреть в телескоп
Total votes 29: ↑19 and ↓10+14
Comments192

Как я уронил прод на полтора часа (и при чем тут soft delete и partial index)

Reading time7 min
Views39K

В жизни любого разработчика наступает момент, когда он роняет прод. Представьте: полдень, в Skyeng час пик, тысячи запланированных онлайн-уроков, а наша платформа лежит… 

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

Читать далее
Total votes 146: ↑142 and ↓4+165
Comments174

Самый лучший в мире курс по Машинному обучению — Алгоритмы Машинного обучения с нуля

Reading time1 min
Views24K

Краткий обзор курса, который я недавно закончил пилить на степике. Курс хардкорный :) В нем необходимо с нуля писать алгоритмы машинного. Наверное это один из лучший способов досконально разобраться в алгоритме.

Курс бесплатный: https://stepik.org/course/68260/promo

Читать далее
Total votes 30: ↑30 and ↓0+31
Comments11

Как эффективно самостоятельно изучать английский язык

Level of difficultyEasy
Reading time8 min
Views41K

Читатели Хабра, категорически вас приветствую! В этой статье я хочу поделиться с вами моделью эффективного изучения английского языка, которую я постарался сформировать исходя из своего n-летнего опыта его изучения.

Расскажу вам насколько это актуально, с чего начать, какие ресурсы и приемы использовать и как эффективно достичь результата.

Читать далее
Total votes 24: ↑23 and ↓1+25
Comments27

Small talk для большого успеха: общение с рекрутером, коллегами и новыми знакомыми

Level of difficultyEasy
Reading time6 min
Views9.7K

Ребята, привет! Это Лена, методист курсов английского языка в Практикуме, преподаватель и англоговорящий интервьюер в международных IT-компаниях. Мы с вами уже знакомы по статье о собеседовании на английском для разработчиков.

Я хочу более подробно раскрыть пункт о софтскилах, а точнее, поговорить про small talk. Это часть англоязычной культуры, освоить которую полезно всем, кто хочет работать общаться с иностранными коллегами.

Но вот загвоздка: small talk часто кажется чем-то неловким — непонятно, о чём говорить и как долго. Именно с этим я и постараюсь помочь.

Читать далее
Total votes 12: ↑10 and ↓2+10
Comments3

Лучший стек для питониста-джуна 2024 (2 часть)

Level of difficultyEasy
Reading time7 min
Views21K

Итак, что же поменялось за чуточку больше чем полгода? Если мы будем говорить об актуальности - ничего. Django до сих пор, а скорее всего так будет и всегда, остается "на плаву". Большая часть вакансий для back-end разработчика на Python имеет в себе требования по знаниям Django. Говорить вечно о том, что он удобен, постоянно поддерживаем, дает довольно обширный функционал и так далее - бессмысленно. Все основные моменты я упомянул в первой части.

Ладно, вступление в сторону! Лучше обсудить то, что изменилось с Django за это время.

Самое грандиозное из этого - выход Django 5! По сути скачок на пятую версию не принес в фреймворк особо крупных изменений, но парочку моментов хочу подчеркнуть. Первое и самое важное, на мой взгляд, это то, что разработчики решили добавить больше асинхронности без подключения таск-менеджеров. Для этого они добавили несколько декораторов и методов. Хотя это немного, на мой взгляд, противоречит самому принципу работы Django (напоминаю: Django синхронный фреймворк и для того, чтобы сделать очередь задач, нужно подключать таск-менеджеры, например, Celery), но тем не менее, это все равно крутой шаг в эволюцию. Надеюсь, что разработчики и дальше будут двигаться в этом направлении.

Далее, не могу не упомянуть очень важный момент - совместимость с Python. Django 5 будет работать только с версиями Python 3.10 и выше. Django 4.2.x - последняя версия, которая работает с Python 3.8 и 3.9.

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

Смотреть польностью
Total votes 10: ↑9 and ↓1+8
Comments22

Всё не то, чем кажется: как когнитивные искажения мешают работать и что с ними делать

Reading time11 min
Views14K

Привет! Это Анна из click.ru с очередным рассказом на тему личной (не)эффективности. Когда я впервые услышала про когнитивные искажения, я усмехнулась: «Ну, я-то мыслю рационально, в отличие от Васи, который делает из всего катастрофу». Наступил 2022-й, и однажды, после очередного приступа под девизом «Всё пропало!», я внезапно почувствовала духовное родство с Васей...

Раскапывая глубже, поняла, что наши головы часто наполнены устойчивыми схемами реакций и суждений, которые усиливаются во времена адаптации к новым обстоятельствам. А поскольку основное поле деятельности у меня – это работа, расскажу вам об искажениях на примере нее.

Читать далее
Total votes 5: ↑4 and ↓1+4
Comments5

Моя большая практическая шпаргалка SQL (SQLite) с готовыми запросами

Level of difficultyMedium
Reading time54 min
Views83K

Привет, Хабр)

Публикую шпаргалку по SQL, которая долгое время помогала мне, да и сейчас я периодически в неё заглядываю.

Все примеры изначально писались для СУБД SQLite, но почти всё из этого применимо также и к другим СУБД.

Здесь есть и примеры довольно сложных запросов с агрегирующими функциями, триггерами, длинными подзапросами, с оконными функциями. Помимо этого, часть примеров посвящена работе с SQL в Python, используя sqlite3, pandas, polars. Этот список запросов с комментариями можно использовать как наглядное пособие для изучения SQL.

Читать далее
Total votes 110: ↑107 and ↓3+119
Comments7

Прокачиваем вёрстку ARIA-атрибутами. Атрибут role

Level of difficultyMedium
Reading time8 min
Views4.1K

В разговорах людей, интересующихся доступностью, часто можно услышать слово «Роль». Так, что это такое? Это специальная форма представления элемента для скринридера. Устанавливается она с помощью атрибута role. Сегодня поговорим о нем.


Я не буду описывать всё. Атрибут слишком сложный для одной статьи. Остановлюсь на моментах, которые вы можете использовать сразу. Продвинутые техники оставим на другой случай.


Давайте начнём!

Читать дальше →
Total votes 25: ↑24 and ↓1+36
Comments10

Как организовать систему оплаты в компаниях, занимающихся разработкой

Level of difficultyMedium
Reading time16 min
Views6.5K

Любая программная компания рано или поздно сталкивается с проблемой должностей. Некоторые организации довольствуются «плоской» системой, но в отсутствие системы должностей возникают теневые иерархии, что на самом деле хуже. Должности дают чёткую демаркацию ожиданий от конкретного сотрудника. Например, гораздо проще возложить на ведущего разработчика ответственность за техническое руководство, если эта роль чётко определена. Без определений должностей наверх будут подниматься самые громкие, а тихие и вдумчивые останутся незамеченными.

Сложность чёткого определения должностей заключается в том, что люди пытаются обмануть систему (всегда заявляя, что они заслуживают новой должности/повышения зарплаты). Я наблюдал, как для борьбы с этим организации создают всё более длинные определения, позволяющие избегать пограничных случаев. Постепенно определения начинают занимать несколько страниц и перестают умещаться в головах. В процессе сложности системы соблюдение её правил ослабевает, а потом люди просто перестают им следовать. Я считаю, что есть более правильный путь, поэтому предлагаю следующее:

Не платите за то, сколько людей под руководством или сколько строк кода они написали. Платите им за генерируемые результаты.

Эта философия сильна и наделяет свободой. Неважно, если вы сотрудник, вносящий индивидуальный вклад (individual contributor, IC), занимаетесь техническим руководством или управлением командой. Важно то, насколько ваш вклад влияет на прибыль бизнеса.

В этом посте предлагается многоуровневая система, которую можно применять к IC, техническим руководителям и руководителям команд.
Читать дальше →
Total votes 34: ↑30 and ↓4+42
Comments7

Как мы управляем инфраструктурой на более 1000 серверов при помощи Ansible

Level of difficultyMedium
Reading time12 min
Views16K

Привет, Хабр! Мы системные инженеры X5 Tech — Алексей Кузнецов и Борис Мурашин. У нас за плечами больше 15 лет опыта, в том числе поддержка сервисов Rapida, CyberPlat, TeleTrade, сопровождение стека BigData и внедрение кластеров Hadoop. В этой статье мы расскажем, как выбирали систему управления конфигурациями, какими критериями руководствовались, что в итоге выбрали, с какими проблемами столкнулись и как их решали.

Рассматривать вопрос, зачем вообще нужна система управления конфигурацией, не будем. Потому что считаем, что если у вас больше одного сервера, она уже необходима. Перейдём сразу к тому, почему мы выбрали именно Ansible.

Читать далее
Total votes 34: ↑34 and ↓0+34
Comments22
1
23 ...

Information

Rating
Does not participate
Registered
Activity