Девман для питонистов
532 subscribers
144 photos
3 videos
186 links
Веб-разработка на Python. Канал от практиков.

Сайт школы Девман: https://dvmn.org/
Контакт для связи: @yulya_devman
Download Telegram
Для работы с Git можно использовать как интерфейс командной строки, так и встроенные в IDE и самостоятельные графические приложения.

Консольный Git незаменим на сервере, но в локальной разработке сложные операции такие как слияния веток кода удобнее проводить в графическом интерфейсе.

👉 Для освоения навыков работы с Git читайте официальный гайд и закрепите полученные знания на практике в мини-курсе «Git и GitHub».
👍2
В предыдущих постах мы уже рассказали про систему контроля версий Git, графические клиенты.

➡️Одна из ключевых особенностей Git — это распределенная система. Код хранится на локальной машине разработчика, на сервере где работает сайт и еще в каком-то удаленном централизованном хранилище, например, в рамках компании.

К централизованному хранилищу предъявляют требования по доступности и надежности.

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

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

GitHub наверняка пользовался каждый начинающий разработчик.
Внутри Девмана используем GitLab, развернутый на нашем сервере.
В РФ сейчас активно разрабатывают платформу GitVerse.
🔥31
Всем привет! Сегодня на связи Андрей Хазов, преподаватель в Девман.

Однажды в рамках курса Девман «Профессия Middle Python/Django разработчик» студент задал мне вопрос: что выведет этот код?

import sys
sys.allow_boolean_assignment = 1

Тrue = False
if Тrue:
print("Тrue is Тrue")
else:
print("Тrue is False")


➡️ Каким, по-вашему, будет результат работы этой программы?
Постарайтесь ответить на вопрос, не запуская код.
Пишите в комментариях, почему считаете что ваш ответ правильный.
🔥1
Давайте попробуем ответить на этот вопрос, не запуская приведенный фрагмент кода.

Казалось бы, код не должен работать, ведь булевые объекты True и False неизменяемы (immutable). В документации (Boolean Objects, PEP 683 – Immortal Objects, Using a Fixed Refcount) указано, что в Python эти объекты также являются «бессмертными» (immortal).

«The fundamental improvement here is that now an object can be truly immutable. »

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

➡️ Убедимся на практике, что мы правы. Запускаем код в интерпретаторе, ожидая увидеть наш любимый SyntaxError, иии… На экран вывелось Тrue is False. Внезапно? Мягко сказано!

🧐 Очень любопытно, погнали дальше смотреть в документацию модуля sys, выясним, что это за флаг такой — allow_boolean_assignment.

В документации нет даже намека на него. Ладно, возможно, дело не в нем.

➡️Закомментируем вторую строчку — код все равно работает.
import sys
# sys.allow_boolean_assignment = 1

Тrue = False
if Тrue:
print("Тrue is Тrue")
else:
print("Тrue is False")


➡️Перепишем код с нуля, оставив только последние пять строк. И получим SyntaxError: cannot assign to True, ту самую ошибку, которую мы и ожидали встретить изначально.

True = False
if True:
print("Тrue is Тrue")
else:
print("Тrue is False")


В чем же дело? Самые внимательные уже догадались, что проблема в строчке Тrue = False, а в частности в том, что английская T заменена на кириллическую Т.

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

«В июле и августе 1991 года я, с подачи Гвидо Ван Россума, проводил технические интервью на позицию Middle Python Backend developer»


Догадались, что тут не так? Обратимся к Википедии и выясним, что первый релиз Python версии 0.9.0 состоялся 20 февраля 1991 года, то есть за 6 месяцев до предполагаемого интервью из статьи.

А вам слабо стать middle разработчиком на только что выпущенном языке за полгода? Я вот не уверен в своих силах. К сожалению, судя по комментариям под статьей, большинство пользователей не оценило тонкого юмора, сразу повесив на нее ярлык КГ/АМ.

С вами был Андрей Хазов, преподаватель в Девман. Надеюсь, что кейс покажется вам интересным и полезным, а вместо послесловия желаю вам:
⚡️не забывать про факт-чекинг и обращаться к первоисточникам;
⚡️поменьше подобных «каверзных» вопросов на собеседованиях!
1👍1
17-19 октября мы участвовали в форуме Innovation week и обещали вернуться с записью выступления. Возвращаемся! 🥳

👉 Запись на VK
👉 Запись на YouTube
👉 Презентация

Мы рассказали о нашем опыте разработки системы учета и ведения контактов и обсудили проблемы проектирования: как написать ТЗ, чтобы оно помогало развитию продукта, а не тянуло на дно 🔥

От нас выступили спикерами Евгений Евсеев — основатель и технический директор Devman и Артем Каменев — операционный директор подразделения заказной разработки PelidTeam.
🔥12🥰1
Посмотрев на формат уроков Девмана вам может показаться, что мы такое не рекомендуем и не практикуем… но хорошие книги и глубокое понимание механизмов работы языка очень важны. Да, прочитав книгу, вы не станете программистом. Но, не читая ничего по теории программирования и проектирования, сложно стать крутым программистом.

Мы опросили наших сотрудников и просто знакомых разработчиков, какие книги они прочитали и считают самыми ценными.

➡️ Делитесь в комментариях, какие книги читаете сейчас и какие из прочитанных считаете самыми интересными и полезными!
🔥11