LINUX.ORG.RU

Борьба с динамической типизацией

 ,


0

1

В качестве курсовой работы по информатике нам задали написать веб-приложение на Питон. Так как препод знает только фласк (а вообще он пыхыпист), то собственно на нем и нужно сделать. Я, до этого долгое время работающий с достаточно свободолюбивым Си, который даёт больше возможностей программисту, немного, мягко говоря, не доволен тем, что совсем не понимаю что, собственно, происходит под капотом (а учить как там устроено всё ни времени, ни желания нет совсем). Но выбора нет. Хотел спросить больше про стиль написания кода. К примеру адекватно ли использовать в качестве названия переменной такие конструкции: int_a, is_b, str_c или такие, более компактные: ia, isb, sc, etc. Или лучше что бы такие идеи остались у меня в голове и не лазили по форумам? Тогда как можно не сидеть с потухшим взглядом, когда компилятор ожидал инт, а получил по губе?


int_a, is_b, str_c или такие, более компактные: ia, isb, sc, etc

Это моветон в любом языке программирования. При чём тут типизация?

Deleted
()

как тупейшее именование переменных, которое ни на что не влияет, помогает бороться с динамической типизацией, которая не баг, а фича?

SevikL ★★★★★
()

Типизация ломает мозг хуже бейсика?

Идёшь на гитхуб, пишешь в поиске фласк, смотришь как делают другие.

anonymous
()

К примеру адекватно ли использовать в качестве названия переменной такие конструкции: int_a, is_b, str_c или такие, более компактные: ia, isb, sc, etc

Да, и всеми силами избегай имён переменных которые несут хоть какую-то информацию об их содержимом (кроме типа).

Кстати должен заметить что ты очень мудро поступаешь избегая изучения нового. Не для того нужно высшее образование чтобы что-то изучать

MrClon ★★★★★
()

Имя переменной должно соответствовать её содержанию. Например, user_name, password, address, nusers и т.д. Тип переменной легко выяснить с помощью функции type().

yvv ★★☆
()

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

eternal_sorrow ★★★★★
()

адекватно ли

нет

как можно не сидеть с потухшим взглядом, когда компилятор ожидал инт

Передавать инт.

Это отлавливают юнит-тестами, а также (ближе к нужному тебе) аннотациями типов.

anonymous
()

Молодец, изобрел венгерскую нотацию. А говорят молодежь нынче не та. Затейники те еще

anonymous
()
Ответ на: комментарий от MrClon

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

Cirno
() автор топика
Ответ на: комментарий от anonymous

Очень интересная вещь, спасибо!

Cirno
() автор топика

более компактные: ia, isb, sc, etc.

Да, так намного лучше.

Тогда как можно не сидеть с потухшим взглядом, когда компилятор ожидал инт, а получил по губе?

Нет компилятора - не нужно сидеть с потухшим взглядом. Если упадет, то упадет в рантайме. Но всегда можно сделать враппер и проверять типы, вроде:

if getattr(func, 'types', None) and not isinstance(ia, func.types):
    raise MyWrongTypeError(ia, func.types)

KillTheCat ★★★★★
()
Ответ на: комментарий от anonymous

Что-то о ней слышал, и не всегда хорошее, но сейчас считаю, что в этом достаточно смысла.

Cirno
() автор топика

Я, до этого долгое время работающий с достаточно свободолюбивым Си

int_a, is_b, str_c

+1 аргумент за то, чтобы начинать обучение с Паскаля.

ugoday ★★★★★
()
Ответ на: комментарий от Cirno

Ладно, int и str ты префиксами закодируешь, а посложнее что? Как насчет классов с нескучными многословными именами? Получится неконсистентность или адок. И главное, эти венгерские идентификаторы будут враньем, потому что функция в питоне ожидает не объект такого-то типа, а любой объект с такими-то методами.

anonymous
()
Ответ на: комментарий от anonymous

Акстись, какие сложные классы, ты ОП-пост видел ? Откуда они у него. Простенький питон освоить не могут, а лезут в Си

Dred ★★★★★
()
Ответ на: комментарий от Deleted

В Haskell почти только так и пишут. Особенно во вложенных функциях.

iamweasel
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.